Files
Agent-System/.doc/test-reports/2026-09-28-member-visibility-dialogue-context-test-report.md
T

5.7 KiB
Raw Blame History

成员文档可见性与对话上下文注入 测试报告

一、 测试背景 (Background)

测试项目中,测试员工能作为项目成员打开项目,但流程受控文档被前端全局角色过滤成 0 份。对话触发的调研任务工作区只留下「开关关闭或无可共享对话」占位,是因为会话只写入数字项目 ID,协调器读取的字符串项目 ID 仍为空,对话包直接不采集。可行性评估在调研仍是模板时,回复只列信息缺口,不提示可先调研。

二、 测试目标 (Test Objectives)

  • 会话绑定后,协调器上下文的项目 ID 与数字用户 ID 与会话一致。
  • 未注入对话时,说明能区分开关关闭、项目未绑定、本轮没有对话包;有统计时 README 写明保留与滤除数量。
  • 已打开项目中,项目成员能看见本项目流程受控文档;指定人、角色白名单和私密文档规则不变。
  • 用户要写可行性评估且调研未完成时,回复建议先调研;阶段拒绝时附上推进说明。

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

  • 任务分支 feature/member-visibility-dialogue-ctx-2026-09-28,合入候选 7eb9477d9edffd3f39aa7026a874169c6efb190b,第一父 8889011e5b6bd35a1d992ae5aec3f1c1c8bdae31。
  • 合入后本地 dev 指向同一候选。
  • 工程验收在合入候选 worktree 上由 agentctl validate 重跑。
  • 产品 PI 与测试员工浏览器全链路:未运行。原因见第七节。

四、 预期结果 (Expected Results)

  • arch-check、go vet ./...、go test -count=1 -short ./... 通过。
  • web 下 npm test 与 npm run build 通过。
  • 成员可见性用例:非成员访客看不到流程受控文档;projectMember: true 时可见;designated_only 仍然拒绝。

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

1. 架构门禁

  • 输入:./scripts/arch-check.sh --mode block
  • 首次输出:NEW import chat internal/chat/workflow_guidance.go workflowdef
  • 处理:调研键只在 chat 内识别 research 与 bd_research,不再引用 workflowdef。
  • 复跑:arch-check block: production gate passed
  • 判定:PASS

2. Go short

  • 输入:go vet ./... && go test -count=1 -short ./...
  • 实际:候选上 validate 退出码 0;internal/archtest、internal/chat、internal/squad、internal/server 等均为 ok。
  • 判定:PASS
  • 耗时:候选上整段 validate(含前端)约 48 秒。

3. 前端

  • 输入:npm test、npm run build
  • 实际:node:test 543 通过、0 失败;vitest 3 文件 34 通过;tsc && vite build 成功。
  • 判定:PASS

4. 身份回填与阶段建议

  • 输入:go test -count=1 -short ./internal/chat/
  • 覆盖:TestSetProjectIDSyncsCoordinatorProject、TestBindCoordinatorIdentityUsesNumericUser、TestWorkflowPrerequisiteHintSuggestsResearch、TestAugmentWorkflowGuidanceSetsExpectationAndStageNote
  • 判定:PASS

5. 对话占位说明

  • 输入:go test -count=1 -short ./internal/squad/
  • 覆盖:未绑定项目的说明含「任务未绑定项目」且不写 turns.md;已绑定但无对话包的说明含「没有对话包」;开关关闭含「开关已关闭」;有统计时 README 含「采集统计:保留 2 轮」。
  • 判定:PASS

6. 运行中的 dev 制品

  • 输入:GET /api/v1/health;ss 查看 :8080。
  • 实际:health 为 status=ok、env=dev。监听进程 agent-server pid 2657636,启动时间早于本次合入(二进制时间 2026-09-28 10:14 UTC)。guard env --target dev 返回 LEASE_REQUIRED。
  • 判定:未运行。合入后的后端尚未加载。

7. 浏览器中的测试员工流程受控

  • 输入:本机 curl http://127.0.0.1:3100/src/engine/rbac.ts;IDE 浏览器打开 http://127.0.0.1:3100/。
  • 实际:Vite 提供的源码含 projectMember。IDE 浏览器停在 chrome-error://chromewebdata/,没有进入登录后的项目页。
  • 判定:未运行。不能把源码含该字段记成测试员工看到 7 份文档。

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

本次实际运行并在合入候选上复跑通过:

  • ./scripts/arch-check.sh --mode block
  • go vet ./...
  • go test -count=1 -short ./...
  • web:npm test、npm run build

未运行:产品 PI Agent Runner、测试员工登录后的流程受控点击、合入后的新后端进程。

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

工程门禁达到合入条件,候选已由队列合入本地 dev(7eb9477d9edffd3f39aa7026a874169c6efb190b)。这不是产品链路验收通过。

未完成项:

  • .doc 由进行中的 quality-gate-heading-deploy-2026-09-28 与 nightly-advance-land-2026-09-28 占用,本报告未能随 docs(test) 提交。
  • internal/coordinator 与 internal/bizdev 由进行中的 controlled-projection-project-binding-2026-09-28 占用。本任务没有改 engine_task.go。会话已把 ChatSessionID 和数字用户 ID 放进上下文;该任务的分支会把 ChatSessionID 抄进 SessionID。StageKey 保持空:非空会改写文档阶段解析,并把其他阶段的可共享对话滤成不可见。ClientTurnID 仍未进入任务请求。dialogue_inject.go 尚未把 TurnCount 等统计抄进小队对话包,因此成功注入时 README 先不写「滤除 0」。
  • 重载 agent-server 需要 env:dev 租约,本任务没有该能力。当前 :8080 仍是合入前的进程。

下次在占用解除并拿到 dev 环境租约后:重编译并重载 dev 后端,用测试员工打开测试项目确认流程受控为 7 份,再发起一次调研,核对工作区 context/dialogue 不再是项目未绑定占位。