From 24c0e5b16aab6df36627cdd2645ac498d8617c0d Mon Sep 17 00:00:00 2001 From: weichen Date: Fri, 18 Sep 2026 02:29:07 +0000 Subject: [PATCH] docs(ops): close Wave 2 config flag alignment (E-3/E-4/E-6/E-7/E-9) Archive three-env compose/env smoke evidence, mark remediation Wave 2 done, and release the integration slot for Wave 3. Co-authored-by: Cursor --- .doc/ops/CURRENT.md | 7 +- .../2026-09-18-wave2-config-flag-align.md | 56 ++++ ...26-09-17-system-health-remediation-plan.md | 3 +- ...-18-wave2-config-flag-align-test-report.md | 104 +++++++ .../compose-config-flags.txt | 26 ++ .../cursor-agent-ps.txt | 1 + .../env-dev.txt | 4 + .../env-main.txt | 5 + .../env-test.txt | 5 + .../go-test-short.txt | 67 +++++ .../health-dev.txt | 1 + .../health-main.txt | 1 + .../health-test.txt | 1 + .../no-cursor-runner.txt | 6 + .../ready-dev.txt | 1 + .../ready-main.txt | 1 + .../ready-test.txt | 1 + .../rebuild-dev.txt | 241 ++++++++++++++++ .../rebuild-main.txt | 273 ++++++++++++++++++ .../rebuild-test.txt | 211 ++++++++++++++ 20 files changed, 1011 insertions(+), 4 deletions(-) create mode 100644 .doc/ops/short-term/2026-09-18-wave2-config-flag-align.md create mode 100644 .doc/test-reports/2026-09-18-wave2-config-flag-align-test-report.md create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/compose-config-flags.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/cursor-agent-ps.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/env-dev.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/env-main.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/env-test.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/go-test-short.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/health-dev.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/health-main.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/health-test.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/no-cursor-runner.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/ready-dev.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/ready-main.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/ready-test.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/rebuild-dev.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/rebuild-main.txt create mode 100644 .doc/test-reports/assets/2026-09-18-wave2-config-flag-align/rebuild-test.txt diff --git a/.doc/ops/CURRENT.md b/.doc/ops/CURRENT.md index 5d458c50..1d25f58f 100644 --- a/.doc/ops/CURRENT.md +++ b/.doc/ops/CURRENT.md @@ -5,7 +5,7 @@ ## 焦点 -1. **系统体检整改**:Wave 0 **done**;Wave 1(main ENV E-1/E-2/E-5)**done**;下一波 Wave 2 配置声明对齐 +1. **系统体检整改**:Wave 0–2 **done**;下一波 Wave 3(测试债与盲区 S-1/S-2/S-4/S-5) 2. **rdev 模板深度 / document-author-only**:已合入 `origin/dev`;未晋升 test/main 3. **红线**:禁止整支 merge FAV;不默认升 `MULTI_INTENT_PLAN_TIER=full`;`SEMANTIC_SUMMARY_REPLACE` 不随 W2 开启;FAV live 观察窗证据驱动;`FAV_DEGRADED_READ=false`;项目 143 只读 @@ -13,6 +13,7 @@ | owner | task | branch | worktree | mutex | status | |-------|------|--------|----------|-------|--------| +| Cursor-Auto | 2026-09-18-wave2-config-flag-align | fix/wave2-config-flag-align | - | infra | done | | Cursor | 2026-09-18-wave1-main-env-fix | fix/wave1-main-env-fix | - | infra | done | | Cursor | 2026-09-18-wave0-p0-bug-fixes | fix/wave0-p0-sse-chat-cache-bugs | - | chat + web | done | | Kimi | 2026-09-17-system-health-check(只读审计,未实施) | - | - | audit | done | @@ -133,7 +134,7 @@ | holder | phase | since | scope | queue | |--------|-------|-------|-------|-------| -| - | idle | 2026-09-18 | Wave 1 main ENV 已合入并冒烟 PASS(见 [test-report](../test-reports/2026-09-18-wave1-main-env-fix-test-report.md)) | - | +| - | idle | 2026-09-18 | Wave 2 config flag align 已合入并三环境冒烟 PASS(见 [test-report](../test-reports/2026-09-18-wave2-config-flag-align-test-report.md)) | - | **phase**: `idle` | `merging` | `smoke` | `e2e` @@ -144,7 +145,7 @@ | 环境 | 端口 | schema | 状态 | |------|------|--------|------| | dev | 8080 | **52** | healthy(含 author_only goose 00050–00052;`pi-agent`;events `:8088`;**试点** `workflow.allow_author_only_approval=true`) | -| test | 8081 | **48** | healthy(`rc-v1.0.0-beta.4`;pi-agent `:18866`;events `:8089`;notify/advance/projection live、fav off;health+ready PASS;goose 00048 已迁移) | +| test | 8081 | **52** | healthy(Wave 2 rebuild 后 schema 与 dev/main 对齐;pi-agent `:18866`;events `:8089`) | | main | 8000 | **52** | healthy(`env=main` app+events 对齐;events 先 healthy 后启 app;consumer modes 全 off;Wave 1 已验证) | ## SSOT diff --git a/.doc/ops/short-term/2026-09-18-wave2-config-flag-align.md b/.doc/ops/short-term/2026-09-18-wave2-config-flag-align.md new file mode 100644 index 00000000..b42aa2c0 --- /dev/null +++ b/.doc/ops/short-term/2026-09-18-wave2-config-flag-align.md @@ -0,0 +1,56 @@ +--- +title: "Wave 2:配置与灰度入口对齐(E-3/E-4/E-6/E-7/E-9)" +status: in_progress +created: 2026-09-18 +updated: 2026-09-18 +owner: Cursor-Auto +branch: fix/wave2-config-flag-align +worktree: "-" +mutex: infra +--- + +# Wave 2:配置与灰度入口对齐 + +## 目标 + +三环境 compose 显式声明封存 flag(值保持 legacy/false);移除死 `CURSOR_RUNNER`;main 显式 `SEED_DEMO_USERS=false`;`INTENT_V2_DECISION_TIER` 非法值 fail-closed 到 `none`;E-9 仅记录评估结论。 + +## 范围 + +- E-3 / A-4:三环境补 `MULTI_INTENT_PLAN_TIER` + U9–U12 + SHADOW/NARRATIVE 声明 +- E-4:删除 `CURSOR_RUNNER_URL` 与 `cursor-agent` 占位服务 +- E-6:main `SEED_DEMO_USERS: "false"` +- E-7:`parseV2DecisionTier` default → `none` +- E-9:评估记录,不改 initdb + +## 非目标 + +- 不升 `MULTI_INTENT_PLAN_TIER`;不接线 `SEMANTIC_SUMMARY_REPLACE` +- 不改 FAV modes;不改 E-9 initdb 挂载 +- Wave 3+ 范围项 + +## 步骤 + +1. [x] Sonnet 5 产出实施计划(默认决策:删 cursor-agent;不补 REPLACE;E-9 不改代码) +2. [ ] E-7 代码 + 单测 +3. [ ] E-3 / E-4 / E-6 compose +4. [ ] compose flag 声明回归测试 +5. [ ] go vet/test;三环境 rebuild + env 抽检 + 冒烟 +6. [ ] 合入本地 dev;文档闭环 + +## 验收标准 + +- [ ] 三环境 `docker compose config` 可见目标 flag;`CURSOR_RUNNER` 零匹配 +- [ ] 容器内 env 抽检 PASS;health/ready PASS +- [ ] `go test -short ./...` 全绿 +- [ ] test-report 归档;remediation Wave 2 done + +## 相关链接 + +- Remediation: [.doc/remediation/2026-09-17-system-health-remediation-plan.md](../../remediation/2026-09-17-system-health-remediation-plan.md) +- Audit: [.doc/audit/2026-09-17-system-health-check.md](../../audit/2026-09-17-system-health-check.md) +- Test report: (收口时填) + +## 证据 / 备注 + +计划作者:[Wave 2 Sonnet 计划](5b8c8c73-c3e4-4947-b0c4-91822859ff4a) diff --git a/.doc/remediation/2026-09-17-system-health-remediation-plan.md b/.doc/remediation/2026-09-17-system-health-remediation-plan.md index 6a45acfd..4817735c 100644 --- a/.doc/remediation/2026-09-17-system-health-remediation-plan.md +++ b/.doc/remediation/2026-09-17-system-health-remediation-plan.md @@ -29,7 +29,7 @@ updated: 2026-09-17 |------|------|------| | **Wave 0:P0 确认 bug** | B-1/B-2:`handleChatStream` 与 `handleRunTaskStream` 接 `extendSSEWriteDeadline` + 心跳(复用 sse.go:52-64 既有机制);run/stream 支持 `after_seq` 续订(重连走既有 `GET .../events?after_seq=`)。B-3:Decode 失败返回 400。B-4:CreateAndStart/Subscribe 前置到 Flush 之前(对齐 chat 路径)。B-5:useChatWindow 全部写入统一带 `userId` 前缀,LRU 驱逐完整 cache key。B-6:`applyRestoredFileRaw` 函数式合并 | **done**(2026-09-18):[test-report](../test-reports/2026-09-18-wave0-p0-bug-fixes-test-report.md);合入 `dev` merge `fix/wave0-p0-sse-chat-cache-bugs`;dev rebuild + health/ready PASS;真 PI SSE 心跳证据归档 | | **Wave 1:main 环境修正(critical)** | E-1:app/events 统一 `ENV=main`。E-2:app `depends_on events: service_healthy`(events 同步迁移后再启 app)。E-5:`Env==""` 不再视同 dev。附带:events 补齐 `validateProductionSecrets` 所需口令以免 Restarting | **done**(2026-09-18):[test-report](../test-reports/2026-09-18-wave1-main-env-fix-test-report.md);main health `env=main` + `schema_version=52`;consumer modes 仍 off | -| **Wave 2:配置与灰度入口对齐** | E-3:`MULTI_INTENT_PLAN_TIER` 与 U9–U12 flag 显式写入三环境 compose(值保持 legacy/false,只补声明);A-4 类(SEMANTIC_SUMMARY_SHADOW、PI_CHANGE_REPORT_NARRATIVE)同步补 test/main 声明。E-4:`CURSOR_RUNNER_URL` 与 cursor-agent 占位容器从 compose 移除或标注。E-6:main compose 显式 `SEED_DEMO_USERS=false`。E-7:`INTENT_V2_DECISION_TIER` 非法值回退改 `none`(保守对齐)。E-9:main initdb 脚本与 dev/test 对齐评估 | 三环境 compose `config` 渲染 diff 复核;容器内 `env` 抽检 flag 可见;`go test -short` 全绿;不改变任何默认行为(纯声明对齐,验证 dev/test/main 冒烟无回归) | +| **Wave 2:配置与灰度入口对齐** | E-3:三环境声明 `MULTI_INTENT_PLAN_TIER`+U9–U12(legacy/false);A-4:test/main 补 SHADOW/NARRATIVE。E-4:删除 `CURSOR_RUNNER_URL`+cursor-agent。E-6:main `SEED_DEMO_USERS=false`。E-7:非法 `INTENT_V2_DECISION_TIER`→`none`。E-9:评估不改 initdb | **done**(2026-09-18):[test-report](../test-reports/2026-09-18-wave2-config-flag-align-test-report.md);三环境 env 抽检 + health/ready PASS | | **Wave 3:测试债与盲区** | S-1:申请隔离 PG(docker 单发 5436),执行 `TestReconcile_LegacyRepair_PG` 一次并归档报告,关闭 gap-matrix 测试债。S-2:删除 `taskstream_test.go:189` 死跳过;`plan_owner_test.go:125` 补说明或修复。S-4:统一 E2E 入口——`web/package.json` 为 9 个 spec 各配 script 或统一 flag 约定(消除 `DOCREV_E2E_BASE_URL` 与 `RUN_UI_ACCEPTANCE` 双口径);README/e2e 注释同步。S-5:409 信封复用推广到 projectMembers/freeformDoc/taskRuns/chatSessions(复用 projectSettingsError 解析器) | 隔离 PG 测试报告归档 `.doc/test-reports/`;`playwright test --list` 输出与门禁矩阵一致;409 负例单测覆盖 4 个 API 封装 | | **Wave 4:隐患加固(可与 Wave 0–3 并行认领,mutex 不冲突时)** | R-1:`getOrCreateSession` 增 owner 绑定校验(session 创建时记录 owner,后续请求校验,不匹配 403)。R-2:18 处 `rows.Next()` 循环补 `rows.Err()` 检查。R-3:dispatcher Handlers 读路径加 RLock(或注释冻结「仅启动期注册」并加 archtest 约束)。R-4:`memTurns` 加 TTL/容量淘汰。R-5:pg_store JSONB 反序列化错误改为显式报错。R-6:后台 ticker 纳入 Shutdown;vault Drain 错误上报告警。R-7/R-8:SSE 重连 401/404 fail-fast、逐帧容错;登出 abort 在途流 | R-1 跨用户会话负例测试 PASS(补 PG + 内存双实现);R-2 `go vet`+单测;R-7 前端单测模拟 401 立即抛出 | | **Wave 5:死代码与机制收口(需逐项决策,不擅自删)** | X-1:`SEMANTIC_FALLBACK_ENABLED` 删除或接线(先决策语义兜底是否还需要)。X-2:`SEMANTIC_SUMMARY_REPLACE` 维持未接线但补注释说明为刻意封存(与红线一致)。X-3:00048 三表消费方接线评估(并入 W5b SWBOOT-10 或标记 deferred)。X-4:system_settings 6 键逐一接消费方或从白名单移除(系统管理台二期范围)。X-5:前端死组件/死 API 删除(DocumentNotificationList、WorkflowPrerequisiteBanner、SettingsModal、activateWorkflow、saveMessages)或明确保留理由 | 每项有决策记录(ADR 或 short-term 决议段);删除后 `npm run build`/`go build` 全绿 | @@ -41,6 +41,7 @@ updated: 2026-09-17 - [x] Wave 0 完成后:`go vet ./...`、`go test -short ./...`、`cd web && npm test && npm run build` 全绿;dev 容器 rebuild + health/ready PASS([报告](../test-reports/2026-09-18-wave0-p0-bug-fixes-test-report.md)) - [x] main 环境:ENV 语义统一核验记录 + schema 已升(实测 52)+ 事件链路无双写证据(modes 仍 off)(Wave 1,[报告](../test-reports/2026-09-18-wave1-main-env-fix-test-report.md)) - [x] SSE 长回合心跳接线:真 PI 静默期 `: heartbeat` + 短 WriteTimeout 单测跨越(Wave 0) +- [x] Wave 2 配置声明对齐:三环境 compose diff 复核 + 容器 env 抽检 + go test 全绿(E-3/E-4/E-6/E-7 完成;E-9 评估结论已记录,不改代码)([报告](../test-reports/2026-09-18-wave2-config-flag-align-test-report.md)) - [ ] `TestReconcile_LegacyRepair_PG` 报告归档,gap-matrix 测试债行关闭(Wave 3) - [ ] `playwright test --list` 与门禁文档一致(Wave 3) - [ ] 跨用户会话挂靠负例测试入库(Wave 4) diff --git a/.doc/test-reports/2026-09-18-wave2-config-flag-align-test-report.md b/.doc/test-reports/2026-09-18-wave2-config-flag-align-test-report.md new file mode 100644 index 00000000..421da75a --- /dev/null +++ b/.doc/test-reports/2026-09-18-wave2-config-flag-align-test-report.md @@ -0,0 +1,104 @@ +# Wave 2:配置与灰度入口对齐测试报告 + +## 一、 测试背景 (Background) + +体检确认封存 flag(`MULTI_INTENT_PLAN_TIER`、U9–U12、SHADOW/NARRATIVE)未写入 compose `environment`,`--env-file` 无法传入容器(E-3);`CURSOR_RUNNER_URL`/cursor-agent 零消费占位(E-4);main 未显式关闭 demo 播种(E-6);`INTENT_V2_DECISION_TIER` 非法值激进回退 `query`(E-7);main initdb 与 test 脚本形态差异需评估(E-9)。 + +## 二、 测试目标 (Test Objectives) + +- 三环境 compose 渲染与容器 env 均可见目标 flag,默认 `legacy`/`false` +- `CURSOR_RUNNER*` 与 `cursor-agent` 容器消失 +- main `SEED_DEMO_USERS=false` +- 非法 `INTENT_V2_DECISION_TIER` fail-closed 到 `none` +- E-9:记录评估结论,不改 initdb +- `go vet` / `go test -short` 全绿;dev/test/main health+ready PASS + +## 三、 测试方案与环境 (Test Plan & Environment) + +- 分支:`fix/wave2-config-flag-align`(自本地 `dev@e35f106`) +- 单测:`internal/config/compose_flag_declaration_test.go`、`TestUnknownV2DecisionTierFailsClosedToNone` +- 真实环境:`./scripts/env-service.sh {dev,test,main} rebuild`(执行前 unset shell 泄漏端口变量) +- 证据目录:`.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/` + +## 四、 预期结果 (Expected Results) + +| 项 | 预期 | +|----|------| +| compose config | 三环境 `MULTI_INTENT_PLAN_TIER=legacy` + U9–U12/SHADOW/NARRATIVE=false;无 CURSOR_RUNNER | +| 容器 env | 同上;main 另有 `SEED_DEMO_USERS=false` | +| cursor-agent | `docker ps` 无匹配 | +| health/ready | 三环境 ok,schema_ready=true | +| 行为 | 不升 tier、不接线 REPLACE、不改 FAV | + +## 五、 实际测试结果与判定 (Actual Results & Evaluation) + +### 5.1 单测 + +``` +ok chat-agent-system/internal/intent +ok chat-agent-system/internal/config +--- PASS: TestComposeAppDeclaresMultiIntentPlanTierAndExpansionFlags +--- PASS: TestComposeAppDeclaresSemanticSummaryAndNarrativeShadowFlags +--- PASS: TestComposeMainSeedDemoUsersExplicitFalse +--- PASS: TestComposeNoDeadCursorRunnerConfig +--- PASS: TestUnknownV2DecisionTierFailsClosedToNone +``` + +**判定**:PASS + +### 5.2 compose config 渲染 + +见 `assets/.../compose-config-flags.txt`。三环境均含目标 flag;`CURSOR_RUNNER` 零匹配。 + +**判定**:PASS + +### 5.3 容器 env 抽检 + +| 环境 | 关键输出 | 判定 | +|------|----------|------| +| dev | `MULTI_INTENT_PLAN_TIER=legacy` … `SEMANTIC_SUMMARY_SHADOW=false`(无 CURSOR_RUNNER) | PASS | +| test | 同上 + `SEED_DEMO_USERS=false` | PASS | +| main | 同上 + `SEED_DEMO_USERS=false` | PASS | + +### 5.4 冒烟 health/ready + +| 环境 | health | ready | 判定 | +|------|--------|-------|------| +| dev `:8080` | env=dev schema=52 | ok | PASS | +| test `:8081` | env=test schema=52 | ok | PASS | +| main `:8000` | env=main schema=52 | ok | PASS | + +main rebuild 日志确认 `events` Healthy 后才 Starting `app`(E-2 依赖仍生效)。 + +### 5.5 cursor-agent 清理 + +``` +cursor-agent 容器已清理,符合预期 +``` + +**判定**:PASS + +### 5.6 E-9 评估结论(本波次不改代码) + +| 环境 | initdb 挂载 | 结论 | +|------|-------------|------| +| dev | `deploy/postgres/context_init.sql` | 与 main baseline 内容一致(仅差 goose 头注释) | +| test | `deploy/postgres/extensions_init.sql` | 仅扩展,表全靠 goose | +| main | `deploy/postgres/goose/00001_baseline.sql` | 与 dev 实质一致;无「落后」 | + +**决策**:不收敛 initdb(零行为变化波次);双文件漂移风险记入后续 backlog,需空卷冷启动专项验证后再改。 + +**判定**:评估完成 / 不改代码 — PASS(按计划) + +## 六、 自动化测试套件汇总 (Test Suite Execution) + +``` +go vet ./... # 通过 +go test -short -count=1 ./... # 全绿(见 assets/go-test-short.txt) +``` + +## 七、 测试结论与后续优化建议 (Conclusion & Next Steps) + +- Wave 2 达到合并标准:声明对齐完成,默认行为不变。 +- 下一波 Wave 3:测试债与盲区(S-1/S-2/S-4/S-5)。 +- E-9 结构性收敛(dev/main → extensions-only)另开任务。 diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/compose-config-flags.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/compose-config-flags.txt new file mode 100644 index 00000000..2121db81 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/compose-config-flags.txt @@ -0,0 +1,26 @@ +=== dev === + MULTI_INTENT_PLAN_TIER: legacy + MULTI_INTENT_U9_SEGMENT: "false" + MULTI_INTENT_U10_MUTATE: "false" + MULTI_INTENT_U11_DOCGOV: "false" + MULTI_INTENT_U12_RUN_CONTROL: "false" + PI_CHANGE_REPORT_NARRATIVE: "false" + SEMANTIC_SUMMARY_SHADOW: "false" +=== test === + MULTI_INTENT_PLAN_TIER: legacy + MULTI_INTENT_U9_SEGMENT: "false" + MULTI_INTENT_U10_MUTATE: "false" + MULTI_INTENT_U11_DOCGOV: "false" + MULTI_INTENT_U12_RUN_CONTROL: "false" + PI_CHANGE_REPORT_NARRATIVE: "false" + SEED_DEMO_USERS: "false" + SEMANTIC_SUMMARY_SHADOW: "false" +=== main === + MULTI_INTENT_PLAN_TIER: legacy + MULTI_INTENT_U9_SEGMENT: "false" + MULTI_INTENT_U10_MUTATE: "false" + MULTI_INTENT_U11_DOCGOV: "false" + MULTI_INTENT_U12_RUN_CONTROL: "false" + PI_CHANGE_REPORT_NARRATIVE: "false" + SEED_DEMO_USERS: "false" + SEMANTIC_SUMMARY_SHADOW: "false" diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/cursor-agent-ps.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/cursor-agent-ps.txt new file mode 100644 index 00000000..1fb6dfeb --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/cursor-agent-ps.txt @@ -0,0 +1 @@ +cursor-agent 容器已清理,符合预期 diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/env-dev.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/env-dev.txt new file mode 100644 index 00000000..2bbda172 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/env-dev.txt @@ -0,0 +1,4 @@ +SEMANTIC_SUMMARY_SHADOW=false +MULTI_INTENT_PLAN_TIER=legacy +PI_CHANGE_REPORT_NARRATIVE=false +MULTI_INTENT_U9_SEGMENT=false diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/env-main.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/env-main.txt new file mode 100644 index 00000000..3533abe6 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/env-main.txt @@ -0,0 +1,5 @@ +MULTI_INTENT_U9_SEGMENT=false +PI_CHANGE_REPORT_NARRATIVE=false +MULTI_INTENT_PLAN_TIER=legacy +SEMANTIC_SUMMARY_SHADOW=false +SEED_DEMO_USERS=false diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/env-test.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/env-test.txt new file mode 100644 index 00000000..96f21f6a --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/env-test.txt @@ -0,0 +1,5 @@ +PI_CHANGE_REPORT_NARRATIVE=false +SEED_DEMO_USERS=false +MULTI_INTENT_PLAN_TIER=legacy +MULTI_INTENT_U9_SEGMENT=false +SEMANTIC_SUMMARY_SHADOW=false diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/go-test-short.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/go-test-short.txt new file mode 100644 index 00000000..4719476b --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/go-test-short.txt @@ -0,0 +1,67 @@ +? chat-agent-system/cmd/artifact-vault [no test files] +ok chat-agent-system/cmd/bizdev-cli 2.818s +? chat-agent-system/cmd/dataset [no test files] +ok chat-agent-system/cmd/document-content-reconcile 0.004s +? chat-agent-system/cmd/document-revision-backfill [no test files] +? chat-agent-system/cmd/engineering-dashboard [no test files] +? chat-agent-system/cmd/eventmode [no test files] +? chat-agent-system/cmd/events [no test files] +? chat-agent-system/cmd/recategorize [no test files] +? chat-agent-system/cmd/server [no test files] +ok chat-agent-system/internal/agent 3.615s +ok chat-agent-system/internal/app 0.019s +ok chat-agent-system/internal/app/chatflow 0.005s +ok chat-agent-system/internal/app/docadvance 0.004s +ok chat-agent-system/internal/app/docflow 0.004s +ok chat-agent-system/internal/app/docnotify 0.004s +ok chat-agent-system/internal/app/docproject 0.004s +ok chat-agent-system/internal/app/fav 0.003s +ok chat-agent-system/internal/app/intentflow 0.015s +ok chat-agent-system/internal/app/stageflow 0.004s +ok chat-agent-system/internal/app/uow 0.003s +ok chat-agent-system/internal/archtest 0.178s +ok chat-agent-system/internal/artifactvault 0.006s +ok chat-agent-system/internal/auth 0.995s +ok chat-agent-system/internal/authz 0.004s +ok chat-agent-system/internal/bizdev 0.147s +ok chat-agent-system/internal/chat 0.018s +ok chat-agent-system/internal/config 0.005s +ok chat-agent-system/internal/coordinator 0.013s +ok chat-agent-system/internal/ctxmgr 0.087s +ok chat-agent-system/internal/dataset 0.005s +ok chat-agent-system/internal/db 0.005s +ok chat-agent-system/internal/doccontent 0.006s +ok chat-agent-system/internal/docduty 0.005s +ok chat-agent-system/internal/docgov 0.028s +ok chat-agent-system/internal/docquery 0.005s +ok chat-agent-system/internal/docrevision 0.009s +ok chat-agent-system/internal/engineeringdashboard 0.011s +ok chat-agent-system/internal/events 0.006s +ok chat-agent-system/internal/freedoc 0.028s +ok chat-agent-system/internal/fsutil 0.005s +ok chat-agent-system/internal/httpx 0.003s +ok chat-agent-system/internal/intent 0.026s +ok chat-agent-system/internal/kb 0.010s +ok chat-agent-system/internal/maturity 0.004s +ok chat-agent-system/internal/notification 0.083s +? chat-agent-system/internal/observability [no test files] +ok chat-agent-system/internal/projectcontext 0.009s +ok chat-agent-system/internal/projectinstance 0.009s +ok chat-agent-system/internal/projectworkflow 0.007s +ok chat-agent-system/internal/quote 0.012s +ok chat-agent-system/internal/replyexport 0.004s +ok chat-agent-system/internal/server 13.647s +ok chat-agent-system/internal/squad 0.031s +ok chat-agent-system/internal/storage 0.018s +ok chat-agent-system/internal/stream 0.003s +ok chat-agent-system/internal/stream/transport 0.002s +ok chat-agent-system/internal/swboot 0.002s +ok chat-agent-system/internal/sysadmin 0.003s +ok chat-agent-system/internal/taskrun 0.193s +ok chat-agent-system/internal/template 0.792s +ok chat-agent-system/internal/upload 0.002s +? chat-agent-system/internal/workflow [no test files] +ok chat-agent-system/internal/workflow/runtime 0.002s +ok chat-agent-system/internal/workflowdef 0.004s +ok chat-agent-system/internal/workspace 0.003s +? chat-agent-system/templates [no test files] diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/health-dev.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/health-dev.txt new file mode 100644 index 00000000..10283cb2 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/health-dev.txt @@ -0,0 +1 @@ +{"status":"ok","env":"dev","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"kb_ready":true,"database_ready":true,"schema_version":52,"schema_ready":true,"task_store_ready":true} diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/health-main.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/health-main.txt new file mode 100644 index 00000000..8b1182b9 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/health-main.txt @@ -0,0 +1 @@ +{"status":"ok","env":"main","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"kb_ready":true,"database_ready":true,"schema_version":52,"schema_ready":true,"task_store_ready":true} diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/health-test.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/health-test.txt new file mode 100644 index 00000000..51800ac1 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/health-test.txt @@ -0,0 +1 @@ +{"status":"ok","env":"test","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"kb_ready":true,"database_ready":true,"schema_version":52,"schema_ready":true,"task_store_ready":true} diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/no-cursor-runner.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/no-cursor-runner.txt new file mode 100644 index 00000000..81e08fd2 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/no-cursor-runner.txt @@ -0,0 +1,6 @@ +== shuimu-agent-app-dev == +(no CURSOR_RUNNER) +== shuimu-agent-app-test == +(no CURSOR_RUNNER) +== shuimu-agent-app-main == +(no CURSOR_RUNNER) diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/ready-dev.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/ready-dev.txt new file mode 100644 index 00000000..10283cb2 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/ready-dev.txt @@ -0,0 +1 @@ +{"status":"ok","env":"dev","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"kb_ready":true,"database_ready":true,"schema_version":52,"schema_ready":true,"task_store_ready":true} diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/ready-main.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/ready-main.txt new file mode 100644 index 00000000..8b1182b9 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/ready-main.txt @@ -0,0 +1 @@ +{"status":"ok","env":"main","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"kb_ready":true,"database_ready":true,"schema_version":52,"schema_ready":true,"task_store_ready":true} diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/ready-test.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/ready-test.txt new file mode 100644 index 00000000..51800ac1 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/ready-test.txt @@ -0,0 +1 @@ +{"status":"ok","env":"test","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"kb_ready":true,"database_ready":true,"schema_version":52,"schema_ready":true,"task_store_ready":true} diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/rebuild-dev.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/rebuild-dev.txt new file mode 100644 index 00000000..b9937345 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/rebuild-dev.txt @@ -0,0 +1,241 @@ +bash: _comp_complete_longopt: line 6: syntax error near unexpected token `(' +bash: _comp_complete_longopt: line 6: ` --!(no-*)dir*)' +bash: error importing function definition for `_comp_complete_longopt' +bash: _comp_compgen_usage: line 11: syntax error near unexpected token `(' +bash: _comp_compgen_usage: line 11: ` -?(\[)+([a-zA-Z0-9?]))' +bash: error importing function definition for `_comp_compgen_usage' +bash: _comp_abspath: line 11: syntax error near unexpected token `(' +bash: _comp_abspath: line 11: ` /..?(/*))' +bash: error importing function definition for `_comp_abspath' +==> [dev] 重建镜像并重建容器... + Image shuimu-pi-agent:dev Building + Image agent-dev-app Building + Image agent-dev-events Building +#1 [internal] load local bake definitions +#1 reading from stdin 1.44kB done +#1 DONE 0.0s + +#2 [events internal] load build definition from Dockerfile +#2 transferring dockerfile: 1.53kB done +#2 DONE 0.0s + +#3 [pi-agent internal] load build definition from Dockerfile +#3 transferring dockerfile: 1.58kB done +#3 DONE 0.0s + +#4 [auth] library/node:pull token for docker.1ms.run +#4 DONE 0.0s + +#5 [auth] library/golang:pull token for docker.1ms.run +#5 DONE 0.0s + +#6 [events internal] load metadata for docker.io/library/debian:bookworm-slim +#6 DONE 0.2s + +#7 [app internal] load metadata for docker.io/library/node:22-bookworm +#7 DONE 0.3s + +#8 [pi-agent internal] load metadata for docker.io/library/node:22-bookworm-slim +#8 DONE 0.3s + +#9 [pi-agent internal] load .dockerignore +#9 transferring context: 234B done +#9 DONE 0.0s + +#10 [pi-agent 1/11] FROM docker.io/library/node:22-bookworm-slim@sha256:83f487e0a63425e5b4d146fb5e5be574bcbe1b7b843d3ebafdd95eaf7767a7e5 +#10 resolve docker.io/library/node:22-bookworm-slim@sha256:83f487e0a63425e5b4d146fb5e5be574bcbe1b7b843d3ebafdd95eaf7767a7e5 done +#10 DONE 0.0s + +#11 [pi-agent internal] load build context +#11 transferring context: 31.86kB done +#11 DONE 0.0s + +#12 [pi-agent 2/11] RUN set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl git bash; rm -rf /var/lib/apt/lists/* +#12 CACHED + +#13 [pi-agent 4/11] RUN pi --version +#13 CACHED + +#14 [pi-agent 10/11] COPY deploy/pi-agent/entrypoint.sh /app/entrypoint.sh +#14 CACHED + +#15 [pi-agent 3/11] RUN npm install -g @earendil-works/pi-coding-agent@0.85.1 --omit=dev +#15 CACHED + +#16 [pi-agent 9/11] COPY deploy/pi-agent/settle-policy.mjs /app/settle-policy.mjs +#16 CACHED + +#17 [pi-agent 5/11] WORKDIR /app +#17 CACHED + +#18 [pi-agent 6/11] COPY deploy/pi-agent/extensions/ /app/extensions/ +#18 CACHED + +#19 [pi-agent 8/11] COPY deploy/pi-agent/result-v1.mjs /app/result-v1.mjs +#19 CACHED + +#20 [pi-agent 7/11] COPY deploy/pi-agent/runner.mjs /app/runner.mjs +#20 CACHED + +#21 [pi-agent 11/11] RUN chmod +x /app/entrypoint.sh /app/runner.mjs +#21 CACHED + +#22 [pi-agent] exporting to image +#22 exporting layers done +#22 exporting manifest sha256:84554c4311e3d33663a2349a68614db0f2e6a0192c0b3abfed729f1ac76b8d13 done +#22 exporting config sha256:14f5c203947655983caf00baf53d78ff49d250b4f21afda352e293cfd5f72ed0 done +#22 exporting attestation manifest sha256:878049c8092819af2815f4776e9c5350e796915e21c53664f626c34a06165cd2 done +#22 exporting manifest list sha256:550b5c654b4cb7f7416a4a31a01a910c7406a6aff8f198316a017872c9399400 done +#22 naming to docker.io/library/shuimu-pi-agent:dev done +#22 unpacking to docker.io/library/shuimu-pi-agent:dev done +#22 DONE 0.0s + +#23 [pi-agent] resolving provenance for metadata file +#23 DONE 0.0s + +#24 [events internal] load metadata for docker.io/library/golang:1.23-bookworm +#24 DONE 0.4s + +#9 [app internal] load .dockerignore +#9 CACHED + +#25 [events stage-2 1/9] FROM docker.io/library/debian:bookworm-slim@sha256:88200866dfff7ea7f5cbcb6ec7c8a701889efe6fe859fe64d6990e4b07ea4171 +#25 resolve docker.io/library/debian:bookworm-slim@sha256:88200866dfff7ea7f5cbcb6ec7c8a701889efe6fe859fe64d6990e4b07ea4171 done +#25 DONE 0.0s + +#26 [events go-builder 1/7] FROM docker.io/library/golang:1.23-bookworm@sha256:167053a2bb901972bf2c1611f8f52c44d5fe7e762e5cab213708d82c421614db +#26 resolve docker.io/library/golang:1.23-bookworm@sha256:167053a2bb901972bf2c1611f8f52c44d5fe7e762e5cab213708d82c421614db done +#26 DONE 0.0s + +#27 [events web-builder 1/6] FROM docker.io/library/node:22-bookworm@sha256:8a34c4ab3ea2c5cd194f07e317b2a8f09461d3c8b05c4e34c8ccd56d56024c4d +#27 resolve docker.io/library/node:22-bookworm@sha256:8a34c4ab3ea2c5cd194f07e317b2a8f09461d3c8b05c4e34c8ccd56d56024c4d done +#27 DONE 0.0s + +#28 [app internal] load build context +#28 transferring context: 222.49MB 1.3s done +#28 DONE 1.3s + +#29 [app go-builder 2/7] WORKDIR /src +#29 CACHED + +#30 [app go-builder 3/7] COPY go.mod go.sum ./ +#30 CACHED + +#31 [app go-builder 4/7] RUN go mod download +#31 CACHED + +#30 [events go-builder 3/7] COPY go.mod go.sum ./ +#30 CACHED + +#29 [events go-builder 2/7] WORKDIR /src +#29 CACHED + +#31 [events go-builder 4/7] RUN go mod download +#31 CACHED + +#32 [app go-builder 5/7] COPY . . +#32 DONE 0.6s + +#33 [app go-builder 6/7] RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /server ./cmd/server +#33 DONE 5.6s + +#34 [app go-builder 7/7] RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /events ./cmd/events +#34 DONE 0.4s + +#35 [events web-builder 3/6] COPY web/package.json web/package-lock.json* ./ +#35 CACHED + +#36 [events web-builder 4/6] RUN npm ci +#36 CACHED + +#37 [events web-builder 2/6] WORKDIR /web +#37 CACHED + +#38 [events web-builder 5/6] COPY web/ ./ +#38 CACHED + +#39 [events web-builder 6/6] RUN npm run build +#39 CACHED + +#35 [app web-builder 3/6] COPY web/package.json web/package-lock.json* ./ +#35 CACHED + +#36 [app web-builder 4/6] RUN npm ci +#36 CACHED + +#38 [app web-builder 5/6] COPY web/ ./ +#38 CACHED + +#37 [app web-builder 2/6] WORKDIR /web +#37 CACHED + +#40 [events stage-2 2/9] RUN set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl; rm -rf /var/lib/apt/lists/* +#40 CACHED + +#41 [events stage-2 3/9] WORKDIR /app +#41 CACHED + +#42 [events stage-2 4/9] COPY --from=go-builder /server /app/server +#42 DONE 0.0s + +#43 [app stage-2 5/9] COPY --from=go-builder /events /app/events +#43 DONE 0.0s + +#44 [app stage-2 6/9] COPY --from=web-builder /web/dist /app/web/dist +#44 DONE 0.0s + +#45 [app stage-2 7/9] COPY deploy/postgres/goose /app/deploy/postgres/goose +#45 DONE 0.0s + +#46 [app stage-2 8/9] COPY templates /app/templates +#46 DONE 0.0s + +#47 [app stage-2 9/9] COPY configs /app/configs +#47 DONE 0.0s + +#48 [app] exporting to image +#48 exporting layers +#48 exporting layers 0.5s done +#48 exporting manifest sha256:04c67391828ee8b47f1db71a0d4519617c24f888e6a05d0b99a7e36743812a4b done +#48 exporting config sha256:989a25456db60c359f9f580764d1eb14d98b3452ca79e378e66b67afb07a1c6c done +#48 exporting attestation manifest sha256:3073ce8f927cb9767fef8e1a2dc6c40b3ff8be9dbacb40282be97fb17ed0e545 done +#48 exporting manifest list sha256:798407858486b71b8a619dbfb9e9d2c60825a39103c1d62cbc34b58a4e074007 done +#48 naming to docker.io/library/agent-dev-app:latest done +#48 unpacking to docker.io/library/agent-dev-app:latest +#48 unpacking to docker.io/library/agent-dev-app:latest 0.1s done +#48 DONE 0.7s + +#49 [events] exporting to image +#49 exporting layers 0.5s done +#49 exporting manifest sha256:d83a8cee4049dde5b224f565d601ea19c2a95601f3f7530907aa216c4c20ff1d done +#49 exporting config sha256:3265b044a67eb4c1eee4657796e7b41587c58cabbf05c746358d874f12c1e4e9 done +#49 exporting attestation manifest sha256:517c658d51110717fc6dbcd9fa05345f896599ef7ccfb82319f132a9f214ef1c done +#49 exporting manifest list sha256:a6ae9ee66df8b9efa7e78c6022b141fb3acf28dcde06df66e61658e5236a4135 done +#49 naming to docker.io/library/agent-dev-events:latest done +#49 unpacking to docker.io/library/agent-dev-events:latest 0.1s done +#49 DONE 0.7s + +#50 [events] resolving provenance for metadata file +#50 DONE 0.0s + +#51 [app] resolving provenance for metadata file +#51 DONE 0.0s + Image agent-dev-app Built + Image agent-dev-events Built + Image shuimu-pi-agent:dev Built +time="2026-09-18T02:27:30Z" level=warning msg="Found orphan containers (shuimu-cursor-agent-dev) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up." + Container shuimu-context-pg-dev Running + Container shuimu-pi-agent-dev Running + Container shuimu-agent-app-dev Recreate + Container shuimu-agent-events-dev Recreate + Container shuimu-agent-events-dev Recreated + Container shuimu-agent-app-dev Recreated + Container shuimu-context-pg-dev Waiting + Container shuimu-context-pg-dev Waiting + Container shuimu-context-pg-dev Healthy + Container shuimu-agent-app-dev Starting + Container shuimu-context-pg-dev Healthy + Container shuimu-agent-events-dev Starting + Container shuimu-agent-app-dev Started + Container shuimu-agent-events-dev Started +==> [dev] 镜像与容器已更新 diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/rebuild-main.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/rebuild-main.txt new file mode 100644 index 00000000..d117a2d8 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/rebuild-main.txt @@ -0,0 +1,273 @@ +bash: _comp_complete_longopt: line 6: syntax error near unexpected token `(' +bash: _comp_complete_longopt: line 6: ` --!(no-*)dir*)' +bash: error importing function definition for `_comp_complete_longopt' +bash: _comp_compgen_usage: line 11: syntax error near unexpected token `(' +bash: _comp_compgen_usage: line 11: ` -?(\[)+([a-zA-Z0-9?]))' +bash: error importing function definition for `_comp_compgen_usage' +bash: _comp_abspath: line 11: syntax error near unexpected token `(' +bash: _comp_abspath: line 11: ` /..?(/*))' +bash: error importing function definition for `_comp_abspath' +==> [main] 重建镜像并重建容器... + Image shuimu-pi-agent:main Building + Image shuimu-agent-app:main Building + Image shuimu-agent-events:main Building +#1 [internal] load local bake definitions +#1 reading from stdin 1.46kB done +#1 DONE 0.0s + +#2 [app internal] load build definition from Dockerfile +#2 transferring dockerfile: 1.53kB done +#2 DONE 0.0s + +#3 [pi-agent internal] load build definition from Dockerfile +#3 transferring dockerfile: 1.58kB done +#3 DONE 0.0s + +#4 [events internal] load metadata for docker.io/library/golang:1.23-bookworm +#4 DONE 0.2s + +#5 [pi-agent internal] load metadata for docker.io/library/node:22-bookworm-slim +#5 DONE 0.2s + +#6 [app internal] load metadata for docker.io/library/debian:bookworm-slim +#6 DONE 0.2s + +#7 [events internal] load metadata for docker.io/library/node:22-bookworm +#7 DONE 0.2s + +#8 [pi-agent internal] load .dockerignore +#8 transferring context: 234B done +#8 DONE 0.0s + +#9 [events web-builder 1/6] FROM docker.io/library/node:22-bookworm@sha256:8a34c4ab3ea2c5cd194f07e317b2a8f09461d3c8b05c4e34c8ccd56d56024c4d +#9 resolve docker.io/library/node:22-bookworm@sha256:8a34c4ab3ea2c5cd194f07e317b2a8f09461d3c8b05c4e34c8ccd56d56024c4d 0.0s done +#9 DONE 0.0s + +#10 [events go-builder 1/7] FROM docker.io/library/golang:1.23-bookworm@sha256:167053a2bb901972bf2c1611f8f52c44d5fe7e762e5cab213708d82c421614db +#10 resolve docker.io/library/golang:1.23-bookworm@sha256:167053a2bb901972bf2c1611f8f52c44d5fe7e762e5cab213708d82c421614db 0.0s done +#10 DONE 0.0s + +#11 [pi-agent 1/11] FROM docker.io/library/node:22-bookworm-slim@sha256:83f487e0a63425e5b4d146fb5e5be574bcbe1b7b843d3ebafdd95eaf7767a7e5 +#11 resolve docker.io/library/node:22-bookworm-slim@sha256:83f487e0a63425e5b4d146fb5e5be574bcbe1b7b843d3ebafdd95eaf7767a7e5 0.0s done +#11 DONE 0.0s + +#12 [app stage-2 1/9] FROM docker.io/library/debian:bookworm-slim@sha256:88200866dfff7ea7f5cbcb6ec7c8a701889efe6fe859fe64d6990e4b07ea4171 +#12 resolve docker.io/library/debian:bookworm-slim@sha256:88200866dfff7ea7f5cbcb6ec7c8a701889efe6fe859fe64d6990e4b07ea4171 0.0s done +#12 DONE 0.0s + +#13 [events internal] load build context +#13 ... + +#14 [pi-agent internal] load build context +#14 transferring context: 370B 0.2s done +#14 DONE 0.2s + +#15 [pi-agent 5/11] WORKDIR /app +#15 CACHED + +#16 [pi-agent 10/11] COPY deploy/pi-agent/entrypoint.sh /app/entrypoint.sh +#16 CACHED + +#17 [pi-agent 2/11] RUN set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl git bash; rm -rf /var/lib/apt/lists/* +#17 CACHED + +#18 [pi-agent 6/11] COPY deploy/pi-agent/extensions/ /app/extensions/ +#18 CACHED + +#19 [pi-agent 7/11] COPY deploy/pi-agent/runner.mjs /app/runner.mjs +#19 CACHED + +#20 [pi-agent 9/11] COPY deploy/pi-agent/settle-policy.mjs /app/settle-policy.mjs +#20 CACHED + +#21 [pi-agent 4/11] RUN pi --version +#21 CACHED + +#22 [pi-agent 8/11] COPY deploy/pi-agent/result-v1.mjs /app/result-v1.mjs +#22 CACHED + +#23 [pi-agent 3/11] RUN npm install -g @earendil-works/pi-coding-agent@0.85.1 --omit=dev +#23 CACHED + +#24 [pi-agent 11/11] RUN chmod +x /app/entrypoint.sh /app/runner.mjs +#24 CACHED + +#13 [events internal] load build context +#13 ... + +#25 [pi-agent] exporting to image +#25 exporting layers done +#25 exporting manifest sha256:00dd6f420c5889e9f052aa89d79841c1a0f83049615b4e4323b2d82f6c8d5883 done +#25 exporting config sha256:6fb3b41374fb6603f230764ea3b571057aedbb8f203750d82a4f952f2eef32a6 done +#25 exporting attestation manifest sha256:9fd15be8e4581d337ad168939b929303c8720a2b8ca992180f1b7f45a408b5c7 done +#25 exporting manifest list sha256:bbbd412b6257c88566d2fddadd4c1d15c75d5c7b84f4741d2959d792c6e9ef07 done +#25 naming to docker.io/library/shuimu-pi-agent:main done +#25 unpacking to docker.io/library/shuimu-pi-agent:main done +#25 DONE 0.0s + +#26 [pi-agent] resolving provenance for metadata file +#26 DONE 0.0s + +#13 [events internal] load build context +#13 transferring context: 222.49MB 1.2s done +#13 DONE 1.3s + +#27 [events stage-2 4/9] COPY --from=go-builder /server /app/server +#27 CACHED + +#28 [events stage-2 5/9] COPY --from=go-builder /events /app/events +#28 CACHED + +#29 [events stage-2 7/9] COPY deploy/postgres/goose /app/deploy/postgres/goose +#29 CACHED + +#30 [events web-builder 3/6] COPY web/package.json web/package-lock.json* ./ +#30 CACHED + +#31 [events go-builder 3/7] COPY go.mod go.sum ./ +#31 CACHED + +#32 [events stage-2 6/9] COPY --from=web-builder /web/dist /app/web/dist +#32 CACHED + +#33 [events stage-2 8/9] COPY templates /app/templates +#33 CACHED + +#34 [events go-builder 5/7] COPY . . +#34 CACHED + +#35 [events go-builder 7/7] RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /events ./cmd/events +#35 CACHED + +#36 [events stage-2 2/9] RUN set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl; rm -rf /var/lib/apt/lists/* +#36 CACHED + +#37 [events go-builder 4/7] RUN go mod download +#37 CACHED + +#38 [events web-builder 5/6] COPY web/ ./ +#38 CACHED + +#39 [events go-builder 6/7] RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /server ./cmd/server +#39 CACHED + +#40 [events stage-2 3/9] WORKDIR /app +#40 CACHED + +#41 [events web-builder 6/6] RUN npm run build +#41 CACHED + +#42 [events web-builder 4/6] RUN npm ci +#42 CACHED + +#43 [events go-builder 2/7] WORKDIR /src +#43 CACHED + +#44 [events web-builder 2/6] WORKDIR /web +#44 CACHED + +#45 [events stage-2 9/9] COPY configs /app/configs +#45 CACHED + +#43 [app go-builder 2/7] WORKDIR /src +#43 CACHED + +#35 [app go-builder 7/7] RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /events ./cmd/events +#35 CACHED + +#32 [app stage-2 6/9] COPY --from=web-builder /web/dist /app/web/dist +#32 CACHED + +#31 [app go-builder 3/7] COPY go.mod go.sum ./ +#31 CACHED + +#37 [app go-builder 4/7] RUN go mod download +#37 CACHED + +#27 [app stage-2 4/9] COPY --from=go-builder /server /app/server +#27 CACHED + +#28 [app stage-2 5/9] COPY --from=go-builder /events /app/events +#28 CACHED + +#36 [app stage-2 2/9] RUN set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl; rm -rf /var/lib/apt/lists/* +#36 CACHED + +#29 [app stage-2 7/9] COPY deploy/postgres/goose /app/deploy/postgres/goose +#29 CACHED + +#33 [app stage-2 8/9] COPY templates /app/templates +#33 CACHED + +#40 [app stage-2 3/9] WORKDIR /app +#40 CACHED + +#34 [app go-builder 5/7] COPY . . +#34 CACHED + +#41 [app web-builder 6/6] RUN npm run build +#41 CACHED + +#44 [app web-builder 2/6] WORKDIR /web +#44 CACHED + +#30 [app web-builder 3/6] COPY web/package.json web/package-lock.json* ./ +#30 CACHED + +#42 [app web-builder 4/6] RUN npm ci +#42 CACHED + +#38 [app web-builder 5/6] COPY web/ ./ +#38 CACHED + +#39 [app go-builder 6/7] RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /server ./cmd/server +#39 CACHED + +#45 [app stage-2 9/9] COPY configs /app/configs +#45 CACHED + +#46 [app] exporting to image +#46 exporting layers done +#46 exporting manifest sha256:6495f26cc3b1335b4c8eb2469266eb5bac4a0036fe8ff31a7b728d386812d229 done +#46 exporting config sha256:47f00c764b23f97ffcce9a6992d111a761ef23029f9083e21ff97b7a5040820c done +#46 exporting attestation manifest sha256:4ac1f23e728744a6677ce74d360def0ed60122f97aceaa0305d712be3ec197da done +#46 exporting manifest list sha256:0ffe0550461c2b75c783292994d75e71083f7c20c7e4a9a52ad9e5959580c2eb done +#46 naming to docker.io/library/shuimu-agent-app:main done +#46 unpacking to docker.io/library/shuimu-agent-app:main done +#46 DONE 0.0s + +#47 [events] exporting to image +#47 exporting layers done +#47 exporting manifest sha256:41d097641b18678300381e1bfbe15f25b550cbe0c1872373ec9a42579ad0d7a0 done +#47 exporting config sha256:331e62d9860e78be499377641a85267f36985cd553bd54c437ea16f6c7d8e8ae done +#47 exporting attestation manifest sha256:de7420d084201e8e26f0461498c6117d766abc025c54308b31712c3bb1d8edc5 done +#47 exporting manifest list sha256:0ad0e4d55a4de05a3ea0dc93e578028826530f5cbc1af81588662b90d03dbba3 done +#47 naming to docker.io/library/shuimu-agent-events:main done +#47 unpacking to docker.io/library/shuimu-agent-events:main done +#47 DONE 0.0s + +#48 [app] resolving provenance for metadata file +#48 DONE 0.0s + +#49 [events] resolving provenance for metadata file +#49 DONE 0.0s + Image shuimu-agent-events:main Built + Image shuimu-agent-app:main Built + Image shuimu-pi-agent:main Built + Container shuimu-system-pg-main Running + Container shuimu-pi-agent-main Running + Container shuimu-agent-events-main Recreate + Container shuimu-agent-events-main Recreated + Container shuimu-agent-app-main Recreate + Container shuimu-agent-app-main Recreated + Container shuimu-system-pg-main Waiting + Container shuimu-system-pg-main Healthy + Container shuimu-agent-events-main Starting + Container shuimu-agent-events-main Started + Container shuimu-agent-events-main Waiting + Container shuimu-system-pg-main Waiting + Container shuimu-system-pg-main Healthy + Container shuimu-agent-events-main Healthy + Container shuimu-agent-app-main Starting + Container shuimu-agent-app-main Started +==> [main] 镜像与容器已更新 diff --git a/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/rebuild-test.txt b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/rebuild-test.txt new file mode 100644 index 00000000..d6b61a47 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-18-wave2-config-flag-align/rebuild-test.txt @@ -0,0 +1,211 @@ +bash: _comp_complete_longopt: line 6: syntax error near unexpected token `(' +bash: _comp_complete_longopt: line 6: ` --!(no-*)dir*)' +bash: error importing function definition for `_comp_complete_longopt' +bash: _comp_compgen_usage: line 11: syntax error near unexpected token `(' +bash: _comp_compgen_usage: line 11: ` -?(\[)+([a-zA-Z0-9?]))' +bash: error importing function definition for `_comp_compgen_usage' +bash: _comp_abspath: line 11: syntax error near unexpected token `(' +bash: _comp_abspath: line 11: ` /..?(/*))' +bash: error importing function definition for `_comp_abspath' +==> [test] 重建镜像并重建容器... + Image shuimu-agent-app:test Building + Image shuimu-agent-events:test Building + Image shuimu-pi-agent:test Building +#1 [internal] load local bake definitions +#1 reading from stdin 1.46kB done +#1 DONE 0.0s + +#2 [pi-agent internal] load build definition from Dockerfile +#2 transferring dockerfile: 1.58kB done +#2 DONE 0.0s + +#3 [app internal] load build definition from Dockerfile +#3 transferring dockerfile: 1.53kB done +#3 DONE 0.0s + +#4 [events internal] load metadata for docker.io/library/node:22-bookworm +#4 DONE 0.1s + +#5 [events internal] load metadata for docker.io/library/golang:1.23-bookworm +#5 DONE 0.1s + +#6 [pi-agent internal] load metadata for docker.io/library/node:22-bookworm-slim +#6 DONE 0.1s + +#7 [app internal] load .dockerignore +#7 transferring context: 234B done +#7 DONE 0.0s + +#8 [pi-agent 1/11] FROM docker.io/library/node:22-bookworm-slim@sha256:83f487e0a63425e5b4d146fb5e5be574bcbe1b7b843d3ebafdd95eaf7767a7e5 +#8 resolve docker.io/library/node:22-bookworm-slim@sha256:83f487e0a63425e5b4d146fb5e5be574bcbe1b7b843d3ebafdd95eaf7767a7e5 done +#8 DONE 0.0s + +#9 [events internal] load metadata for docker.io/library/debian:bookworm-slim +#9 DONE 0.2s + +#10 [events stage-2 1/9] FROM docker.io/library/debian:bookworm-slim@sha256:88200866dfff7ea7f5cbcb6ec7c8a701889efe6fe859fe64d6990e4b07ea4171 +#10 resolve docker.io/library/debian:bookworm-slim@sha256:88200866dfff7ea7f5cbcb6ec7c8a701889efe6fe859fe64d6990e4b07ea4171 done +#10 DONE 0.0s + +#11 [events web-builder 1/6] FROM docker.io/library/node:22-bookworm@sha256:8a34c4ab3ea2c5cd194f07e317b2a8f09461d3c8b05c4e34c8ccd56d56024c4d +#11 resolve docker.io/library/node:22-bookworm@sha256:8a34c4ab3ea2c5cd194f07e317b2a8f09461d3c8b05c4e34c8ccd56d56024c4d done +#11 DONE 0.0s + +#12 [events go-builder 1/7] FROM docker.io/library/golang:1.23-bookworm@sha256:167053a2bb901972bf2c1611f8f52c44d5fe7e762e5cab213708d82c421614db +#12 resolve docker.io/library/golang:1.23-bookworm@sha256:167053a2bb901972bf2c1611f8f52c44d5fe7e762e5cab213708d82c421614db done +#12 DONE 0.0s + +#13 [events internal] load build context +#13 ... + +#14 [pi-agent internal] load build context +#14 transferring context: 370B 0.2s done +#14 DONE 0.2s + +#15 [pi-agent 7/11] COPY deploy/pi-agent/runner.mjs /app/runner.mjs +#15 CACHED + +#16 [pi-agent 6/11] COPY deploy/pi-agent/extensions/ /app/extensions/ +#16 CACHED + +#17 [pi-agent 9/11] COPY deploy/pi-agent/settle-policy.mjs /app/settle-policy.mjs +#17 CACHED + +#18 [pi-agent 4/11] RUN pi --version +#18 CACHED + +#19 [pi-agent 5/11] WORKDIR /app +#19 CACHED + +#20 [pi-agent 10/11] COPY deploy/pi-agent/entrypoint.sh /app/entrypoint.sh +#20 CACHED + +#21 [pi-agent 8/11] COPY deploy/pi-agent/result-v1.mjs /app/result-v1.mjs +#21 CACHED + +#22 [pi-agent 2/11] RUN set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl git bash; rm -rf /var/lib/apt/lists/* +#22 CACHED + +#23 [pi-agent 3/11] RUN npm install -g @earendil-works/pi-coding-agent@0.85.1 --omit=dev +#23 CACHED + +#24 [pi-agent 11/11] RUN chmod +x /app/entrypoint.sh /app/runner.mjs +#24 CACHED + +#25 [pi-agent] exporting to image +#25 exporting layers done +#25 exporting manifest sha256:1565757be5855280b35ef7e3901496c75270397a465f7789201be925706df172 done +#25 exporting config sha256:e52bdca1a5b6048f4ccb007889c7cfce3a61c45e006a093444fba756eb5108f0 done +#25 exporting attestation manifest sha256:ec324b442933cb70139ea0c431a0b209bfef902a666aaa923462056dcb406f57 done +#25 exporting manifest list sha256:8bc634170db637f31011804e24643905a8382bb71e3429b71349d2a731e75643 done +#25 naming to docker.io/library/shuimu-pi-agent:test done +#25 unpacking to docker.io/library/shuimu-pi-agent:test done +#25 DONE 0.0s + +#26 [pi-agent] resolving provenance for metadata file +#26 DONE 0.0s + +#13 [events internal] load build context +#13 transferring context: 1.96MB 0.6s done +#13 DONE 0.6s + +#27 [app go-builder 5/7] COPY . . +#27 CACHED + +#28 [app go-builder 7/7] RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /events ./cmd/events +#28 CACHED + +#29 [app stage-2 2/9] RUN set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl; rm -rf /var/lib/apt/lists/* +#29 CACHED + +#30 [app stage-2 6/9] COPY --from=web-builder /web/dist /app/web/dist +#30 CACHED + +#31 [app stage-2 8/9] COPY templates /app/templates +#31 CACHED + +#32 [app web-builder 2/6] WORKDIR /web +#32 CACHED + +#33 [app stage-2 5/9] COPY --from=go-builder /events /app/events +#33 CACHED + +#34 [app stage-2 3/9] WORKDIR /app +#34 CACHED + +#35 [app go-builder 3/7] COPY go.mod go.sum ./ +#35 CACHED + +#36 [app go-builder 2/7] WORKDIR /src +#36 CACHED + +#37 [app stage-2 4/9] COPY --from=go-builder /server /app/server +#37 CACHED + +#38 [app web-builder 3/6] COPY web/package.json web/package-lock.json* ./ +#38 CACHED + +#39 [app go-builder 6/7] RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /server ./cmd/server +#39 CACHED + +#40 [app web-builder 5/6] COPY web/ ./ +#40 CACHED + +#41 [app web-builder 6/6] RUN npm run build +#41 CACHED + +#42 [app stage-2 7/9] COPY deploy/postgres/goose /app/deploy/postgres/goose +#42 CACHED + +#43 [app go-builder 4/7] RUN go mod download +#43 CACHED + +#44 [app web-builder 4/6] RUN npm ci +#44 CACHED + +#45 [events stage-2 9/9] COPY configs /app/configs +#45 CACHED + +#46 [events] exporting to image +#46 exporting layers done +#46 exporting manifest sha256:823be86c38b4ddeaeea085fd254c29390c69c36a0cbbd30616b2c0d9df838262 done +#46 exporting config sha256:6c371cb7268766601efc1e6947676ea4846b7ac82320f54aa96f52c3c1328860 done +#46 exporting attestation manifest sha256:b861cf5a213926c5f6258dd975ccc97fe576ae62ec8d0c80375a9613f0c7b48e done +#46 exporting manifest list sha256:cf79bda494564f70f3297a664da6602d33383e515b89e0fe0af8286af8e5086b done +#46 naming to docker.io/library/shuimu-agent-events:test done +#46 unpacking to docker.io/library/shuimu-agent-events:test done +#46 DONE 0.0s + +#47 [app] exporting to image +#47 exporting layers done +#47 exporting manifest sha256:781ce6516cf999a0d980d030dff13e882b48e9f3d013fa20d979684bf53f64e9 done +#47 exporting config sha256:531d36816f6924d866c81f3b7fb596cd84c8b9325a0267890eb2e469af832399 done +#47 exporting attestation manifest sha256:32cc3adb55860a6602c08955b64a55c00c81a3dbb7d480faaf6ff8f0b561a045 done +#47 exporting manifest list sha256:63deba11174d0148e47d9e61ce31031ff0de302ba4e398edc45d751e7ec9b0eb done +#47 naming to docker.io/library/shuimu-agent-app:test done +#47 unpacking to docker.io/library/shuimu-agent-app:test done +#47 DONE 0.0s + +#48 [app] resolving provenance for metadata file +#48 DONE 0.0s + +#49 [events] resolving provenance for metadata file +#49 DONE 0.0s + Image shuimu-pi-agent:test Built + Image shuimu-agent-app:test Built + Image shuimu-agent-events:test Built + Container shuimu-system-pg-test Running + Container shuimu-pi-agent-test Running + Container shuimu-agent-app-test Recreate + Container shuimu-agent-events-test Recreate + Container shuimu-agent-events-test Recreated + Container shuimu-agent-app-test Recreated + Container shuimu-system-pg-test Waiting + Container shuimu-system-pg-test Waiting + Container shuimu-system-pg-test Healthy + Container shuimu-agent-app-test Starting + Container shuimu-system-pg-test Healthy + Container shuimu-agent-events-test Starting + Container shuimu-agent-app-test Started + Container shuimu-agent-events-test Started +==> [test] 镜像与容器已更新