diff --git a/docs/tasks/README.md b/docs/tasks/README.md index 735c1e44..5a3540eb 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -55,6 +55,7 @@ | — | `PROGRESS-rectification-family-collect-continue-20260905.md` | 家人答「没有」后直接给结果,未继续收能区分分钟的经历 | 已由 cd704a92 修正并验收通过 | `codex/rectification-quality-probe-dedupe-20260904`(BUG-546) | | `TASK-rectification-family-collect-continue-fix-20260905.md` | `PROGRESS-rectification-family-collect-continue-20260905.md` | `998406ce` 修复单:家人之后的 dated 补采集无条件抢在现成区分卡之前(choice-card A/B 卡用例回归),另两条顺序断言缺三栏说明 | 已验收通过(浏览器走查欠) | `cd704a92`(BUG-547) | | `TASK-rectification-probe-answer-covers-domain-20260905.md` | `PROGRESS-rectification-probe-answer-covers-domain-20260905.md` | 区分卡答 A/B 后紧接着又问同领域"哪年…"采集题:点选答案只进推断层不写账本,计划层领域覆盖只看账本;改为 yes/weak_yes 视为该领域采集已覆盖(不写账本、不动门) | 待验收 | `988d97ae`(BUG-549) | +| `TASK-composer-live-input-and-stop-20260906.md` | `PROGRESS-composer-live-input-and-stop-20260906.md` | 生成中输入框整个禁用致焦点丢失、回车丢消息(改为永不禁用 + 排队发送);生时校正停止呈现为红色告警且选择题等待中停止无效(改为中性停止态、所有 fetch 挂 abort) | 待执行 | `codex/composer-live-input-and-stop-20260906`(BUG-551、552) | | `TASK-rectification-collect-vs-offer-consistency-20260905.md` | `PROGRESS-rectification-collect-vs-offer-consistency-20260905.md` | 带年份采集没问完就出采用卡 + 报告,同一轮又被搬家采集题把卡挤掉:决策层判 `adopt_representative` 而计划层仍有 dated 采集(BUG-546 只修了一半);改为剩余采集未完保持 `collect_evidence`,出牌轮才出卡写报告 | 已验收通过 `ca4e2408`(2026-09-05;staging 部署仍停在 `afd14948`,`deploy-staging` 自 `c295b853` 起连续失败,先解决 `bab07187` 的待迁移) | `codex/rectification-collect-vs-offer-consistency-20260905`(BUG-550) | | `TASK-api-not-configured-mislabel-20260904.md` | — | 16 处路由把数据库瞬断(部署切换窗口)兜底翻译成 503「服务尚未配置」;改为仅配置错误用该文案,其余 `service_unavailable`,收敛为共享 helper | 待执行 | `codex/api-not-configured-mislabel-20260904`(BUG-542 起) | | `TASK-rectification-ux-20260902.md` | `PROGRESS-rectification-ux-20260903.md` | 会话面空白假死与交互摩擦 | 已验收 | `d159f08e`(09-03 在新基线重做后合入,BUG-505~509) | diff --git a/docs/tasks/TASK-composer-live-input-and-stop-20260906.md b/docs/tasks/TASK-composer-live-input-and-stop-20260906.md new file mode 100644 index 00000000..115e8a12 --- /dev/null +++ b/docs/tasks/TASK-composer-live-input-and-stop-20260906.md @@ -0,0 +1,103 @@ +# TASK · 生成中输入框不再禁用、回车排队发送、停止不再报错(2026-09-06) + +- 基线:`origin/staging` @ `b8ea3112` +- 分支:`codex/composer-live-input-and-stop-20260906` +- 执行方:coding agent;验收:Claude +- 涉及文件:`frontend/src/components/chat-composer.tsx`、`frontend/src/app/page.tsx`(只改传参与调用,**不得增行**;新逻辑进 `frontend/src/hooks/` / `frontend/src/lib/`)、`frontend/src/hooks/use-consultation-run.ts`、`frontend/src/components/rectification-agentic-chat.tsx`、`frontend/src/lib/rectification-surface-state.ts`、`frontend/DESIGN.md`、`frontend/docs/VOICE.md` +- BUG 编号起点:**BUG-551**(开工时 `grep -o "^## BUG-5[0-9][0-9]" docs/BUG_HISTORY.md | tail -1` 复核;BUG-542 仍为 `TASK-api-not-configured-mislabel-20260904.md` 预留) +- 串行:本单改 `page.tsx` 与 `rectification-agentic-chat.tsx`;同日若有别的单改这两个文件,本单先做。 + +## 1. 事故实证(staging,2026-09-05/06,产品实测) + +| # | 用户看到 | 期望(对标主流 AI 对话产品) | +| --- | --- | --- | +| 1 | 发出消息后输入框整个变灰,不能打字;回答完毕后必须再点一次输入框才能继续输入 | 生成中随时能打字,焦点不丢;只有发送键换成停止键 | +| 2 | 生成中按回车什么都不发生(消息被丢弃) | 生成中发出的消息排队,当前回答一结束自动发出,且可撤回 | +| 3 | 生时校正里生成中点停止:对话区出现一条红色告警条,气泡按失败样式处理,看起来像"出错"而不是"我停下了" | 停止是用户动作,呈现为中性状态:已生成的内容保留、一句灰字说明已停止、不扣点 | +| 4 | 生时校正里回答选择题后的那段等待中,停止键在但点了没反应 | 停止键出现就必须能停 | + +## 2. 根因(已在代码里核实) + +**#1、#2 是同一处**:两个对话面都在生成期间把 `