重要度
状态
改动等级
平台 / 标签
📋 待开始 4 ▴ 收起

- M0 风险验证 spike
  待开始 高优 · 紧急 二级 2/3 子任务
  三项风险验证并行：iOS 键盘录音、Gummy 流式、macOS 注入。无前置依赖，第一波启动
  子任务 2 / 3 完成
  - ✓ 1A iOS 键盘扩展内录音可行性 spike（真机验证完全访问下 AVAudioSession；不可行则确认 deep link 降级）
    二级待验收
  - ✓ 1B Gummy 流式接入 demo（Go 直连 DashScope WS，wav 推流收 partial/final）
    二级待验收
  - ○ 1C macOS 注入 + 不抢焦点浮层 demo（剪贴板+CGEvent、focusable:false 验证微信/浏览器/IDE）
    二级待开始
- 微信开放平台与商户号申请
  待开始 高优 · 紧急 三级 0/3 子任务
  人工/外部流程，周期数周，是支付联调(#7)与上架的关键路径，第一天启动
  子任务 0 / 3 完成
  - ○ 2A 开放平台网站应用 + 移动应用注册提审
    三级待开始
  - ○ 2B 微信支付商户号申请 + API 证书/密钥配置（入 Bitwarden）
    三级待开始
  - ○ 2C 软件著作权申请（输入法上架需要）
    三级待开始
- 桌面·联调与验收
  待开始 高优 · 紧急 二级 0/3 子任务
  汇聚点：依赖 #10 #11 全部与后端 #5 #6 #7
  子任务 0 / 3 完成
  - ○ 12A 全链路联调：快捷键→采集→流式→浮层→注入（mac+win 双平台）
    二级待开始
  - ○ 12B 延迟验收：first_partial P95<500ms / release_to_commit<300ms 实测调优
    二级待开始依赖:12A
  - ○ 12C 异常路径：断网重连/QUOTA/RATE_LIMITED/3 分钟截断逐项验证
    二级待开始依赖:12A
- 跨端架构改进 backlog（评审后再做）
  待开始 重要 一级
  本轮不改代码，仅记录待评审：限制常量(180s/30次/1800s)服务端下发、gummy 断连重建分层、三端 WS 连接策略统一、错误码文案服务端下发、web 价格表第三份副本与 SeedPacks 单源、设备准入校验防随机 device_id 绕过限流

🔨 开发中 0 ▴ 收起

暂无条目

🔍 待验收 18 ▴ 收起

- 协议与共享基建
  待验收 高优 · 紧急 一级 4/4 子任务
  pkg/protocol 是 5 端对齐的唯一真相源，多数任务前置。设计依据 doc/backend-architecture.html 第四章
  子任务 4 / 4 完成
  - ✓ 3A pkg/protocol：WS 帧结构（start/stop/cancel/partial/final/usage/error）+ 错误码常量
    一级待验收
  - ✓ 3B pkg/protocol：REST DTO（me/packs/orders/feedback/metrics）
    一级待验收
  - ✓ 3C design-pipeline：tokens.css 导出 DuduTheme.swift / DuduTheme.kt + CI 校验
    二级待验收
  - ✓ 3D monorepo 骨架（server/desktop/android/ios 目录 + 根 README + CI 雏形）
    三级待验收
- 后端·工程与数据层
  待验收 高优 · 紧急 一级 3/3 子任务
  schema 见 doc/backend-architecture.html 第六章
  子任务 3 / 3 完成
  - ✓ 4A Go 工程骨架：gin + 配置加载 + 日志 + Docker compose（pg/redis）
    二级待验收
  - ✓ 4B store：全部表 migration + gorm models（11 张表，见后端文档第六章）
    一级待验收依赖:4A
  - ✓ 4C Redis 接入 + Key 封装（quota/authqr/jwt:block/rate 滑动窗口）
    二级待验收依赖:4A
- 后端·认证
  待验收 高优 · 紧急 二级 3/3 子任务
  跨 epic 依赖：#4 骨架；5C 需 #2A 微信凭证（开发期可用测试号 mock）
  子任务 3 / 3 完成
  - ✓ 5A JWT 签发/校验中间件 + jti 黑名单 + logout
    二级待验收
  - ✓ 5B 扫码登录状态机（POST/GET /v1/auth/qr，Redis state TTL 120s）
    二级待验收依赖:5A
  - ✓ 5C 微信网页授权回调 + 移动端 code 换 token + unionid 关联建号
    二级待验收依赖:5A
- 后端·识别网关
  待验收 高优 · 紧急 一级 5/5 子任务
  跨 epic 依赖：#3A 协议、#4 骨架。含 Provider 抽象/中继/计量/识别限制
  子任务 5 / 5 完成
  - ✓ 6A ASR Provider 接口 + mock provider（脚本化回放 partial/final 供测试）
    一级待验收
  - ✓ 6B gummy provider（DashScope WS 对接，含断连重建，基于 1B demo）
    二级待验收依赖:6A
  - ✓ 6C WS 网关：连接鉴权 + 会话状态机 + 上下行双泵中继
    一级待验收依赖:6A
  - ✓ 6D 计量与 usage 帧（实收帧时长累计、provider 时间戳交叉校验、2s 下发）
    二级待验收依赖:6C
  - ✓ 6E 识别限制：3 分钟截断定稿 + 单设备单路 + 30 分钟滑动窗口（次数/时长）
    二级待验收依赖:6C
- 后端·计费与配额
  待验收 高优 · 紧急 一级 4/4 子任务
  跨 epic 依赖：#4；7C/7D 真实支付需 #2B 商户号（可先沙箱）。时长账本设计见后端文档第五章
  子任务 4 / 4 完成
  - ✓ 7A quota：Redis Lua 原子扣减（先试用后余额）+ start 预检 + 扣穿当句不掐断
    一级待验收
  - ✓ 7B quota：异步落库 ledger/asr_sessions + 余额冗余列 + 每日对账任务
    二级待验收依赖:7A
  - ✓ 7C billing：GET /v1/packs + 下单（native code_url / app 支付参数）
    二级待验收
  - ✓ 7D billing：回调验签幂等入账（transaction_id 唯一）+ 订单轮询 + 5 分钟查单兜底
    一级待验收依赖:7C
- 桌面·Rust 系统能力
  待验收 高优 · 紧急 二级 8/8 子任务
  六项系统能力九成可并行；10C 依赖 #3A 协议
  子任务 8 / 8 完成
  - ✓ 10A Tauri 2 工程 + @dudu/design 接入 + data-theme 主题切换
    二级待验收
  - ✓ 10B 全局快捷键 push-to-talk（press/release 事件 + 自定义改键）
    二级待验收
  - ✓ 10C WS 客户端：预连接/心跳/指数退避重连 + 协议编解码
    二级待验收
  - ✓ 10D cpal 音频采集 + 16k 重采样 + 100ms 分帧 + 设备枚举/切换
    二级待验收
  - ✓ 10E macOS 文字注入（剪贴板+CGEvent+恢复）+ 辅助功能权限检测（基于 1C demo）
    二级待验收
  - ✓ 10F Windows 文字注入（SendInput KEYEVENTF_UNICODE）
    二级待验收
  - ✓ 10G Rust↔Web 事件桥（hotkey/asr/account/audio 事件 + invoke 命令集）
    二级待验收依赖:10B10C
  - ✓ 10H metrics 模块：本地队列（20 条/60s）+ 批量上报 + 漏斗事件汇入
    二级待验收依赖:10C
- 桌面·界面
  待验收 高优 · 紧急 二级 6/6 子任务
  直接复用 design/ React 组件；可用 mock 事件与 #10 并行，最终联调依赖 10G 事件桥
  子任务 6 / 6 完成
  - ✓ 11A 识别浮层窗口（透明/置顶/不抢焦点 + RecognitionOverlay 两态 + 错误态文案）
    二级待验收
  - ✓ 11B 托盘 + 自绘托盘菜单（248px、accent 反白、检查更新入口）
    二级待验收
  - ✓ 11C 设置窗口（四分组：输入/通用/账号与时长/帮助 + 持久化）
    二级待验收
  - ✓ 11D 登录/购买窗口（扫码轮询 → 时长包 → 支付二维码轮询 → 完成）
    二级待验收
  - ✓ 11E 反馈窗口（文字 + 图片粘贴/拖拽 + 诊断 Switch + 成功态）
    二级待验收
  - ✓ 11F 首次启动引导（欢迎 → 权限 → 登录 → 试一试）
    二级待验收依赖:11C
- 后端·网关与计费正确性修复
  待验收 高优 · 紧急 二级 7/7 子任务
  code-review 发现的网关/计费严重 bug：截断或 provider 死亡后仍扣费、WriteJSON 无写超时致 goroutine 泄漏、WaitGroup Add 竞态、finish 漏在途扣费、扣穿当句未掐断致白嫖、GORM v2 锁失效、usage 帧 omitempty 吞合法 0 值
  子任务 7 / 7 完成
  - ✓ 16A feed 先判截断再累计；provider 死亡/截断后终结会话停止扣费
    待验收
  - ✓ 16B wsConn 写超时(SetWriteDeadline)+finish 的 Wait 加超时+修 defer 顺序避免 goroutine 泄漏
    待验收
  - ✓ 16C resultsDone.Add(1) 移到 go 语句之前，消除 WaitGroup 竞态
    待验收
  - ✓ 16D finish 等待在途 consumeDelta 完成后再取 settle 快照，避免漏账
    待验收
  - ✓ 16E 扣穿当句不掐断：consumeDelta 扣穿后置标志，本句 final 后下发 QUOTA_EXCEEDED 结束会话
    待验收
  - ✓ 16F billing.MarkPaid 改用 GORM v2 Clauses(锁)写法，恢复行锁
    待验收
  - ✓ 16G usage 帧 SessionSeconds/BalanceSeconds/TrialRemaining 去掉 omitempty，让 0 显式下发
    待验收
- 后端·认证限流与依赖装配修复
  待验收 高优 · 紧急 二级 9/9 子任务
  JWT 黑名单 fail-open、logout TTL 硬编码 8 天、滑动窗口 seq 键永不过期、设备槽 4min TTL 不续期、pickProvider 永远 mock(gummy 永不装配)、/v1/pay/notify 无鉴权+pickPay 永远 mock=免费充值、metrics/batch 无可选鉴权 user_id 恒空、AppLatest 裸读 env、死代码清理
  子任务 9 / 9 完成
  - ✓ 17A JWT 黑名单检查 fail-closed：Redis Exists 出错时拒绝并记录，不放行
    待验收
  - ✓ 17B logout Revoke TTL 用 token 实际过期时间(claims.ExpiresAt)，不硬编码 8 天
    待验收
  - ✓ 17C 滑动窗口 Lua 给 key:seq 计数器设 EXPIRE，消除永久泄漏键
    待验收
  - ✓ 17D 设备槽会话期间续期 TTL(usageLoop 里 EXPIRE)，避免长会话槽过期致多路
    待验收
  - ✓ 17E pickProvider 真正按 ASR_PROVIDER 装配 gummy(有 key 用 gummy)，启动日志打印 real/mock
    待验收
  - ✓ 17F metrics/batch 挂可选鉴权中间件，注入 user_id
    待验收
  - ✓ 17G AppLatest 配置进 config.Load 启动校验，避免每请求裸读 env
    待验收
  - ✓ 17H 清理死代码：AllowAudioSeconds、fmt 占位行、gummy lastText 字段
    待验收
  - ✓ 17I pay/notify 鉴权与验签：MockPay 加共享密钥校验或文档标注部署前必换真实验签
    待验收
- 桌面 Rust 客户端正确性修复
  待验收 高优 · 紧急 二级 8/8 子任务
  取消后晚到 final 残留 CommitBuffer 错上下文注入、stop spawn 无 abort/代际校验、350ms 固定延迟改事件驱动、token/device_id parse unwrap panic、重连不重建会话丢音频、UNAUTHORIZED 无处理+unbounded channel 堆积、emit 全局广播 6 窗口、reqwest Client 每次新建、platform=macos 不符约定、check_update 忽略 force
  子任务 8 / 8 完成
  - ✓ 18A dictation 会话代际+取消守卫：取消后晚到 final 不残留、不注入错上下文
    待验收
  - ✓ 18B stop spawn 任务加代际校验，快速连说不串文本/不误隐藏新会话浮层
    待验收
  - ✓ 18C 收尾注入改事件驱动(收到 stop 后 final/usage 即注入)，350ms 仅作超时兜底
    待验收
  - ✓ 18D ws.rs token/device_id 用 HeaderValue::from_str 优雅处理非法值，不 unwrap panic
    待验收
  - ✓ 18E ws.rs 重连后若会话进行中重发 start 或通知客户端会话失败，避免静默丢音频
    待验收
  - ✓ 18F ws.rs 处理 UNAUTHORIZED(emit+清 token 引导登录)+音频 channel 改 bounded
    待验收
  - ✓ 18G asr/hotkey 事件改 emit_to(overlay) 定向，不广播 6 窗口
    待验收
  - ✓ 18H reqwest::Client 改 OnceLock 共享实例;metrics platform 改 mac/win;check_update 处理 force
    待验收
- 后端·用户与周边
  待验收 重要 二级 4/4 子任务
  跨 epic 依赖：#4。含 v1.1 新增 feedback/telemetry
  子任务 4 / 4 完成
  - ✓ 8A GET /v1/me 聚合（balance/trial/account_state 判定）+ devices 登记
    二级待验收
  - ✓ 8B GET /v1/app/latest 版本检查
    三级待验收
  - ✓ 8C feedback：multipart 接收 + magic bytes 校验 + OSS 转存 + 10 条/天限频
    二级待验收
  - ✓ 8D telemetry：metrics/batch（白名单/截断/异步入库）+ 每日聚合 P50/P95 + 超标告警
    二级待验收
- 后端·集成测试
  待验收 重要 二级 2/2 子任务
  汇聚点：依赖 #5 #6 #7 #8 主体完成
  子任务 2 / 2 完成
  - ✓ 9A WS E2E：wav 推流断言 partial/final/usage 序列与扣费正确（mock+gummy 双跑）
    二级待验收
  - ✓ 9B 支付 E2E：沙箱/构造回调测幂等、金额校验、入账 + 限频用例（31 次/超 1800s）
    二级待验收
- Android 输入法
  待验收 重要 二级 6/6 子任务
  先于 iOS。UI 依赖 #3C 主题导出；联网依赖 #3A 与后端 #5 #6
  子任务 6 / 6 完成
  - ✓ 13A 工程骨架 + DuduTheme.kt 接入（light/dark）
    二级待验收
  - ✓ 13B 主 App：微信登录 + 启用引导三步 + 我的页（权限自检/试用进度/反馈入口）
    二级待验收依赖:13A
  - ✓ 13C 主 App：购买时长页 + 微信 APP 支付
    二级待验收依赖:13B
  - ✓ 13D IME Service：键盘 UI 四态（工具条/功能键行/MicBar/partial 文本条）
    二级待验收依赖:13A
  - ✓ 13E IME：录音 + WS 推流 + commitText 上屏 + 上滑取消
    二级待验收依赖:13D
  - ✓ 13F 反馈页 + metrics 队列（WorkManager flush）
    三级待验收依赖:13B
- iOS 输入法
  待验收 重要 二级 5/5 子任务
  14D 依赖 #1A spike 结论（主路径或 deep link 降级）。UI 依赖 #3C
  子任务 5 / 5 完成
  - ✓ 14A 工程骨架（App+Keyboard Extension+App Group）+ DuduTheme.swift 接入
    二级待验收
  - ✓ 14B 主 App：微信登录 + 引导（含完全访问步）+ 我的 + 购买（APP 支付）
    二级待验收依赖:14A
  - ✓ 14C 键盘扩展：UI 四态 + textDocumentProxy 上屏框架
    二级待验收依赖:14A
  - ✓ 14D 键盘扩展：录音 + WS 推流（按 1A 结论实现主路径或 deep link 降级）
    二级待验收依赖:14C
  - ✓ 14E 反馈页 + metrics（App Group 队列）+ iPad 布局适配
    三级待验收依赖:14B14C
- 官网宣传页（web/index.html）
  待验收 重要 三级
  单页静态宣传页，复用设计系统品牌语言，含按住说话交互演示；后续接真实下载链接与备案号
- 桌面前端正确性修复
  待验收 重要 二级 5/5 子任务
  登录 QR 不处理 expired+隐藏窗口永久轮询、设置整结构回写覆盖 token 致登出、overlay 错误帧 BAD_REQUEST/INTERNAL 无文案 setError 空、tray/login 窗口主题未初始化、轮询样板收敛 usePoll
  子任务 5 / 5 完成
  - ✓ 19A 登录 QR 轮询处理 expired 自动换码;窗口隐藏(非卸载)时停止轮询
    待验收
  - ✓ 19B 设置窗口改增量写(set_settings 仅传改动项)，不整结构覆盖 token
    待验收
  - ✓ 19C overlay 错误帧兜底文案(BAD_REQUEST/INTERNAL/未知码)，不 setError 空串
    待验收
  - ✓ 19D tray/login 入口补主题初始化(get_settings→setThemePref)
    待验收
  - ✓ 19E 收敛轮询样板为 shared/usePoll 钩子(存活标志+清理+在途去重)
    待验收
- Android 客户端正确性修复
  待验收 重要 二级 5/5 子任务
  onRelease 在 onOpen 前 sendStop 时序错乱致空文本、/v1/me 未发 X-Device-ID 致 touchDevice no-op、错误文案改 server-first、AccountRepository 冗余派生状态简化、KeyboardScreen partial 全屏重组收窄
  子任务 5 / 5 完成
  - ✓ 20A onRelease 等 onOpen 后再 sendStop(或缓冲 stop 待 start 后补发)，修握手时序
    待验收
  - ✓ 20B /v1/me 请求带 X-Device-ID 头，使 touchDevice 生效
    待验收
  - ✓ 20C 错误文案改 server message 优先、本地表仅兜底未知码
    待验收
  - ✓ 20D AccountRepository 只存 token/balance/trialUsed/limit，state/trialRemaining 推导
    待验收
  - ✓ 20E KeyboardScreen 拆分状态流，partial 只重组 PartialBar
    待验收
- iOS 客户端正确性修复
  待验收 重要 二级 7/7 子任务
  finishing 阶段周期 usage 帧误判 stop 结算致丢字、AsrAudioCapture stop 与 tap 回调数据竞争崩溃、usage omitempty 0 值处理、CommitController 死代码删除、180s 本地计时器双轨移除、MetricsQueue 每事件全目录扫描、错误文案 server-first、deep link 剪贴板无条件覆盖
  子任务 7 / 7 完成
  - ✓ 21A finishing 阶段只用收尾标志/final 结束会话，不把周期 usage 帧当 stop 结算致丢字
    待验收
  - ✓ 21B AsrAudioCapture stop 与 tap 回调同步(串行队列/锁)，消除数据竞争崩溃
    待验收
  - ✓ 21C applyUsage 处理 usage 0 值(协议去 omitempty 后按 0 覆盖余额/试用)
    待验收
  - ✓ 21D 删除 CommitController 死代码(移出键盘 target)
    待验收
  - ✓ 21E 移除 iOS 180s 本地强制定稿计时器，统一以服务端 SESSION_LIMIT 为准
    待验收
  - ✓ 21F MetricsQueue 改近似计数/flush 时 trim，不每事件全目录扫描
    待验收
  - ✓ 21G 错误文案 server message 优先;deep link 剪贴板覆盖降级为兜底
    待验收

✅ 已验收 0 ▾ 展开

暂无条目

### 拒绝验收

拒绝原因*
请填写拒绝原因
在终端运行以下命令：
``