按模块拆分,每个功能独立任务
| 编号 | 任务 | 说明 | 优先级 | 依赖 |
|---|---|---|---|---|
| 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 |
| 编号 | 任务 | 说明 | 优先级 | 依赖 |
|---|---|---|---|---|
| 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 |
| 编号 | 任务 | 说明 | 优先级 | 依赖 |
|---|---|---|---|---|
| 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 |
| 编号 | 任务 | 说明 | 优先级 | 依赖 |
|---|---|---|---|---|
| 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 |
| 编号 | 任务 | 说明 | 优先级 | 依赖 |
|---|---|---|---|---|
| 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 |
策略:小更新 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 |