5.7 KiB
5.7 KiB
成员文档可见性与对话上下文注入 测试报告
一、 测试背景 (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-serverpid 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 blockgo 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 不再是项目未绑定占位。