2.8 KiB
2.8 KiB
title, task_id, status, created, updated, owner, task_type, policy_revision, branch, worktree, base_dev_sha, write_scope, mutex, review_state, integration_state, deployment, cleanup, remote_sync
| title | task_id | status | created | updated | owner | task_type | policy_revision | branch | worktree | base_dev_sha | write_scope | mutex | review_state | integration_state | deployment | cleanup | remote_sync | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| T20 S1 小改批:B11/F1/F8/F4-A | t20-s1-small-fixes-2026-09-25 | in_progress | 2026-09-25 | 2026-09-25 | Cursor | fix | AGENTS.md + agent-worktree-workflow @ 725181de |
feature/t20-s1-small-fixes-2026-09-25 | .worktrees/t20-s1-small-fixes-2026-09-25 | 725181de4a |
|
web+server | done | pending | not_required | pending | not_requested |
T20 S1 小改批:B11/F1/F8/F4-A
用户目标与授权
- 来源:
planned-tasks-closeout-plan-2026-09-25P2 批次;用户/goal授权批量推进。 - 设计依据:T20 加固设计 S1 行(B11/F1/F8/F4-A,均「无环境写」)。
变更清单
| ID | 变更 | 文件 |
|---|---|---|
| B11 | GET /api/v1/chat/stream 带 message query → 400 指向 POST;GET 分支不再读 message(保留订阅型参数) |
internal/server/sse.go |
| F1 | loadOlder / loadFullDay / jumpToDate 入口捕获 generationRef.current,resolve 后比对丢弃晚到响应;失败日志与 setPhase 同样受 gen 门控 |
web/src/hooks/useChatWindow.ts |
| F8-a | run 轮询 in-flight 合并(Map<runId, Promise>)防慢请求重叠;卸载清理 |
web/src/App.tsx |
| F8-b | fetchChatCategories/fetchChatDates 绑定 statsGenRef;切会话旧 stats 不落地 |
web/src/App.tsx |
| F8-c | 导出 Markdown blob URL 统一 try/finally revoke |
web/src/App.tsx |
| F4-A | 移除 UsersSection「重置密码」死按钮(服务端端点未开通);注释引导 F4-B 产品选型后重建 | web/src/components/admin/console/sections/UsersSection.tsx |
回归测试
TestChatStream_GetMessageQueryRejected:GET+message → 400 且文案指向 POST。TestChatStream_GetWithoutMessageNotLeak:无 message GET → 400(empty message 统一拒绝),不产生 SSE 头。useChatWindow.loadOlder.race.test.ts:切会话后 loadOlder 晚到 resolve 不写 dayStack/cache。
验证记录
go build ./internal/server/...PASS。go test ./internal/server/ -skip 'TestPiAgent_FullLifecycle'PASS(20.5s;被 skip 项为 KB 离线环境依赖,dev 基线同款失败,与本批无关)。tsc --noEmit:仅剩EnvSettingsSection.tsx(151)TS6133 —— dev 基线同款(主目录同报),非本批引入。- node
--testloadOlder race:1 pass。 - 既有
useChatWindow.race.test.ts(主窗口竞态)不回归。
边界确认
- F4-B(服务端重置端点)未实施——需产品选型,见设计文档 F4 表。
- 未动
EventSource前端调用(web/src/api/chatStream.ts已是 POST)。