Files
Jyotisha/docs/tasks/PROGRESS-composer-live-input-and-stop-20260906.md
T
Jesse_ChenandCursor d04990fc4a
Independent Staging Quality Gate / validate (push) Failing after 8m1s
Independent Staging Quality Gate / publish (push) Has been skipped
docs: record BUG-551/552 fix SHA 055b7adc
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 13:09:42 +08:00

2.4 KiB
Raw Blame History

PROGRESS · 生成中输入框可打字、排队发送、停止中性态(2026-09-06)

工作树:.worktrees/composer-live-input-and-stop-20260906 分支:codex/composer-live-input-and-stop-20260906 基线:任务书写 origin/staging @ b8ea3112;开工时 origin/staging 已到 d2a209d3(后续任务书文档),以当时远端为准。修复提交:055b7adc

page.tsx 收尾 2040 行(上限 2041)。未改服务端、未改 .gitea/workflows/**、未 bump Skill。

任务 状态 BUG
5.1 输入框不再禁用 + 排队发送 完成 BUG-551
5.2 停止 = 中性状态 完成 BUG-552
5.3 BUG_HISTORY / CHANGELOG / DESIGN / VOICE 完成

实现要点

  • 共用 queued-draft.ts + useQueuedMessage。主咨询在 useConsultationRun 里结算排队;校正在 busy 下降后按 lastRunOutcome 发送或放回。
  • ChatComposer 增加可选 queued 卡片;textarea 只接受结构性 inputDisabled
  • 校正 AbortError:气泡 stopped,灰字 RECTIFICATION_STOPPED_NOTICE,不再 setError。选择题 / 采用 fetch 挂 runAbort
  • 发送键在有排队时禁用。停止后不抢焦点;撤回才聚焦。

既有断言改动

文件 原值 新值 原因
rectification-surface-contract if (raw.trim()) setError(RECTIFICATION_STOPPED_NOTICE) 气泡 stopped + stoppedNotice,无 setError 停止不能穿报错衣服(BUG-552
rectification-agentic-entry caught.name === "AbortError" isAbortError(caught) 选择题与采用共用中止判定
chat-notice-and-scroll-contract 未改断言正文 JumpToLatestButton 仍保持原多行 JSX 曾误压成一行导致 sourceBetween 找不到

测试

命令 结果
npx tsx --test tests/chat-composer-queue.test.ts tests/composer-*.test.ts tests/chat-notice-and-scroll-contract.test.ts tests/rectification-surface-contract.test.ts tests/rectification-agentic-entry.test.ts tests/agent-voice-copy-contract.test.ts 81 项 pass 81 fail 0
./node_modules/.bin/tsc --noEmit 0 错
改动文件 eslint --quiet 0 error
tests/class-name-definition-contract.test.ts 3/3
page.tsx 2040 行
npm run build -- --webpack 编译通过;随后在既有 dossierResponse 路由导出类型上失败,与本次无关