首页/ 架构/ 开发代办

# 开发代办清单

按模块拆分，每个功能独立任务

6
模块
55
任务总数
15
P0
20
P1
20
P2

## 模块 1：shared — 共享类型与协议

编号 | 任务 | 说明 | 优先级 | 依赖
--- | --- | --- | --- | ---
S-001 | 定义 MCP Tool 类型 | 36 个 Tool 的 TypeScript 类型（name、inputSchema、outputSchema） | P0 | —
S-002 | 定义设备配置类型 | 设备信息、连接配置、代理配置接口 | P0 | —
S-003 | 定义数据通道协议 | 屏幕推流、文件传输、键鼠事件的 WS 消息格式 | P1 | —
S-004 | 定义客户端状态类型 | 连接状态、Tailscale 状态、设备在线状态枚举 | P1 | —
S-005 | JSON Schema 生成 | 从 TypeScript 类型自动生成 JSON Schema | P2 | S-001

## 模块 2：client/server — MCP Server 核心

编号 | 任务 | 说明 | 优先级 | 依赖
--- | --- | --- | --- | ---
C-001 | MCP Server 框架 | 用 @modelcontextprotocol/sdk 搭建基础框架，SSE 传输 | P0 | S-001
C-002 | file_list Tool | 列出目录内容，支持 glob 过滤和递归 | P0 | C-001
C-003 | file_read Tool | 读取文件内容，支持行范围 | P0 | C-001
C-004 | file_write Tool | 写入/创建文件 | P0 | C-001
C-005 | file_move Tool | 移动/重命名文件 | P0 | C-001
C-006 | file_delete Tool | 删除文件 | P1 | C-001
C-007 | file_transfer Tool | 跨设备文件传输（通过 WS 数据端口） | P2 | C-001, S-003
C-008 | exec Tool | 执行命令并返回结果，支持超时 | P0 | C-001
C-009 | exec_background Tool | 后台执行长时间命令，返回任务 ID | P1 | C-008
C-010 | process_list Tool | 列出进程，支持 CPU/内存排序 | P0 | C-001
C-011 | sysinfo Tool | 返回 CPU/内存/磁盘/网络/运行时间 | P0 | C-001
C-012 | power Tool | 关机/重启/休眠/WoL | P1 | C-001
C-013 | service Tool | 系统服务管理（启动/停止/重启/状态） | P1 | C-001
C-014 | notify_send Tool | 发送桌面通知 | P1 | C-001
C-015 | Gateway 注册与自动连接 | 客户端启动时 SSE 注册到 Gateway，支持自动重连 | P0 | C-001
C-016 | 独立代理支持 | SOCKS5/HTTP 代理，只代理自身连接 | P1 | C-015
C-017 | MCP Resources | device://list、device://{id}/status 资源暴露 | P2 | C-001
C-018 | MCP Prompts | troubleshoot、optimize 预置提示词 | P2 | C-001

## 模块 3：client/platform — 平台适配

编号 | 任务 | 说明 | 优先级 | 依赖
--- | --- | --- | --- | ---
P-001 | Windows 平台适配 | 屏幕捕获、系统信息、命令执行的 Windows 实现 | P0 | C-001
P-002 | Linux 平台适配 | 复用 Windows 代码，适配 Linux 路径和命令 | P1 | P-001
P-003 | macOS 平台适配 | 复用代码，适配 macOS 特定 API | P2 | P-001
P-004 | Android 平台适配 | React Native 环境下的文件/进程/系统信息 | P1 | P-001
P-005 | CLI 平台适配 | 无 UI 版，Node.js CLI 入口，systemd/Docker 部署 | P1 | C-001
P-006 | 连接生命周期 — 通联检测 | 启动时测试 Gateway 是否可达 | P0 | C-015
P-007 | 连接生命周期 — Tailscale 管理 | 按需启停 Tailscale，记录 started_by_us 状态 | P1 | P-006
P-008 | 连接生命周期 — 心跳保活 | 每 30s ping，连续 3 次无响应判定断开 | P0 | C-015
P-009 | 连接生命周期 — 断线重连 | 指数退避重连（1s→2s→4s→...→60s） | P0 | P-008
P-010 | 连接生命周期 — 退出恢复 | 退出时恢复 Tailscale 到进入前状态 | P1 | P-007
P-011 | 配置管理 | 本地 JSON 配置读写、系统 keychain 凭据存储 | P1 | S-002

## 模块 4：client/ui — 客户端界面

编号 | 任务 | 说明 | 优先级 | 依赖
--- | --- | --- | --- | ---
U-001 | 设置页面 | Gateway 地址、token、代理、设备名称配置 | P0 | P-011
U-002 | 连接状态指示器 | 顶部状态栏显示 Gateway 连接状态、Tailscale 状态 | P1 | P-008
U-003 | 设备列表页面 | 所有设备卡片（名称、在线状态、CPU/内存/磁盘概览） | P1 | C-015
U-004 | 设备详情页面 | 单设备完整信息（进程列表、系统信息、网络状态） | P2 | U-003
U-005 | 文件浏览器 | 远程目录树、文件列表、面包屑导航 | P1 | C-002
U-006 | 文件查看器 | 文本文件查看、图片预览 | P2 | U-005
U-007 | 文件上传/下载 | 拖拽上传、下载进度条 | P2 | U-005, C-007
U-008 | 远程终端 | 命令输入框、输出显示、历史记录 | P1 | C-008
U-009 | 远程桌面视图 | 屏幕推流显示区域 | P2 | S-003
U-010 | 远程桌面输入 | 鼠标点击/移动/滚动、键盘输入转发 | P2 | U-009
U-011 | 远程桌面工具栏 | 全屏、缩放、剪贴板同步、快捷键 | P2 | U-009
U-012 | AI 聊天界面 | 消息列表、输入框、Markdown 渲染 | P1 | C-015

## 模块 5：远程控制与 AI 操控

编号 | 任务 | 说明 | 优先级 | 依赖
--- | --- | --- | --- | ---
R-001 | screenshot Tool | 截取屏幕，返回 base64 JPEG | P1 | P-001
R-002 | remote_input Tool | 鼠标移动/点击/滚动/拖拽、键盘输入/按键/快捷键 | P1 | P-001
R-003 | clipboard_sync Tool | 剪贴板读写/同步 | P1 | P-001
R-004 | remote_stream Tool | 开始/停止屏幕推流，WS 数据端口 | P2 | R-001, S-003
R-005 | ui_find Tool | 通过 Accessibility API 查找 UI 元素 | P2 | P-001
R-006 | ui_act Tool | 操作 UI 元素（点击/输入/选择/读取） | P2 | R-005
R-007 | browser_open Tool | 打开 URL / 操控远端浏览器 | P2 | C-001
R-008 | browser_act Tool | 浏览器内操作（填写/点击/截图/获取文本） | P2 | R-007
R-009 | ocr_screen Tool | 屏幕 OCR 文字识别 | P2 | R-001

## 模块 6：OTA 更新与 CI/CD

策略：小更新 JS bundle OTA 静默推送，大更新 APK 重装。

编号 | 任务 | 说明 | 优先级 | 依赖
--- | --- | --- | --- | ---
O-001 | CI/CD 流水线 | push tag → 自动构建 Desktop + Android + CLI | P1 | —
O-002 | Android JS bundle OTA | expo-updates：启动检查 + 每 24h 检查 → 静默下载 JS bundle → 下次打开生效 | P1 | O-001
O-003 | Desktop 自动更新 | Tauri updater：检查 latest.json → 后台下载 APK → 静默安装 | P1 | O-001
O-004 | CLI 自动更新 | gca-cli update 命令，下载最新版本并替换 | P2 | O-001
O-005 | OTA 发布脚本 | 一键导出 JS bundle 并上传到 Gitee 静态仓库 | P1 | O-002

## 建议开发顺序

批次 | 任务 | 产出
--- | --- | ---
第 1 批 | S-001, S-002, U-001 | 类型定义 + 设置页面
第 2 批 | C-001~C-005, C-008, C-010, C-011 | MCP Server 核心 8 个 Tool
第 3 批 | P-001, P-006, P-008, P-009, C-015 | Windows 适配 + 连接生命周期
第 4 批 | U-002, U-003, U-005, U-008, U-012 | 核心 UI（设备列表/文件/终端/聊天）
第 5 批 | C-006, C-009, C-012~C-016, P-011 | 扩展 Tool + 代理 + 配置
第 6 批 | R-001~R-003, P-002, P-005 | 远程控制基础 + Linux/CLI 适配
第 7 批 | R-004, S-003, U-009~U-011 | 屏幕推流 + 远程桌面 UI
第 8 批 | U-004, U-006, U-007, C-007, C-017, C-018 | 设备详情/文件查看/Resources
第 9 批 | R-005~R-009, P-004 | AI 操控 + Android 适配
第 10 批 | O-001~O-005, S-005, P-003 | CI/CD + OTA + macOS