diff --git a/.doc/ops/short-term/2026-09-16-matrix-deep-test-promote-test.md b/.doc/archive/ops/short-term/2026-09-16-matrix-deep-test-promote-test.md similarity index 74% rename from .doc/ops/short-term/2026-09-16-matrix-deep-test-promote-test.md rename to .doc/archive/ops/short-term/2026-09-16-matrix-deep-test-promote-test.md index ffc55df3..af565c08 100644 --- a/.doc/ops/short-term/2026-09-16-matrix-deep-test-promote-test.md +++ b/.doc/archive/ops/short-term/2026-09-16-matrix-deep-test-promote-test.md @@ -1,6 +1,6 @@ --- title: "FEATURE-MATRIX 深度测试 + 晋升部署 test" -status: in_progress +status: done created: 2026-09-16 updated: 2026-09-16 owner: Cursor-Auto @@ -30,18 +30,18 @@ mutex: infra ## 步骤 -1. [ ] 认领占槽 -2. [ ] 自动化深度回归 -3. [ ] live `:8080` 抽检 -4. [ ] PI 抽样 -5. [ ] 晋升 test 并冒烟 -6. [ ] 报告与归档 +1. [x] 认领占槽 +2. [x] 自动化深度回归 +3. [x] live `:8080` 抽检 +4. [x] PI 抽样 +5. [x] 晋升 test 并冒烟 +6. [x] 报告与归档 ## 验收标准 -- [ ] 矩阵已实现行均有 PASS 证据 -- [ ] `:8081` health/ready schema=47;`test-env-smoke.sh` PASS -- [ ] tag `rc-v1.0.0-beta.2`;报告归档 +- [x] 矩阵已实现行均有 PASS 证据 +- [x] `:8081` health/ready schema=47;`test-env-smoke.sh` PASS +- [x] tag `rc-v1.0.0-beta.2`;报告归档 ## 相关链接 diff --git a/.doc/ops/CURRENT.md b/.doc/ops/CURRENT.md index 2f9bc0c9..3a9f54b7 100644 --- a/.doc/ops/CURRENT.md +++ b/.doc/ops/CURRENT.md @@ -5,15 +5,15 @@ ## 焦点 -1. **MATRIX 深度测试 + 晋升 test**:`feature/matrix-deep-test-promote-test` → `rc-v1.0.0-beta.2` -2. **首发后 backlog**:多意图 U9–U12、软件项目自举、FAV、完整 PI change-report 叙事 -3. **MULTI-INTENT HITL**:核心 U1–U8 已合入;U9–U12 不阻塞首版 +1. **首发后 backlog**:多意图 U9–U12、软件项目自举、FAV、完整 PI change-report 叙事 +2. **MULTI-INTENT HITL**:核心 U1–U8 已合入;U9–U12 不阻塞首版 +3. **运维**:夜间 CI `RUN_PI_E2E=1`;`-race` TempDir flake 基建;`promote-to-test` 避免 origin rebase ## 并行认领 | owner | task | branch | worktree | mutex | status | |-------|------|--------|----------|-------|--------| -| Cursor-Auto | 2026-09-16-matrix-deep-test-promote-test | feature/matrix-deep-test-promote-test | - | infra | in_progress | +| Cursor-Auto | 2026-09-16-matrix-deep-test-promote-test | feature/matrix-deep-test-promote-test | - | infra | done | | Cursor-Auto | 2026-09-16-production-ready-gates | docs/production-ready-flip | - | ci | done | | Cursor-Auto | 2026-09-16-demo-seed-pollution | fix/demo-data-pollution-web | - | web | done | | Cursor | 2026-09-16-multi-intent-u8-task-generate | feature/multi-intent-u8-task-generate | - | intent-plan | done | @@ -95,7 +95,7 @@ | holder | phase | since | scope | queue | |--------|-------|-------|-------|-------| -| Cursor-Auto | merging | 2026-09-16T13:20Z | matrix deep test → promote rc-v1.0.0-beta.2 + test rebuild | - | +| - | idle | - | - | - | **phase**: `idle` | `merging` | `smoke` | `e2e` @@ -106,7 +106,7 @@ | 环境 | 端口 | schema | 状态 | |------|------|--------|------| | dev | 8080 | **47** | healthy(`pi-agent` typed-result-v1;events worker `:8088`;notify/advance/projection live、fav off;health+ready PASS;demo 6001–6010 retired) | -| test | 8081 | **47** | healthy(`rc-v1.0.0-beta.1`;pi-agent `:18866`;events `:8089`;notify/advance/projection live、fav off;health+ready PASS;schema 与 dev 对齐 47) | +| test | 8081 | **47** | healthy(`rc-v1.0.0-beta.2`;pi-agent `:18866`;events `:8089`;notify/advance/projection live、fav off;health+ready PASS;矩阵深度测试 live 项目 3 PASS) | | main | 8000 | **47** | healthy(app + events + runner + DB;与 dev/test 对齐) | ## SSOT diff --git a/.doc/status/FEATURE-MATRIX.md b/.doc/status/FEATURE-MATRIX.md index ef7a182c..c2b10c60 100644 --- a/.doc/status/FEATURE-MATRIX.md +++ b/.doc/status/FEATURE-MATRIX.md @@ -16,7 +16,7 @@ | 模块 | 能力 | 状态 | 证据 | 缺口/后续 | mutex | |------|------|------|------|-----------|-------| | 意图识别 L1 | 18 类 Intent + 三分支消解 | partial | [system-design/intent-recognition](../system-design/intent-recognition/);[现场专项审计](../audit/2026-09-13-conversation-intent-runtime-state.md);[运行态报告](../test-reports/2026-09-13-conversation-intent-runtime-state-test-report.md);[双标签活验](../test-reports/assets/2026-09-15-conversation-intent-dual-tab/live.json);[多意图复核方案](../system-design/2026-09-15-multi-intent-hitl-plan.md);[U1 契约](../test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md);[U2 分段](../test-reports/2026-09-15-multi-intent-u2-segmenter-test-report.md);[U3 PG](../test-reports/2026-09-15-multi-intent-u3-intentflow-pg-test-report.md) | 明确写动作与只读总结已分流;双标签 `DOC_BUSY` 已签(项目 6275)。多意图核心 U1–U8 已完成;U9–U12 不阻塞首版。intent 纯依赖边界不得回退 | `intent` | -| 多意图持久计划 | app/intentflow 生命周期与 HITL 契约 | partial | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[U1](../test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md)–[U8](../test-reports/2026-09-16-multi-intent-u8-task-generate-test-report.md) | U1–U8 核心首版已完成。U9–U12 不阻塞。默认 tier=legacy。真实 PI generate 待 runner URL。共享环境 schema 45 待晋升 | `intent-plan` | +| 多意图持久计划 | app/intentflow 生命周期与 HITL 契约 | partial | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[U1](../test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md)–[U8](../test-reports/2026-09-16-multi-intent-u8-task-generate-test-report.md);[矩阵深度测试](../test-reports/2026-09-16-matrix-deep-test-promote-test-test-report.md) | U1–U8 核心首版已完成。U9–U12 不阻塞。默认 tier=legacy。真实 PI generate 待 runner URL。共享环境 schema 已对齐 **47** | `intent-plan` | | 对话 / ctxmgr | 多轮上下文、记忆、摘要 | partial | [system-design/multi-turn-dialogue](../system-design/multi-turn-dialogue/);[刷新恢复专项审计](../audit/2026-09-13-chat-history-refresh-disappears.md);[U10 端口化](../archive/ops/2026-09-15-chatlog-contextasm-u10.md);[U10 报告](../test-reports/2026-09-15-chatlog-contextasm-u10-test-report.md);[门禁 B3](../test-reports/2026-09-16-chat-refresh-gate-test-report.md) | `CHAT-HISTORY-REFRESH` 与发布门禁「激活后文档任务 + 重登/重启」已签(项目 6359)。U10 原地端口 **停止扩面**。语义摘要(D5 backlog) | `chat` | | 智能体小队 | 角色-任务-工作区-黑板 | done | [system-design/agent-squad](../system-design/agent-squad/);[test 2026-09-07](../test-reports/2026-09-07-dynamic-squad-planning-test-report.md) | 非关键步骤降级(A5/A6 backlog) | `squad` | | 工作流治理 | 三正式工作流 + 阶段门禁 | partial | [remediation/three-workflows](../remediation/2026-09-12-three-workflows-strict-governance-remediation.md);[test 2026-09-12](../test-reports/2026-09-12-three-workflows-governance-remediation-test-report.md);[冻结态/职责可选整改](../remediation/2026-09-14-workflow-plan-409-frozen-and-optional-duties-remediation.md);[Wave 5 页面矩阵](../test-reports/2026-09-14-workflow-plan-409-frozen-and-optional-duties-test-report.md);[职责-动作鉴权](../test-reports/2026-09-14-governance-action-level-authz-test-report.md);[真实 PI 三工作流 E2E](../test-reports/2026-09-16-pi-three-workflow-e2e-test-report.md) | 设置页/DutyMode + 动作级鉴权已落地;真实 PI 三工作流 E2E 已签。后续:none 文档真实 PI 审批长链路;模块可仍 partial | `workflow` | diff --git a/.doc/test-reports/2026-09-16-matrix-deep-test-promote-test-test-report.md b/.doc/test-reports/2026-09-16-matrix-deep-test-promote-test-test-report.md new file mode 100644 index 00000000..a0959e4b --- /dev/null +++ b/.doc/test-reports/2026-09-16-matrix-deep-test-promote-test-test-report.md @@ -0,0 +1,94 @@ +# FEATURE-MATRIX 深度测试与 test 晋升报告 + +## 一、 测试背景 (Background) + +`production_ready=yes` 后需按 FEATURE-MATRIX 对已实现模块做分层深度回归,并将本地 `dev` 晋升到 `test`(`rc-v1.0.0-beta.2`)以支撑长期实测。不重跑完整 28min 三工作流 PI;以短测全量 + 定向包 + live API + 一次真实 PI 抽样为门禁。 + +## 二、 测试目标 (Test Objectives) + +- 矩阵已实现行均有自动化或 live PASS 证据 +- 真实 PI 抽样可用(typed-result dual-track) +- `test` 分支合并 `dev`,tag `rc-v1.0.0-beta.2`,`:8081` rebuild 冒烟 PASS,schema=47 + +## 三、 测试方案与环境 (Test Plan & Environment) + +| 层级 | 环境 | 说明 | +|------|------|------| +| Wave 1 | 本地 Go/npm | unset 污染 env;隔离库 `agent_gov_matrix@5434` | +| Wave 2 | dev `:8080` | pi-agent;项目 6367 | +| Wave 3 | runner `:18865` | MiniMax-M2.7-highspeed | +| Wave 4 | test `:8081` | events `:8089`;pi `:18866`;项目 3 | + +产物目录:`.doc/test-reports/assets/2026-09-16-matrix-deep-test/` + +## 四、 预期结果 (Expected Results) + +各 Wave exit 0 / overall=PASS;`纯软件项目自举` 记 N/A。 + +## 五、 实际测试结果与判定 (Actual Results & Evaluation) + +### Wave 1 — 自动化 + +| 用例 | 输入 | 实际输出 | 判定 | +|------|------|----------|------| +| go vet | `go vet ./...` | exit 0(`vet.txt`) | PASS | +| go test -short | 全包 short | exit 0(`short.txt`) | PASS | +| arch-check | `--mode block` | production gate passed | PASS | +| npm test + bundle | `npm test`;`check-prod-bundle.sh` | 376+32 pass;bundle PASS | PASS | +| 模块定向 | intent/chat/squad/workflow/authz/doc*/agent/events | 全部 ok(`modules.txt`) | PASS | +| 治理 PG | `TestWorkflowGovernance_PG_|TestE2E_WorkflowGovernance` | 2 PASS(`governance-pg-verbose.txt`) | PASS | + +### Wave 2 — live `:8080` + +- **输入**: health/login/create/chat/guest403/conflict/termination/demo(`zhanggong` 已停用,改用 `lizhuguan`) +- **实际输出**: 项目 **6367**,`overall=PASS`(`live-8080.json`) +- **判定**: PASS + +### Wave 3 — PI 抽样 + +- **输入**: `RUN_PI_E2E=1 go test ./internal/agent -run TestPiAgentTypedResult_LiveDualTrack` +- **实际输出**: success/fail/cancel/timeout 均 PASS,3.28s(`pi-sample-typed.txt`) +- **判定**: PASS(未升格三链) + +### Wave 4 — 晋升 test + +- **输入**: `git merge --no-ff dev` → tag `rc-v1.0.0-beta.2` → `env-service.sh test rebuild` → smoke + live +- **实际输出**: health schema **47**;`test-env-smoke.sh` SUCCESS;live 项目 **3** overall PASS(`live-8081.json`) +- **注记**: `git-workflow-helper.sh promote-to-test` 的 `pull --rebase origin test` 曾触发危险 rebase,已 `rebase --abort` 后改为本地 merge;勿对已分叉的本地 `test` 盲目 rebase +- **判定**: PASS + +### 矩阵行汇总 + +| 模块 | 判定 | 证据 | +|------|------|------| +| 意图 / intent-plan | PASS | modules + short | +| 对话 / ctxmgr | PASS | live-8080 chat/window/guest | +| squad | PASS | modules | +| 工作流治理 | PASS | governance-pg + live conflict/activate/preview | +| 纯软件自举 | N/A | planned | +| IAM | PASS | live authz guest 403 + create/members | +| docgov / docrevision | PASS | short packages(未重跑 Round20 UI) | +| 前端工作台 | PASS | npm + B4 路径 live | +| PI Runner | PASS | typed-result sample | +| 三环境运维 | PASS | health 三环境 47;test smoke | +| CI / E2E | PASS | governance PG + 既有门禁证据 | +| 事件解耦 | PASS | events short packages | + +## 六、 自动化测试套件汇总 (Test Suite Execution) + +```text +go vet ./... → exit 0 +go test -short ./... → exit 0 +./scripts/arch-check.sh --mode block → PASS +cd web && npm test → 376 + 32 PASS +./scripts/check-prod-bundle.sh → PASS +治理 PG(agent_gov_matrix) → 2 PASS +PI typed-result live → 4/4 PASS +./scripts/test-env-smoke.sh → SUCCESS +``` + +## 七、 测试结论与后续优化建议 (Conclusion & Next Steps) + +- FEATURE-MATRIX 已实现能力深度回归 **PASS**;本地 `test` 已部署 `rc-v1.0.0-beta.2`(schema 47)。 +- 建议修正 `git-workflow-helper.sh promote-to-test`:对本地晋升跳过 `pull --rebase`,或改为 `pull --ff-only`/`merge`。 +- 远端推送 `test`/tag 需用户明确授权后再执行 `./scripts/git-push-dev.sh test`。 diff --git a/.doc/test-reports/assets/2026-09-16-matrix-deep-test/live-8081.json b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/live-8081.json new file mode 100644 index 00000000..028a4181 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/live-8081.json @@ -0,0 +1,75 @@ +{ + "base": "http://127.0.0.1:8081", + "project_id": 3, + "overall": "PASS", + "cases": [ + { + "id": "health", + "verdict": "PASS", + "output": { + "status": "ok", + "env": "test", + "agent_backend": "pi-agent", + "version": "v1.0", + "shared_kb_port": 5432, + "database_ready": true, + "schema_version": 47, + "schema_ready": true, + "task_store_ready": true + } + }, + { + "id": "login", + "verdict": "PASS", + "output": { + "admin_id": 4, + "owner_id": 26, + "reviewer_id": 27, + "approver_id": 28 + } + }, + { + "id": "create_project", + "verdict": "PASS", + "http": 201, + "output": { + "project_id": 3, + "snip": "{\"id\":3,\"code\":\"tst-052432\",\"name\":\"test晋升抽检-052432\",\"customer_name\":\"\",\"device_type\":\"超声软组织手术吸引设备\",\"intended_use\":\"test promote\",\"target_market\":\"中国 NMPA\",\"cur" + } + }, + { + "id": "save_plan", + "verdict": "PASS", + "http": 200, + "output": { + "snip": "{\"project_id\":3,\"lifecycle_status\":\"planning\",\"active_workflow_key\":\"\",\"workflow_selection_version\":1,\"workflow_plan_revision\":1,\"plan\":{\"workflow_definition_key\":\"main\",\"workflow_version\":1,\"workflow_version_id\":1,\"stag" + } + }, + { + "id": "conflict_409", + "verdict": "PASS", + "http": 409, + "output": { + "business_code": "ERR_CONCURRENT_SWITCH" + } + }, + { + "id": "activate", + "verdict": "PASS", + "http": 200, + "output": { + "preview_http": 200, + "snip": "{\"project_id\":3,\"lifecycle_status\":\"active\",\"active_workflow_key\":\"main\",\"instance\":{\"id\":1,\"project_id\":3,\"workflow_version_id\":1,\"instance_no\":1,\"status\":\"active\",\"config_revision\":1,\"plan_hash\":\"336eead79e6f4a567e58a1" + } + }, + { + "id": "termination_preview", + "verdict": "PASS", + "http": 200, + "output": { + "instance_id": 1, + "can_terminate": true + } + } + ] +} \ No newline at end of file diff --git a/.doc/test-reports/assets/2026-09-16-matrix-deep-test/promote-test.txt b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/promote-test.txt new file mode 100644 index 00000000..493fdd59 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/promote-test.txt @@ -0,0 +1,8 @@ +==> 切换至 test 分支并合并 dev 当前稳定节点... +Switched to branch 'test' +Auto-merging .doc/status/FEATURE-MATRIX.md +CONFLICT (content): Merge conflict in .doc/status/FEATURE-MATRIX.md +error: Merging is not possible because you have unmerged files. +hint: Fix them up in the work tree, and then use 'git add/rm ' +hint: as appropriate to mark resolution and make a commit. +fatal: Exiting because of an unresolved conflict. diff --git a/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-env-smoke.txt b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-env-smoke.txt new file mode 100644 index 00000000..ab89c96f --- /dev/null +++ b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-env-smoke.txt @@ -0,0 +1,4 @@ +[PASS] test app SPA / +[PASS] test app deep link /projects +[PASS] pi-agent /health +[SUCCESS] test env smoke passed diff --git a/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-events-health.json b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-events-health.json new file mode 100644 index 00000000..751a3b9a --- /dev/null +++ b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-events-health.json @@ -0,0 +1 @@ +{"env":"test","owner":"events-1","status":"ok"} diff --git a/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-pi-health.json b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-pi-health.json new file mode 100644 index 00000000..5e02d28e --- /dev/null +++ b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-pi-health.json @@ -0,0 +1,14 @@ +{ + "ok": true, + "service": "shuimu-pi-agent-runner", + "endpoint_url": "https://api.minimaxi.com/v1", + "model_id": "MiniMax-M2.7-highspeed", + "api": "openai-compatible", + "has_token": true, + "tavily": { + "active": true, + "keys_count": 2 + }, + "data_dir": "/app/data/workspaces", + "uptime": 63.288472122 +} diff --git a/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-ready.json b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-ready.json new file mode 100644 index 00000000..eff3b0c8 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-ready.json @@ -0,0 +1 @@ +{"status":"ok","env":"test","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"database_ready":true,"schema_version":47,"schema_ready":true,"task_store_ready":true} diff --git a/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-rebuild.txt b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-rebuild.txt new file mode 100644 index 00000000..362ddff3 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-rebuild.txt @@ -0,0 +1,325 @@ +==> [test] 重建镜像并重建容器... + Image shuimu-pi-agent:test Building + Image agent-test-app Building +#1 [internal] load local bake definitions +#1 reading from stdin 993B done +#1 DONE 0.0s + +#2 [app internal] load build definition from Dockerfile +#2 transferring dockerfile: 1.41kB done +#2 DONE 0.0s + +#3 [pi-agent internal] load build definition from Dockerfile +#3 transferring dockerfile: 1.53kB done +#3 DONE 0.0s + +#4 [auth] library/node:pull token for docker.1ms.run +#4 DONE 0.0s + +#5 [app internal] load metadata for docker.io/library/debian:bookworm-slim +#5 DONE 0.1s + +#6 [auth] library/golang:pull token for docker.1ms.run +#6 DONE 0.0s + +#7 [pi-agent internal] load metadata for docker.io/library/node:22-bookworm-slim +#7 ... + +#8 [app internal] load metadata for docker.io/library/node:22-bookworm +#8 DONE 0.4s + +#7 [pi-agent internal] load metadata for docker.io/library/node:22-bookworm-slim +#7 DONE 0.4s + +#9 [pi-agent internal] load .dockerignore +#9 transferring context: 234B done +#9 DONE 0.0s + +#10 [pi-agent 1/10] 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: 19.43kB done +#11 DONE 0.0s + +#12 [pi-agent 7/10] COPY deploy/pi-agent/runner.mjs /app/runner.mjs +#12 CACHED + +#13 [pi-agent 4/10] RUN pi --version +#13 CACHED + +#14 [pi-agent 6/10] COPY deploy/pi-agent/extensions/ /app/extensions/ +#14 CACHED + +#15 [pi-agent 3/10] RUN npm install -g @earendil-works/pi-coding-agent@0.85.1 --omit=dev +#15 CACHED + +#16 [pi-agent 9/10] COPY deploy/pi-agent/entrypoint.sh /app/entrypoint.sh +#16 CACHED + +#17 [pi-agent 8/10] COPY deploy/pi-agent/settle-policy.mjs /app/settle-policy.mjs +#17 CACHED + +#18 [pi-agent 2/10] RUN set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl git bash; rm -rf /var/lib/apt/lists/* +#18 CACHED + +#19 [pi-agent 5/10] WORKDIR /app +#19 CACHED + +#20 [pi-agent 10/10] RUN chmod +x /app/entrypoint.sh /app/runner.mjs +#20 CACHED + +#21 [pi-agent] exporting to image +#21 exporting layers done +#21 exporting manifest sha256:c303835b3e594bee402b18ebb8b4df7ecf32140630b175f6d0482a6864c5e07d done +#21 exporting config sha256:16a09d2dc4d435fbbc17046d8a66f43b8d0d28720e72048d332deb76790f01d2 done +#21 exporting attestation manifest sha256:b2fded5fcfb2248f89cca8ad838a7bac2f2280e641ad8609402d7907c04fcdb5 done +#21 exporting manifest list sha256:9e45b992348a72523dbdcc8ca18184440d600393a754e78438ce8bc1d70c2fd2 done +#21 naming to docker.io/library/shuimu-pi-agent:test done +#21 unpacking to docker.io/library/shuimu-pi-agent:test 0.0s done +#21 DONE 0.0s + +#22 [pi-agent] resolving provenance for metadata file +#22 DONE 0.0s + +#23 [app internal] load metadata for docker.io/library/golang:1.23-bookworm +#23 DONE 2.2s + +#9 [app internal] load .dockerignore +#9 CACHED + +#24 [app stage-2 1/8] FROM docker.io/library/debian:bookworm-slim@sha256:88200866dfff7ea7f5cbcb6ec7c8a701889efe6fe859fe64d6990e4b07ea4171 +#24 resolve docker.io/library/debian:bookworm-slim@sha256:88200866dfff7ea7f5cbcb6ec7c8a701889efe6fe859fe64d6990e4b07ea4171 done +#24 DONE 0.0s + +#25 [app go-builder 1/6] FROM docker.io/library/golang:1.23-bookworm@sha256:167053a2bb901972bf2c1611f8f52c44d5fe7e762e5cab213708d82c421614db +#25 resolve docker.io/library/golang:1.23-bookworm@sha256:167053a2bb901972bf2c1611f8f52c44d5fe7e762e5cab213708d82c421614db done +#25 DONE 0.0s + +#26 [app web-builder 1/6] FROM docker.io/library/node:22-bookworm@sha256:8a34c4ab3ea2c5cd194f07e317b2a8f09461d3c8b05c4e34c8ccd56d56024c4d +#26 resolve docker.io/library/node:22-bookworm@sha256:8a34c4ab3ea2c5cd194f07e317b2a8f09461d3c8b05c4e34c8ccd56d56024c4d done +#26 DONE 0.0s + +#27 [app internal] load build context +#27 transferring context: 147.64MB 0.7s done +#27 DONE 0.7s + +#28 [app go-builder 3/6] COPY go.mod go.sum ./ +#28 CACHED + +#29 [app go-builder 2/6] WORKDIR /src +#29 CACHED + +#30 [app go-builder 4/6] RUN go mod download +#30 CACHED + +#31 [app web-builder 3/6] COPY web/package.json web/package-lock.json* ./ +#31 CACHED + +#32 [app web-builder 2/6] WORKDIR /web +#32 CACHED + +#33 [app web-builder 4/6] RUN npm ci +#33 CACHED + +#34 [app web-builder 5/6] COPY web/ ./ +#34 DONE 0.1s + +#35 [app go-builder 5/6] COPY . . +#35 DONE 0.3s + +#36 [app web-builder 6/6] RUN npm run build +#36 0.167 +#36 0.167 > shuimu-workbench@1.0.0 build +#36 0.167 > tsc && vite build +#36 0.167 +#36 4.544 vite v7.3.6 building client environment for production... +#36 4.580 transforming... +#36 ... + +#37 [app go-builder 6/6] RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /server ./cmd/server +#37 DONE 6.2s + +#36 [app web-builder 6/6] RUN npm run build +#36 11.85 ✓ 4108 modules transformed. +#36 12.42 rendering chunks... +#36 12.94 computing gzip size... +#36 13.04 dist/index.html 0.89 kB │ gzip: 0.52 kB +#36 13.04 dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff 4.42 kB +#36 13.04 dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 4.93 kB +#36 13.04 dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 5.21 kB +#36 13.04 dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 5.47 kB +#36 13.04 dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff 5.98 kB +#36 13.04 dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff 6.19 kB +#36 13.04 dist/assets/KaTeX_Size1-Regular-C195tn64.woff 6.50 kB +#36 13.04 dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 6.91 kB +#36 13.04 dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 6.91 kB +#36 13.04 dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf 7.59 kB +#36 13.04 dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff 7.66 kB +#36 13.04 dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff 7.72 kB +#36 13.04 dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 9.64 kB +#36 13.04 dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 10.34 kB +#36 13.04 dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf 10.36 kB +#36 13.04 dist/assets/KaTeX_Script-Regular-D5yQViql.woff 10.59 kB +#36 13.04 dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 11.32 kB +#36 13.04 dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 11.35 kB +#36 13.04 dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf 11.51 kB +#36 13.04 dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 12.03 kB +#36 13.04 dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 12.22 kB +#36 13.04 dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf 12.23 kB +#36 13.04 dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff 12.32 kB +#36 13.04 dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf 12.34 kB +#36 13.04 dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf 12.37 kB +#36 13.04 dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff 13.21 kB +#36 13.04 dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff 13.30 kB +#36 13.04 dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 13.57 kB +#36 13.04 dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff 14.11 kB +#36 13.04 dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff 14.41 kB +#36 13.04 dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff 16.03 kB +#36 13.04 dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 16.40 kB +#36 13.04 dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 16.44 kB +#36 13.04 dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf 16.65 kB +#36 13.04 dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 16.78 kB +#36 13.04 dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 16.99 kB +#36 13.04 dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff 18.67 kB +#36 13.04 dist/assets/KaTeX_Math-Italic-DA0__PXp.woff 18.75 kB +#36 13.04 dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff 19.41 kB +#36 13.04 dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf 19.44 kB +#36 13.04 dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf 19.57 kB +#36 13.04 dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf 19.58 kB +#36 13.04 dist/assets/KaTeX_Main-Italic-BMLOBm91.woff 19.68 kB +#36 13.04 dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf 22.36 kB +#36 13.04 dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf 24.50 kB +#36 13.04 dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 25.32 kB +#36 13.04 dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 26.27 kB +#36 13.04 dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf 27.56 kB +#36 13.04 dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 28.08 kB +#36 13.04 dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff 29.91 kB +#36 13.04 dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff 30.77 kB +#36 13.04 dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf 31.20 kB +#36 13.04 dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf 31.31 kB +#36 13.04 dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf 32.97 kB +#36 13.04 dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff 33.52 kB +#36 13.04 dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf 33.58 kB +#36 13.04 dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf 51.34 kB +#36 13.04 dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf 53.58 kB +#36 13.04 dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf 63.63 kB +#36 13.04 dist/assets/index-DhpBfxvE.css 35.50 kB │ gzip: 9.76 kB +#36 13.04 dist/assets/channel-BWcBR9m9.js 0.11 kB │ gzip: 0.12 kB +#36 13.04 dist/assets/init-Gi6I4Gst.js 0.15 kB │ gzip: 0.13 kB +#36 13.04 dist/assets/chunk-2Q5K7J3B-fvi-UXVX.js 0.19 kB │ gzip: 0.16 kB +#36 13.04 dist/assets/chunk-JWPE2WC7-G9Xeymi4.js 0.22 kB │ gzip: 0.17 kB +#36 13.04 dist/assets/chunk-XXDRQBXY-xL9d_pNj.js 0.22 kB │ gzip: 0.20 kB +#36 13.04 dist/assets/chunk-5VM5RSS4-DPQCvrQZ.js 0.36 kB │ gzip: 0.27 kB +#36 13.04 dist/assets/stateDiagram-v2-MP3YSRHH-BTyA19R_.js 0.39 kB │ gzip: 0.29 kB +#36 13.04 dist/assets/classDiagram-ZZMXUADV-ju1dtYDK.js 0.43 kB │ gzip: 0.30 kB +#36 13.04 dist/assets/classDiagram-v2-VYDZK3BY-ju1dtYDK.js 0.43 kB │ gzip: 0.30 kB +#36 13.04 dist/assets/chunk-POPQ4Y6H-ohWCggfc.js 0.50 kB │ gzip: 0.35 kB +#36 13.04 dist/assets/swimlanesDiagram-VR7AAH4N-CMd0mlZ_.js 0.51 kB │ gzip: 0.35 kB +#36 13.04 dist/assets/infoDiagram-27XIBGKW-JCNs47kX.js 0.55 kB │ gzip: 0.38 kB +#36 13.04 dist/assets/sizeCapture-INFHLROL-B5tX4lBk.js 0.90 kB │ gzip: 0.51 kB +#36 13.04 dist/assets/ordinal-Cboi1Yqb.js 1.19 kB │ gzip: 0.57 kB +#36 13.04 dist/assets/railroadDiagram-O6MQD6OU-DerDjLon.js 1.57 kB │ gzip: 0.73 kB +#36 13.04 dist/assets/abnfDiagram-VCTEODGH-BqgLUvbA.js 1.77 kB │ gzip: 0.87 kB +#36 13.04 dist/assets/chunk-F27PBJKO-DgJC4NP8.js 1.88 kB │ gzip: 0.83 kB +#36 13.04 dist/assets/pegDiagram-XKGWAZYB-BSdBF8u3.js 1.92 kB │ gzip: 0.90 kB +#36 13.04 dist/assets/ebnfDiagram-PWID7BFC-B1Vh2lZu.js 1.97 kB │ gzip: 0.86 kB +#36 13.04 dist/assets/arc-Dg1z7rL4.js 3.43 kB │ gzip: 1.48 kB +#36 13.04 dist/assets/diagram-Z3DM3KII-MMEbqEao.js 4.18 kB │ gzip: 1.82 kB +#36 13.04 dist/assets/defaultLocale-DX6XiGOO.js 4.69 kB │ gzip: 2.18 kB +#36 13.04 dist/assets/linear-IbVmzniw.js 5.65 kB │ gzip: 2.31 kB +#36 13.04 dist/assets/diagram-UQ7AKVKN-DPZ7_mDB.js 6.04 kB │ gzip: 2.60 kB +#36 13.04 dist/assets/pieDiagram-E7YTZNPT-2ngtcoaI.js 6.26 kB │ gzip: 2.60 kB +#36 13.04 dist/assets/diagram-S7CK7UJ4-C7OEX6qE.js 8.18 kB │ gzip: 3.66 kB +#36 13.04 dist/assets/cynefinDiagram-5FMLGOSQ-BQH9LwOp.js 10.06 kB │ gzip: 3.61 kB +#36 13.04 dist/assets/stateDiagram-D77RDMKH-Dc0D62G4.js 10.33 kB │ gzip: 3.61 kB +#36 13.04 dist/assets/dagre-GXQ25YYZ-wv3TCqIH.js 10.64 kB │ gzip: 4.01 kB +#36 13.04 dist/assets/diagram-VSXAHHWV-u2vQ4soy.js 10.68 kB │ gzip: 4.11 kB +#36 13.04 dist/assets/chunk-SVP7TREG-aEarUKZP.js 15.73 kB │ gzip: 4.41 kB +#36 13.04 dist/assets/diagram-VX7I27RA-Cb7wTojJ.js 15.92 kB │ gzip: 5.68 kB +#36 13.04 dist/assets/ishikawaDiagram-5VMMS53U-CznyBeyE.js 17.43 kB │ gzip: 6.62 kB +#36 13.04 dist/assets/kanban-definition-UXKFOSKX-aT8ET1nQ.js 20.26 kB │ gzip: 7.18 kB +#36 13.04 dist/assets/mindmap-definition-YA3MSWOX-_5EdLs8X.js 23.14 kB │ gzip: 7.80 kB +#36 13.04 dist/assets/sankeyDiagram-P5KCCOFB-BM7tDQn_.js 23.16 kB │ gzip: 8.54 kB +#36 13.04 dist/assets/journeyDiagram-3NMN7TZE-CedQ2jwu.js 23.54 kB │ gzip: 8.33 kB +#36 13.04 dist/assets/wardleyDiagram-VM6X3IG4-D_YsZsg2.js 25.47 kB │ gzip: 6.77 kB +#36 13.04 dist/assets/gitGraphDiagram-WWUBYQGX-GtfdtO4t.js 29.38 kB │ gzip: 8.68 kB +#36 13.04 dist/assets/erDiagram-RLTQ6QDP-CGMTHkNL.js 30.76 kB │ gzip: 10.57 kB +#36 13.04 dist/assets/timeline-definition-24CTP7MA-ogOAUlJu.js 30.79 kB │ gzip: 10.13 kB +#36 13.04 dist/assets/requirementDiagram-BXWQKSXE-B-ETwSmf.js 30.97 kB │ gzip: 9.70 kB +#36 13.04 dist/assets/quadrantDiagram-AXDQQJYC-DlAs_B1Z.js 33.98 kB │ gzip: 9.96 kB +#36 13.04 dist/assets/layout-DWec3g51.js 35.43 kB │ gzip: 12.74 kB +#36 13.04 dist/assets/chunk-IMKFNOWR-DHDwQtrv.js 38.07 kB │ gzip: 12.51 kB +#36 13.04 dist/assets/blockDiagram-I7D4REHJ-BlCMDKFT.js 41.72 kB │ gzip: 13.56 kB +#36 13.04 dist/assets/vennDiagram-4TSXK5OY-D_pXpwex.js 41.93 kB │ gzip: 15.67 kB +#36 13.04 dist/assets/xychartDiagram-S5SC5T6Z-D2873Pm8.js 44.47 kB │ gzip: 12.58 kB +#36 13.04 dist/assets/chunk-TICWLB2K-DuvmdDPq.js 49.17 kB │ gzip: 15.74 kB +#36 13.04 dist/assets/flowDiagram-HODETNUW-BOtmA1VA.js 61.84 kB │ gzip: 19.87 kB +#36 13.04 dist/assets/c4Diagram-7LVT6UL2-C_41Uupm.js 65.44 kB │ gzip: 18.77 kB +#36 13.04 dist/assets/ganttDiagram-EL5Y4UJY-SPRaHc5m.js 69.66 kB │ gzip: 23.54 kB +#36 13.04 dist/assets/cose-bilkent-JH36ORCC-BjP8KHon.js 81.66 kB │ gzip: 22.46 kB +#36 13.04 dist/assets/swimlanes-42K2YHIH-BN7Q91pf.js 115.76 kB │ gzip: 42.49 kB +#36 13.04 dist/assets/sequenceDiagram-WJ2MYXX4-DuMA_SHp.js 116.93 kB │ gzip: 31.11 kB +#36 13.04 dist/assets/architectureDiagram-5GKGNRK7-CAfHi13y.js 151.79 kB │ gzip: 43.13 kB +#36 13.04 dist/assets/katex-HP8lGamR.js 261.31 kB │ gzip: 77.57 kB +#36 13.04 dist/assets/cytoscape.esm-BB4DxJjf.js 443.04 kB │ gzip: 141.98 kB +#36 13.04 dist/assets/cynefin-OW5HDTMX-BfYiBAUJ.js 687.91 kB │ gzip: 154.14 kB +#36 13.04 dist/assets/index-D0QTzO_j.js 5,736.12 kB │ gzip: 1,643.85 kB +#36 13.04 +#36 13.04 (!) Some chunks are larger than 500 kB after minification. Consider: +#36 13.04 - Using dynamic import() to code-split the application +#36 13.04 - Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks +#36 13.04 - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. +#36 13.04 ✓ built in 8.48s +#36 DONE 13.2s + +#38 [app stage-2 2/8] RUN set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl; rm -rf /var/lib/apt/lists/* +#38 CACHED + +#39 [app stage-2 6/8] COPY deploy/postgres/goose /app/deploy/postgres/goose +#39 CACHED + +#40 [app stage-2 7/8] COPY templates /app/templates +#40 CACHED + +#41 [app stage-2 3/8] WORKDIR /app +#41 CACHED + +#42 [app stage-2 4/8] COPY --from=go-builder /server /app/server +#42 CACHED + +#43 [app stage-2 5/8] COPY --from=web-builder /web/dist /app/web/dist +#43 CACHED + +#44 [app stage-2 8/8] COPY configs /app/configs +#44 CACHED + +#45 [app] exporting to image +#45 exporting layers done +#45 exporting manifest sha256:9fee6acf4f87174f86355426f3c7c451e0527b53266f1d013e28c40c75eeed1f done +#45 exporting config sha256:cec2dbc9f1cae5d5095ffb2b86fc18a23aa4580be63d0caa1462cbc8cf332e26 done +#45 exporting attestation manifest sha256:5a7218569febc6fb0974ffb97ead8475d3160b6bac700535e1ea14761c9efc0e done +#45 exporting manifest list sha256:0a9249ac6dee61c36017ec5b65b9bad1f15f9409acdc0217a9a95618168f0d9f done +#45 naming to docker.io/library/agent-test-app:latest done +#45 unpacking to docker.io/library/agent-test-app:latest 0.1s done +#45 DONE 0.1s + +#46 [app] resolving provenance for metadata file +#46 DONE 0.0s + Image agent-test-app Built + Image shuimu-pi-agent:test Built +time="2026-09-16T05:19:20Z" level=warning msg="Found orphan containers (shuimu-agent-events-test) 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-system-pg-test Running + Container shuimu-cursor-agent-test Running + Container shuimu-pi-agent-test Recreate + Container shuimu-agent-app-test Recreate + Container shuimu-agent-app-test Recreated + Container shuimu-pi-agent-test Recreated + Container shuimu-pi-agent-test Starting + Container shuimu-system-pg-test Waiting + Container shuimu-pi-agent-test Started + Container shuimu-system-pg-test Healthy + Container shuimu-agent-app-test Starting + Container shuimu-agent-app-test Started +==> [test] 镜像与容器已更新 diff --git a/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-rebuild2.txt b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-rebuild2.txt new file mode 100644 index 00000000..f1cd38cb --- /dev/null +++ b/.doc/test-reports/assets/2026-09-16-matrix-deep-test/test-rebuild2.txt @@ -0,0 +1,250 @@ +==> [test] 重建镜像并重建容器... + Image shuimu-pi-agent:test Building + Image agent-test-app Building + Image agent-test-events Building +#1 [internal] load local bake definitions +#1 reading from stdin 1.45kB 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 [app internal] load metadata for docker.io/library/node:22-bookworm +#5 DONE 0.2s + +#6 [pi-agent internal] load metadata for docker.io/library/node:22-bookworm-slim +#6 DONE 0.2s + +#7 [events internal] load metadata for docker.io/library/debian:bookworm-slim +#7 DONE 0.2s + +#8 [events internal] load .dockerignore +#8 transferring context: 234B done +#8 DONE 0.0s + +#9 [pi-agent 1/11] FROM docker.io/library/node:22-bookworm-slim@sha256:83f487e0a63425e5b4d146fb5e5be574bcbe1b7b843d3ebafdd95eaf7767a7e5 +#9 resolve docker.io/library/node:22-bookworm-slim@sha256:83f487e0a63425e5b4d146fb5e5be574bcbe1b7b843d3ebafdd95eaf7767a7e5 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 done +#10 DONE 0.0s + +#11 [events stage-2 1/9] FROM docker.io/library/debian:bookworm-slim@sha256:88200866dfff7ea7f5cbcb6ec7c8a701889efe6fe859fe64d6990e4b07ea4171 +#11 resolve docker.io/library/debian:bookworm-slim@sha256:88200866dfff7ea7f5cbcb6ec7c8a701889efe6fe859fe64d6990e4b07ea4171 done +#11 DONE 0.0s + +#12 [app web-builder 1/6] FROM docker.io/library/node:22-bookworm@sha256:8a34c4ab3ea2c5cd194f07e317b2a8f09461d3c8b05c4e34c8ccd56d56024c4d +#12 resolve docker.io/library/node:22-bookworm@sha256:8a34c4ab3ea2c5cd194f07e317b2a8f09461d3c8b05c4e34c8ccd56d56024c4d done +#12 DONE 0.0s + +#13 [app internal] load build context +#13 ... + +#14 [pi-agent internal] load build context +#14 transferring context: 18.57kB 0.1s done +#14 DONE 0.1s + +#15 [pi-agent 9/11] COPY deploy/pi-agent/settle-policy.mjs /app/settle-policy.mjs +#15 CACHED + +#16 [pi-agent 3/11] RUN npm install -g @earendil-works/pi-coding-agent@0.85.1 --omit=dev +#16 CACHED + +#17 [pi-agent 8/11] COPY deploy/pi-agent/result-v1.mjs /app/result-v1.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 7/11] COPY deploy/pi-agent/runner.mjs /app/runner.mjs +#20 CACHED + +#21 [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/* +#21 CACHED + +#22 [pi-agent 10/11] COPY deploy/pi-agent/entrypoint.sh /app/entrypoint.sh +#22 CACHED + +#23 [pi-agent 6/11] COPY deploy/pi-agent/extensions/ /app/extensions/ +#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:a1e1a5204c5a97ffb09f1b551de9279c66d27fc4772aa139db53d274ed483671 done +#25 exporting manifest list sha256:96b07cfd10c20ffcdeec2c0a726ca9ca33d0416383c93a7274e66ad1740e581a 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 [app internal] load build context +#13 ... + +#27 [app go-builder 2/7] WORKDIR /src +#27 CACHED + +#28 [app go-builder 3/7] COPY go.mod go.sum ./ +#28 CACHED + +#29 [app go-builder 4/7] RUN go mod download +#29 CACHED + +#13 [app internal] load build context +#13 transferring context: 148.57MB 0.7s done +#13 ... + +#30 [app go-builder 5/7] COPY . . +#30 DONE 0.3s + +#31 [events go-builder 6/7] RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /server ./cmd/server +#31 DONE 5.5s + +#32 [app go-builder 7/7] RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /events ./cmd/events +#32 DONE 0.5s + +#13 [app internal] load build context +#13 ... + +#33 [events web-builder 3/6] COPY web/package.json web/package-lock.json* ./ +#33 CACHED + +#34 [events web-builder 4/6] RUN npm ci +#34 CACHED + +#35 [events stage-2 3/9] WORKDIR /app +#35 CACHED + +#36 [events stage-2 4/9] COPY --from=go-builder /server /app/server +#36 CACHED + +#37 [events stage-2 5/9] COPY --from=go-builder /events /app/events +#37 CACHED + +#38 [events web-builder 6/6] RUN npm run build +#38 CACHED + +#39 [events stage-2 6/9] COPY --from=web-builder /web/dist /app/web/dist +#39 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 web-builder 2/6] WORKDIR /web +#41 CACHED + +#42 [events stage-2 7/9] COPY deploy/postgres/goose /app/deploy/postgres/goose +#42 CACHED + +#43 [events web-builder 5/6] COPY web/ ./ +#43 CACHED + +#44 [events stage-2 8/9] COPY templates /app/templates +#44 CACHED + +#45 [events stage-2 9/9] COPY configs /app/configs +#45 CACHED + +#43 [app web-builder 5/6] COPY web/ ./ +#43 CACHED + +#42 [app stage-2 7/9] COPY deploy/postgres/goose /app/deploy/postgres/goose +#42 CACHED + +#40 [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/* +#40 CACHED + +#35 [app stage-2 3/9] WORKDIR /app +#35 CACHED + +#38 [app web-builder 6/6] RUN npm run build +#38 CACHED + +#36 [app stage-2 4/9] COPY --from=go-builder /server /app/server +#36 CACHED + +#39 [app stage-2 6/9] COPY --from=web-builder /web/dist /app/web/dist +#39 CACHED + +#34 [app web-builder 4/6] RUN npm ci +#34 CACHED + +#37 [app stage-2 5/9] COPY --from=go-builder /events /app/events +#37 CACHED + +#44 [app stage-2 8/9] COPY templates /app/templates +#44 CACHED + +#33 [app web-builder 3/6] COPY web/package.json web/package-lock.json* ./ +#33 CACHED + +#41 [app web-builder 2/6] WORKDIR /web +#41 CACHED + +#46 [events] exporting to image +#46 exporting layers done +#46 exporting manifest sha256:ae93691f063530a0ce8de4c2ca82c3d750496398024b713799b6207f47df4867 done +#46 exporting config sha256:ca49ca76612131959a67a4e1cfccb4f66dada4c6274404032cf488809b741f28 done +#46 exporting attestation manifest sha256:672e1217ad9a66e1e89b0c54567fe96e54a791df8a41ca25339007d90390bcb6 done +#46 exporting manifest list sha256:28b7e83c01bf8f7eb6f24e054290b011421f12faff41f50e7565348b00d9a06b done +#46 naming to docker.io/library/agent-test-events:latest done +#46 unpacking to docker.io/library/agent-test-events:latest done +#46 DONE 0.0s + +#47 [app] exporting to image +#47 exporting layers done +#47 exporting manifest sha256:4c20923bc49e4dbe4d3c55adb7f2a630bc7df8039f41ab455d8418f5e1b24502 done +#47 exporting config sha256:0f894fb409f1c1c159d807d33729d2624bbf2df33247a0b9748b9520135e069d done +#47 exporting attestation manifest sha256:d5909ff63a4418100627bbeab97b259565d046ed8cd2337ec9080fc6bd52e003 done +#47 exporting manifest list sha256:4d76b7bdea5bd87994ebfa0d87a0c4f8b3e57a0777d04441e3210246ad96f29b done +#47 naming to docker.io/library/agent-test-app:latest done +#47 unpacking to docker.io/library/agent-test-app:latest done +#47 DONE 0.0s + +#48 [events] resolving provenance for metadata file +#48 DONE 0.0s + +#49 [app] resolving provenance for metadata file +#49 DONE 0.0s + +#13 [app internal] load build context + Image agent-test-events Built + Image shuimu-pi-agent:test Built + Image agent-test-app Built + Container shuimu-system-pg-test Running + Container shuimu-cursor-agent-test Running + Container shuimu-pi-agent-test Recreate + Container shuimu-agent-events-test Recreate + Container shuimu-agent-app-test Recreate + Container shuimu-agent-app-test Recreated + Container shuimu-agent-events-test Recreated + Container shuimu-pi-agent-test Recreated + Container shuimu-pi-agent-test Starting + Container shuimu-system-pg-test Waiting + Container shuimu-system-pg-test Waiting + Container shuimu-pi-agent-test Started + 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] 镜像与容器已更新 diff --git a/scripts/git-workflow-helper.sh b/scripts/git-workflow-helper.sh index 4afa1533..30606b07 100755 --- a/scripts/git-workflow-helper.sh +++ b/scripts/git-workflow-helper.sh @@ -99,9 +99,9 @@ case "${COMMAND}" in echo "错误: 请提供测试候选 Tag 名称,例如: $0 promote-to-test rc-v1.0.0-beta.1" exit 1 fi - echo "==> 切换至 test 分支并合并 dev 当前稳定节点..." + echo "==> 切换至 test 分支并合并本地 dev 当前稳定节点..." git checkout test - git pull --rebase origin test 2>/dev/null || true + # 本地晋升默认不 rebase origin(分叉时会把数百提交重放并易冲突)。需要同步远端时请显式 pull --ff-only/merge。 git merge --no-ff dev -m "release-candidate: 汇集 dev 功能至 test 分支,准备长期实测 [Tag: ${TAG}]" git tag -a "${TAG}" -m "实测候选版本: ${TAG}" echo "已成功合并至 test 并打上标签: ${TAG}!请启动 test 环境进行运维与功能测试。"