docs(test): 归档成员可见性与对话上下文注入测试报告
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
# 成员文档可见性与对话上下文注入 测试报告
|
||||
|
||||
## 一、 测试背景 (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` 不再是项目未绑定占位。
|
||||
Reference in New Issue
Block a user