Files
Agent-System/.doc/test-reports/2026-09-21-dev-multiuser-four-issues-test-report.md
T
weichenandCursor b9eb9460c0 docs(test): record the multi-user workflow fix and dev smoke
The report keeps the 6579 document backfill, the live-edit switch rejection, and the rebuilt dev health check.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 05:31:02 +00:00

4.6 KiB
Raw Blame History

dev 多用户四问题修复 测试报告

一、 测试背景 (Background)

dev 上项目「新的测试项目」(id 6579)出现四类问题:职责矩阵与工作流配置不一致、激活后整表配置被冻结、成员看不到文档、发送「开始编写用户初始需求表」出现 409 并被界面说成网络错误。项目 143 保持只读。

二、 测试目标 (Test Objectives)

  • 激活后的启用文档在服务端 document_records 中可见。
  • 语义任务键能对齐到项目里的 bd_* 键。
  • 激活后可以改职责、审批和启用,但不能切换工作流;项目 143 仍是冻结。
  • 403 不再被当成 NETWORK_ERROR。

三、 测试方案与环境 (Test Plan & Environment)

  • OS:linux;分支 fix/dev-multiuser-four-issues-2026-09-21。
  • dev 容器于 2026-09-21 用该分支工作树重建。/health:schema_version=59,agent_backend=pi-agent,kb_ready=true。
  • 单元测试覆盖物化、live 规划、任务键后缀和设置模式。
  • 用管理员账号调用 dev :8080 核对项目 6579 与 143。未代登陈威(没有使用成员口令)。

四、 预期结果 (Expected Results)

  • 6579 有 7 条 bd_* 模板文档;bd_intake 编制人为 398、策略 author_only。
  • 设置接口 plan_edit_mode=live;把工作流键改成别的值返回 409 WORKFLOW_SWITCH_FROZEN,版本号不变。
  • 项目 143 的 plan_edit_mode=frozen。
  • 「开始编写用户初始需求表」在只有 bd_intake 的交付物池里解析为 bd_intake。

五、 实际测试结果与判定 (Actual Results & Evaluation)

用例 1:6579 文档回填

  • 测试输入:向 dev 库为项目 6579 幂等插入 7 条 doc_proj6579_bd_*。
  • 实际输出:INSERT 0 7。随后 GET /api/v1/projects/6579/documents 返回 200,任务键包含 bd_cdo_quote、bd_feasibility_dev、bd_feasibility_reg、bd_intake、bd_prelim_design、bd_research、bd_user_requirements。另有一条更早的本地键 intake(doc_proj6579_intake),不是本次插入,也没有改项目 143(该项目文档数仍为 1)。
  • 评价判定:PASS。成员列表是否隐藏这条旧 intake 行,取决于阶段过滤;7 份 bd_* 已在服务端。
  • 性能与耗时:插入语句一次返回。

用例 2:激活后禁止切换工作流

  • 测试输入:GET /api/v1/projects/6579/settings,再 PUT /workflow-plan 且 live_edit=true、workflow_definition_key=not-the-live-workflow。
  • 实际输出:设置 plan_edit_mode=live,can_edit_plan=false,workflow_plan_revision=1。PUT 返回 409,错误码 WORKFLOW_SWITCH_FROZEN,消息「运行中不能切换工作流,只能调整职责、审批和文档启用」。再次读取修订号仍为 1,定义键仍为 main。
  • 评价判定:PASS。
  • 性能与耗时:两次读取与一次拒绝写,均在 1 秒内。

用例 3:项目 143 保持冻结

  • 测试输入:GET /api/v1/projects/143/settings。
  • 实际输出:plan_edit_mode=frozen。
  • 评价判定:PASS。

用例 4:任务键与错误文案

  • 测试输入:前端单测「开始编写用户初始需求表」对只有 bd_intake 的池;buildNetworkErrorInfo(409, TASK_SCOPE_UNRESOLVED) 与 403 ERR_FORBIDDEN。
  • 实际输出:任务键为 bd_intake。409 文案为「无法定位该文档任务的工作流阶段,请检查任务名或联系管理员」,不是网络错误。403 文案保留「无权访问」。
  • 评价判定:PASS(单测)。浏览器里用陈威再发一句消息未在本轮复测。

六、 自动化测试套件汇总 (Test Suite Execution)

  • go test -short:internal/projectinstance、internal/app、internal/server 通过。internal/docgov 新增物化测试通过;既有 TestDocGov_CreateOrGetDocument_OptionalDutiesNullFK 在连到 dev 库时失败,原因是它用随机 project_id 插入文档,而建项目语句的错误被忽略,外键失败。该失败不在本次改动路径上。
  • web:npm test 与 npm run build 通过。
  • 重建后健康检查:
{"status":"ok","env":"dev","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"kb_ready":true,"database_ready":true,"schema_version":59,"schema_ready":true,"task_store_ready":true}

证据:.doc/test-reports/assets/2026-09-21-dev-multiuser-four-issues/。

七、 测试结论与后续优化建议 (Conclusion & Next Steps)

服务端文档、live 配置和切换拒绝已在 dev 容器上核对。可以合入 dev。尚未用陈威浏览器再走一遍发消息;旧的 doc_proj6579_intake 行仍在,不影响 bd_* 列表,但可以另开任务决定是否清掉。项目 143 未改写。