Files
Agent-System/.doc/ops/short-term/2026-09-25-t20-s1-small-fixes.md

2.8 KiB
Raw Permalink Blame History

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
internal/server
web/src
web+server done pending not_required pending not_requested

T20 S1 小改批:B11/F1/F8/F4-A

用户目标与授权

  • 来源:planned-tasks-closeout-plan-2026-09-25 P2 批次;用户 /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 --test loadOlder race:1 pass。
  • 既有 useChatWindow.race.test.ts(主窗口竞态)不回归。

边界确认

  • F4-B(服务端重置端点)未实施——需产品选型,见设计文档 F4 表。
  • 未动 EventSource 前端调用(web/src/api/chatStream.ts 已是 POST)。