Files
xianyan/docs/spec/transfer_expansion_tasks.md
Developer 228095f80a chore: 完成v6.7.0版本迭代更新
本次更新涵盖多个功能模块的优化与新增:
1. 新增Wi-Fi直连配对方式与协作画布模块
2. 完成设备管理重命名API与前端适配
3. 优化日签卡片空数据保护与UI细节
4. 新增剪贴板工具与每日运势会话
5. 修复应用锁恢复、语音消息录制等已知问题
6. 完善文件传输统计与配对逻辑
7. 更新安卓权限配置与iOS隐私描述
8. 新增自动化测试脚本与文档
9. 清理旧版审计报告与测试文件
2026-05-14 05:35:18 +08:00

19 KiB
Raw Blame History

闲言APP — 传输助手功能扩展 归档任务列表

  • 创建时间: 2026-05-11
  • 更新时间: 2026-05-14
  • 作用: 12项功能扩展的细分任务清单用于验收审计进度和状态
  • 上次更新: v11.5.1 — 阶段一收尾完成(F4/F5/F6测试+F8 ECDH+备份+权限)
  • 设计文档: docs/spec/transfer_expansion_spec.md

状态说明

标记 含义
未开始
🔵 进行中
已完成
已取消
⚠️ 有问题需处理
🧪 待测试验证

阶段一: 基础传输增强 (P1)

F4: 大文件断点续传

编号 任务 状态 优先级 备注
F4-01 TransferTask模型扩展: 新增fileId/totalChunks/receivedChunks/retryCount字段 P1 v11.0.0
F4-02 transfer_tasks表ALTER: 新增4个字段 P1 v11.0.0 db迁移v13
F4-03 新建chunk_ack_logs表 P1 v11.0.0 ChunkAckLogRecords
F4-04 WsRelayService: fileMeta增加fileId+totalChunks+chunkHashes P1 v11.0.0
F4-05 WsRelayService: fileChunk增加chunkIndex+chunkHash P1 v11.0.0
F4-06 WsRelayService: 接收方逐片回复chunkAck P1 v11.0.0
F4-07 WsRelayService: 失败分片重传(最多3次) P1 v11.0.0 ResumeHandler
F4-08 WsRelayService: resumeRequest断点续传请求 P1 v11.0.0
F4-09 SignalingMessageType新增chunkAck/resumeRequest枚举 P1 v11.0.0
F4-10 信令服务器index.js: 转发chunkAck/resumeRequest消息 P1 v11.0.0 通用转发
F4-11 TransferProvider: 断点续传UI状态(暂停/恢复/重试) P1 v11.1.0 TaskCard+Bubble+ChatPage
F4-12 TransferProvider: 中断后自动保存进度 P1 v11.1.0 _saveTaskProgress
F4-13 集成测试: 模拟中断+恢复场景 P1 v11.5.1 60项测试全通过

F5: 消息送达回执

编号 任务 状态 优先级 备注
F5-01 新建delivery_receipt模型 P1 v11.0.0 DeliveryStatus枚举
F5-02 新建delivery_receipts表 P1 v11.0.0 DeliveryReceiptRecords
F5-03 transfer_messages表ALTER: 新增delivery_status/delivered_at/read_at P1 v11.0.0 db迁移v13
F5-04 SignalingMessageType新增deliveryAck枚举 P1 v11.0.0
F5-05 信令服务器index.js: 转发delivery-ack消息 P1 v11.0.0 通用转发
F5-06 DeliveryReceiptService: 发送ack/接收ack/状态管理 P1 v11.0.0
F5-07 TransferProvider: 消息发送后自动注册回执监听 P1 v11.0.0 TransferSignalingHandler
F5-08 ReceiptIndicator组件: 单勾/双勾/蓝色双勾 P1 v11.0.0
F5-09 TransferBubble集成回执指示器 P1 v11.0.0
F5-10 集成测试: 发送→送达→已读全流程 P1 v11.5.1 42项测试全通过

F8: ☁️ 云端暂存(24h)

编号 任务 状态 优先级 备注
F8-01 CloudCacheRecord模型 P1 v11.2.0 UploadStatus/DownloadStatus枚举+toJson/fromJson
F8-02 cloud_cache_records表 P1 v11.0.0 CloudCacheRecords Drift表+CRUD
F8-03 服务端API: cloud_cache/upload接口 P1 v11.2.0 ThinkPHP CloudCache.php
F8-04 服务端API: cloud_cache/download接口 P1 v11.2.0
F8-05 服务端API: cloud_cache/list接口 P1 v11.2.0 含info接口
F8-06 服务端API: cloud_cache/clean定时清理(cron) P1 v11.2.0 cron每小时执行
F8-07 服务端API: cloud_cache/notify通知接口 P1 v11.2.0
F8-08 CloudCacheService: 加密上传/下载解密(AES-256-GCM) P1 v11.2.0 encryptFile/decryptFile/uploadFile/downloadFile
F8-09 CloudCacheService: 密钥协商(ECDH) P1 v11.5.1 EcdhKeyExchange+信令keyExchange
F8-10 CloudCacheProvider: 状态管理 P1 v11.2.0 CloudCacheState+CloudCacheNotifier
F8-11 TransferProvider: 离线设备→提示暂存→上传流程 P1 v11.2.0 CupertinoDialog+forceCloudCache
F8-12 TransferProvider: 上线后自动拉取暂存 P1 v11.2.0 checkAndDownloadPendingCache
F8-13 发送端备份机制: 本地加密副本+7天自动清理 P1 v11.5.1 saveBackup增强+cleanExpiredBackups+meta.json
F8-14 信令服务器: cloud-cache-notify消息转发 P1 v11.5.1 确认通用转发+客户端链路完整
F8-15 API文档更新 P1 v11.2.0 API_FILE_TRANSFER_DOC.md第六章
F8-16 服务端部署+接口验证脚本 P1 v11.2.0 20项测试全通过

F9: 📊 传输统计面板

编号 任务 状态 优先级 备注
F9-01 transfer_stats_daily表 P2 v11.0.0 TransferStatsRecords
F9-02 TransferStatsService: 聚合查询(日/周/月) P2 v11.4.0 getOverview/getDailyTrend/getDeviceRanking/getFileTypeDistribution/getTransferQuality
F9-03 TransferStatsService: 每日快照写入 P2 v11.4.0 writeDailySnapshot
F9-04 TransferStatsProvider: 状态管理 P2 v11.4.0 TransferStatsState+TransferStatsNotifier
F9-05 TransferStatsPage: 总览卡片(文件数/数据量/速度) P2 v11.4.0 4张统计卡片
F9-06 TransferStatsPage: 趋势折线图(fl_chart) P2 v11.4.0 LineChart 7天/30天切换
F9-07 TransferStatsPage: 设备排行 P2 v11.4.0 Top5设备+奖牌
F9-08 TransferStatsPage: 文件类型饼图 P2 v11.4.0 PieChart+图例
F9-09 TransferStatsPage: 传输质量指标 P2 v11.4.0 成功率/失败率/速度/任务数
F9-10 路由注册: 文件传输设置页增加"统计"入口 P2 v11.4.0 transfer_settings_page.dart

阶段二: 实时协作 (P2)

F1: 🖼️ 双人/多人协作画布

编号 任务 状态 优先级 备注
F1-01 Stroke数据模型(id/userId/color/width/points/lamportClock) P2 v11.7.0 stroke.dart+StrokeType枚举
F1-02 CanvasDocument数据模型 P2 v11.7.0 canvas_document.dart
F1-03 canvas_documents表 P2 v11.0.0 CanvasDocumentRecords
F1-04 CanvasCrdt: Lamport时钟+冲突合并 P2 v11.7.0 canvas_crdt.dart+MergeResult
F1-05 CanvasEngine: CustomPainter渲染引擎 P2 v11.7.0 canvas_engine.dart+贝塞尔曲线
F1-06 CanvasEngine: 画笔/橡皮/形状/文字工具 P2 v11.7.0 6种工具+CanvasToolbar
F1-07 CanvasEngine: 颜色选择器+粗细调节 P2 v11.7.0 8色预设+1-20宽度滑块
F1-08 CanvasSyncService: WebRTC DataChannel同步 P2 v11.7.0 信令通道同步(可升级DataChannel)
F1-09 CanvasSyncService: 断线缓存+重连全量同步 P2 v11.7.0 requestSnapshot+mergeSnapshot
F1-10 CanvasSyncService: 多人光标同步(canvas-cursor) P2 v11.7.0 broadcastCursor+远程光标渲染
F1-11 SignalingMessageType新增canvasStroke/canvasCursor/canvasJoin/canvasLeave/canvasSnapshot P2 v11.0.0
F1-12 信令服务器: canvas房间管理+消息广播 P2 v11.7.0 canvasRooms+5种消息处理
F1-13 CanvasPage: 独立画布页面(工具中心入口) P2 v11.7.0 全屏画布+GestureDetector
F1-14 CanvasToolbar: 工具栏组件 P2 v11.7.0 iOS风格底部工具栏
F1-15 CanvasLayerPanel: 图层面板(可选) P2 待实现
F1-16 CanvasProvider: 状态管理 P2 v11.7.0 Riverpod StateNotifier
F1-17 聊天页集成: "🎨画布"按钮→快速发起协作 P2 v11.7.0 transfer_chat_page
F1-18 导出功能: PNG/SVG导出 P2 v11.7.0 RepaintBoundary+toImage
F1-19 工具中心注册: "云画布"入口 P2 待注册
F1-20 集成测试: 双人画布+断线重连 P2

F2: 📋 剪贴板同步管理

编号 任务 状态 优先级 备注
F2-01 ClipboardItem模型(id/deviceId/type/textContent/imagePath/isPinned) P2 v11.7.0 clipboard_item.dart
F2-02 clipboard_items表 P2 v11.0.0 ClipboardItemRecords
F2-03 ClipboardManagerService: 增强版(图片同步+历史记录) P2 v11.7.0 clipboard_manager_service.dart
F2-04 ClipboardManagerService: 图片压缩+WsRelay传输 P2 v11.7.0 compressImage+sendViaWsRelay
F2-05 ClipboardManagerService: 置顶/删除/搜索 P2 v11.7.0 pinItem/deleteItem/searchItems
F2-06 ClipboardProvider: 状态管理 P2 v11.7.0 ClipboardState+ClipboardNotifier
F2-07 ClipboardFlowPage: 灵感页剪贴板会话流 P2 v11.7.0 筛选+搜索+卡片+长按操作
F2-08 InspirationPage: 新增"📋 剪贴板"会话条目 P2 v11.7.0 tool_item.dart入口
F2-09 一键复制/粘贴到当前设备 P2 v11.7.0 Clipboard.setData+getData
F2-10 集成测试: 文本+图片跨设备同步 P2

F6: 🎙️ 语音消息

编号 任务 状态 优先级 备注
F6-01 VoiceMessageData模型(duration/sampleRate/waveform) P2 v11.5.0
F6-02 transfer_messages表ALTER: 新增voice_duration/voice_waveform P2 v11.0.0 db迁移v13
F6-03 VoiceMessageService: 录音(record包+AAC编码) P2 v11.5.0 AudioRecorder+Amplitude监听
F6-04 VoiceMessageService: 播放(audioplayers包) P2 v11.5.0 AudioPlayer+进度监听
F6-05 VoiceMessageService: 波形振幅可视化 P2 v11.5.0 _sampleWaveform+CustomPaint
F6-06 VoiceBubble组件: 播放按钮+进度条+时长 P2 v11.5.0 VoiceBubble+AnimatedWaveformPainter
F6-07 TransferChatPage: 长按🎤按钮录音 P2 v11.5.0 长按录音+VoiceRecordingOverlay
F6-08 SignalingMessageType新增voiceMeta枚举 P2 v11.0.0
F6-09 WsRelayService: 语音消息发送(小文件模式) P2 v11.5.0 sendFiles复用
F6-10 TransferProvider: 语音消息收发处理 P2 v11.5.0 sendVoiceMessage
F6-11 集成测试: 录音→发送→接收→播放 P2 v11.5.1 47项测试全通过

阶段三: 网页互传 (P1)

F10: 局域网网页访问

编号 任务 状态 优先级 备注
F10-01 LocalSend HTTP Server新增路由: GET / 返回传输页面 P1 v11.6.0 WebTransferHandler
F10-02 LocalSend HTTP Server新增路由: GET /api/info 设备信息 P1 v11.6.0 WebTransferHandler
F10-03 LocalSend HTTP Server新增路由: POST /api/send-file 接收网页上传 P1 v11.6.0 WebTransferHandler
F10-04 LocalSend HTTP Server新增路由: POST /api/send-text 接收文本 P1 v11.6.0 WebTransferHandler
F10-05 LocalSend HTTP Server新增路由: GET /ws WebSocket通信 P1 v11.6.0 WebTransferHandler+shelf_web_socket
F10-06 App端: 局域网IP广播(mDNS/DNS-SD) P1 v11.6.0 NetworkInfo.getWifiIP+LAN横幅
F10-07 App端: 文件传输页面显示局域网访问地址 P1 v11.6.0 🌐局域网访问横幅+点击复制
F10-08 集成测试: 网页访问App IP→上传文件→App接收 P1

F11: 跨网络网页传输

编号 任务 状态 优先级 备注
F11-01 transfer.html: 账号登录模式UI P1 v11.6.0 三Tab分段控件
F11-02 transfer.html: 调用login API获取token P1 v11.6.0 loginWithAccount+localStorage
F11-03 transfer.html: WebSocket连接信令服务器(携带token) P1 v11.6.0 connectSignaling+自动重连
F11-04 transfer.html: 发送register消息(含userId) P1 v11.6.0 deviceType=web
F11-05 transfer.html: 发送discoverMyDevices获取设备列表 P1 v11.6.0 discoverDevices
F11-06 transfer.html: 设备列表UI(在线/离线/连接类型) P1 v11.6.0 设备名+类型图标+在线徽章
F11-07 transfer.html: 选择设备→发送文件(WsRelay/WebRTC) P1 v11.6.0 双通道+自动选择
F11-08 transfer.html: 发送进度实时显示 P1 v11.6.0 SVG圆环+速度+取消
F11-09 transfer.html: 自动降级逻辑(局域网→WebRTC→WsRelay) P1 v11.6.0 connectWithFallback
F11-10 集成测试: 网页登录→发现设备→发送文件→App接收 P1

F12: 网页双向互传

编号 任务 状态 优先级 备注
F12-01 transfer.html: 局域网自动发现模式 P1 v11.6.0 startLanScan+254IP并发探测
F12-02 transfer.html: 模式切换UI(取件码/账号/局域网) P1 v11.6.0 三Tab分段控件
F12-03 transfer.html: Web→App发送文件(小文件WsRelay) P1 v11.6.0 64KB分片+Base64
F12-04 transfer.html: Web→App发送文件(大文件WebRTC) P1 v11.6.0 DataChannel+流控
F12-05 transfer.html: 双向文本消息 P1 v11.6.0 聊天气泡+WsRelay/HTTP
F12-06 App端: 设备列表显示"Web浏览器"设备 P1 v11.6.0 🌐图标+DeviceType.web
F12-07 App端: 选择Web设备发送文件 P1 v11.6.0 WsRelay传输+跳过IP探测
F12-08 App端: 网页设备在线状态(信令检测) P1 v11.6.0 30s心跳超时
F12-09 集成测试: App→Web发送+Web→App发送 双向 P1

阶段四: 高级功能 (P3)

F3: 📱 屏幕共享+受限操作

编号 任务 状态 优先级 备注
F3-01 InputAction模型(sessionId/zoneId/action/timestamp) P3 v11.8.0 input_action.dart+HotZone+InputActionLog
F3-02 ScreenCaptureService: Android MediaProjection捕获 P3 v11.8.0 MethodChannel xianyan/screen_capture
F3-03 ScreenCaptureService: iOS ReplayKit广播扩展 P3 v11.8.0 MethodChannel(原生代码待实现)
F3-04 ScreenCaptureService: 桌面屏幕捕获 P3 v11.8.0 MethodChannel(原生代码待实现)
F3-05 RemoteInputService: 热区定义+命中检测 P3 v11.8.0 hitTest+HotZone
F3-06 RemoteInputService: 语义动作执行(非真实点击) P3 v11.8.0 executeSemanticAction
F3-07 RemoteInputService: 操作日志记录 P3 v11.8.0 logAction+InputActionLog
F3-08 SignalingMessageType新增screenShareOffer/Answer/Stop/remoteInput P3 v11.0.0
F3-09 信令服务器: 屏幕共享信令转发 P3 v11.0.0 通用转发
F3-10 WebRTC: 视频流建立(H.264编码) P3 v11.8.0 createScreenShareOffer/Answer
F3-11 ScreenSharePage: 观看页面+热区高亮 P3 v11.8.0 Texture+热区覆盖层
F3-12 ScreenShareProvider: 状态管理 P3 v11.8.0 30分钟超时+授权确认
F3-13 聊天页集成: "📺共享"按钮 P3 v11.8.0 transfer_chat_page
F3-14 安全机制: 授权确认+30分钟超时+任意方终止 P3 v11.8.0 authorizeSession+checkTimeout
F3-15 集成测试: 共享+受限操作+终止 P3

F7: 🔌 USB有线传输

编号 任务 状态 优先级 备注
F7-01 UsbTransportService扩展: USB OTG Host模式 P3 v11.9.0 MethodChannel xianyan/usb_transport
F7-02 USB设备检测+自动连接 P3 v11.9.0 EventChannel+VendorID过滤
F7-03 USB bulk transfer数据传输 P3 v11.9.0 sendFile/receiveFile+进度
F7-04 USB传输速度适配(2.0/3.0) P3 v11.9.0 UsbVersion.chunkSize
F7-05 传输确认弹窗 P3 v11.9.0 UsbConfirmDialog
F7-06 集成测试: USB连接+文件传输 P3 仅Android

通用/跨功能任务

编号 任务 状态 优先级 关联功能
G-01 SignalingMessageType枚举扩展(所有新类型) P1 v11.0.0 14种新类型
G-02 信令服务器index.js消息类型路由扩展 P1 v11.0.0 配对+心跳+通用转发
G-03 TransferEnums扩展(新传输类型/状态) P1 v11.0.0 DeliveryStatus+voice
G-04 数据库迁移脚本(所有新表+ALTER) P1 v11.0.0 schemaVersion=13
G-05 API文档更新(API_FILE_TRANSFER_DOC.md) P1 v11.0.0 第七章+第八章
G-06 CHANGELOG.md版本记录 P1 v11.0.0
G-07 路由注册(新页面) P2 F1/F3/F9
G-08 依赖包添加(record/audioplayers/fl_chart等) P2 已确认全部在pubspec.yaml
G-09 iOS Info.plist权限声明(麦克风/屏幕录制) P3 v11.5.1 NSMicrophoneUsageDescription+NSLocalNetworkUsageDescription
G-10 Android Manifest权限声明(USB/屏幕录制) P3 v11.5.1 usb.host+FOREGROUND_SERVICE+MEDIA_PROJECTION

进度统计

阶段 功能 总任务 未开始 🔵进行中 完成 取消 ⚠️问题 完成率
F4 断点续传 13 0 0 13 0 0 100%
F5 送达回执 10 0 0 10 0 0 100%
F8 云端暂存 16 0 0 16 0 0 100%
F9 统计面板 10 0 0 10 0 0 100%
F1 协作画布 20 2 0 18 0 0 90%
F2 剪贴板 10 1 0 9 0 0 90%
F6 语音消息 11 0 0 11 0 0 100%
F10 局域网页 8 1 0 7 0 0 88%
F11 跨网络 10 1 0 9 0 0 90%
F12 双向互传 9 1 0 8 0 0 89%
F3 屏幕共享 15 1 0 14 0 0 93%
F7 USB传输 6 1 0 5 0 0 83%
通用 G 跨功能 10 1 0 9 0 0 90%
合计 12功能+通用 148 10 0 138 0 0 93%

版本规划

版本 包含功能 预计任务数
v11.0.0 F5 送达回执 + F4 断点续传 + G通用 ~30
v11.1.0 F4 续传UI + 自动保存 ~2
v11.2.0 F8 云端暂存(客户端) ~5
v11.3.0 F8 云端暂存(服务端+集成) ~11
v11.4.0 F9 统计面板 ~10
v11.5.0 F6 语音消息 + F2 剪贴板 ~21
v11.6.0 F10 局域网页 + F11 跨网络 + F12 双向互传 ~27
v11.7.0 F1 协作画布 ~20
v11.8.0 F3 屏幕共享 ~15
v11.9.0 F7 USB传输 + 收尾 ~6

审计记录

日期 审计人 审计内容 结果 备注
2026-05-11 AI 初始创建任务列表 148项任务12功能+通用
2026-05-12 AI v11.0.0完成: F4(9/13)+F5(9/10)+G(6/10) 24项完成
2026-05-12 AI v11.1.0完成: F4-11(续传UI)+F4-12(自动保存) 26项完成F4达85%
2026-05-12 AI v11.2.0完成: F8-01(模型)+F8-02(表)+F8-08(加密服务)+F8-10(Provider) 30项完成F8达31%
2026-05-12 AI v11.4.0完成: F9统计面板全部10项+bug修复(CloudCacheRecord命名冲突+Drift代码生成) 59项完成F9达100%
2026-05-14 AI v11.5.1完成: F4-13测试(60PASS)+F5-10测试(42PASS)+F6-11测试(47PASS)+F8-09 ECDH+F8-13备份+F8-14确认+G-09/G-10权限 75项完成阶段一100%整体51%