From 6a2f7cd3e610a263b6348efe9084e386dc88f30c Mon Sep 17 00:00:00 2001 From: weichen Date: Wed, 14 Oct 2026 05:32:44 +0000 Subject: [PATCH] Record final-window synchronization and local verification Why: Keep the migration task's current main baseline, preserved conflicts, fixed sources, and formal verification state reviewable before candidate CI. Evidence: SELF task-sync, fixed Frontend refresh, full test failures, Core SSH probe, and successful build receipts are recorded in the task card; current-head GATE remains pending. Impact: Record the fixed-port contention and transport stall without claiming a passing full local test or stage 7 acceptance. Refs: #537, #538, mq-dev-20261014-537-01 --- .task/feature-dependency-workspace.md | 668 ++++++++++++++++++++++++++ 1 file changed, 668 insertions(+) diff --git a/.task/feature-dependency-workspace.md b/.task/feature-dependency-workspace.md index b1fb2fea..4e323fd3 100644 --- a/.task/feature-dependency-workspace.md +++ b/.task/feature-dependency-workspace.md @@ -11792,3 +11792,671 @@ ce-simplify-code 的 reuse/quality/efficiency 三个独立只读扫描完成。 "receipt_sha256": "c24e4d9fe2938806963fd58bf3261dd0e4fcb6bd59a94db61feac60695a286c9" } ``` + + +```json +{ + "schema": 1, + "source": "SELF", + "timestamp": "2026-10-14T05:11:42.000751+00:00", + "command": "make task-sync", + "command_sha256": "6c0e3c8fbb3f43d01548180c9d9c147ce1c1c32ba1e78d3383961de470fe0d52", + "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace", + "common_dir": "/home/weichen/projects/Agent-System-Dev/.git", + "before": { + "head": "6160dae6fb0d591ccbfc2d2c17fc003a2ce209b0", + "branch": "feature/dependency-workspace", + "target_branch": "main", + "target_head": "4f84c2e1630cd0311643529fae1c3a99f1dd5d64", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {}, + "submodules": "", + "components": { + "manifest_sha256": "c8cddfff753bee796e6a75f9c22b5392f4b2cfeee340dadc61ff82e71238318b", + "components": { + "Logging-System": { + "state": "missing" + }, + "Error-Code-System": { + "state": "missing" + }, + "Agent-System-Core": { + "state": "missing" + }, + "Agent-System-UI": { + "state": "missing" + }, + "Agent-System-Frontend": { + "head": "74511db9a6fb12e17954cb0c3f8e8846a6ecf831", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Native": { + "head": "6ddd3da8df5ccc532f5b06f0aa8d49662e6f049e", + "branch": "feature/dependency-live-edit-probe", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Intent": { + "state": "missing" + }, + "Agent-Command": { + "state": "missing" + }, + "Agent-Squad": { + "state": "missing" + }, + "Agent-System-Backend": { + "head": "48649a37ee92373c639a384a2c5a9dfaa2ec4bbb", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Development-Guidelines": { + "head": "db3824bfdbfdcad91d0941495719f04dbeaca053", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-System-Documents": { + "head": "1de7d17110efaa5ed2ed30a44d415f28987f89f3", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + } + }, + "lock_sha256": "9075ff0f527b00ef8767db99d2e2a11783deace76babbffbff04cfdc5c8d255f", + "state_sha256": "00077b52438250f37b217eb353c2927c17350ca6e5d5ec8249f5f98f02873e2f" + } + }, + "after": { + "head": "6160dae6fb0d591ccbfc2d2c17fc003a2ce209b0", + "branch": "feature/dependency-workspace", + "target_branch": "main", + "target_head": "4f84c2e1630cd0311643529fae1c3a99f1dd5d64", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {}, + "submodules": "", + "components": { + "manifest_sha256": "c8cddfff753bee796e6a75f9c22b5392f4b2cfeee340dadc61ff82e71238318b", + "components": { + "Logging-System": { + "state": "missing" + }, + "Error-Code-System": { + "state": "missing" + }, + "Agent-System-Core": { + "state": "missing" + }, + "Agent-System-UI": { + "state": "missing" + }, + "Agent-System-Frontend": { + "head": "74511db9a6fb12e17954cb0c3f8e8846a6ecf831", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Native": { + "head": "6ddd3da8df5ccc532f5b06f0aa8d49662e6f049e", + "branch": "feature/dependency-live-edit-probe", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Intent": { + "state": "missing" + }, + "Agent-Command": { + "state": "missing" + }, + "Agent-Squad": { + "state": "missing" + }, + "Agent-System-Backend": { + "head": "48649a37ee92373c639a384a2c5a9dfaa2ec4bbb", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Development-Guidelines": { + "head": "db3824bfdbfdcad91d0941495719f04dbeaca053", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-System-Documents": { + "head": "1de7d17110efaa5ed2ed30a44d415f28987f89f3", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + } + }, + "lock_sha256": "9075ff0f527b00ef8767db99d2e2a11783deace76babbffbff04cfdc5c8d255f", + "state_sha256": "00077b52438250f37b217eb353c2927c17350ca6e5d5ec8249f5f98f02873e2f" + } + }, + "after_error": null, + "exit_code": 0, + "output": "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace'\n[worktree] before-sync: recursive component checks passed\n[worktree] before-update: recursive component checks passed\n[workspace] fixed application, documentation and guidelines sources prepared; edit branches preserved\n[transition] retained legacy source deps/logging-system; inspect make workspace-transition NAME=Logging-System before explicit ARGS=--apply\n[transition] retained legacy source deps/error-code-system; inspect make workspace-transition NAME=Error-Code-System before explicit ARGS=--apply\n[transition] retained legacy source modules/core; inspect make workspace-transition NAME=Agent-System-Core before explicit ARGS=--apply\n[transition] retained legacy source modules/ui; inspect make workspace-transition NAME=Agent-System-UI before explicit ARGS=--apply\n[transition] retained legacy source modules/frontend; inspect make workspace-transition NAME=Agent-System-Frontend before explicit ARGS=--apply\n[transition] retained legacy source deps/agent-native; inspect make workspace-transition NAME=Agent-Native before explicit ARGS=--apply\n[transition] retained legacy source deps/agent-intent; inspect make workspace-transition NAME=Agent-Intent before explicit ARGS=--apply\n[transition] retained legacy source deps/agent-command; inspect make workspace-transition NAME=Agent-Command before explicit ARGS=--apply\n[transition] retained legacy source deps/agent-squad; inspect make workspace-transition NAME=Agent-Squad before explicit ARGS=--apply\n[transition] retained legacy source modules/backend; inspect make workspace-transition NAME=Agent-System-Backend before explicit ARGS=--apply\n[transition] retained legacy source deps/development-guidelines; inspect make workspace-transition NAME=Development-Guidelines before explicit ARGS=--apply\n[transition] retained legacy source modules/documents; inspect make workspace-transition NAME=Agent-System-Documents before explicit ARGS=--apply\n[worktree] materialize: recursive component checks passed\n[worktree] after-sync: recursive component checks passed\n[evidence] WARN JSON receipt line 123: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 162: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 200: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 238: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 276: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 314: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 352: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 391: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 429: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 468: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 506: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 544: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 582: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 620: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 658: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 696: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 758: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 820: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 884: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 944: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 1004: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 1070: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 1135: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 1287: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 1439: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 1591: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 1743: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 1873: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 2005: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 2149: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 2291: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 2443: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 2595: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 2747: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 2903: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 3063: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 3229: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 3397: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 3561: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 3725: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 3890: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 4056: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 4222: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 4388: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 4556: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 4724: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 4892: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 5060: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 5228: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 5398: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 5568: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 5736: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 5906: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 6078: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 6250: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 6422: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 6594: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 6766: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 6938: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 7110: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 7282: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 7454: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 7626: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 7798: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 7970: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 8142: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 8314: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 8486: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 8658: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 8830: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 9002: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 9174: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 9346: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 9518: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 9666: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 9822: unverified: receipt has no complete after object ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 9914: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 10078: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 10242: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 10406: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 10570: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 10734: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 10898: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 11062: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 11252: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 11442: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[evidence] WARN JSON receipt line 11633: unverified: recorded ordinary component/source-lock objects differ from the current objects ——关键检查须重跑并以 make evidence 重新写入\n[synced] sync_base=4f84c2e1630cd0311643529fae1c3a99f1dd5d64 tested_head=6160dae6fb0d591ccbfc2d2c17fc003a2ce209b0 checked_at=2026-10-14T05:11:50Z changed=0\n[next] 跑正式验收(make test 等),证据写入任务卡\nmake[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace'\n", + "output_sha256": "87dd9f3157056783642fc531a1658071089ff2196164645a6e851fb540829e38", + "receipt_sha256": "7c6335d5e41b3c288b828a2d0c3fa058f1af5ede2e5b6a207f94a97d2cd79a8c" +} +``` + + +```json +{ + "schema": 1, + "source": "SELF", + "timestamp": "2026-10-14T05:12:21.813701+00:00", + "command": "make test", + "command_sha256": "22cc66aa7d2624b4eb4d5b61658614cd6c32477b123afbf7dbc7fc3d7d0f3713", + "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace", + "common_dir": "/home/weichen/projects/Agent-System-Dev/.git", + "before": { + "head": "6160dae6fb0d591ccbfc2d2c17fc003a2ce209b0", + "branch": "feature/dependency-workspace", + "target_branch": "main", + "target_head": "4f84c2e1630cd0311643529fae1c3a99f1dd5d64", + "status": " M .task/feature-dependency-workspace.md\n", + "tracked_diff_sha256": "2539ef0c86ceaf82a2d9bb5b3651e5bf14c986190a4d9f244911048847ecb783", + "untracked": {}, + "submodules": "", + "components": { + "manifest_sha256": "c8cddfff753bee796e6a75f9c22b5392f4b2cfeee340dadc61ff82e71238318b", + "components": { + "Logging-System": { + "state": "missing" + }, + "Error-Code-System": { + "state": "missing" + }, + "Agent-System-Core": { + "state": "missing" + }, + "Agent-System-UI": { + "state": "missing" + }, + "Agent-System-Frontend": { + "head": "74511db9a6fb12e17954cb0c3f8e8846a6ecf831", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Native": { + "head": "6ddd3da8df5ccc532f5b06f0aa8d49662e6f049e", + "branch": "feature/dependency-live-edit-probe", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Intent": { + "state": "missing" + }, + "Agent-Command": { + "state": "missing" + }, + "Agent-Squad": { + "state": "missing" + }, + "Agent-System-Backend": { + "head": "48649a37ee92373c639a384a2c5a9dfaa2ec4bbb", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Development-Guidelines": { + "head": "db3824bfdbfdcad91d0941495719f04dbeaca053", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-System-Documents": { + "head": "1de7d17110efaa5ed2ed30a44d415f28987f89f3", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + } + }, + "lock_sha256": "9075ff0f527b00ef8767db99d2e2a11783deace76babbffbff04cfdc5c8d255f", + "state_sha256": "00077b52438250f37b217eb353c2927c17350ca6e5d5ec8249f5f98f02873e2f" + } + }, + "after": { + "head": "6160dae6fb0d591ccbfc2d2c17fc003a2ce209b0", + "branch": "feature/dependency-workspace", + "target_branch": "main", + "target_head": "4f84c2e1630cd0311643529fae1c3a99f1dd5d64", + "status": " M .task/feature-dependency-workspace.md\n", + "tracked_diff_sha256": "2539ef0c86ceaf82a2d9bb5b3651e5bf14c986190a4d9f244911048847ecb783", + "untracked": {}, + "submodules": "", + "components": { + "manifest_sha256": "c8cddfff753bee796e6a75f9c22b5392f4b2cfeee340dadc61ff82e71238318b", + "components": { + "Logging-System": { + "state": "missing" + }, + "Error-Code-System": { + "state": "missing" + }, + "Agent-System-Core": { + "state": "missing" + }, + "Agent-System-UI": { + "state": "missing" + }, + "Agent-System-Frontend": { + "head": "74511db9a6fb12e17954cb0c3f8e8846a6ecf831", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Native": { + "head": "6ddd3da8df5ccc532f5b06f0aa8d49662e6f049e", + "branch": "feature/dependency-live-edit-probe", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Intent": { + "state": "missing" + }, + "Agent-Command": { + "state": "missing" + }, + "Agent-Squad": { + "state": "missing" + }, + "Agent-System-Backend": { + "head": "48649a37ee92373c639a384a2c5a9dfaa2ec4bbb", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Development-Guidelines": { + "head": "db3824bfdbfdcad91d0941495719f04dbeaca053", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-System-Documents": { + "head": "1de7d17110efaa5ed2ed30a44d415f28987f89f3", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + } + }, + "lock_sha256": "9075ff0f527b00ef8767db99d2e2a11783deace76babbffbff04cfdc5c8d255f", + "state_sha256": "00077b52438250f37b217eb353c2927c17350ca6e5d5ec8249f5f98f02873e2f" + } + }, + "after_error": null, + "exit_code": 2, + "output": "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace'\npython3 scripts/build-composition.py --root . --target test\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Frontend.git /tmp/agent-system-composition-e2fpjxpc/Agent-System-Frontend-git\nCloning into '/tmp/agent-system-composition-e2fpjxpc/Agent-System-Frontend-git'...\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Backend.git /tmp/agent-system-composition-e2fpjxpc/Agent-System-Backend-git\nCloning into '/tmp/agent-system-composition-e2fpjxpc/Agent-System-Backend-git'...\n[composition] npm ci --ignore-scripts --no-audit --no-fund\nnpm warn deprecated uuid@10.0.0: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).\n\nadded 178 packages in 4s\n[composition] npm cache add @babel/code-frame@7.29.7 @babel/compat-data@7.29.7 @babel/core@7.29.7 @babel/generator@7.29.8 @babel/helper-compilation-targets@7.29.7 @babel/helper-globals@7.29.7 @babel/helper-module-imports@7.29.7 @babel/helper-module-transforms@7.29.7 @babel/helper-plugin-utils@7.29.7 @babel/helper-string-parser@7.29.7 @babel/helper-validator-identifier@7.29.7 @babel/helper-validator-option@7.29.7 @babel/helpers@7.29.7 @babel/parser@7.29.9 @babel/plugin-transform-react-jsx-self@7.29.7 @babel/plugin-transform-react-jsx-source@7.29.7 @babel/template@7.29.7 @babel/traverse@7.29.8 @babel/types@7.29.8 @esbuild/linux-x64@0.25.12 @jridgewell/gen-mapping@0.3.13 @jridgewell/remapping@2.3.5 @jridgewell/resolve-uri@3.1.2 @jridgewell/sourcemap-codec@1.6.0 @jridgewell/trace-mapping@0.3.31 @napi-rs/lzma-linux-x64-gnu@1.5.1 @nodelib/fs.scandir@2.1.5 @nodelib/fs.stat@2.0.5 @nodelib/fs.walk@1.2.8 @oxc-resolver/binding-linux-x64-gnu@11.24.2 @playwright/test@1.64.0 @rolldown/pluginutils@1.0.0-beta.27 @rollup/rollup-linux-x64-gnu@4.63.5 @standard-schema/spec@1.1.0 @types/babel__core@7.20.5 @types/babel__generator@7.27.0 @types/babel__template@7.4.4 @types/babel__traverse@7.28.0 @types/chai@5.2.3 @types/deep-eql@4.0.2 @types/estree@1.0.9 @types/node@22.20.4 @types/react-dom@19.3.0 @types/react@19.3.0 @types/trusted-types@2.0.7 @vitejs/plugin-react@4.7.0 @vitest/expect@4.1.11 @vitest/mocker@4.1.11 @vitest/pretty-format@4.1.11 @vitest/runner@4.1.11 @vitest/snapshot@4.1.11 @vitest/spy@4.1.11 @vitest/utils@4.1.11 @xmldom/xmldom@0.8.15 adler-32@1.3.1 argparse@1.0.10 assertion-error@2.0.1 base64-js@1.5.1 baseline-browser-mapping@2.11.26 braces@3.0.3 browserslist@4.29.3 caniuse-lite@1.0.30001813 cfb@1.2.2 chai@6.2.2 codepage@1.15.0 convert-source-map@2.0.0 core-util-is@1.0.3 crc-32@1.2.2 csstype@3.2.3 debug@4.4.3 dingbat-to-unicode@1.0.2 docx-preview@0.4.1 dompurify@3.4.16 duck@0.1.12 echarts@5.6.0 electron-to-chromium@1.5.440 es-module-lexer@2.3.2 esbuild@0.25.12 escalade@3.2.0 estree-walker@3.0.3 expect-type@1.4.0 fast-glob@3.3.3 fastq@1.20.3 fd-package-json@2.0.0 fdir@6.5.0 fill-range@7.1.1 formatly@0.3.0 frac@1.1.2 gensync@1.0.0-beta.2 glob-parent@5.1.2 immediate@3.0.6 inherits@2.0.4 is-extglob@2.1.1 is-glob@4.0.3 is-number@7.0.0 isarray@1.0.0 jiti@2.7.0 js-tokens@4.0.0 jsesc@3.1.0 json5@2.2.3 jszip@3.10.2 knip@5.88.1 lie@3.3.0 lodash@4.18.1 lop@0.4.2 lru-cache@5.1.1 magic-string@0.30.21 mammoth@1.13.0 marked@15.0.12 merge2@1.4.1 micromatch@4.0.8 minimist@1.2.8 ms@2.1.3 nanoid@3.3.19 node-releases@2.0.57 obug@2.2.1 option@0.2.4 oxc-resolver@11.24.2 pako@1.0.11 pathe@2.0.3 picocolors@1.1.1 picomatch@2.3.2 picomatch@4.0.7 playwright-core@1.64.0 playwright@1.64.0 postcss@8.5.28 pptx-preview@1.0.7 process-nextick-args@2.0.1 queue-microtask@1.2.3 react-dom@19.3.0 react-refresh@0.17.0 react@19.3.0 readable-stream@2.3.8 reusify@1.1.0 rollup@4.63.5 run-parallel@1.2.0 safe-buffer@5.1.2 scheduler@0.28.0 semver@6.3.1 setimmediate@1.0.5 siginfo@2.0.0 smol-toml@1.9.0 source-map-js@1.2.1 sprintf-js@1.0.3 ssf@0.11.2 stackback@0.0.2 std-env@4.3.0 string_decoder@1.1.1 strip-json-comments@5.0.3 tinybench@2.9.0 tinyexec@1.3.1 tinyglobby@0.2.17 tinyrainbow@3.2.0 to-regex-range@5.0.1 tslib@2.3.0 tslib@2.8.1 typescript@5.9.3 unbash@2.2.0 underscore@1.13.8 undici-types@6.21.0 update-browserslist-db@1.3.3 util-deprecate@1.0.2 uuid@10.0.0 vite@6.4.3 vitest@4.1.11 walk-up-path@4.0.0 why-is-node-running@2.3.0 wmf@1.0.2 word@0.3.0 xlsx@0.18.5 xmlbuilder@10.1.1 yallist@3.1.1 yaml@2.9.1 zod@4.6.5 zrender@5.6.1 --ignore-scripts --registry=https://registry.npmjs.org --userconfig=/dev/null --globalconfig=/tmp/composition-npm-metadata-ul904q78/empty-global.npmrc\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Logging-System.git /tmp/agent-system-composition-e2fpjxpc/Logging-System-git\nCloning into '/tmp/agent-system-composition-e2fpjxpc/Logging-System-git'...\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Error-Code-System.git /tmp/agent-system-composition-e2fpjxpc/Error-Code-System-git\nCloning into '/tmp/agent-system-composition-e2fpjxpc/Error-Code-System-git'...\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Core.git /tmp/agent-system-composition-e2fpjxpc/Agent-System-Core-git\nCloning into '/tmp/agent-system-composition-e2fpjxpc/Agent-System-Core-git'...\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-Native.git /tmp/agent-system-composition-e2fpjxpc/Agent-Native-git\nCloning into '/tmp/agent-system-composition-e2fpjxpc/Agent-Native-git'...\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-Intent.git /tmp/agent-system-composition-e2fpjxpc/Agent-Intent-git\nCloning into '/tmp/agent-system-composition-e2fpjxpc/Agent-Intent-git'...\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-Command.git /tmp/agent-system-composition-e2fpjxpc/Agent-Command-git\nCloning into '/tmp/agent-system-composition-e2fpjxpc/Agent-Command-git'...\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-Squad.git /tmp/agent-system-composition-e2fpjxpc/Agent-Squad-git\nCloning into '/tmp/agent-system-composition-e2fpjxpc/Agent-Squad-git'...\n[composition] go mod verify\nall modules verified\n[composition] go mod verify\nall modules verified\n[composition] go mod verify\nall modules verified\n[composition] go mod verify\nall modules verified\n[composition] go mod verify\nall modules verified\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-UI.git /tmp/agent-system-composition-e2fpjxpc/Agent-System-UI-git\nCloning into '/tmp/agent-system-composition-e2fpjxpc/Agent-System-UI-git'...\n[composition] npm ci --ignore-scripts --no-audit --no-fund\n\nadded 1 package in 235ms\n[composition] npm cache add typescript@5.9.3 --ignore-scripts --registry=https://registry.npmjs.org --userconfig=/dev/null --globalconfig=/tmp/composition-npm-metadata-ri6ys0x9/empty-global.npmrc\n[composition] npm ci --ignore-scripts --no-audit --no-fund\nnpm warn deprecated whatwg-encoding@3.1.1: Use @exodus/bytes instead for a more spec-conformant and faster implementation\nnpm error An unknown git error occurred\nnpm error signal SIGTERM\nnpm error command git --no-replace-objects ls-remote ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Core.git\nnpm error Terminated\nnpm error A complete log of this run can be found in: /home/weichen/.npm/_logs/2026-10-14T05_12_41_927Z-debug-0.log\ncomposition: command failed (1): npm npm warn deprecated whatwg-encoding@3.1.1: Use @exodus/bytes instead for a more spec-conformant and faster implementation\nnpm error An unknown git error occurred\nnpm error signal SIGTERM\nnpm error command git --no-replace-objects ls-remote ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Core.git\nnpm error Terminated\nnpm error A complete log of this run can be found in: /home/weichen/.npm/_logs/2026-10-14T05_12_41_927Z-debug-0.log\nmake[1]: *** [Makefile:273: test] Error 2\nmake[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace'\n", + "output_sha256": "0ae17f6ae23e2660a932af98302cd45b1f7ca1f391947351ef7e464b4153d047", + "receipt_sha256": "4089679f6f14bdc8d9da7ac0d28092864d791d72efcdfda47d9b6ad2d042b772" +} +``` + + +```json +{ + "schema": 1, + "source": "SELF", + "timestamp": "2026-10-14T05:23:30.802885+00:00", + "command": "GIT_SSH_COMMAND='timeout 180 ssh -o BatchMode=yes -o ConnectTimeout=15 -o ServerAliveInterval=10 -o ServerAliveCountMax=3' make test", + "command_sha256": "16376cc333739a39cd6b975fafed44b0c42239393f8a749e5ac16daf2ac5759f", + "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace", + "common_dir": "/home/weichen/projects/Agent-System-Dev/.git", + "before": { + "head": "6160dae6fb0d591ccbfc2d2c17fc003a2ce209b0", + "branch": "feature/dependency-workspace", + "target_branch": "main", + "target_head": "4f84c2e1630cd0311643529fae1c3a99f1dd5d64", + "status": " M .task/feature-dependency-workspace.md\n", + "tracked_diff_sha256": "1b8fbd6f4eb75be43fe127a9d6859d24b90db60192148fb2b365def2aea80c50", + "untracked": {}, + "submodules": "", + "components": { + "manifest_sha256": "c8cddfff753bee796e6a75f9c22b5392f4b2cfeee340dadc61ff82e71238318b", + "components": { + "Logging-System": { + "state": "missing" + }, + "Error-Code-System": { + "state": "missing" + }, + "Agent-System-Core": { + "state": "missing" + }, + "Agent-System-UI": { + "state": "missing" + }, + "Agent-System-Frontend": { + "head": "74511db9a6fb12e17954cb0c3f8e8846a6ecf831", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Native": { + "head": "6ddd3da8df5ccc532f5b06f0aa8d49662e6f049e", + "branch": "feature/dependency-live-edit-probe", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Intent": { + "state": "missing" + }, + "Agent-Command": { + "state": "missing" + }, + "Agent-Squad": { + "state": "missing" + }, + "Agent-System-Backend": { + "head": "48649a37ee92373c639a384a2c5a9dfaa2ec4bbb", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Development-Guidelines": { + "head": "db3824bfdbfdcad91d0941495719f04dbeaca053", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-System-Documents": { + "head": "1de7d17110efaa5ed2ed30a44d415f28987f89f3", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + } + }, + "lock_sha256": "9075ff0f527b00ef8767db99d2e2a11783deace76babbffbff04cfdc5c8d255f", + "state_sha256": "00077b52438250f37b217eb353c2927c17350ca6e5d5ec8249f5f98f02873e2f" + } + }, + "after": { + "head": "6160dae6fb0d591ccbfc2d2c17fc003a2ce209b0", + "branch": "feature/dependency-workspace", + "target_branch": "main", + "target_head": "4f84c2e1630cd0311643529fae1c3a99f1dd5d64", + "status": " M .task/feature-dependency-workspace.md\n", + "tracked_diff_sha256": "1b8fbd6f4eb75be43fe127a9d6859d24b90db60192148fb2b365def2aea80c50", + "untracked": {}, + "submodules": "", + "components": { + "manifest_sha256": "c8cddfff753bee796e6a75f9c22b5392f4b2cfeee340dadc61ff82e71238318b", + "components": { + "Logging-System": { + "state": "missing" + }, + "Error-Code-System": { + "state": "missing" + }, + "Agent-System-Core": { + "state": "missing" + }, + "Agent-System-UI": { + "state": "missing" + }, + "Agent-System-Frontend": { + "head": "74511db9a6fb12e17954cb0c3f8e8846a6ecf831", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Native": { + "head": "6ddd3da8df5ccc532f5b06f0aa8d49662e6f049e", + "branch": "feature/dependency-live-edit-probe", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Intent": { + "state": "missing" + }, + "Agent-Command": { + "state": "missing" + }, + "Agent-Squad": { + "state": "missing" + }, + "Agent-System-Backend": { + "head": "48649a37ee92373c639a384a2c5a9dfaa2ec4bbb", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Development-Guidelines": { + "head": "db3824bfdbfdcad91d0941495719f04dbeaca053", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-System-Documents": { + "head": "1de7d17110efaa5ed2ed30a44d415f28987f89f3", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + } + }, + "lock_sha256": "9075ff0f527b00ef8767db99d2e2a11783deace76babbffbff04cfdc5c8d255f", + "state_sha256": "00077b52438250f37b217eb353c2927c17350ca6e5d5ec8249f5f98f02873e2f" + } + }, + "after_error": null, + "exit_code": 2, + "output": "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace'\npython3 scripts/build-composition.py --root . --target test\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Frontend.git /tmp/agent-system-composition-b5be4j99/Agent-System-Frontend-git\nCloning into '/tmp/agent-system-composition-b5be4j99/Agent-System-Frontend-git'...\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Backend.git /tmp/agent-system-composition-b5be4j99/Agent-System-Backend-git\nCloning into '/tmp/agent-system-composition-b5be4j99/Agent-System-Backend-git'...\n[composition] npm ci --ignore-scripts --no-audit --no-fund\nnpm warn deprecated uuid@10.0.0: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).\n\nadded 178 packages in 3s\n[composition] npm cache add @babel/code-frame@7.29.7 @babel/compat-data@7.29.7 @babel/core@7.29.7 @babel/generator@7.29.8 @babel/helper-compilation-targets@7.29.7 @babel/helper-globals@7.29.7 @babel/helper-module-imports@7.29.7 @babel/helper-module-transforms@7.29.7 @babel/helper-plugin-utils@7.29.7 @babel/helper-string-parser@7.29.7 @babel/helper-validator-identifier@7.29.7 @babel/helper-validator-option@7.29.7 @babel/helpers@7.29.7 @babel/parser@7.29.9 @babel/plugin-transform-react-jsx-self@7.29.7 @babel/plugin-transform-react-jsx-source@7.29.7 @babel/template@7.29.7 @babel/traverse@7.29.8 @babel/types@7.29.8 @esbuild/linux-x64@0.25.12 @jridgewell/gen-mapping@0.3.13 @jridgewell/remapping@2.3.5 @jridgewell/resolve-uri@3.1.2 @jridgewell/sourcemap-codec@1.6.0 @jridgewell/trace-mapping@0.3.31 @napi-rs/lzma-linux-x64-gnu@1.5.1 @nodelib/fs.scandir@2.1.5 @nodelib/fs.stat@2.0.5 @nodelib/fs.walk@1.2.8 @oxc-resolver/binding-linux-x64-gnu@11.24.2 @playwright/test@1.64.0 @rolldown/pluginutils@1.0.0-beta.27 @rollup/rollup-linux-x64-gnu@4.63.5 @standard-schema/spec@1.1.0 @types/babel__core@7.20.5 @types/babel__generator@7.27.0 @types/babel__template@7.4.4 @types/babel__traverse@7.28.0 @types/chai@5.2.3 @types/deep-eql@4.0.2 @types/estree@1.0.9 @types/node@22.20.4 @types/react-dom@19.3.0 @types/react@19.3.0 @types/trusted-types@2.0.7 @vitejs/plugin-react@4.7.0 @vitest/expect@4.1.11 @vitest/mocker@4.1.11 @vitest/pretty-format@4.1.11 @vitest/runner@4.1.11 @vitest/snapshot@4.1.11 @vitest/spy@4.1.11 @vitest/utils@4.1.11 @xmldom/xmldom@0.8.15 adler-32@1.3.1 argparse@1.0.10 assertion-error@2.0.1 base64-js@1.5.1 baseline-browser-mapping@2.11.26 braces@3.0.3 browserslist@4.29.3 caniuse-lite@1.0.30001813 cfb@1.2.2 chai@6.2.2 codepage@1.15.0 convert-source-map@2.0.0 core-util-is@1.0.3 crc-32@1.2.2 csstype@3.2.3 debug@4.4.3 dingbat-to-unicode@1.0.2 docx-preview@0.4.1 dompurify@3.4.16 duck@0.1.12 echarts@5.6.0 electron-to-chromium@1.5.440 es-module-lexer@2.3.2 esbuild@0.25.12 escalade@3.2.0 estree-walker@3.0.3 expect-type@1.4.0 fast-glob@3.3.3 fastq@1.20.3 fd-package-json@2.0.0 fdir@6.5.0 fill-range@7.1.1 formatly@0.3.0 frac@1.1.2 gensync@1.0.0-beta.2 glob-parent@5.1.2 immediate@3.0.6 inherits@2.0.4 is-extglob@2.1.1 is-glob@4.0.3 is-number@7.0.0 isarray@1.0.0 jiti@2.7.0 js-tokens@4.0.0 jsesc@3.1.0 json5@2.2.3 jszip@3.10.2 knip@5.88.1 lie@3.3.0 lodash@4.18.1 lop@0.4.2 lru-cache@5.1.1 magic-string@0.30.21 mammoth@1.13.0 marked@15.0.12 merge2@1.4.1 micromatch@4.0.8 minimist@1.2.8 ms@2.1.3 nanoid@3.3.19 node-releases@2.0.57 obug@2.2.1 option@0.2.4 oxc-resolver@11.24.2 pako@1.0.11 pathe@2.0.3 picocolors@1.1.1 picomatch@2.3.2 picomatch@4.0.7 playwright-core@1.64.0 playwright@1.64.0 postcss@8.5.28 pptx-preview@1.0.7 process-nextick-args@2.0.1 queue-microtask@1.2.3 react-dom@19.3.0 react-refresh@0.17.0 react@19.3.0 readable-stream@2.3.8 reusify@1.1.0 rollup@4.63.5 run-parallel@1.2.0 safe-buffer@5.1.2 scheduler@0.28.0 semver@6.3.1 setimmediate@1.0.5 siginfo@2.0.0 smol-toml@1.9.0 source-map-js@1.2.1 sprintf-js@1.0.3 ssf@0.11.2 stackback@0.0.2 std-env@4.3.0 string_decoder@1.1.1 strip-json-comments@5.0.3 tinybench@2.9.0 tinyexec@1.3.1 tinyglobby@0.2.17 tinyrainbow@3.2.0 to-regex-range@5.0.1 tslib@2.3.0 tslib@2.8.1 typescript@5.9.3 unbash@2.2.0 underscore@1.13.8 undici-types@6.21.0 update-browserslist-db@1.3.3 util-deprecate@1.0.2 uuid@10.0.0 vite@6.4.3 vitest@4.1.11 walk-up-path@4.0.0 why-is-node-running@2.3.0 wmf@1.0.2 word@0.3.0 xlsx@0.18.5 xmlbuilder@10.1.1 yallist@3.1.1 yaml@2.9.1 zod@4.6.5 zrender@5.6.1 --ignore-scripts --registry=https://registry.npmjs.org --userconfig=/dev/null --globalconfig=/tmp/composition-npm-metadata-onlxupxw/empty-global.npmrc\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Logging-System.git /tmp/agent-system-composition-b5be4j99/Logging-System-git\nCloning into '/tmp/agent-system-composition-b5be4j99/Logging-System-git'...\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Error-Code-System.git /tmp/agent-system-composition-b5be4j99/Error-Code-System-git\nCloning into '/tmp/agent-system-composition-b5be4j99/Error-Code-System-git'...\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Core.git /tmp/agent-system-composition-b5be4j99/Agent-System-Core-git\nCloning into '/tmp/agent-system-composition-b5be4j99/Agent-System-Core-git'...\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-Native.git /tmp/agent-system-composition-b5be4j99/Agent-Native-git\nCloning into '/tmp/agent-system-composition-b5be4j99/Agent-Native-git'...\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-Intent.git /tmp/agent-system-composition-b5be4j99/Agent-Intent-git\nCloning into '/tmp/agent-system-composition-b5be4j99/Agent-Intent-git'...\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-Command.git /tmp/agent-system-composition-b5be4j99/Agent-Command-git\nCloning into '/tmp/agent-system-composition-b5be4j99/Agent-Command-git'...\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-Squad.git /tmp/agent-system-composition-b5be4j99/Agent-Squad-git\nCloning into '/tmp/agent-system-composition-b5be4j99/Agent-Squad-git'...\n[composition] go mod verify\nall modules verified\n[composition] go mod verify\nall modules verified\n[composition] go mod verify\nall modules verified\n[composition] go mod verify\nall modules verified\n[composition] go mod verify\nall modules verified\n[composition] go mod verify\nall modules verified\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-UI.git /tmp/agent-system-composition-b5be4j99/Agent-System-UI-git\nCloning into '/tmp/agent-system-composition-b5be4j99/Agent-System-UI-git'...\n[composition] npm ci --ignore-scripts --no-audit --no-fund\n\nadded 1 package in 158ms\n[composition] npm cache add typescript@5.9.3 --ignore-scripts --registry=https://registry.npmjs.org --userconfig=/dev/null --globalconfig=/tmp/composition-npm-metadata-qu2kyfo2/empty-global.npmrc\n[composition] npm ci --ignore-scripts --no-audit --no-fund\nnpm warn deprecated whatwg-encoding@3.1.1: Use @exodus/bytes instead for a more spec-conformant and faster implementation\n\nadded 163 packages in 1s\n[composition] npm cache add @asamuzakjp/css-color@3.2.0 @babel/code-frame@7.29.7 @babel/helper-validator-identifier@7.29.7 @babel/runtime@7.29.7 @csstools/color-helpers@5.1.0 @csstools/css-calc@2.1.4 @csstools/css-color-parser@3.1.0 @csstools/css-parser-algorithms@3.0.5 @csstools/css-tokenizer@3.0.4 @jridgewell/sourcemap-codec@1.6.0 @nodelib/fs.scandir@2.1.5 @nodelib/fs.stat@2.0.5 @nodelib/fs.walk@1.2.8 @oxc-project/types@0.152.0 @oxc-resolver/binding-linux-x64-gnu@11.24.2 @rolldown/binding-linux-x64-gnu@1.2.12 @rolldown/pluginutils@1.0.1 @standard-schema/spec@1.1.0 @testing-library/dom@10.4.2 @testing-library/react@16.3.3 @types/aria-query@5.0.4 @types/chai@5.2.3 @types/deep-eql@4.0.2 @types/estree@1.0.9 @types/node@22.20.4 @types/react-dom@19.3.0 @types/react@19.3.0 @types/trusted-types@2.0.7 @vitest/expect@4.1.11 @vitest/mocker@4.1.11 @vitest/pretty-format@4.1.11 @vitest/runner@4.1.11 @vitest/snapshot@4.1.11 @vitest/spy@4.1.11 @vitest/utils@4.1.11 agent-base@7.1.4 ansi-regex@5.0.1 ansi-styles@5.2.0 aria-query@5.3.0 assertion-error@2.0.1 asynckit@0.4.0 braces@3.0.3 call-bind-apply-helpers@1.0.2 chai@6.2.2 combined-stream@1.0.8 convert-source-map@2.0.0 cssstyle@4.6.0 csstype@3.2.3 data-urls@5.0.0 debug@4.4.3 decimal.js@10.6.0 delayed-stream@1.0.0 dequal@2.0.3 detect-libc@2.1.2 dom-accessibility-api@0.5.16 dompurify@3.4.16 dunder-proto@1.0.1 entities@6.0.1 es-define-property@1.0.1 es-errors@1.3.0 es-module-lexer@2.3.2 es-object-atoms@1.1.2 es-set-tostringtag@2.1.0 estree-walker@3.0.3 expect-type@1.4.0 fast-glob@3.3.3 fastq@1.20.3 fd-package-json@2.0.0 fdir@6.5.0 fill-range@7.1.1 form-data@4.0.6 formatly@0.3.0 function-bind@1.1.2 get-intrinsic@1.3.0 get-proto@1.0.1 glob-parent@5.1.2 gopd@1.2.0 has-symbols@1.1.0 has-tostringtag@1.0.2 hasown@2.0.4 html-encoding-sniffer@4.0.0 http-proxy-agent@7.0.2 https-proxy-agent@7.0.6 iconv-lite@0.6.3 is-extglob@2.1.1 is-glob@4.0.3 is-number@7.0.0 is-potential-custom-element-name@1.0.1 jiti@2.7.0 js-tokens@4.0.0 jsdom@25.0.1 knip@5.88.1 lightningcss-linux-x64-gnu@1.33.0 lightningcss@1.33.0 lru-cache@10.4.3 lz-string@1.5.0 magic-string@0.30.21 marked@15.0.12 math-intrinsics@1.1.0 merge2@1.4.1 micromatch@4.0.8 mime-db@1.52.0 mime-types@2.1.35 minimist@1.2.8 ms@2.1.3 nanoid@3.3.19 nwsapi@2.2.28 obug@2.2.1 oxc-resolver@11.24.2 parse5@7.3.0 pathe@2.0.3 picocolors@1.1.1 picomatch@2.3.2 picomatch@4.0.7 postcss@8.5.28 pretty-format@27.5.1 punycode@2.3.1 queue-microtask@1.2.3 react-dom@19.3.0 react-is@17.0.2 react@19.3.0 reusify@1.1.0 rolldown@1.2.12 rrweb-cssom@0.7.1 rrweb-cssom@0.8.0 run-parallel@1.2.0 safer-buffer@2.1.2 saxes@6.0.0 scheduler@0.28.0 siginfo@2.0.0 smol-toml@1.9.0 source-map-js@1.2.2 stackback@0.0.2 std-env@4.3.0 strip-json-comments@5.0.3 symbol-tree@3.2.4 tinybench@2.9.0 tinyexec@1.3.1 tinyglobby@0.2.17 tinyrainbow@3.2.0 tldts-core@6.1.86 tldts@6.1.86 to-regex-range@5.0.1 tough-cookie@5.1.2 tr46@5.1.1 typescript@5.9.3 unbash@2.2.0 undici-types@6.21.0 vite@8.3.1 vitest@4.1.11 w3c-xmlserializer@5.0.0 walk-up-path@4.0.0 webidl-conversions@7.0.0 whatwg-encoding@3.1.1 whatwg-mimetype@4.0.0 whatwg-url@14.2.0 why-is-node-running@2.3.0 ws@8.22.0 xml-name-validator@5.0.0 xmlchars@2.2.0 yaml@2.9.1 zod@4.6.5 --ignore-scripts --registry=https://registry.npmjs.org --userconfig=/dev/null --globalconfig=/tmp/composition-npm-metadata-31teyflk/empty-global.npmrc\n[composition] npm run build\n\n(!) Some chunks are larger than 500 kB after minification. Consider:\n- Using dynamic import() to code-split the application\n- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks\n- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.\n\n> agent-system-frontend@0.1.0 build\n> tsc -b && vite build\n\nvite v6.4.3 building for production...\ntransforming...\n✓ 1015 modules transformed.\nrendering chunks...\ncomputing gzip size...\ndist/index.html 0.40 kB │ gzip: 0.27 kB\ndist/assets/index-BWPiL_PS.css 93.18 kB │ gzip: 16.04 kB\ndist/assets/jszip.min-d-4Zmon1.js 0.12 kB │ gzip: 0.12 kB\ndist/assets/docx-preview-6sU_ku0G.js 77.41 kB │ gzip: 21.29 kB\ndist/assets/jszip.min-kSHCEEHx.js 97.26 kB │ gzip: 30.16 kB\ndist/assets/index-DoGujINZ.js 213.14 kB │ gzip: 70.03 kB\ndist/assets/xlsx-CkFp8p6R.js 429.53 kB │ gzip: 143.07 kB\ndist/assets/index-Ctb2bcvo.js 561.83 kB │ gzip: 175.12 kB\ndist/assets/pptx-preview.es-Dtz_cWFU.js 1,255.23 kB │ gzip: 401.46 kB\n✓ built in 4.71s\n[composition] npm test\n(node:2364427) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.\n(Use `node --trace-warnings ...` to show where the warning was created)\n(node:2364340) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.\n(Use `node --trace-warnings ...` to show where the warning was created)\n(node:2364335) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.\n(Use `node --trace-warnings ...` to show where the warning was created)\n(node:2364336) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.\n(Use `node --trace-warnings ...` to show where the warning was created)\n(node:2364423) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.\n(Use `node --trace-warnings ...` to show where the warning was created)\n(node:2364432) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.\n(Use `node --trace-warnings ...` to show where the warning was created)\n(node:2364433) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.\n(Use `node --trace-warnings ...` to show where the warning was created)\n(node:2364435) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.\n(Use `node --trace-warnings ...` to show where the warning was created)\n(node:2364520) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.\n(Use `node --trace-warnings ...` to show where the warning was created)\n(node:2364337) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.\n(Use `node --trace-warnings ...` to show where the warning was created)\n(node:2364341) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.\n(Use `node --trace-warnings ...` to show where the warning was created)\n\n> agent-system-frontend@0.1.0 test\n> vitest run && npm run test:packages\n\n\n RUN v4.1.11 /tmp/agent-system-composition-b5be4j99/Agent-System-Frontend\n\n\n Test Files 33 passed (33)\n Tests 264 passed (264)\n Start at 05:24:00\n Duration 582ms (transform 2.51s, setup 0ms, import 4.41s, tests 555ms, environment 2ms)\n\n\n> agent-system-frontend@0.1.0 test:packages\n> node --test scripts/test-packages.mjs\n\nnpm warn deprecated uuid@10.0.0: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).\n\nadded 178 packages in 952ms\n\n> agent-system-frontend@0.1.0 build\n> tsc -b && vite build\n\nvite v6.4.3 building for production...\ntransforming...\n✓ 1015 modules transformed.\nrendering chunks...\ncomputing gzip size...\ndist/index.html 0.40 kB │ gzip: 0.27 kB\ndist/assets/index-BWPiL_PS.css 93.18 kB │ gzip: 16.04 kB\ndist/assets/jszip.min-d-4Zmon1.js 0.12 kB │ gzip: 0.12 kB\ndist/assets/docx-preview-6sU_ku0G.js 77.41 kB │ gzip: 21.29 kB\ndist/assets/jszip.min-kSHCEEHx.js 97.26 kB │ gzip: 30.16 kB\ndist/assets/index-DoGujINZ.js 213.14 kB │ gzip: 70.03 kB\ndist/assets/xlsx-CkFp8p6R.js 429.53 kB │ gzip: 143.07 kB\ndist/assets/index-Ctb2bcvo.js 561.83 kB │ gzip: 175.12 kB\ndist/assets/pptx-preview.es-Dtz_cWFU.js 1,255.23 kB │ gzip: 401.46 kB\n\n(!) Some chunks are larger than 500 kB after minification. Consider:\n- Using dynamic import() to code-split the application\n- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks\n- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.\n✓ built in 4.69s\n✔ the application builds from packed dependencies without UI or Core source siblings (8556.699826ms)\nℹ tests 1\nℹ suites 0\nℹ pass 1\nℹ fail 0\nℹ cancelled 0\nℹ skipped 0\nℹ todo 0\nℹ duration_ms 8594.745333\n[composition] go test -mod=readonly ./...\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/cmd/agent-system\t0.274s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/cmd/storage-migrate\t0.045s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/eval\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/app\t0.483s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/blobstore\t0.005s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/bus\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/cardsvc\t0.180s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/cmdbus\t0.025s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/config\t0.005s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/ctxasm\t0.005s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/docgen\t0.007s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/evalgold\t0.004s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/genui\t0.105s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/hostapi\t0.044s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/ingest\t0.833s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/intentgate\t0.003s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/intentsem\t0.003s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/pgbus\t0.004s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/plugins\t0.311s\n? \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/profiles\t[no test files]\n? \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/projectscope\t[no test files]\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/prompts\t0.078s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/quality\t0.193s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/rag\t0.183s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/ratelimit\t0.254s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/route\t0.004s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/runmgr\t1.179s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/runtime\t1.701s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/server\t9.135s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/settings\t0.020s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/skills\t1.805s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/squadadapter\t0.170s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/store\t4.627s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/surfacesvc\t0.213s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/tools\t13.315s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/wfcompile\t0.049s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/internal/workflow\t0.003s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/pkg/extension\t0.003s\n? \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/pkg/extension/link\t[no test files]\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/pkg/identity\t0.041s\n? \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Backend.git/web\t[no test files]\n[composition] go vet -mod=readonly ./...\n[composition] go test -mod=readonly ./...\n? \tgit-ssh.u1680832.nyat.app/weichen/Logging-System.git\t[no test files]\nok \tgit-ssh.u1680832.nyat.app/weichen/Logging-System.git/cli\t0.004s\nok \tgit-ssh.u1680832.nyat.app/weichen/Logging-System.git/config\t0.003s\nok \tgit-ssh.u1680832.nyat.app/weichen/Logging-System.git/conformance\t0.041s\nok \tgit-ssh.u1680832.nyat.app/weichen/Logging-System.git/logsys\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Logging-System.git/redact\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Logging-System.git/server\t0.054s\nok \tgit-ssh.u1680832.nyat.app/weichen/Logging-System.git/sink\t0.013s\nok \tgit-ssh.u1680832.nyat.app/weichen/Logging-System.git/slogadapter\t0.002s\n[composition] go vet -mod=readonly ./...\n[composition] go test -mod=readonly ./...\n? \tgit-ssh.u1680832.nyat.app/weichen/Error-Code-System.git\t[no test files]\nok \tgit-ssh.u1680832.nyat.app/weichen/Error-Code-System.git/cli\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Error-Code-System.git/conformance\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Error-Code-System.git/domains\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Error-Code-System.git/errcode\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Error-Code-System.git/httpx\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Error-Code-System.git/server\t0.003s\n[composition] go vet -mod=readonly ./...\n[composition] go test -mod=readonly ./...\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-System-Core.git\t0.003s\n[composition] go vet -mod=readonly ./...\n[composition] go test -mod=readonly ./...\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/adapters/native\t0.213s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/adapters/pitransport\t0.043s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/catalogcheck\t0.002s\n? \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/cmd/agent-native\t[no test files]\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/conformance\t0.052s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/exec\t0.151s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/rpc\t0.004s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime\t1.398s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/agentspec\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/checkpoint\t0.003s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/codeorch\t0.104s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/ext\t0.024s\n? \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/ext/pkg\t[no test files]\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/filestate\t0.022s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/gates\t0.003s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/guardrails\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/hooks\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/llm\t0.242s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/mcp\t13.246s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/memory\t0.003s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/policy\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/promptx\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/reminders\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/resources\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/session\t0.009s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/skills\t0.003s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/subagent\t0.004s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/telemetry\t0.004s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/runtime/tools\t11.281s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Native.git/schema\t0.002s\n[composition] go vet -mod=readonly ./...\n[composition] go test -mod=readonly ./...\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Intent.git/catalogcheck\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Intent.git/cmd/intentctl\t0.003s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Intent.git/conformance\t0.003s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Intent.git/examples\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Intent.git/intent\t0.006s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Intent.git/schema\t0.002s\n[composition] go vet -mod=readonly ./...\n[composition] go test -mod=readonly ./...\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Command.git\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Command.git/conformance\t0.001s\n[composition] go vet -mod=readonly ./...\n[composition] go test -mod=readonly ./...\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Squad.git/schema\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Squad.git/squad\t0.957s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Squad.git/store\t0.003s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Squad.git/textextract\t0.002s\n[composition] go vet -mod=readonly ./...\n[composition] go test -mod=readonly ./...\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Squad.git/adapters/native\t0.002s\n[composition] go vet -mod=readonly ./...\n[composition] go test -mod=readonly ./...\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Squad.git/adapters/intent\t0.008s\n[composition] go vet -mod=readonly ./...\n[composition] go test -mod=readonly ./...\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Squad.git/adapters/sqlite\t0.017s\n[composition] go vet -mod=readonly ./...\n[composition] go test -mod=readonly ./...\n? \tgit-ssh.u1680832.nyat.app/weichen/Agent-Squad.git/cmd/agent-squad\t[no test files]\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Squad.git/cmd/agent-squad/cli\t0.002s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Squad.git/cmd/agent-squad/conformance\t0.004s\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Squad.git/cmd/agent-squad/server\t0.568s\n[composition] go vet -mod=readonly ./...\n[composition] go test -mod=readonly ./...\nok \tgit-ssh.u1680832.nyat.app/weichen/Agent-Squad.git/adapters/a2a\t0.020s\n[composition] go vet -mod=readonly ./...\n[composition] npm run typecheck\n\n> @agent-system/contracts@0.1.0 typecheck\n> tsc -p tsconfig.package.json --noEmit\n\n[composition] npm run test\n\n> @agent-system/contracts@0.1.0 test\n> npm run check:package && node --test scripts/test-package.mjs\n\n\n> @agent-system/contracts@0.1.0 check:package\n> node scripts/build-package.mjs --check\n\n✔ packed contracts compile in a consumer without the Core checkout (850.069094ms)\nℹ tests 1\nℹ suites 0\nℹ pass 1\nℹ fail 0\nℹ cancelled 0\nℹ skipped 0\nℹ todo 0\nℹ duration_ms 891.610684\n[composition] npm run typecheck\n\n> @agent-system/ui@0.1.0 typecheck\n> tsc --noEmit\n\n[composition] npm run test\n\n> @agent-system/ui@0.1.0 test\n> vitest run && npm run test:package\n\n\n RUN v4.1.11 /tmp/agent-system-composition-b5be4j99/Agent-System-UI\n\n\n Test Files 18 passed (18)\n Tests 162 passed (162)\n Start at 05:24:49\n Duration 1.15s (transform 995ms, setup 0ms, import 2.51s, tests 2.30s, environment 5.17s)\n\n\n> @agent-system/ui@0.1.0 test:package\n> npm run check:package && node --test scripts/test-package.mjs\n\n\n> @agent-system/ui@0.1.0 check:package\n> node scripts/build-package.mjs --check\n\n✔ packed UI renders and exposes CSS and types without adjacent source checkouts (1446.962577ms)\nℹ tests 1\nℹ suites 0\nℹ pass 1\nℹ fail 0\nℹ cancelled 0\nℹ skipped 0\nℹ todo 0\nℹ duration_ms 1490.06076\n[composition] bash scripts/lint-boundaries.sh\narchitecture ok (85 edges)\narchitecture negative ok\nboundaries ok\n[composition] bash scripts/check-pins.sh\nok fixed source Agent-System-Frontend\nok fixed source Agent-System-Backend\nok fixed source Logging-System\nok fixed source Error-Code-System\nok fixed source Agent-System-Core\nok fixed source Agent-Native\nok fixed source Agent-Intent\nok fixed source Agent-Command\nok fixed source Agent-Squad\nok fixed source Agent-System-UI\nversion authorities ok (source lock / go.mod / npm lock; no gitlink alignment)\n[composition] make test-governance\ntest_candidate_cannot_read_checkout_credentials (test_ci_credentials.CheckoutTests.test_candidate_cannot_read_checkout_credentials) ... ok\ntest_candidate_submodule_update_commands_are_rejected (test_ci_credentials.CheckoutTests.test_candidate_submodule_update_commands_are_rejected) ... ok\ntest_credential_destination_confined_to_injected_server (test_ci_credentials.CheckoutTests.test_credential_destination_confined_to_injected_server) ... ok\ntest_external_or_unlisted_urls_are_rejected_before_component_fetch (test_ci_credentials.CheckoutTests.test_external_or_unlisted_urls_are_rejected_before_component_fetch) ... ok\ntest_inherited_template_hook_does_not_execute_with_credentials (test_ci_credentials.CheckoutTests.test_inherited_template_hook_does_not_execute_with_credentials) ... ok\ntest_nested_external_url_is_rejected_before_authenticated_fetch (test_ci_credentials.CheckoutTests.test_nested_external_url_is_rejected_before_authenticated_fetch) ... ok\ntest_rdm_pin_fetch_is_three_shas_on_the_allowlist (test_ci_credentials.CheckoutTests.test_rdm_pin_fetch_is_three_shas_on_the_allowlist) ... ok\ntest_recursive_gitlinks_materialize_exact_sha_without_persisting_credentials (test_ci_credentials.CheckoutTests.test_recursive_gitlinks_materialize_exact_sha_without_persisting_credentials) ... ok\ntest_redirects_do_not_forward_credential_or_fetch_unlisted_target (test_ci_credentials.CheckoutTests.test_redirects_do_not_forward_credential_or_fetch_unlisted_target) ... ok\ntest_backend_check_prepares_fixed_source_and_replays_owner_edits (test_component_checks.ComponentCheckTests.test_backend_check_prepares_fixed_source_and_replays_owner_edits) ... ok\ntest_explicit_overlay_uses_registered_workspace_and_preserves_default_version_mode (test_component_checks.ComponentCheckTests.test_explicit_overlay_uses_registered_workspace_and_preserves_default_version_mode) ... ok\ntest_fixed_go_checks_keep_source_clean_across_pg_and_multi_instance (test_component_checks.ComponentCheckTests.test_fixed_go_checks_keep_source_clean_across_pg_and_multi_instance) ... ok\ntest_fixed_go_checks_refuse_and_preserve_owner_changes_and_ignored_files (test_component_checks.ComponentCheckTests.test_fixed_go_checks_refuse_and_preserve_owner_changes_and_ignored_files) ... ok\ntest_fixed_go_failure_is_reported_without_polluting_source (test_component_checks.ComponentCheckTests.test_fixed_go_failure_is_reported_without_polluting_source) ... ok\ntest_make_pin_gate_uses_map_in_gitless_formal_root_and_ignores_external_rdm_identity (test_component_checks.ComponentCheckTests.test_make_pin_gate_uses_map_in_gitless_formal_root_and_ignores_external_rdm_identity) ... ok\ntest_multi_instance_binary_is_built_inside_dev_root_and_reached_by_suite (test_component_checks.ComponentCheckTests.test_multi_instance_binary_is_built_inside_dev_root_and_reached_by_suite) ... ok\ntest_new_pin_gate_validates_fixed_sources_and_rejects_local_replaces (test_component_checks.ComponentCheckTests.test_new_pin_gate_validates_fixed_sources_and_rejects_local_replaces) ... ok\ntest_pg_and_multi_instance_prerequisites_still_refuse_before_preparing_sources (test_component_checks.ComponentCheckTests.test_pg_and_multi_instance_prerequisites_still_refuse_before_preparing_sources) ... ok\ntest_pg_gate_requires_environment_and_forwards_it_to_real_go_tests (test_component_checks.ComponentCheckTests.test_pg_gate_requires_environment_and_forwards_it_to_real_go_tests) ... ok\ntest_registered_private_transport_reaches_real_go_process_without_global_change (test_component_checks.ComponentCheckTests.test_registered_private_transport_reaches_real_go_process_without_global_change) ... ok\ntest_before_sync_rejects_component_git_lock (test_component_governance.ComponentGovernanceTests.test_before_sync_rejects_component_git_lock) ... ok\ntest_evidence_captures_ignored_component_revision_and_dirty_bytes (test_component_governance.ComponentGovernanceTests.test_evidence_captures_ignored_component_revision_and_dirty_bytes) ... ok\ntest_new_layout_cannot_use_receipt_without_component_identity (test_component_governance.ComponentGovernanceTests.test_new_layout_cannot_use_receipt_without_component_identity) ... ok\ntest_receipts_reject_component_path_escape (test_component_governance.ComponentGovernanceTests.test_receipts_reject_component_path_escape) ... ok\ntest_startup_receipt_rejects_changed_ignored_component_objects (test_component_governance.ComponentGovernanceTests.test_startup_receipt_rejects_changed_ignored_component_objects) ... ok\ntest_all_product_acquisition_precedes_candidate_execution (test_composition.CompositionTests.test_all_product_acquisition_precedes_candidate_execution) ... ok\ntest_developer_package_tarball_overrides_do_not_reach_formal_tests (test_composition.CompositionTests.test_developer_package_tarball_overrides_do_not_reach_formal_tests) ... ok\ntest_dirty_root_composer_cannot_publish_under_committed_identity (test_composition.CompositionTests.test_dirty_root_composer_cannot_publish_under_committed_identity) ... ok\ntest_dirty_root_lock_is_rejected (test_composition.CompositionTests.test_dirty_root_lock_is_rejected) ... ok\ntest_dirty_root_transport_is_refused_before_import (test_composition.CompositionTests.test_dirty_root_transport_is_refused_before_import) ... ok\ntest_fixed_commits_embed_assets_without_touching_developer_checkout (test_composition.CompositionTests.test_fixed_commits_embed_assets_without_touching_developer_checkout) ... ok\ntest_fixed_root_governance_and_boundaries_receive_proven_source_map (test_composition.CompositionTests.test_fixed_root_governance_and_boundaries_receive_proven_source_map) ... ok\ntest_frontend_dist_symlink_cannot_import_assets_from_outside_source (test_composition.CompositionTests.test_frontend_dist_symlink_cannot_import_assets_from_outside_source) ... ok\ntest_historical_rdm_product_still_builds_from_legacy_pins (test_composition.CompositionTests.test_historical_rdm_product_still_builds_from_legacy_pins) ... ok\ntest_local_go_replace_is_rejected (test_composition.CompositionTests.test_local_go_replace_is_rejected) ... ok\ntest_locked_missing_revision_is_rejected (test_composition.CompositionTests.test_locked_missing_revision_is_rejected) ... ok\ntest_missing_frontend_assets_fails_before_publishing_binary (test_composition.CompositionTests.test_missing_frontend_assets_fails_before_publishing_binary) ... ok\ntest_modified_go_module_cache_is_rejected_before_product_publication (test_composition.CompositionTests.test_modified_go_module_cache_is_rejected_before_product_publication) ... ok\ntest_npm_local_dependency_overlay_is_rejected (test_composition.CompositionTests.test_npm_local_dependency_overlay_is_rejected) ... ok\ntest_project_test_mode_refuses_missing_boundary_gate (test_composition.CompositionTests.test_project_test_mode_refuses_missing_boundary_gate) ... ok\ntest_rdm_product_and_admin_follow_its_selected_backend_not_dev_source_lock (test_composition.CompositionTests.test_rdm_product_and_admin_follow_its_selected_backend_not_dev_source_lock) ... ok\ntest_rdm_vendored_remote_backend_embeds_assets_without_mutating_module_cache (test_composition.CompositionTests.test_rdm_vendored_remote_backend_embeds_assets_without_mutating_module_cache) ... ok\ntest_source_path_escape_is_rejected (test_composition.CompositionTests.test_source_path_escape_is_rejected) ... ok\ntest_test_target_checks_fixed_go_library_and_ui_sources (test_composition.CompositionTests.test_test_target_checks_fixed_go_library_and_ui_sources) ... ok\ntest_test_target_runs_real_frontend_and_go_tests (test_composition.CompositionTests.test_test_target_runs_real_frontend_and_go_tests) ... ok\ntest_unused_transitive_zip_does_not_require_consumer_sum_rewrite (test_composition.CompositionTests.test_unused_transitive_zip_does_not_require_consumer_sum_rewrite) ... ok\ntest_version_and_plugin_assets_come_from_committed_root (test_composition.CompositionTests.test_version_and_plugin_assets_come_from_committed_root) ... ok\ntest_versioned_rdm_product_entry_uses_fixed_composer (test_composition.CompositionTests.test_versioned_rdm_product_entry_uses_fixed_composer) ... skipped 'external RDM source was not supplied; host must replay the actual wrapper'\ntest_locked_metadata_is_acquired_before_offline_consumer_without_credentials (test_composition.NpmAcquisitionTests.test_locked_metadata_is_acquired_before_offline_consumer_without_credentials) ... ok\ntest_unreviewed_tarball_source_is_refused_before_acquisition (test_composition.NpmAcquisitionTests.test_unreviewed_tarball_source_is_refused_before_acquisition) ... ok\ntest_all_required_component_snapshots_have_fixed_provenance (test_dependency_ci.ComponentWorkflowFixtureTests.test_all_required_component_snapshots_have_fixed_provenance) ... ok\ntest_missing_component_snapshot_is_not_skipped (test_dependency_ci.ComponentWorkflowFixtureTests.test_missing_component_snapshot_is_not_skipped) ... ok\ntest_modified_workflow_snapshot_is_rejected_before_execution (test_dependency_ci.ComponentWorkflowFixtureTests.test_modified_workflow_snapshot_is_rejected_before_execution) ... ok\ntest_omitted_repository_provenance_is_rejected (test_dependency_ci.ComponentWorkflowFixtureTests.test_omitted_repository_provenance_is_rejected) ... ok\ntest_optional_source_validation_uses_immutable_commit_and_rejects_stale_head (test_dependency_ci.ComponentWorkflowFixtureTests.test_optional_source_validation_uses_immutable_commit_and_rejects_stale_head) ... ok\ntest_boundary_gate_refuses_missing_ripgrep_before_resolving_sources (test_dependency_ci.DependencyCITests.test_boundary_gate_refuses_missing_ripgrep_before_resolving_sources) ... ok\ntest_component_checkout_removes_tokens_before_candidate_executes (test_dependency_ci.DependencyCITests.test_component_checkout_removes_tokens_before_candidate_executes) ... ok\ntest_component_ci_executes_nested_go_module_tests (test_dependency_ci.DependencyCITests.test_component_ci_executes_nested_go_module_tests) ... ok\ntest_external_npm_git_source_rejected_before_authenticated_request (test_dependency_ci.DependencyCITests.test_external_npm_git_source_rejected_before_authenticated_request) ... ok\ntest_go_prefetch_covers_logging_trace_module (test_dependency_ci.DependencyCITests.test_go_prefetch_covers_logging_trace_module) ... ok\ntest_go_prefetch_rejects_mutation_of_committed_checksums (test_dependency_ci.DependencyCITests.test_go_prefetch_rejects_mutation_of_committed_checksums) ... ok\ntest_go_prefetch_uses_only_registered_private_repo_and_local_toolchain (test_dependency_ci.DependencyCITests.test_go_prefetch_uses_only_registered_private_repo_and_local_toolchain) ... ok\ntest_go_requirement_for_new_toolchain_fails_without_downloading_one (test_dependency_ci.DependencyCITests.test_go_requirement_for_new_toolchain_fails_without_downloading_one) ... ok\ntest_npm_git_package_installs_committed_output_without_prepare (test_dependency_ci.DependencyCITests.test_npm_git_package_installs_committed_output_without_prepare) ... ok\ntest_npm_metadata_version_cannot_be_a_destination (test_dependency_ci.DependencyCITests.test_npm_metadata_version_cannot_be_a_destination) ... ok\ntest_npm_nonregistry_tarball_rejected_before_request (test_dependency_ci.DependencyCITests.test_npm_nonregistry_tarball_rejected_before_request) ... ok\ntest_npm_prefetch_populates_cold_offline_resolver_metadata_without_credentials (test_dependency_ci.DependencyCITests.test_npm_prefetch_populates_cold_offline_resolver_metadata_without_credentials) ... ok\ntest_npm_provider_prepare_is_rejected_without_execution (test_dependency_ci.DependencyCITests.test_npm_provider_prepare_is_rejected_without_execution) ... ok\ntest_privileged_acquisition_finishes_before_candidate_execution_in_each_job (test_dependency_ci.DependencyCITests.test_privileged_acquisition_finishes_before_candidate_execution_in_each_job) ... ok\ntest_rdm_composition_lock_fetches_fixed_dev_without_executing_code (test_dependency_ci.DependencyCITests.test_rdm_composition_lock_fetches_fixed_dev_without_executing_code) ... ok\ntest_rdm_composition_lock_rejects_external_missing_and_malformed_commits (test_dependency_ci.DependencyCITests.test_rdm_composition_lock_rejects_external_missing_and_malformed_commits) ... ok\ntest_registered_application_lock_materializes_fixed_source (test_dependency_ci.DependencyCITests.test_registered_application_lock_materializes_fixed_source) ... ok\ntest_unregistered_go_module_rejected_before_authenticated_request (test_dependency_ci.DependencyCITests.test_unregistered_go_module_rejected_before_authenticated_request) ... ok\ntest_unregistered_source_lock_is_rejected_before_component_fetch (test_dependency_ci.DependencyCITests.test_unregistered_source_lock_is_rejected_before_component_fetch) ... ok\ntest_after_snapshot_failure_keeps_command_exit_and_output (test_evidence.EvidenceTests.test_after_snapshot_failure_keeps_command_exit_and_output) ... ok\ntest_all_persisted_and_displayed_text_is_sanitized (test_evidence.EvidenceTests.test_all_persisted_and_displayed_text_is_sanitized) ... ok\ntest_authorization_forms_are_redacted_in_capture_console_and_import (test_evidence.EvidenceTests.test_authorization_forms_are_redacted_in_capture_console_and_import) ... ok\ntest_authorization_forms_are_redacted_on_direct_card_capture (test_evidence.EvidenceTests.test_authorization_forms_are_redacted_on_direct_card_capture) ... ok\ntest_before_after_heads_do_not_relabel_changed_command (test_evidence.EvidenceTests.test_before_after_heads_do_not_relabel_changed_command) ... ok\ntest_capture_does_not_overwrite_an_existing_receipt (test_evidence.EvidenceTests.test_capture_does_not_overwrite_an_existing_receipt) ... ok\ntest_capture_without_card_and_import_without_rerun (test_evidence.EvidenceTests.test_capture_without_card_and_import_without_rerun) ... ok\ntest_child_failure_code_is_preserved (test_evidence.EvidenceTests.test_child_failure_code_is_preserved) ... ok\ntest_command_line_token_arguments_are_redacted (test_evidence.EvidenceTests.test_command_line_token_arguments_are_redacted) ... ok\ntest_dirty_and_untracked_contents_have_object_digests (test_evidence.EvidenceTests.test_dirty_and_untracked_contents_have_object_digests) ... ok\ntest_failed_child_exit_survives_receipt_write_failure (test_evidence.EvidenceTests.test_failed_child_exit_survives_receipt_write_failure) ... ok\ntest_fixed_candidate_capture_preserves_checkout (test_evidence.EvidenceTests.test_fixed_candidate_capture_preserves_checkout) ... ok\ntest_full_output_is_preserved_not_only_tail (test_evidence.EvidenceTests.test_full_output_is_preserved_not_only_tail) ... ok\ntest_import_missing_card_fails_without_losing_receipt (test_evidence.EvidenceTests.test_import_missing_card_fails_without_losing_receipt) ... ok\ntest_import_rejects_unredacted_authorization_with_valid_checksums (test_evidence.EvidenceTests.test_import_rejects_unredacted_authorization_with_valid_checksums) ... ok\ntest_import_retry_is_idempotent (test_evidence.EvidenceTests.test_import_retry_is_idempotent) ... ok\ntest_invalid_field_types_and_forged_source_are_rejected (test_evidence.EvidenceTests.test_invalid_field_types_and_forged_source_are_rejected) ... ok\ntest_known_secret_environment_value_is_redacted_without_label (test_evidence.EvidenceTests.test_known_secret_environment_value_is_redacted_without_label) ... ok\ntest_linked_worktree_import_preserves_source_identity (test_evidence.EvidenceTests.test_linked_worktree_import_preserves_source_identity) ... ok\ntest_missing_card_does_not_execute (test_evidence.EvidenceTests.test_missing_card_does_not_execute) ... ok\ntest_missing_required_snapshot_fields_are_rejected (test_evidence.EvidenceTests.test_missing_required_snapshot_fields_are_rejected) ... ok\ntest_nested_cwd_records_untracked_files_from_repository_root (test_evidence.EvidenceTests.test_nested_cwd_records_untracked_files_from_repository_root) ... ok\ntest_output_digest_checked_even_if_receipt_digest_recomputed (test_evidence.EvidenceTests.test_output_digest_checked_even_if_receipt_digest_recomputed) ... ok\ntest_pipeline_failure_is_recorded_and_returned (test_evidence.EvidenceTests.test_pipeline_failure_is_recorded_and_returned) ... ok\ntest_quoted_credentials_with_spaces_are_fully_redacted (test_evidence.EvidenceTests.test_quoted_credentials_with_spaces_are_fully_redacted) ... ok\ntest_receipt_write_failure_cannot_claim_success (test_evidence.EvidenceTests.test_receipt_write_failure_cannot_claim_success) ... ok\ntest_recorder_environment_does_not_leak_into_nested_commands (test_evidence.EvidenceTests.test_recorder_environment_does_not_leak_into_nested_commands) ... ok\ntest_source_cannot_be_promoted_by_environment (test_evidence.EvidenceTests.test_source_cannot_be_promoted_by_environment) ... ok\ntest_tamper_is_rejected_before_card_append (test_evidence.EvidenceTests.test_tamper_is_rejected_before_card_append) ... ok\ntest_unrelated_repo_cannot_import (test_evidence.EvidenceTests.test_unrelated_repo_cannot_import) ... ok\ntest_validate_precheck_checks_result_and_current_base (test_evidence.EvidenceTests.test_validate_precheck_checks_result_and_current_base) ... ok\ntest_validate_precheck_rejects_successful_arbitrary_command (test_evidence.EvidenceTests.test_validate_precheck_rejects_successful_arbitrary_command) ... ok\ntest_validation_purpose_is_not_injected_into_measured_command (test_evidence.EvidenceTests.test_validation_purpose_is_not_injected_into_measured_command) ... ok\ntest_pin_is_three_fixed_shas (test_lifecycle_pin.RdmPinTests.test_pin_is_three_fixed_shas) ... ok\ntest_rejects_url_and_short_sha (test_lifecycle_pin.RdmPinTests.test_rejects_url_and_short_sha) ... ok\ntest_conflicted_task_does_not_block_an_independent_healthy_task (test_merge_queue_trial.QueueTrialTests.test_conflicted_task_does_not_block_an_independent_healthy_task) ... ok\ntest_external_target_advance_requires_a_new_candidate (test_merge_queue_trial.QueueTrialTests.test_external_target_advance_requires_a_new_candidate) ... ok\ntest_sequential_delivery_does_not_sync_waiting_branches (test_merge_queue_trial.QueueTrialTests.test_sequential_delivery_does_not_sync_waiting_branches) ... ok\ntest_addr_change_keeps_database_and_auth (test_svc.SvcDbRecoveryTests.test_addr_change_keeps_database_and_auth) ... ok\ntest_auth_preflight_aligns_with_effective_env_dsn (test_svc.SvcDbRecoveryTests.test_auth_preflight_aligns_with_effective_env_dsn) ... FAIL\ntest_batch_update_stops_second_service_despite_prior_pidcheck (test_svc.SvcDbRecoveryTests.test_batch_update_stops_second_service_despite_prior_pidcheck)\n批量 update 不得用上一服务的 SVC_PIDCHECK 误判下一服务进程。 ... ok\ntest_dbref_binding_survives_bare_restart_and_redeploy (test_svc.SvcDbRecoveryTests.test_dbref_binding_survives_bare_restart_and_redeploy) ... ok\ntest_explicit_unbind_blocks_residual_env_dsn (test_svc.SvcDbRecoveryTests.test_explicit_unbind_blocks_residual_env_dsn) ... ok\ntest_external_dsn_and_conffile_recover_on_bare_start (test_svc.SvcDbRecoveryTests.test_external_dsn_and_conffile_recover_on_bare_start) ... ok\ntest_legacy_exec_dsn_survives_consecutive_restarts (test_svc.SvcDbRecoveryTests.test_legacy_exec_dsn_survives_consecutive_restarts) ... ok\ntest_mock_conflict_and_legacy_binary_refuse (test_svc.SvcDbRecoveryTests.test_mock_conflict_and_legacy_binary_refuse) ... ok\ntest_rdm_companion_missing_web_fails_deploy (test_svc.SvcDbRecoveryTests.test_rdm_companion_missing_web_fails_deploy) ... ok\ntest_rdm_source_commits_and_update_track (test_svc.SvcDbRecoveryTests.test_rdm_source_commits_and_update_track) ... To /tmp/svc-db-regress-_9hozas8/rdmremote.git\n 8dff2e3..6681a9a main -> main\nok\ntest_rdm_source_deploy_end_to_end (test_svc.SvcDbRecoveryTests.test_rdm_source_deploy_end_to_end) ... ok\ntest_refusals_keep_registration_without_sqlite_fallback (test_svc.SvcDbRecoveryTests.test_refusals_keep_registration_without_sqlite_fallback) ... ok\ntest_restart_refusal_happens_before_stopping_running_service (test_svc.SvcDbRecoveryTests.test_restart_refusal_happens_before_stopping_running_service) ... ok\ntest_seed_owner_override_skips_account_lookup (test_svc.SvcDbRecoveryTests.test_seed_owner_override_skips_account_lookup) ... ok\ntest_seed_puts_with_temporary_bearer_key_when_auth_on (test_svc.SvcDbRecoveryTests.test_seed_puts_with_temporary_bearer_key_when_auth_on) ... ok\ntest_seed_puts_without_credentials_when_auth_off (test_svc.SvcDbRecoveryTests.test_seed_puts_without_credentials_when_auth_off) ... ok\ntest_sequential_restarts_no_cross_dsn_and_no_secret_leak (test_svc.SvcDbRecoveryTests.test_sequential_restarts_no_cross_dsn_and_no_secret_leak) ... ok\ntest_source_switch_requires_flag (test_svc.SvcDbRecoveryTests.test_source_switch_requires_flag) ... ok\ntest_static_fresh_deploy_registers_pidcheck_and_starts (test_svc.SvcDbRecoveryTests.test_static_fresh_deploy_registers_pidcheck_and_starts)\n全新 static --dir:登记须含 pidcheck;首启探活不得把 http.server 判死。 ... ok\ntest_update_preserves_binding (test_svc.SvcDbRecoveryTests.test_update_preserves_binding) ... ok\ntest_backup_custom_out_not_pruned (test_svc_backup.SvcAgentBackupTests.test_backup_custom_out_not_pruned) ... ok\ntest_backup_event_recorded (test_svc_backup.SvcAgentBackupTests.test_backup_event_recorded) ... ok\ntest_backup_live_writer_consistent_and_outside_runtime (test_svc_backup.SvcAgentBackupTests.test_backup_live_writer_consistent_and_outside_runtime)\n活跃 WAL 写入者:快照可读、行在、integrity ok;-wal/-shm 不入快照。 ... ok\n/home/linuxbrew/.linuxbrew/Cellar/python@3.14/3.14.8/lib/python3.14/unittest/suite.py:107: ResourceWarning: unclosed file <_io.TextIOWrapper name=3 encoding='UTF-8'>\n for index, test in enumerate(self):\nResourceWarning: Enable tracemalloc to get the object allocation traceback\ntest_backup_manifest_sha_matches (test_svc_backup.SvcAgentBackupTests.test_backup_manifest_sha_matches) ... ok\ntest_backup_non_sqlite_db_kept_raw_without_leftovers (test_svc_backup.SvcAgentBackupTests.test_backup_non_sqlite_db_kept_raw_without_leftovers) ... ok\ntest_backup_rejects_postgres_with_db_hint (test_svc_backup.SvcAgentBackupTests.test_backup_rejects_postgres_with_db_hint) ... ok\ntest_backup_requires_registration (test_svc_backup.SvcAgentBackupTests.test_backup_requires_registration) ... ok\ntest_backup_target_exists_refused (test_svc_backup.SvcAgentBackupTests.test_backup_target_exists_refused) ... ok\ntest_backup_without_sqlite3_refuses (test_svc_backup.SvcAgentBackupTests.test_backup_without_sqlite3_refuses)\nPATH 无 sqlite3 → 拒绝(不回退裸拷贝)。重建与真实 PATH 等价的工具目录、 ... ok\ntest_retention_and_listing (test_svc_backup.SvcAgentBackupTests.test_retention_and_listing) ... ok\ntest_rm_purge_removes_snapshots (test_svc_backup.SvcAgentBackupTests.test_rm_purge_removes_snapshots) ... ok\ntest_cache_recycling_preserves_ignored_unique_files (test_svc_build_cutover.SvcBuildCutoverTests.test_cache_recycling_preserves_ignored_unique_files) ... ok\ntest_e2e_build_only_uses_versioned_sources_without_runtime_or_api_calls (test_svc_build_cutover.SvcBuildCutoverTests.test_e2e_build_only_uses_versioned_sources_without_runtime_or_api_calls) ... ok\ntest_mismatched_existing_cache_is_rejected_before_candidate_build (test_svc_build_cutover.SvcBuildCutoverTests.test_mismatched_existing_cache_is_rejected_before_candidate_build) ... ok\ntest_versioned_dev_materialization_uses_composer_without_submodules (test_svc_build_cutover.SvcBuildCutoverTests.test_versioned_dev_materialization_uses_composer_without_submodules) ... ok\ntest_versioned_rdm_adapter_passes_fixed_dev_root_to_product_wrapper (test_svc_build_cutover.SvcBuildCutoverTests.test_versioned_rdm_adapter_passes_fixed_dev_root_to_product_wrapper) ... ok\ntest_versioned_static_adapter_resolves_published_frontend_artifact (test_svc_build_cutover.SvcBuildCutoverTests.test_versioned_static_adapter_resolves_published_frontend_artifact) ... ok\ntest_forward_only_requires_confirm_and_backup (test_svc_deploy_txn.DeployTxnTests.test_forward_only_requires_confirm_and_backup) ... ok\ntest_schema_incompatible_refuses_before_stop (test_svc_deploy_txn.DeployTxnTests.test_schema_incompatible_refuses_before_stop) ... ok\ntest_replace_failure_keeps_original (test_svc_identity.AtomicWriteTests.test_replace_failure_keeps_original) ... ok\ntest_I3_start_ensures_sqlite_identity (test_svc_identity.IdentityTests.test_I3_start_ensures_sqlite_identity) ... ok\ntest_I3_wrong_db_identity_blocks_start (test_svc_identity.IdentityTests.test_I3_wrong_db_identity_blocks_start) ... ok\ntest_T1_bare_restart_stable_identity (test_svc_identity.IdentityTests.test_T1_bare_restart_stable_identity) ... ok\ntest_T2_port_change_keeps_anchors (test_svc_identity.IdentityTests.test_T2_port_change_keeps_anchors) ... ok\ntest_T3_data_drift_rejected (test_svc_identity.IdentityTests.test_T3_data_drift_rejected) ... ok\ntest_T4a_leftover_new_file_ignored (test_svc_identity.IdentityTests.test_T4a_leftover_new_file_ignored) ... ok\ntest_T4b_corrupt_manifest_blocks (test_svc_identity.IdentityTests.test_T4b_corrupt_manifest_blocks) ... ok\ntest_T5a_missing_marker_blocks (test_svc_identity.IdentityTests.test_T5a_missing_marker_blocks) ... ok\ntest_T5b_foreign_marker_blocks (test_svc_identity.IdentityTests.test_T5b_foreign_marker_blocks) ... ok\ntest_T5c_lost_manifest_blocks_not_rebuild (test_svc_identity.IdentityTests.test_T5c_lost_manifest_blocks_not_rebuild) ... ok\ntest_T6_cwd_independent_identity (test_svc_identity.IdentityTests.test_T6_cwd_independent_identity) ... ok\ntest_U1_bare_start_missing_row_is_event_init_recovers (test_svc_identity.IdentityTests.test_U1_bare_start_missing_row_is_event_init_recovers)\n普通启动只验证不补行:DB 行缺失 → 拒绝且不建空行(缺行即事件); ... ok\ntest_U1_capability_probe_no_false_positive_no_hang (test_svc_identity.IdentityTests.test_U1_capability_probe_no_false_positive_no_hang)\n能力探测无副作用:含 ensure 字样的服务态门禁报错不算能力(旧实现 ... ok\ntest_U1_update_ensures_missing_row_before_stop (test_svc_identity.IdentityTests.test_U1_update_ensures_missing_row_before_stop)\n已建立身份后删行:update 在停服前拒绝,不自动补行,旧进程保持。 ... ok\ntest_U1_update_refuses_identityless_candidate_keeps_old_state (test_svc_identity.IdentityTests.test_U1_update_refuses_identityless_candidate_keeps_old_state)\nmanifest 治理实例 × 无 identity 候选(RDM 旧形态):停服前拒绝—— ... ok\ntest_Z_real_pg_not_run (test_svc_identity.IdentityTests.test_Z_real_pg_not_run) ... skipped '真实 PG 身份专项 NOT_RUN:需真实实例(SVC_TEST_PG=1 + AGENT_PG_TEST_DSN)'\ntest_recover_fails_when_port_stolen (test_svc_identity.IdentityTests.test_recover_fails_when_port_stolen) ... ok\ntest_recover_ignores_never_started_service (test_svc_identity.IdentityTests.test_recover_ignores_never_started_service) ... ok\ntest_recover_noop_while_running (test_svc_identity.IdentityTests.test_recover_noop_while_running) ... ok\ntest_recover_reserved_name_rejected (test_svc_identity.IdentityTests.test_recover_reserved_name_rejected) ... ok\ntest_recover_respects_explicit_stop (test_svc_identity.IdentityTests.test_recover_respects_explicit_stop) ... ok\ntest_recover_restarts_sigkilled_service (test_svc_identity.IdentityTests.test_recover_restarts_sigkilled_service) ... ok\ntest_recover_skips_when_lock_held (test_svc_identity.IdentityTests.test_recover_skips_when_lock_held) ... ok\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_identity.IdentityTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... ok\ntest_start_records_autostart_and_stop_clears (test_svc_identity.IdentityTests.test_start_records_autostart_and_stop_clears) ... ok\ntest_start_rejects_foreign_port_occupant (test_svc_identity.IdentityTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... ok\ntest_stop_on_dead_process_clears_autostart (test_svc_identity.IdentityTests.test_stop_on_dead_process_clears_autostart) ... ok\ntest_watchdog_print_plan (test_svc_identity.IdentityTests.test_watchdog_print_plan) ... ok\ntest_caller_identity_env_does_not_reach_serve (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_caller_identity_env_does_not_reach_serve) ... FAIL\ntest_recover_fails_when_port_stolen (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_fails_when_port_stolen) ... ok\ntest_recover_ignores_never_started_service (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_ignores_never_started_service) ... ok\ntest_recover_noop_while_running (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_noop_while_running) ... ok\ntest_recover_reserved_name_rejected (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_reserved_name_rejected) ... ok\ntest_recover_respects_explicit_stop (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_respects_explicit_stop) ... ok\ntest_recover_restarts_sigkilled_service (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_restarts_sigkilled_service) ... ok\ntest_recover_skips_when_lock_held (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_skips_when_lock_held) ... ok\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... ok\ntest_start_records_autostart_and_stop_clears (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_start_records_autostart_and_stop_clears) ... ok\ntest_start_rejects_foreign_port_occupant (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... ok\ntest_stop_on_dead_process_clears_autostart (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_stop_on_dead_process_clears_autostart) ... ok\ntest_two_bare_restarts_keep_identity (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_two_bare_restarts_keep_identity) ... ok\ntest_watchdog_print_plan (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_watchdog_print_plan) ... ok\ntest_addr_defaults_to_default_addr (test_svc_precheck.AgentListenRejectedPrecheck.test_addr_defaults_to_default_addr) ... ok\ntest_incident_combo_not_rejected (test_svc_precheck.AgentListenRejectedPrecheck.test_incident_combo_not_rejected) ... ok\ntest_insecure_not_rejected (test_svc_precheck.AgentListenRejectedPrecheck.test_insecure_not_rejected) ... ok\ntest_loopback_not_rejected (test_svc_precheck.AgentListenRejectedPrecheck.test_loopback_not_rejected) ... ok\ntest_nonloop_auth_off_with_dsn_rejected (test_svc_precheck.AgentListenRejectedPrecheck.test_nonloop_auth_off_with_dsn_rejected) ... ok\ntest_nonloop_no_dsn_rejected (test_svc_precheck.AgentListenRejectedPrecheck.test_nonloop_no_dsn_rejected) ... ok\ntest_auth_off_beats_dsn (test_svc_precheck.DbAuthEnabledMatrix.test_auth_off_beats_dsn) ... ok\ntest_auth_on_explicit (test_svc_precheck.DbAuthEnabledMatrix.test_auth_on_explicit) ... ok\ntest_auto_with_effective_dsn_is_authed (test_svc_precheck.DbAuthEnabledMatrix.test_auto_with_effective_dsn_is_authed) ... ok\ntest_auto_without_dsn_is_denied (test_svc_precheck.DbAuthEnabledMatrix.test_auto_without_dsn_is_denied) ... ok\ntest_no_auth_no_dsn_denied (test_svc_precheck.DbAuthEnabledMatrix.test_no_auth_no_dsn_denied) ... ok\ntest_broken_dbref_refuses (test_svc_precheck.ResolveDbConfigFixtures.test_broken_dbref_refuses) ... ok\ntest_legacy_exec_dsn_migrates_to_recoverable_keys (test_svc_precheck.ResolveDbConfigFixtures.test_legacy_exec_dsn_migrates_to_recoverable_keys) ... ok\ntest_legacy_exec_dsn_without_instance_goes_to_dsn_key (test_svc_precheck.ResolveDbConfigFixtures.test_legacy_exec_dsn_without_instance_goes_to_dsn_key) ... ok\ntest_migration_is_idempotent (test_svc_precheck.ResolveDbConfigFixtures.test_migration_is_idempotent) ... ok\ntest_no_dsn_no_dbref_is_sqlite (test_svc_precheck.ResolveDbConfigFixtures.test_no_dsn_no_dbref_is_sqlite) ... ok\ntest_post_g17_exec_restores_dsn_from_dbref (test_svc_precheck.ResolveDbConfigFixtures.test_post_g17_exec_restores_dsn_from_dbref) ... ok\ntest_env_config_resets_identity_env (test_svc_precheck.ResolverStateIsolation.test_env_config_resets_identity_env) ... ok\ntest_env_config_resets_pidcheck_runtime_state (test_svc_precheck.ResolverStateIsolation.test_env_config_resets_pidcheck_runtime_state) ... ok\ntest_env_config_resets_resolver_state (test_svc_precheck.ResolverStateIsolation.test_env_config_resets_resolver_state) ... ok\ntest_help_topic_lists_rdm_admin (test_svc_rdm_admin.RdmAdminTests.test_help_topic_lists_rdm_admin) ... ok\ntest_recover_fails_when_port_stolen (test_svc_rdm_admin.RdmAdminTests.test_recover_fails_when_port_stolen) ... ok\ntest_recover_ignores_never_started_service (test_svc_rdm_admin.RdmAdminTests.test_recover_ignores_never_started_service) ... ok\ntest_recover_noop_while_running (test_svc_rdm_admin.RdmAdminTests.test_recover_noop_while_running) ... ok\ntest_recover_reserved_name_rejected (test_svc_rdm_admin.RdmAdminTests.test_recover_reserved_name_rejected) ... ok\ntest_recover_respects_explicit_stop (test_svc_rdm_admin.RdmAdminTests.test_recover_respects_explicit_stop) ... ok\ntest_recover_restarts_sigkilled_service (test_svc_rdm_admin.RdmAdminTests.test_recover_restarts_sigkilled_service) ... ok\ntest_recover_skips_when_lock_held (test_svc_rdm_admin.RdmAdminTests.test_recover_skips_when_lock_held) ... ok\ntest_refuses_when_base_db_missing (test_svc_rdm_admin.RdmAdminTests.test_refuses_when_base_db_missing) ... ok\ntest_refuses_when_rdm_db_missing (test_svc_rdm_admin.RdmAdminTests.test_refuses_when_rdm_db_missing) ... ok\ntest_show_empty_ledger_hint (test_svc_rdm_admin.RdmAdminTests.test_show_empty_ledger_hint) ... ok\ntest_show_known_owner_no_warning (test_svc_rdm_admin.RdmAdminTests.test_show_known_owner_no_warning) ... ok\ntest_show_prints_ledger_and_flags_unknown_owner (test_svc_rdm_admin.RdmAdminTests.test_show_prints_ledger_and_flags_unknown_owner) ... ok\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_rdm_admin.RdmAdminTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... ok\ntest_start_records_autostart_and_stop_clears (test_svc_rdm_admin.RdmAdminTests.test_start_records_autostart_and_stop_clears) ... ok\ntest_start_rejects_foreign_port_occupant (test_svc_rdm_admin.RdmAdminTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... ok\ntest_status_lists_rdm_admin_row_and_warning (test_svc_rdm_admin.RdmAdminTests.test_status_lists_rdm_admin_row_and_warning) ... ok\ntest_status_silent_without_rdm_db (test_svc_rdm_admin.RdmAdminTests.test_status_silent_without_rdm_db) ... ok\ntest_stop_on_dead_process_clears_autostart (test_svc_rdm_admin.RdmAdminTests.test_stop_on_dead_process_clears_autostart) ... ok\ntest_transfer_idempotent_when_already_owner (test_svc_rdm_admin.RdmAdminTests.test_transfer_idempotent_when_already_owner) ... ok\ntest_transfer_rejects_empty_ledger (test_svc_rdm_admin.RdmAdminTests.test_transfer_rejects_empty_ledger) ... ok\ntest_transfer_rejects_owner_missing_from_base_users (test_svc_rdm_admin.RdmAdminTests.test_transfer_rejects_owner_missing_from_base_users) ... ok\ntest_transfer_rewrites_single_row_with_provenance (test_svc_rdm_admin.RdmAdminTests.test_transfer_rewrites_single_row_with_provenance) ... ok\ntest_unknown_subcommand_usage_exit_2 (test_svc_rdm_admin.RdmAdminTests.test_unknown_subcommand_usage_exit_2) ... ok\ntest_watchdog_print_plan (test_svc_rdm_admin.RdmAdminTests.test_watchdog_print_plan) ... ok\ntest_U3_real_agent_identity_lifecycle_sqlite (test_svc_realcombo.RealComboTests.test_U3_real_agent_identity_lifecycle_sqlite)\n真实组合二进制:领养 ensure → verify → 两次裸重启身份/锚点稳定; ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_U3_real_pg_identity_env_delivery (test_svc_realcombo.RealComboTests.test_U3_real_pg_identity_env_delivery)\n真实 PostgreSQL:AGENT_SYSTEM_DSN 环境交付 ensure/verify(凭据不进 ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_U3_real_rdm_binary_lifecycle_sqlite (test_svc_realcombo.RealComboTests.test_U3_real_rdm_binary_lifecycle_sqlite)\n真实 RDM 组合二进制:identity 接线(Backend 公共 CLI)→ serve 门禁 → ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_U3_real_rdm_full_deploy_track (test_svc_realcombo.RealComboTests.test_U3_real_rdm_full_deploy_track)\n全轨:materialize(真实 make build)→ 候选身份门禁 → release 切换 → ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_fails_when_port_stolen (test_svc_realcombo.RealComboTests.test_recover_fails_when_port_stolen) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_ignores_never_started_service (test_svc_realcombo.RealComboTests.test_recover_ignores_never_started_service) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_noop_while_running (test_svc_realcombo.RealComboTests.test_recover_noop_while_running) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_reserved_name_rejected (test_svc_realcombo.RealComboTests.test_recover_reserved_name_rejected) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_respects_explicit_stop (test_svc_realcombo.RealComboTests.test_recover_respects_explicit_stop) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_restarts_sigkilled_service (test_svc_realcombo.RealComboTests.test_recover_restarts_sigkilled_service) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_skips_when_lock_held (test_svc_realcombo.RealComboTests.test_recover_skips_when_lock_held) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_realcombo.RealComboTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_start_records_autostart_and_stop_clears (test_svc_realcombo.RealComboTests.test_start_records_autostart_and_stop_clears) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_start_rejects_foreign_port_occupant (test_svc_realcombo.RealComboTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_stop_on_dead_process_clears_autostart (test_svc_realcombo.RealComboTests.test_stop_on_dead_process_clears_autostart) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_watchdog_print_plan (test_svc_realcombo.RealComboTests.test_watchdog_print_plan) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_fails_when_port_stolen (test_svc_recover.SvcAutoRecoverTests.test_recover_fails_when_port_stolen) ... ok\ntest_recover_ignores_never_started_service (test_svc_recover.SvcAutoRecoverTests.test_recover_ignores_never_started_service) ... ok\ntest_recover_noop_while_running (test_svc_recover.SvcAutoRecoverTests.test_recover_noop_while_running) ... ok\ntest_recover_reserved_name_rejected (test_svc_recover.SvcAutoRecoverTests.test_recover_reserved_name_rejected) ... ok\ntest_recover_respects_explicit_stop (test_svc_recover.SvcAutoRecoverTests.test_recover_respects_explicit_stop) ... ok\ntest_recover_restarts_sigkilled_service (test_svc_recover.SvcAutoRecoverTests.test_recover_restarts_sigkilled_service) ... ok\ntest_recover_skips_when_lock_held (test_svc_recover.SvcAutoRecoverTests.test_recover_skips_when_lock_held) ... ok\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_recover.SvcAutoRecoverTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... FAIL\ntest_start_records_autostart_and_stop_clears (test_svc_recover.SvcAutoRecoverTests.test_start_records_autostart_and_stop_clears) ... ok\ntest_start_rejects_foreign_port_occupant (test_svc_recover.SvcAutoRecoverTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... ok\ntest_stop_on_dead_process_clears_autostart (test_svc_recover.SvcAutoRecoverTests.test_stop_on_dead_process_clears_autostart) ... ok\ntest_watchdog_print_plan (test_svc_recover.SvcAutoRecoverTests.test_watchdog_print_plan) ... ok\ntest_I3_start_ensures_sqlite_identity (test_svc_u2.U2ReleaseTests.test_I3_start_ensures_sqlite_identity) ... ok\ntest_I3_wrong_db_identity_blocks_start (test_svc_u2.U2ReleaseTests.test_I3_wrong_db_identity_blocks_start) ... ok\ntest_T1_bare_restart_stable_identity (test_svc_u2.U2ReleaseTests.test_T1_bare_restart_stable_identity) ... ok\ntest_T2_port_change_keeps_anchors (test_svc_u2.U2ReleaseTests.test_T2_port_change_keeps_anchors) ... ok\ntest_T3_data_drift_rejected (test_svc_u2.U2ReleaseTests.test_T3_data_drift_rejected) ... ok\ntest_T4a_leftover_new_file_ignored (test_svc_u2.U2ReleaseTests.test_T4a_leftover_new_file_ignored) ... ok\ntest_T4b_corrupt_manifest_blocks (test_svc_u2.U2ReleaseTests.test_T4b_corrupt_manifest_blocks) ... ok\ntest_T5a_missing_marker_blocks (test_svc_u2.U2ReleaseTests.test_T5a_missing_marker_blocks) ... ok\ntest_T5b_foreign_marker_blocks (test_svc_u2.U2ReleaseTests.test_T5b_foreign_marker_blocks) ... ok\ntest_T5c_lost_manifest_blocks_not_rebuild (test_svc_u2.U2ReleaseTests.test_T5c_lost_manifest_blocks_not_rebuild) ... ok\ntest_T6_cwd_independent_identity (test_svc_u2.U2ReleaseTests.test_T6_cwd_independent_identity) ... ok\ntest_U1_bare_start_missing_row_is_event_init_recovers (test_svc_u2.U2ReleaseTests.test_U1_bare_start_missing_row_is_event_init_recovers)\n普通启动只验证不补行:DB 行缺失 → 拒绝且不建空行(缺行即事件); ... ok\ntest_U1_capability_probe_no_false_positive_no_hang (test_svc_u2.U2ReleaseTests.test_U1_capability_probe_no_false_positive_no_hang)\n能力探测无副作用:含 ensure 字样的服务态门禁报错不算能力(旧实现 ... ok\ntest_U1_update_ensures_missing_row_before_stop (test_svc_u2.U2ReleaseTests.test_U1_update_ensures_missing_row_before_stop)\n已建立身份后删行:update 在停服前拒绝,不自动补行,旧进程保持。 ... ok\ntest_U1_update_refuses_identityless_candidate_keeps_old_state (test_svc_u2.U2ReleaseTests.test_U1_update_refuses_identityless_candidate_keeps_old_state)\nmanifest 治理实例 × 无 identity 候选(RDM 旧形态):停服前拒绝—— ... ok\ntest_U2_build_failure_keeps_old_running (test_svc_u2.U2ReleaseTests.test_U2_build_failure_keeps_old_running) ... ok\ntest_U2_fault_after_switch_rolls_back_on_next_start (test_svc_u2.U2ReleaseTests.test_U2_fault_after_switch_rolls_back_on_next_start) ... ok\ntest_U2_health_timeout_rolls_back (test_svc_u2.U2ReleaseTests.test_U2_health_timeout_rolls_back) ... ok\ntest_U2_journal_interrupt_resolved_on_start (test_svc_u2.U2ReleaseTests.test_U2_journal_interrupt_resolved_on_start) ... ok\ntest_U2_layout_switch_and_rollback_on_start_failure (test_svc_u2.U2ReleaseTests.test_U2_layout_switch_and_rollback_on_start_failure) ... ok\ntest_U2_legacy_layout_bare_lifecycle_still_works (test_svc_u2.U2ReleaseTests.test_U2_legacy_layout_bare_lifecycle_still_works) ... ok\ntest_U2_schema_advance_blocks_rollback (test_svc_u2.U2ReleaseTests.test_U2_schema_advance_blocks_rollback) ... ok\ntest_Z_real_pg_not_run (test_svc_u2.U2ReleaseTests.test_Z_real_pg_not_run) ... skipped '真实 PG 身份专项 NOT_RUN:需真实实例(SVC_TEST_PG=1 + AGENT_PG_TEST_DSN)'\ntest_recover_fails_when_port_stolen (test_svc_u2.U2ReleaseTests.test_recover_fails_when_port_stolen) ... ok\ntest_recover_ignores_never_started_service (test_svc_u2.U2ReleaseTests.test_recover_ignores_never_started_service) ... ok\ntest_recover_noop_while_running (test_svc_u2.U2ReleaseTests.test_recover_noop_while_running) ... ok\ntest_recover_reserved_name_rejected (test_svc_u2.U2ReleaseTests.test_recover_reserved_name_rejected) ... ok\ntest_recover_respects_explicit_stop (test_svc_u2.U2ReleaseTests.test_recover_respects_explicit_stop) ... ok\ntest_recover_restarts_sigkilled_service (test_svc_u2.U2ReleaseTests.test_recover_restarts_sigkilled_service) ... ok\ntest_recover_skips_when_lock_held (test_svc_u2.U2ReleaseTests.test_recover_skips_when_lock_held) ... ok\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_u2.U2ReleaseTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... ok\ntest_start_records_autostart_and_stop_clears (test_svc_u2.U2ReleaseTests.test_start_records_autostart_and_stop_clears) ... ok\ntest_start_rejects_foreign_port_occupant (test_svc_u2.U2ReleaseTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... ok\ntest_stop_on_dead_process_clears_autostart (test_svc_u2.U2ReleaseTests.test_stop_on_dead_process_clears_autostart) ... ok\ntest_watchdog_print_plan (test_svc_u2.U2ReleaseTests.test_watchdog_print_plan) ... ok\ntest_T1_user_list_binds_manifest_data (test_svc_user_binding.UserBindingTests.test_T1_user_list_binds_manifest_data) ... ok\ntest_T2_reject_override_data_flag (test_svc_user_binding.UserBindingTests.test_T2_reject_override_data_flag) ... ok\ntest_T2b_reject_literal_default_data (test_svc_user_binding.UserBindingTests.test_T2b_reject_literal_default_data) ... ok\ntest_T3_missing_data_root_rejected (test_svc_user_binding.UserBindingTests.test_T3_missing_data_root_rejected) ... ok\ntest_T4_no_flock_rejects_user_and_deploy (test_svc_user_binding.UserBindingTests.test_T4_no_flock_rejects_user_and_deploy) ... ok\ntest_T5_identity_regression_smoke (test_svc_user_binding.UserBindingTests.test_T5_identity_regression_smoke) ... ok\ntest_recover_fails_when_port_stolen (test_svc_user_binding.UserBindingTests.test_recover_fails_when_port_stolen) ... ok\ntest_recover_ignores_never_started_service (test_svc_user_binding.UserBindingTests.test_recover_ignores_never_started_service) ... ok\ntest_recover_noop_while_running (test_svc_user_binding.UserBindingTests.test_recover_noop_while_running) ... ok\ntest_recover_reserved_name_rejected (test_svc_user_binding.UserBindingTests.test_recover_reserved_name_rejected) ... ok\ntest_recover_respects_explicit_stop (test_svc_user_binding.UserBindingTests.test_recover_respects_explicit_stop) ... ok\ntest_recover_restarts_sigkilled_service (test_svc_user_binding.UserBindingTests.test_recover_restarts_sigkilled_service) ... ok\ntest_recover_skips_when_lock_held (test_svc_user_binding.UserBindingTests.test_recover_skips_when_lock_held) ... ok\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_user_binding.UserBindingTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... ok\ntest_start_records_autostart_and_stop_clears (test_svc_user_binding.UserBindingTests.test_start_records_autostart_and_stop_clears) ... ok\ntest_start_rejects_foreign_port_occupant (test_svc_user_binding.UserBindingTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... ok\ntest_stop_on_dead_process_clears_autostart (test_svc_user_binding.UserBindingTests.test_stop_on_dead_process_clears_autostart) ... ok\ntest_watchdog_print_plan (test_svc_user_binding.UserBindingTests.test_watchdog_print_plan) ... ok\ntest_full_help_mentions_user_binding (test_svc_user_help.UserHelpTests.test_full_help_mentions_user_binding) ... ok\ntest_help_accounts_lists_six_commands (test_svc_user_help.UserHelpTests.test_help_accounts_lists_six_commands) ... ok\ntest_topics_and_short_and_lifecycle_mention_accounts (test_svc_user_help.UserHelpTests.test_topics_and_short_and_lifecycle_mention_accounts) ... ok\ntest_ide_lock_in_git_dir_does_not_block_finish (test_task.FinishGuardFixTests.test_ide_lock_in_git_dir_does_not_block_finish) ... ok\ntest_local_default_branch_at_origin_main_does_not_block (test_task.FinishGuardFixTests.test_local_default_branch_at_origin_main_does_not_block)\n克隆默认分支停在 origin/main 顶端(pin 为 feature 顶端时不在其历史内) ... ok\ntest_local_unique_commit_still_preserved (test_task.FinishGuardFixTests.test_local_unique_commit_still_preserved) ... ok\ntest_real_git_lock_still_blocks_finish (test_task.FinishGuardFixTests.test_real_git_lock_still_blocks_finish) ... ok\ntest_remote_tracking_refs_do_not_block_finish (test_task.FinishGuardFixTests.test_remote_tracking_refs_do_not_block_finish) ... ok\ntest_finish_abandon_retains_local_remote_tips_and_reason (test_task.TaskLifecycleTests.test_finish_abandon_retains_local_remote_tips_and_reason) ... ok\ntest_finish_abandon_without_reason_preserves_checkout_and_refs (test_task.TaskLifecycleTests.test_finish_abandon_without_reason_preserves_checkout_and_refs) ... ok\ntest_finish_clean_worktree_has_accurate_remote_result (test_task.TaskLifecycleTests.test_finish_clean_worktree_has_accurate_remote_result) ... ok\ntest_finish_deletes_only_merged_remote_branch (test_task.TaskLifecycleTests.test_finish_deletes_only_merged_remote_branch) ... ok\ntest_finish_preserves_component_commits_off_the_pinned_head (test_task.TaskLifecycleTests.test_finish_preserves_component_commits_off_the_pinned_head) ... ok\ntest_finish_preserves_component_untracked_file (test_task.TaskLifecycleTests.test_finish_preserves_component_untracked_file) ... ok\ntest_finish_preserves_linked_component_worktrees_at_the_pinned_head (test_task.TaskLifecycleTests.test_finish_preserves_linked_component_worktrees_at_the_pinned_head) ... ok\ntest_finish_preserves_linked_nested_component_worktree (test_task.TaskLifecycleTests.test_finish_preserves_linked_nested_component_worktree) ... ok\ntest_finish_preserves_locked_worktree (test_task.TaskLifecycleTests.test_finish_preserves_locked_worktree) ... ok\ntest_finish_preserves_main_and_active_index_lock (test_task.TaskLifecycleTests.test_finish_preserves_main_and_active_index_lock) ... ok\ntest_finish_preserves_modified_untracked_and_ignored_files (test_task.TaskLifecycleTests.test_finish_preserves_modified_untracked_and_ignored_files) ... ok\ntest_finish_preserves_remote_unmerged_tip (test_task.TaskLifecycleTests.test_finish_preserves_remote_unmerged_tip) ... ok\ntest_finish_recycles_clean_submodule_without_shared_config_changes (test_task.TaskLifecycleTests.test_finish_recycles_clean_submodule_without_shared_config_changes) ... ok\ntest_finish_rejects_subdirectory_without_deleting_it (test_task.TaskLifecycleTests.test_finish_rejects_subdirectory_without_deleting_it) ... ok\ntest_finish_remote_deletion_lease_preserves_concurrent_update (test_task.TaskLifecycleTests.test_finish_remote_deletion_lease_preserves_concurrent_update) ... ok\ntest_finish_requires_writer_exit_confirmation (test_task.TaskLifecycleTests.test_finish_requires_writer_exit_confirmation) ... ok\ntest_long_merge_history_keeps_merged_card_visible_and_closable (test_task.TaskLifecycleTests.test_long_merge_history_keeps_merged_card_visible_and_closable) ... ok\ntest_post_merge_is_silent_outside_main_checkout (test_task.TaskLifecycleTests.test_post_merge_is_silent_outside_main_checkout) ... ok\ntest_post_merge_main_merge_only_reminds_owner (test_task.TaskLifecycleTests.test_post_merge_main_merge_only_reminds_owner) ... ok\ntest_post_merge_main_pull_only_reminds_owner (test_task.TaskLifecycleTests.test_post_merge_main_pull_only_reminds_owner) ... ok\ntest_precheck_feature_behind_requires_sync (test_task.TaskLifecycleTests.test_precheck_feature_behind_requires_sync) ... ok\ntest_precheck_rejects_unreachable_authority (test_task.TaskLifecycleTests.test_precheck_rejects_unreachable_authority) ... ok\ntest_precheck_routes_existing_project_delivery_policy (test_task.TaskLifecycleTests.test_precheck_routes_existing_project_delivery_policy) ... ok\ntest_start_imports_precheck_and_creates_four_part_commit (test_task.TaskLifecycleTests.test_start_imports_precheck_and_creates_four_part_commit) ... ok\ntest_start_offline_does_not_create_worktree (test_task.TaskLifecycleTests.test_start_offline_does_not_create_worktree) ... ok\ntest_start_preserves_merged_local_and_remote_branch_names (test_task.TaskLifecycleTests.test_start_preserves_merged_local_and_remote_branch_names) ... ok\ntest_start_rejects_receipt_when_authoritative_base_changed (test_task.TaskLifecycleTests.test_start_rejects_receipt_when_authoritative_base_changed) ... ok\ntest_start_requires_precheck_receipt_before_creating_worktree (test_task.TaskLifecycleTests.test_start_requires_precheck_receipt_before_creating_worktree) ... ok\ntest_start_stacked_branch_records_parent_and_main_baseline (test_task.TaskLifecycleTests.test_start_stacked_branch_records_parent_and_main_baseline) ... ok\ntest_sync_commit_failure_never_reports_synced (test_task.TaskLifecycleTests.test_sync_commit_failure_never_reports_synced) ... ok\ntest_sync_conflict_is_not_reported_as_synced (test_task.TaskLifecycleTests.test_sync_conflict_is_not_reported_as_synced) ... ok\ntest_sync_does_not_execute_json_receipt_command (test_task.TaskLifecycleTests.test_sync_does_not_execute_json_receipt_command) ... ok\ntest_sync_keeps_json_evidence_fresh_after_metadata_only_changes (test_task.TaskLifecycleTests.test_sync_keeps_json_evidence_fresh_after_metadata_only_changes) ... ok\ntest_sync_keeps_unchanged_component_branch (test_task.TaskLifecycleTests.test_sync_keeps_unchanged_component_branch) ... ok\ntest_sync_materializes_nested_detached_components (test_task.TaskLifecycleTests.test_sync_materializes_nested_detached_components) ... ok\ntest_sync_materializes_updated_component (test_task.TaskLifecycleTests.test_sync_materializes_updated_component) ... ok\ntest_sync_new_base_reports_actual_final_head (test_task.TaskLifecycleTests.test_sync_new_base_reports_actual_final_head) ... ok\ntest_sync_preserves_component_feature_branch (test_task.TaskLifecycleTests.test_sync_preserves_component_feature_branch) ... ok\ntest_sync_preserves_dirty_child (test_task.TaskLifecycleTests.test_sync_preserves_dirty_child) ... ok\ntest_sync_preserves_dirty_parent_and_staged_changes (test_task.TaskLifecycleTests.test_sync_preserves_dirty_parent_and_staged_changes) ... ok\ntest_sync_preserves_nested_feature_branch_when_parent_pin_changes (test_task.TaskLifecycleTests.test_sync_preserves_nested_feature_branch_when_parent_pin_changes) ... ok\ntest_sync_reads_legacy_commands_with_escaped_pipes (test_task.TaskLifecycleTests.test_sync_reads_legacy_commands_with_escaped_pipes) ... ok\ntest_sync_rejects_unreachable_target_without_changing_head (test_task.TaskLifecycleTests.test_sync_rejects_unreachable_target_without_changing_head) ... ok\ntest_sync_same_base_preserves_head_and_card (test_task.TaskLifecycleTests.test_sync_same_base_preserves_head_and_card) ... ok\ntest_sync_still_warns_for_stale_legacy_table_evidence (test_task.TaskLifecycleTests.test_sync_still_warns_for_stale_legacy_table_evidence) ... ok\ntest_sync_warns_for_malformed_json_evidence (test_task.TaskLifecycleTests.test_sync_warns_for_malformed_json_evidence) ... ok\ntest_sync_warns_for_missing_json_receipt_fields_even_with_valid_checksum (test_task.TaskLifecycleTests.test_sync_warns_for_missing_json_receipt_fields_even_with_valid_checksum) ... ok\ntest_sync_warns_for_unresolved_json_evidence_head (test_task.TaskLifecycleTests.test_sync_warns_for_unresolved_json_evidence_head) ... ok\ntest_sync_warns_for_unresolved_legacy_evidence_head (test_task.TaskLifecycleTests.test_sync_warns_for_unresolved_legacy_evidence_head) ... ok\ntest_sync_warns_when_json_after_state_contains_uncommitted_code (test_task.TaskLifecycleTests.test_sync_warns_when_json_after_state_contains_uncommitted_code) ... ok\ntest_sync_warns_when_json_before_state_contains_uncommitted_code (test_task.TaskLifecycleTests.test_sync_warns_when_json_before_state_contains_uncommitted_code) ... ok\ntest_sync_warns_when_json_evidence_predates_noncard_changes (test_task.TaskLifecycleTests.test_sync_warns_when_json_evidence_predates_noncard_changes) ... ok\ntest_verify_rejects_recursive_drift_even_when_root_has_local_edits (test_task.TaskLifecycleTests.test_verify_rejects_recursive_drift_even_when_root_has_local_edits) ... ok\ntest_verify_rejects_uninitialized_component (test_task.TaskLifecycleTests.test_verify_rejects_uninitialized_component) ... ok\ntest_local_precheck_allows_known_lag_without_changing_head (test_task_recovery.TaskRecoveryTests.test_local_precheck_allows_known_lag_without_changing_head) ... ok\ntest_local_precheck_never_advertises_delivery_even_when_current (test_task_recovery.TaskRecoveryTests.test_local_precheck_never_advertises_delivery_even_when_current) ... ok\ntest_local_precheck_rejects_dirty_state_and_unknown_remote (test_task_recovery.TaskRecoveryTests.test_local_precheck_rejects_dirty_state_and_unknown_remote) ... ok\ntest_local_precheck_rejects_foreign_registration (test_task_recovery.TaskRecoveryTests.test_local_precheck_rejects_foreign_registration) ... ok\ntest_local_precheck_rejects_invalid_baseline (test_task_recovery.TaskRecoveryTests.test_local_precheck_rejects_invalid_baseline) ... ok\ntest_local_precheck_rejects_main_and_missing_registration (test_task_recovery.TaskRecoveryTests.test_local_precheck_rejects_main_and_missing_registration) ... ok\ntest_local_precheck_rejects_wrong_branch_registration (test_task_recovery.TaskRecoveryTests.test_local_precheck_rejects_wrong_branch_registration) ... ok\ntest_local_receipt_cannot_start_a_task_or_resume_for_delivery (test_task_recovery.TaskRecoveryTests.test_local_receipt_cannot_start_a_task_or_resume_for_delivery) ... ok\ntest_local_resume_imports_original_receipt_without_sync (test_task_recovery.TaskRecoveryTests.test_local_resume_imports_original_receipt_without_sync) ... ok\ntest_local_resume_rejects_divergent_target_before_import (test_task_recovery.TaskRecoveryTests.test_local_resume_rejects_divergent_target_before_import) ... ok\ntest_local_resume_rejects_target_rewind_before_import (test_task_recovery.TaskRecoveryTests.test_local_resume_rejects_target_rewind_before_import) ... ok\ntest_make_resume_exports_the_selected_mode_and_receipt (test_task_recovery.TaskRecoveryTests.test_make_resume_exports_the_selected_mode_and_receipt) ... ok\ntest_resume_rejects_another_worktree_with_same_head (test_task_recovery.TaskRecoveryTests.test_resume_rejects_another_worktree_with_same_head) ... ok\ntest_resume_rejects_changed_source_head (test_task_recovery.TaskRecoveryTests.test_resume_rejects_changed_source_head) ... ok\ntest_strict_resume_imports_current_ready_receipt (test_task_recovery.TaskRecoveryTests.test_strict_resume_imports_current_ready_receipt) ... ok\ntest_strict_resume_rejects_target_advance (test_task_recovery.TaskRecoveryTests.test_strict_resume_rejects_target_advance) ... ok\ntest_unknown_validation_purpose_is_rejected (test_task_recovery.TaskRecoveryTests.test_unknown_validation_purpose_is_rejected) ... ok\ntest_unknown_work_mode_is_rejected (test_task_recovery.TaskRecoveryTests.test_unknown_work_mode_is_rejected) ... ok\ntest_local_recovery_refuses_missing_fixed_rules_before_readiness (test_task_recovery.WorkspaceRecoveryTests.test_local_recovery_refuses_missing_fixed_rules_before_readiness) ... ok\ntest_local_recovery_verifies_fixed_rules_without_sync_or_application_materialization (test_task_recovery.WorkspaceRecoveryTests.test_local_recovery_verifies_fixed_rules_without_sync_or_application_materialization) ... ok\ntest_local_resume_preserves_registered_edit_branch_and_unsaved_component (test_task_recovery.WorkspaceRecoveryTests.test_local_resume_preserves_registered_edit_branch_and_unsaved_component) ... ok\ntest_resume_rechecks_fixed_rules_before_importing_receipt (test_task_recovery.WorkspaceRecoveryTests.test_resume_rechecks_fixed_rules_before_importing_receipt) ... ok\ntest_credentials_in_transport_url_are_rejected (test_transport.TransportTests.test_credentials_in_transport_url_are_rejected) ... ok\ntest_inherited_http_source_must_match_injected_server_owner_and_repository (test_transport.TransportTests.test_inherited_http_source_must_match_injected_server_owner_and_repository) ... ok\ntest_injected_http_server_maps_to_verified_local_mirror_without_authentication (test_transport.TransportTests.test_injected_http_server_maps_to_verified_local_mirror_without_authentication) ... ok\ntest_ordinary_config_cannot_enable_http_transport (test_transport.TransportTests.test_ordinary_config_cannot_enable_http_transport) ... ok\ntest_remote_revision_download_without_global_git_change (test_transport.TransportTests.test_remote_revision_download_without_global_git_change) ... ok\ntest_verified_local_mirror_mapping_survives_without_authentication (test_transport.TransportTests.test_verified_local_mirror_mapping_survives_without_authentication) ... ok\ntest_actual_go_version_baseline_overlay_and_unlink_restore_version_consumption (test_workspace.WorkspaceTests.test_actual_go_version_baseline_overlay_and_unlink_restore_version_consumption) ... ok\ntest_conflicting_duplicate_nested_component_stops_before_cloning (test_workspace.WorkspaceTests.test_conflicting_duplicate_nested_component_stops_before_cloning) ... ok\ntest_edit_registers_branch_and_prepare_preserves_work (test_workspace.WorkspaceTests.test_edit_registers_branch_and_prepare_preserves_work) ... ok\ntest_equivalent_recursive_nested_sources_share_an_independent_component (test_workspace.WorkspaceTests.test_equivalent_recursive_nested_sources_share_an_independent_component) ... ok\ntest_existing_fixed_checkout_is_not_switched_after_lock_change (test_workspace.WorkspaceTests.test_existing_fixed_checkout_is_not_switched_after_lock_change) ... ok\ntest_explicit_fixed_refresh_preserves_old_commit_refs_and_reflog (test_workspace.WorkspaceTests.test_explicit_fixed_refresh_preserves_old_commit_refs_and_reflog) ... ok\ntest_explicit_fixed_refresh_refuses_dirty_ignored_edited_and_locked_sources (test_workspace.WorkspaceTests.test_explicit_fixed_refresh_refuses_dirty_ignored_edited_and_locked_sources) ... ok\ntest_explicit_fixed_refresh_refuses_index_flags_hiding_owner_changes (test_workspace.WorkspaceTests.test_explicit_fixed_refresh_refuses_index_flags_hiding_owner_changes) ... ok\ntest_explicit_fixed_refresh_refuses_shared_or_unregistered_ownership (test_workspace.WorkspaceTests.test_explicit_fixed_refresh_refuses_shared_or_unregistered_ownership) ... ok\ntest_failed_explicit_fixed_refresh_keeps_old_binding_and_can_retry (test_workspace.WorkspaceTests.test_failed_explicit_fixed_refresh_keeps_old_binding_and_can_retry) ... ok\ntest_fresh_library_edit_resolves_fixed_consumer_and_preserves_consumer_manifest (test_workspace.WorkspaceTests.test_fresh_library_edit_resolves_fixed_consumer_and_preserves_consumer_manifest) ... ok\ntest_git_operation_is_reported_and_not_removed (test_workspace.WorkspaceTests.test_git_operation_is_reported_and_not_removed) ... ok\ntest_ignored_unique_files_and_shared_worktrees_block_branch_changes (test_workspace.WorkspaceTests.test_ignored_unique_files_and_shared_worktrees_block_branch_changes) ... ok\ntest_library_baseline_resolves_transitive_selected_module (test_workspace.WorkspaceTests.test_library_baseline_resolves_transitive_selected_module) ... ok\ntest_library_legacy_baseline_uses_gitlink_not_current_head (test_workspace.WorkspaceTests.test_library_legacy_baseline_uses_gitlink_not_current_head) ... ok\ntest_missing_fixed_source_never_falls_back_to_remote_main (test_workspace.WorkspaceTests.test_missing_fixed_source_never_falls_back_to_remote_main) ... ok\ntest_npm_library_edit_uses_consumer_lock_git_sha_not_remote_main (test_workspace.WorkspaceTests.test_npm_library_edit_uses_consumer_lock_git_sha_not_remote_main) ... ok\ntest_npm_library_rejects_wrong_lock_origin_and_competing_manual_lock (test_workspace.WorkspaceTests.test_npm_library_rejects_wrong_lock_origin_and_competing_manual_lock) ... ok\ntest_partial_initialization_is_retained_and_retry_is_safe (test_workspace.WorkspaceTests.test_partial_initialization_is_retained_and_retry_is_safe) ... ok\ntest_partial_nested_transition_keeps_originals_and_owner_recovery_state (test_workspace.WorkspaceTests.test_partial_nested_transition_keeps_originals_and_owner_recovery_state) ... workspace: injected partial nested copy failure\nok\ntest_prepare_pins_fixed_commit_and_reuses_without_advancing (test_workspace.WorkspaceTests.test_prepare_pins_fixed_commit_and_reuses_without_advancing) ... ok\ntest_private_git_metadata_symlink_is_not_adopted (test_workspace.WorkspaceTests.test_private_git_metadata_symlink_is_not_adopted) ... ok\ntest_rejects_mismatched_origin_dirty_and_git_lock_without_changes (test_workspace.WorkspaceTests.test_rejects_mismatched_origin_dirty_and_git_lock_without_changes) ... ok\ntest_rejects_paths_and_symlink_escape (test_workspace.WorkspaceTests.test_rejects_paths_and_symlink_escape) ... ok\ntest_rejects_unknown_component_and_bad_branch_without_source_creation (test_workspace.WorkspaceTests.test_rejects_unknown_component_and_bad_branch_without_source_creation) ... ok\ntest_repeated_transition_keeps_alias_tag_versions_and_snapshot_history (test_workspace.WorkspaceTests.test_repeated_transition_keeps_alias_tag_versions_and_snapshot_history) ... ok\ntest_repeated_transition_preserves_dirty_index_ignored_and_external_git_metadata (test_workspace.WorkspaceTests.test_repeated_transition_preserves_dirty_index_ignored_and_external_git_metadata) ... ok\ntest_repeated_transition_rejects_a_new_source_head_without_switching_destination (test_workspace.WorkspaceTests.test_repeated_transition_rejects_a_new_source_head_without_switching_destination) ... ok\ntest_status_does_not_expose_credentials_from_an_unmatched_actual_origin (test_workspace.WorkspaceTests.test_status_does_not_expose_credentials_from_an_unmatched_actual_origin) ... ok\ntest_status_reports_dirty_and_verify_rejects_it (test_workspace.WorkspaceTests.test_status_reports_dirty_and_verify_rejects_it) ... ok\ntest_transition_known_nested_repositories_preserves_external_worktree_and_runs_go (test_workspace.WorkspaceTests.test_transition_known_nested_repositories_preserves_external_worktree_and_runs_go) ... ok\ntest_transition_preserves_committed_symlink_deletion_and_file_type_change (test_workspace.WorkspaceTests.test_transition_preserves_committed_symlink_deletion_and_file_type_change) ... ok\ntest_transition_preserves_staged_blob_internal_symlink_and_reflog_commit (test_workspace.WorkspaceTests.test_transition_preserves_staged_blob_internal_symlink_and_reflog_commit) ... ok\ntest_transition_refuses_initialized_nested_repository (test_workspace.WorkspaceTests.test_transition_refuses_initialized_nested_repository) ... ok\ntest_transition_rejects_external_symlinks_preserving_both_locations (test_workspace.WorkspaceTests.test_transition_rejects_external_symlinks_preserving_both_locations) ... ok\ntest_transition_report_is_readonly_apply_preserves_unique_commits_refs_and_files (test_workspace.WorkspaceTests.test_transition_report_is_readonly_apply_preserves_unique_commits_refs_and_files) ... ok\ntest_unlink_refuses_manual_overlay_changes_without_changing_registration (test_workspace.WorkspaceTests.test_unlink_refuses_manual_overlay_changes_without_changing_registration) ... ok\ntest_workspace_operation_lock_and_user_go_work_are_preserved (test_workspace.WorkspaceTests.test_workspace_operation_lock_and_user_go_work_are_preserved) ... ok\ntest_architecture_gate_preserves_edges_under_workspace_paths_and_new_module_identity (test_workspace_cutover.WorkspaceCutoverTests.test_architecture_gate_preserves_edges_under_workspace_paths_and_new_module_identity) ... ok\ntest_boundary_gate_uses_isolated_map_and_rejects_new_backend_internal_import (test_workspace_cutover.WorkspaceCutoverTests.test_boundary_gate_uses_isolated_map_and_rejects_new_backend_internal_import) ... ok\ntest_finish_preserves_absorbed_metadata_after_legacy_checkout_disappears (test_workspace_cutover.WorkspaceCutoverTests.test_finish_preserves_absorbed_metadata_after_legacy_checkout_disappears) ... ok\ntest_finish_preserves_external_worktree_of_retired_legacy_checkout (test_workspace_cutover.WorkspaceCutoverTests.test_finish_preserves_external_worktree_of_retired_legacy_checkout) ... ok\ntest_finish_preserves_nonbranch_legacy_refs_without_remote_backup (test_workspace_cutover.WorkspaceCutoverTests.test_finish_preserves_nonbranch_legacy_refs_without_remote_backup) ... ok\ntest_make_workspace_commands_prepare_edit_unlink_and_report (test_workspace_cutover.WorkspaceCutoverTests.test_make_workspace_commands_prepare_edit_unlink_and_report) ... ok\ntest_old_task_sync_adopts_new_sources_and_reports_explicit_transition (test_workspace_cutover.WorkspaceCutoverTests.test_old_task_sync_adopts_new_sources_and_reports_explicit_transition) ... ok\ntest_old_task_sync_preserves_unique_legacy_commit_staging_dirty_and_ignored_files (test_workspace_cutover.WorkspaceCutoverTests.test_old_task_sync_preserves_unique_legacy_commit_staging_dirty_and_ignored_files) ... ok\ntest_old_task_text_conflict_keeps_legacy_source_and_reports_no_success (test_workspace_cutover.WorkspaceCutoverTests.test_old_task_text_conflict_keeps_legacy_source_and_reports_no_success) ... ok\ntest_precheck_never_claims_ready_for_unavailable_fixed_rules (test_workspace_cutover.WorkspaceCutoverTests.test_precheck_never_claims_ready_for_unavailable_fixed_rules) ... ok\ntest_precheck_prepares_fixed_rules_outside_project_before_ready (test_workspace_cutover.WorkspaceCutoverTests.test_precheck_prepares_fixed_rules_outside_project_before_ready) ... ok\ntest_precheck_rejects_borrowed_rules_cache_symlink (test_workspace_cutover.WorkspaceCutoverTests.test_precheck_rejects_borrowed_rules_cache_symlink) ... ok\ntest_start_prepares_fixed_sources_without_recursive_submodule_init (test_workspace_cutover.WorkspaceCutoverTests.test_start_prepares_fixed_sources_without_recursive_submodule_init) ... ok\ntest_sync_preserves_edit_branch_and_refuses_changed_declared_source (test_workspace_cutover.WorkspaceCutoverTests.test_sync_preserves_edit_branch_and_refuses_changed_declared_source) ... ok\ntest_verify_detects_active_git_operation_in_nested_retired_root (test_workspace_cutover.WorkspaceCutoverTests.test_verify_detects_active_git_operation_in_nested_retired_root) ... ok\ntest_verify_detects_nested_git_operation_inside_new_workspace (test_workspace_cutover.WorkspaceCutoverTests.test_verify_detects_nested_git_operation_inside_new_workspace) ... ok\ntest_deleting_main_symlink_to_outside_is_denied (test_write_guard.WriteGuardTests.test_deleting_main_symlink_to_outside_is_denied) ... ok\ntest_detached_and_bad_branches_are_denied (test_write_guard.WriteGuardTests.test_detached_and_bad_branches_are_denied) ... ok\ntest_every_patch_file_and_move_destination_is_checked (test_write_guard.WriteGuardTests.test_every_patch_file_and_move_destination_is_checked) ... ok\ntest_feature_missing_parent_is_allowed (test_write_guard.WriteGuardTests.test_feature_missing_parent_is_allowed) ... ok\ntest_invalid_json_is_denied (test_write_guard.WriteGuardTests.test_invalid_json_is_denied) ... ok\ntest_missing_parent_on_main_is_denied (test_write_guard.WriteGuardTests.test_missing_parent_on_main_is_denied) ... ok\ntest_missing_unknown_and_malformed_write_input_are_denied (test_write_guard.WriteGuardTests.test_missing_unknown_and_malformed_write_input_are_denied) ... ok\ntest_non_git_destination_is_explicitly_outside_scope (test_write_guard.WriteGuardTests.test_non_git_destination_is_explicitly_outside_scope) ... ok\ntest_nonwrite_tools_are_outside_scope (test_write_guard.WriteGuardTests.test_nonwrite_tools_are_outside_scope) ... ok\ntest_relative_path_uses_hook_cwd_not_process_cwd (test_write_guard.WriteGuardTests.test_relative_path_uses_hook_cwd_not_process_cwd) ... ok\ntest_symlink_into_main_with_missing_parents_is_denied (test_write_guard.WriteGuardTests.test_symlink_into_main_with_missing_parents_is_denied) ... ok\ntest_valid_multi_file_patch_on_feature_is_allowed (test_write_guard.WriteGuardTests.test_valid_multi_file_patch_on_feature_is_allowed) ... ok\n\n======================================================================\nFAIL: test_auth_preflight_aligns_with_effective_env_dsn (test_svc.SvcDbRecoveryTests.test_auth_preflight_aligns_with_effective_env_dsn)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/agent-system-composition-b5be4j99/Dev-test-root/tests/test_svc.py\", line 474, in test_auth_preflight_aligns_with_effective_env_dsn\n self.assertIn(\"拒绝启动\", result.stdout)\n ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: '拒绝启动' not found in '\\x1b[1;33m[svc]\\x1b[0m [nl3] 跳过 manifest 迁移:需 python3 与 scripts/svc_manifest.py\\n\\x1b[1;31m[svc]\\x1b[0m [nl3] 端口被占用(非本服务):LISTEN 0 5 127.0.0.1:18803 0.0.0.0:* users:((\"python3\",pid=2487150,fd=3)) \\n\\x1b[1;31m[svc]\\x1b[0m 处理:停掉该进程,或换端口(--port / --addr)\\n'\n\n======================================================================\nFAIL: test_caller_identity_env_does_not_reach_serve (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_caller_identity_env_does_not_reach_serve)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/agent-system-composition-b5be4j99/Dev-test-root/tests/test_svc_lifecycle_isolation.py\", line 25, in test_caller_identity_env_does_not_reach_serve\n self.svc(\"iso\", \"start\", env=env)\n ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/tmp/agent-system-composition-b5be4j99/Dev-test-root/tests/test_svc_recover.py\", line 248, in svc\n self.assertEqual(proc.returncode, 0, proc.stdout)\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 1 != 0 : \u001b[1;32m[svc]\u001b[0m [iso] manifest:已迁移 rev=1 instance_id=svc-iso-7ecae8f6eb14 data=/tmp/svc-autorecover-w1qcsyvk/runtime/iso/data\n\u001b[1;31m[svc]\u001b[0m [iso] 端口被占用(非本服务):LISTEN 0 5 127.0.0.1:9461 0.0.0.0:* users:((\"python3\",pid=2550772,fd=3)) \n\u001b[1;31m[svc]\u001b[0m 处理:停掉该进程,或换端口(--port / --addr)\n\n\n======================================================================\nFAIL: test_start_reclaims_own_orphan_without_pidfile (test_svc_recover.SvcAutoRecoverTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/agent-system-composition-b5be4j99/Dev-test-root/tests/test_svc_recover.py\", line 484, in test_start_reclaims_own_orphan_without_pidfile\n self.start_ok(\"dev\")\n ~~~~~~~~~~~~~^^^^^^^\n File \"/tmp/agent-system-composition-b5be4j99/Dev-test-root/tests/test_svc_recover.py\", line 279, in start_ok\n result = self.svc(name, \"start\")\n File \"/tmp/agent-system-composition-b5be4j99/Dev-test-root/tests/test_svc_recover.py\", line 248, in svc\n self.assertEqual(proc.returncode, 0, proc.stdout)\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 1 != 0 : \u001b[1;33m[svc]\u001b[0m [dev] 跳过 manifest 迁移:需 python3 与 scripts/svc_manifest.py\n\u001b[1;31m[svc]\u001b[0m [dev] 端口被占用(非本服务):LISTEN 0 5 127.0.0.1:18812 0.0.0.0:* users:((\"python3\",pid=2577636,fd=3)) \n\u001b[1;31m[svc]\u001b[0m 处理:停掉该进程,或换端口(--port / --addr)\n\n\n----------------------------------------------------------------------\nRan 476 tests in 300.750s\n\nFAILED (failures=3, skipped=19)\nmake[2]: *** [Makefile:254: test-governance] Error 1\ncomposition: command failed (2): make test_candidate_cannot_read_checkout_credentials (test_ci_credentials.CheckoutTests.test_candidate_cannot_read_checkout_credentials) ... ok\ntest_candidate_submodule_update_commands_are_rejected (test_ci_credentials.CheckoutTests.test_candidate_submodule_update_commands_are_rejected) ... ok\ntest_credential_destination_confined_to_injected_server (test_ci_credentials.CheckoutTests.test_credential_destination_confined_to_injected_server) ... ok\ntest_external_or_unlisted_urls_are_rejected_before_component_fetch (test_ci_credentials.CheckoutTests.test_external_or_unlisted_urls_are_rejected_before_component_fetch) ... ok\ntest_inherited_template_hook_does_not_execute_with_credentials (test_ci_credentials.CheckoutTests.test_inherited_template_hook_does_not_execute_with_credentials) ... ok\ntest_nested_external_url_is_rejected_before_authenticated_fetch (test_ci_credentials.CheckoutTests.test_nested_external_url_is_rejected_before_authenticated_fetch) ... ok\ntest_rdm_pin_fetch_is_three_shas_on_the_allowlist (test_ci_credentials.CheckoutTests.test_rdm_pin_fetch_is_three_shas_on_the_allowlist) ... ok\ntest_recursive_gitlinks_materialize_exact_sha_without_persisting_credentials (test_ci_credentials.CheckoutTests.test_recursive_gitlinks_materialize_exact_sha_without_persisting_credentials) ... ok\ntest_redirects_do_not_forward_credential_or_fetch_unlisted_target (test_ci_credentials.CheckoutTests.test_redirects_do_not_forward_credential_or_fetch_unlisted_target) ... ok\ntest_backend_check_prepares_fixed_source_and_replays_owner_edits (test_component_checks.ComponentCheckTests.test_backend_check_prepares_fixed_source_and_replays_owner_edits) ... ok\ntest_explicit_overlay_uses_registered_workspace_and_preserves_default_version_mode (test_component_checks.ComponentCheckTests.test_explicit_overlay_uses_registered_workspace_and_preserves_default_version_mode) ... ok\ntest_fixed_go_checks_keep_source_clean_across_pg_and_multi_instance (test_component_checks.ComponentCheckTests.test_fixed_go_checks_keep_source_clean_across_pg_and_multi_instance) ... ok\ntest_fixed_go_checks_refuse_and_preserve_owner_changes_and_ignored_files (test_component_checks.ComponentCheckTests.test_fixed_go_checks_refuse_and_preserve_owner_changes_and_ignored_files) ... ok\ntest_fixed_go_failure_is_reported_without_polluting_source (test_component_checks.ComponentCheckTests.test_fixed_go_failure_is_reported_without_polluting_source) ... ok\ntest_make_pin_gate_uses_map_in_gitless_formal_root_and_ignores_external_rdm_identity (test_component_checks.ComponentCheckTests.test_make_pin_gate_uses_map_in_gitless_formal_root_and_ignores_external_rdm_identity) ... ok\ntest_multi_instance_binary_is_built_inside_dev_root_and_reached_by_suite (test_component_checks.ComponentCheckTests.test_multi_instance_binary_is_built_inside_dev_root_and_reached_by_suite) ... ok\ntest_new_pin_gate_validates_fixed_sources_and_rejects_local_replaces (test_component_checks.ComponentCheckTests.test_new_pin_gate_validates_fixed_sources_and_rejects_local_replaces) ... ok\ntest_pg_and_multi_instance_prerequisites_still_refuse_before_preparing_sources (test_component_checks.ComponentCheckTests.test_pg_and_multi_instance_prerequisites_still_refuse_before_preparing_sources) ... ok\ntest_pg_gate_requires_environment_and_forwards_it_to_real_go_tests (test_component_checks.ComponentCheckTests.test_pg_gate_requires_environment_and_forwards_it_to_real_go_tests) ... ok\ntest_registered_private_transport_reaches_real_go_process_without_global_change (test_component_checks.ComponentCheckTests.test_registered_private_transport_reaches_real_go_process_without_global_change) ... ok\ntest_before_sync_rejects_component_git_lock (test_component_governance.ComponentGovernanceTests.test_before_sync_rejects_component_git_lock) ... ok\ntest_evidence_captures_ignored_component_revision_and_dirty_bytes (test_component_governance.ComponentGovernanceTests.test_evidence_captures_ignored_component_revision_and_dirty_bytes) ... ok\ntest_new_layout_cannot_use_receipt_without_component_identity (test_component_governance.ComponentGovernanceTests.test_new_layout_cannot_use_receipt_without_component_identity) ... ok\ntest_receipts_reject_component_path_escape (test_component_governance.ComponentGovernanceTests.test_receipts_reject_component_path_escape) ... ok\ntest_startup_receipt_rejects_changed_ignored_component_objects (test_component_governance.ComponentGovernanceTests.test_startup_receipt_rejects_changed_ignored_component_objects) ... ok\ntest_all_product_acquisition_precedes_candidate_execution (test_composition.CompositionTests.test_all_product_acquisition_precedes_candidate_execution) ... ok\ntest_developer_package_tarball_overrides_do_not_reach_formal_tests (test_composition.CompositionTests.test_developer_package_tarball_overrides_do_not_reach_formal_tests) ... ok\ntest_dirty_root_composer_cannot_publish_under_committed_identity (test_composition.CompositionTests.test_dirty_root_composer_cannot_publish_under_committed_identity) ... ok\ntest_dirty_root_lock_is_rejected (test_composition.CompositionTests.test_dirty_root_lock_is_rejected) ... ok\ntest_dirty_root_transport_is_refused_before_import (test_composition.CompositionTests.test_dirty_root_transport_is_refused_before_import) ... ok\ntest_fixed_commits_embed_assets_without_touching_developer_checkout (test_composition.CompositionTests.test_fixed_commits_embed_assets_without_touching_developer_checkout) ... ok\ntest_fixed_root_governance_and_boundaries_receive_proven_source_map (test_composition.CompositionTests.test_fixed_root_governance_and_boundaries_receive_proven_source_map) ... ok\ntest_frontend_dist_symlink_cannot_import_assets_from_outside_source (test_composition.CompositionTests.test_frontend_dist_symlink_cannot_import_assets_from_outside_source) ... ok\ntest_historical_rdm_product_still_builds_from_legacy_pins (test_composition.CompositionTests.test_historical_rdm_product_still_builds_from_legacy_pins) ... ok\ntest_local_go_replace_is_rejected (test_composition.CompositionTests.test_local_go_replace_is_rejected) ... ok\ntest_locked_missing_revision_is_rejected (test_composition.CompositionTests.test_locked_missing_revision_is_rejected) ... ok\ntest_missing_frontend_assets_fails_before_publishing_binary (test_composition.CompositionTests.test_missing_frontend_assets_fails_before_publishing_binary) ... ok\ntest_modified_go_module_cache_is_rejected_before_product_publication (test_composition.CompositionTests.test_modified_go_module_cache_is_rejected_before_product_publication) ... ok\ntest_npm_local_dependency_overlay_is_rejected (test_composition.CompositionTests.test_npm_local_dependency_overlay_is_rejected) ... ok\ntest_project_test_mode_refuses_missing_boundary_gate (test_composition.CompositionTests.test_project_test_mode_refuses_missing_boundary_gate) ... ok\ntest_rdm_product_and_admin_follow_its_selected_backend_not_dev_source_lock (test_composition.CompositionTests.test_rdm_product_and_admin_follow_its_selected_backend_not_dev_source_lock) ... ok\ntest_rdm_vendored_remote_backend_embeds_assets_without_mutating_module_cache (test_composition.CompositionTests.test_rdm_vendored_remote_backend_embeds_assets_without_mutating_module_cache) ... ok\ntest_source_path_escape_is_rejected (test_composition.CompositionTests.test_source_path_escape_is_rejected) ... ok\ntest_test_target_checks_fixed_go_library_and_ui_sources (test_composition.CompositionTests.test_test_target_checks_fixed_go_library_and_ui_sources) ... ok\ntest_test_target_runs_real_frontend_and_go_tests (test_composition.CompositionTests.test_test_target_runs_real_frontend_and_go_tests) ... ok\ntest_unused_transitive_zip_does_not_require_consumer_sum_rewrite (test_composition.CompositionTests.test_unused_transitive_zip_does_not_require_consumer_sum_rewrite) ... ok\ntest_version_and_plugin_assets_come_from_committed_root (test_composition.CompositionTests.test_version_and_plugin_assets_come_from_committed_root) ... ok\ntest_versioned_rdm_product_entry_uses_fixed_composer (test_composition.CompositionTests.test_versioned_rdm_product_entry_uses_fixed_composer) ... skipped 'external RDM source was not supplied; host must replay the actual wrapper'\ntest_locked_metadata_is_acquired_before_offline_consumer_without_credentials (test_composition.NpmAcquisitionTests.test_locked_metadata_is_acquired_before_offline_consumer_without_credentials) ... ok\ntest_unreviewed_tarball_source_is_refused_before_acquisition (test_composition.NpmAcquisitionTests.test_unreviewed_tarball_source_is_refused_before_acquisition) ... ok\ntest_all_required_component_snapshots_have_fixed_provenance (test_dependency_ci.ComponentWorkflowFixtureTests.test_all_required_component_snapshots_have_fixed_provenance) ... ok\ntest_missing_component_snapshot_is_not_skipped (test_dependency_ci.ComponentWorkflowFixtureTests.test_missing_component_snapshot_is_not_skipped) ... ok\ntest_modified_workflow_snapshot_is_rejected_before_execution (test_dependency_ci.ComponentWorkflowFixtureTests.test_modified_workflow_snapshot_is_rejected_before_execution) ... ok\ntest_omitted_repository_provenance_is_rejected (test_dependency_ci.ComponentWorkflowFixtureTests.test_omitted_repository_provenance_is_rejected) ... ok\ntest_optional_source_validation_uses_immutable_commit_and_rejects_stale_head (test_dependency_ci.ComponentWorkflowFixtureTests.test_optional_source_validation_uses_immutable_commit_and_rejects_stale_head) ... ok\ntest_boundary_gate_refuses_missing_ripgrep_before_resolving_sources (test_dependency_ci.DependencyCITests.test_boundary_gate_refuses_missing_ripgrep_before_resolving_sources) ... ok\ntest_component_checkout_removes_tokens_before_candidate_executes (test_dependency_ci.DependencyCITests.test_component_checkout_removes_tokens_before_candidate_executes) ... ok\ntest_component_ci_executes_nested_go_module_tests (test_dependency_ci.DependencyCITests.test_component_ci_executes_nested_go_module_tests) ... ok\ntest_external_npm_git_source_rejected_before_authenticated_request (test_dependency_ci.DependencyCITests.test_external_npm_git_source_rejected_before_authenticated_request) ... ok\ntest_go_prefetch_covers_logging_trace_module (test_dependency_ci.DependencyCITests.test_go_prefetch_covers_logging_trace_module) ... ok\ntest_go_prefetch_rejects_mutation_of_committed_checksums (test_dependency_ci.DependencyCITests.test_go_prefetch_rejects_mutation_of_committed_checksums) ... ok\ntest_go_prefetch_uses_only_registered_private_repo_and_local_toolchain (test_dependency_ci.DependencyCITests.test_go_prefetch_uses_only_registered_private_repo_and_local_toolchain) ... ok\ntest_go_requirement_for_new_toolchain_fails_without_downloading_one (test_dependency_ci.DependencyCITests.test_go_requirement_for_new_toolchain_fails_without_downloading_one) ... ok\ntest_npm_git_package_installs_committed_output_without_prepare (test_dependency_ci.DependencyCITests.test_npm_git_package_installs_committed_output_without_prepare) ... ok\ntest_npm_metadata_version_cannot_be_a_destination (test_dependency_ci.DependencyCITests.test_npm_metadata_version_cannot_be_a_destination) ... ok\ntest_npm_nonregistry_tarball_rejected_before_request (test_dependency_ci.DependencyCITests.test_npm_nonregistry_tarball_rejected_before_request) ... ok\ntest_npm_prefetch_populates_cold_offline_resolver_metadata_without_credentials (test_dependency_ci.DependencyCITests.test_npm_prefetch_populates_cold_offline_resolver_metadata_without_credentials) ... ok\ntest_npm_provider_prepare_is_rejected_without_execution (test_dependency_ci.DependencyCITests.test_npm_provider_prepare_is_rejected_without_execution) ... ok\ntest_privileged_acquisition_finishes_before_candidate_execution_in_each_job (test_dependency_ci.DependencyCITests.test_privileged_acquisition_finishes_before_candidate_execution_in_each_job) ... ok\ntest_rdm_composition_lock_fetches_fixed_dev_without_executing_code (test_dependency_ci.DependencyCITests.test_rdm_composition_lock_fetches_fixed_dev_without_executing_code) ... ok\ntest_rdm_composition_lock_rejects_external_missing_and_malformed_commits (test_dependency_ci.DependencyCITests.test_rdm_composition_lock_rejects_external_missing_and_malformed_commits) ... ok\ntest_registered_application_lock_materializes_fixed_source (test_dependency_ci.DependencyCITests.test_registered_application_lock_materializes_fixed_source) ... ok\ntest_unregistered_go_module_rejected_before_authenticated_request (test_dependency_ci.DependencyCITests.test_unregistered_go_module_rejected_before_authenticated_request) ... ok\ntest_unregistered_source_lock_is_rejected_before_component_fetch (test_dependency_ci.DependencyCITests.test_unregistered_source_lock_is_rejected_before_component_fetch) ... ok\ntest_after_snapshot_failure_keeps_command_exit_and_output (test_evidence.EvidenceTests.test_after_snapshot_failure_keeps_command_exit_and_output) ... ok\ntest_all_persisted_and_displayed_text_is_sanitized (test_evidence.EvidenceTests.test_all_persisted_and_displayed_text_is_sanitized) ... ok\ntest_authorization_forms_are_redacted_in_capture_console_and_import (test_evidence.EvidenceTests.test_authorization_forms_are_redacted_in_capture_console_and_import) ... ok\ntest_authorization_forms_are_redacted_on_direct_card_capture (test_evidence.EvidenceTests.test_authorization_forms_are_redacted_on_direct_card_capture) ... ok\ntest_before_after_heads_do_not_relabel_changed_command (test_evidence.EvidenceTests.test_before_after_heads_do_not_relabel_changed_command) ... ok\ntest_capture_does_not_overwrite_an_existing_receipt (test_evidence.EvidenceTests.test_capture_does_not_overwrite_an_existing_receipt) ... ok\ntest_capture_without_card_and_import_without_rerun (test_evidence.EvidenceTests.test_capture_without_card_and_import_without_rerun) ... ok\ntest_child_failure_code_is_preserved (test_evidence.EvidenceTests.test_child_failure_code_is_preserved) ... ok\ntest_command_line_token_arguments_are_redacted (test_evidence.EvidenceTests.test_command_line_token_arguments_are_redacted) ... ok\ntest_dirty_and_untracked_contents_have_object_digests (test_evidence.EvidenceTests.test_dirty_and_untracked_contents_have_object_digests) ... ok\ntest_failed_child_exit_survives_receipt_write_failure (test_evidence.EvidenceTests.test_failed_child_exit_survives_receipt_write_failure) ... ok\ntest_fixed_candidate_capture_preserves_checkout (test_evidence.EvidenceTests.test_fixed_candidate_capture_preserves_checkout) ... ok\ntest_full_output_is_preserved_not_only_tail (test_evidence.EvidenceTests.test_full_output_is_preserved_not_only_tail) ... ok\ntest_import_missing_card_fails_without_losing_receipt (test_evidence.EvidenceTests.test_import_missing_card_fails_without_losing_receipt) ... ok\ntest_import_rejects_unredacted_authorization_with_valid_checksums (test_evidence.EvidenceTests.test_import_rejects_unredacted_authorization_with_valid_checksums) ... ok\ntest_import_retry_is_idempotent (test_evidence.EvidenceTests.test_import_retry_is_idempotent) ... ok\ntest_invalid_field_types_and_forged_source_are_rejected (test_evidence.EvidenceTests.test_invalid_field_types_and_forged_source_are_rejected) ... ok\ntest_known_secret_environment_value_is_redacted_without_label (test_evidence.EvidenceTests.test_known_secret_environment_value_is_redacted_without_label) ... ok\ntest_linked_worktree_import_preserves_source_identity (test_evidence.EvidenceTests.test_linked_worktree_import_preserves_source_identity) ... ok\ntest_missing_card_does_not_execute (test_evidence.EvidenceTests.test_missing_card_does_not_execute) ... ok\ntest_missing_required_snapshot_fields_are_rejected (test_evidence.EvidenceTests.test_missing_required_snapshot_fields_are_rejected) ... ok\ntest_nested_cwd_records_untracked_files_from_repository_root (test_evidence.EvidenceTests.test_nested_cwd_records_untracked_files_from_repository_root) ... ok\ntest_output_digest_checked_even_if_receipt_digest_recomputed (test_evidence.EvidenceTests.test_output_digest_checked_even_if_receipt_digest_recomputed) ... ok\ntest_pipeline_failure_is_recorded_and_returned (test_evidence.EvidenceTests.test_pipeline_failure_is_recorded_and_returned) ... ok\ntest_quoted_credentials_with_spaces_are_fully_redacted (test_evidence.EvidenceTests.test_quoted_credentials_with_spaces_are_fully_redacted) ... ok\ntest_receipt_write_failure_cannot_claim_success (test_evidence.EvidenceTests.test_receipt_write_failure_cannot_claim_success) ... ok\ntest_recorder_environment_does_not_leak_into_nested_commands (test_evidence.EvidenceTests.test_recorder_environment_does_not_leak_into_nested_commands) ... ok\ntest_source_cannot_be_promoted_by_environment (test_evidence.EvidenceTests.test_source_cannot_be_promoted_by_environment) ... ok\ntest_tamper_is_rejected_before_card_append (test_evidence.EvidenceTests.test_tamper_is_rejected_before_card_append) ... ok\ntest_unrelated_repo_cannot_import (test_evidence.EvidenceTests.test_unrelated_repo_cannot_import) ... ok\ntest_validate_precheck_checks_result_and_current_base (test_evidence.EvidenceTests.test_validate_precheck_checks_result_and_current_base) ... ok\ntest_validate_precheck_rejects_successful_arbitrary_command (test_evidence.EvidenceTests.test_validate_precheck_rejects_successful_arbitrary_command) ... ok\ntest_validation_purpose_is_not_injected_into_measured_command (test_evidence.EvidenceTests.test_validation_purpose_is_not_injected_into_measured_command) ... ok\ntest_pin_is_three_fixed_shas (test_lifecycle_pin.RdmPinTests.test_pin_is_three_fixed_shas) ... ok\ntest_rejects_url_and_short_sha (test_lifecycle_pin.RdmPinTests.test_rejects_url_and_short_sha) ... ok\ntest_conflicted_task_does_not_block_an_independent_healthy_task (test_merge_queue_trial.QueueTrialTests.test_conflicted_task_does_not_block_an_independent_healthy_task) ... ok\ntest_external_target_advance_requires_a_new_candidate (test_merge_queue_trial.QueueTrialTests.test_external_target_advance_requires_a_new_candidate) ... ok\ntest_sequential_delivery_does_not_sync_waiting_branches (test_merge_queue_trial.QueueTrialTests.test_sequential_delivery_does_not_sync_waiting_branches) ... ok\ntest_addr_change_keeps_database_and_auth (test_svc.SvcDbRecoveryTests.test_addr_change_keeps_database_and_auth) ... ok\ntest_auth_preflight_aligns_with_effective_env_dsn (test_svc.SvcDbRecoveryTests.test_auth_preflight_aligns_with_effective_env_dsn) ... FAIL\ntest_batch_update_stops_second_service_despite_prior_pidcheck (test_svc.SvcDbRecoveryTests.test_batch_update_stops_second_service_despite_prior_pidcheck)\n批量 update 不得用上一服务的 SVC_PIDCHECK 误判下一服务进程。 ... ok\ntest_dbref_binding_survives_bare_restart_and_redeploy (test_svc.SvcDbRecoveryTests.test_dbref_binding_survives_bare_restart_and_redeploy) ... ok\ntest_explicit_unbind_blocks_residual_env_dsn (test_svc.SvcDbRecoveryTests.test_explicit_unbind_blocks_residual_env_dsn) ... ok\ntest_external_dsn_and_conffile_recover_on_bare_start (test_svc.SvcDbRecoveryTests.test_external_dsn_and_conffile_recover_on_bare_start) ... ok\ntest_legacy_exec_dsn_survives_consecutive_restarts (test_svc.SvcDbRecoveryTests.test_legacy_exec_dsn_survives_consecutive_restarts) ... ok\ntest_mock_conflict_and_legacy_binary_refuse (test_svc.SvcDbRecoveryTests.test_mock_conflict_and_legacy_binary_refuse) ... ok\ntest_rdm_companion_missing_web_fails_deploy (test_svc.SvcDbRecoveryTests.test_rdm_companion_missing_web_fails_deploy) ... ok\ntest_rdm_source_commits_and_update_track (test_svc.SvcDbRecoveryTests.test_rdm_source_commits_and_update_track) ... To /tmp/svc-db-regress-_9hozas8/rdmremote.git\n 8dff2e3..6681a9a main -> main\nok\ntest_rdm_source_deploy_end_to_end (test_svc.SvcDbRecoveryTests.test_rdm_source_deploy_end_to_end) ... ok\ntest_refusals_keep_registration_without_sqlite_fallback (test_svc.SvcDbRecoveryTests.test_refusals_keep_registration_without_sqlite_fallback) ... ok\ntest_restart_refusal_happens_before_stopping_running_service (test_svc.SvcDbRecoveryTests.test_restart_refusal_happens_before_stopping_running_service) ... ok\ntest_seed_owner_override_skips_account_lookup (test_svc.SvcDbRecoveryTests.test_seed_owner_override_skips_account_lookup) ... ok\ntest_seed_puts_with_temporary_bearer_key_when_auth_on (test_svc.SvcDbRecoveryTests.test_seed_puts_with_temporary_bearer_key_when_auth_on) ... ok\ntest_seed_puts_without_credentials_when_auth_off (test_svc.SvcDbRecoveryTests.test_seed_puts_without_credentials_when_auth_off) ... ok\ntest_sequential_restarts_no_cross_dsn_and_no_secret_leak (test_svc.SvcDbRecoveryTests.test_sequential_restarts_no_cross_dsn_and_no_secret_leak) ... ok\ntest_source_switch_requires_flag (test_svc.SvcDbRecoveryTests.test_source_switch_requires_flag) ... ok\ntest_static_fresh_deploy_registers_pidcheck_and_starts (test_svc.SvcDbRecoveryTests.test_static_fresh_deploy_registers_pidcheck_and_starts)\n全新 static --dir:登记须含 pidcheck;首启探活不得把 http.server 判死。 ... ok\ntest_update_preserves_binding (test_svc.SvcDbRecoveryTests.test_update_preserves_binding) ... ok\ntest_backup_custom_out_not_pruned (test_svc_backup.SvcAgentBackupTests.test_backup_custom_out_not_pruned) ... ok\ntest_backup_event_recorded (test_svc_backup.SvcAgentBackupTests.test_backup_event_recorded) ... ok\ntest_backup_live_writer_consistent_and_outside_runtime (test_svc_backup.SvcAgentBackupTests.test_backup_live_writer_consistent_and_outside_runtime)\n活跃 WAL 写入者:快照可读、行在、integrity ok;-wal/-shm 不入快照。 ... ok\n/home/linuxbrew/.linuxbrew/Cellar/python@3.14/3.14.8/lib/python3.14/unittest/suite.py:107: ResourceWarning: unclosed file <_io.TextIOWrapper name=3 encoding='UTF-8'>\n for index, test in enumerate(self):\nResourceWarning: Enable tracemalloc to get the object allocation traceback\ntest_backup_manifest_sha_matches (test_svc_backup.SvcAgentBackupTests.test_backup_manifest_sha_matches) ... ok\ntest_backup_non_sqlite_db_kept_raw_without_leftovers (test_svc_backup.SvcAgentBackupTests.test_backup_non_sqlite_db_kept_raw_without_leftovers) ... ok\ntest_backup_rejects_postgres_with_db_hint (test_svc_backup.SvcAgentBackupTests.test_backup_rejects_postgres_with_db_hint) ... ok\ntest_backup_requires_registration (test_svc_backup.SvcAgentBackupTests.test_backup_requires_registration) ... ok\ntest_backup_target_exists_refused (test_svc_backup.SvcAgentBackupTests.test_backup_target_exists_refused) ... ok\ntest_backup_without_sqlite3_refuses (test_svc_backup.SvcAgentBackupTests.test_backup_without_sqlite3_refuses)\nPATH 无 sqlite3 → 拒绝(不回退裸拷贝)。重建与真实 PATH 等价的工具目录、 ... ok\ntest_retention_and_listing (test_svc_backup.SvcAgentBackupTests.test_retention_and_listing) ... ok\ntest_rm_purge_removes_snapshots (test_svc_backup.SvcAgentBackupTests.test_rm_purge_removes_snapshots) ... ok\ntest_cache_recycling_preserves_ignored_unique_files (test_svc_build_cutover.SvcBuildCutoverTests.test_cache_recycling_preserves_ignored_unique_files) ... ok\ntest_e2e_build_only_uses_versioned_sources_without_runtime_or_api_calls (test_svc_build_cutover.SvcBuildCutoverTests.test_e2e_build_only_uses_versioned_sources_without_runtime_or_api_calls) ... ok\ntest_mismatched_existing_cache_is_rejected_before_candidate_build (test_svc_build_cutover.SvcBuildCutoverTests.test_mismatched_existing_cache_is_rejected_before_candidate_build) ... ok\ntest_versioned_dev_materialization_uses_composer_without_submodules (test_svc_build_cutover.SvcBuildCutoverTests.test_versioned_dev_materialization_uses_composer_without_submodules) ... ok\ntest_versioned_rdm_adapter_passes_fixed_dev_root_to_product_wrapper (test_svc_build_cutover.SvcBuildCutoverTests.test_versioned_rdm_adapter_passes_fixed_dev_root_to_product_wrapper) ... ok\ntest_versioned_static_adapter_resolves_published_frontend_artifact (test_svc_build_cutover.SvcBuildCutoverTests.test_versioned_static_adapter_resolves_published_frontend_artifact) ... ok\ntest_forward_only_requires_confirm_and_backup (test_svc_deploy_txn.DeployTxnTests.test_forward_only_requires_confirm_and_backup) ... ok\ntest_schema_incompatible_refuses_before_stop (test_svc_deploy_txn.DeployTxnTests.test_schema_incompatible_refuses_before_stop) ... ok\ntest_replace_failure_keeps_original (test_svc_identity.AtomicWriteTests.test_replace_failure_keeps_original) ... ok\ntest_I3_start_ensures_sqlite_identity (test_svc_identity.IdentityTests.test_I3_start_ensures_sqlite_identity) ... ok\ntest_I3_wrong_db_identity_blocks_start (test_svc_identity.IdentityTests.test_I3_wrong_db_identity_blocks_start) ... ok\ntest_T1_bare_restart_stable_identity (test_svc_identity.IdentityTests.test_T1_bare_restart_stable_identity) ... ok\ntest_T2_port_change_keeps_anchors (test_svc_identity.IdentityTests.test_T2_port_change_keeps_anchors) ... ok\ntest_T3_data_drift_rejected (test_svc_identity.IdentityTests.test_T3_data_drift_rejected) ... ok\ntest_T4a_leftover_new_file_ignored (test_svc_identity.IdentityTests.test_T4a_leftover_new_file_ignored) ... ok\ntest_T4b_corrupt_manifest_blocks (test_svc_identity.IdentityTests.test_T4b_corrupt_manifest_blocks) ... ok\ntest_T5a_missing_marker_blocks (test_svc_identity.IdentityTests.test_T5a_missing_marker_blocks) ... ok\ntest_T5b_foreign_marker_blocks (test_svc_identity.IdentityTests.test_T5b_foreign_marker_blocks) ... ok\ntest_T5c_lost_manifest_blocks_not_rebuild (test_svc_identity.IdentityTests.test_T5c_lost_manifest_blocks_not_rebuild) ... ok\ntest_T6_cwd_independent_identity (test_svc_identity.IdentityTests.test_T6_cwd_independent_identity) ... ok\ntest_U1_bare_start_missing_row_is_event_init_recovers (test_svc_identity.IdentityTests.test_U1_bare_start_missing_row_is_event_init_recovers)\n普通启动只验证不补行:DB 行缺失 → 拒绝且不建空行(缺行即事件); ... ok\ntest_U1_capability_probe_no_false_positive_no_hang (test_svc_identity.IdentityTests.test_U1_capability_probe_no_false_positive_no_hang)\n能力探测无副作用:含 ensure 字样的服务态门禁报错不算能力(旧实现 ... ok\ntest_U1_update_ensures_missing_row_before_stop (test_svc_identity.IdentityTests.test_U1_update_ensures_missing_row_before_stop)\n已建立身份后删行:update 在停服前拒绝,不自动补行,旧进程保持。 ... ok\ntest_U1_update_refuses_identityless_candidate_keeps_old_state (test_svc_identity.IdentityTests.test_U1_update_refuses_identityless_candidate_keeps_old_state)\nmanifest 治理实例 × 无 identity 候选(RDM 旧形态):停服前拒绝—— ... ok\ntest_Z_real_pg_not_run (test_svc_identity.IdentityTests.test_Z_real_pg_not_run) ... skipped '真实 PG 身份专项 NOT_RUN:需真实实例(SVC_TEST_PG=1 + AGENT_PG_TEST_DSN)'\ntest_recover_fails_when_port_stolen (test_svc_identity.IdentityTests.test_recover_fails_when_port_stolen) ... ok\ntest_recover_ignores_never_started_service (test_svc_identity.IdentityTests.test_recover_ignores_never_started_service) ... ok\ntest_recover_noop_while_running (test_svc_identity.IdentityTests.test_recover_noop_while_running) ... ok\ntest_recover_reserved_name_rejected (test_svc_identity.IdentityTests.test_recover_reserved_name_rejected) ... ok\ntest_recover_respects_explicit_stop (test_svc_identity.IdentityTests.test_recover_respects_explicit_stop) ... ok\ntest_recover_restarts_sigkilled_service (test_svc_identity.IdentityTests.test_recover_restarts_sigkilled_service) ... ok\ntest_recover_skips_when_lock_held (test_svc_identity.IdentityTests.test_recover_skips_when_lock_held) ... ok\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_identity.IdentityTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... ok\ntest_start_records_autostart_and_stop_clears (test_svc_identity.IdentityTests.test_start_records_autostart_and_stop_clears) ... ok\ntest_start_rejects_foreign_port_occupant (test_svc_identity.IdentityTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... ok\ntest_stop_on_dead_process_clears_autostart (test_svc_identity.IdentityTests.test_stop_on_dead_process_clears_autostart) ... ok\ntest_watchdog_print_plan (test_svc_identity.IdentityTests.test_watchdog_print_plan) ... ok\ntest_caller_identity_env_does_not_reach_serve (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_caller_identity_env_does_not_reach_serve) ... FAIL\ntest_recover_fails_when_port_stolen (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_fails_when_port_stolen) ... ok\ntest_recover_ignores_never_started_service (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_ignores_never_started_service) ... ok\ntest_recover_noop_while_running (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_noop_while_running) ... ok\ntest_recover_reserved_name_rejected (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_reserved_name_rejected) ... ok\ntest_recover_respects_explicit_stop (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_respects_explicit_stop) ... ok\ntest_recover_restarts_sigkilled_service (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_restarts_sigkilled_service) ... ok\ntest_recover_skips_when_lock_held (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_recover_skips_when_lock_held) ... ok\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... ok\ntest_start_records_autostart_and_stop_clears (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_start_records_autostart_and_stop_clears) ... ok\ntest_start_rejects_foreign_port_occupant (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... ok\ntest_stop_on_dead_process_clears_autostart (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_stop_on_dead_process_clears_autostart) ... ok\ntest_two_bare_restarts_keep_identity (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_two_bare_restarts_keep_identity) ... ok\ntest_watchdog_print_plan (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_watchdog_print_plan) ... ok\ntest_addr_defaults_to_default_addr (test_svc_precheck.AgentListenRejectedPrecheck.test_addr_defaults_to_default_addr) ... ok\ntest_incident_combo_not_rejected (test_svc_precheck.AgentListenRejectedPrecheck.test_incident_combo_not_rejected) ... ok\ntest_insecure_not_rejected (test_svc_precheck.AgentListenRejectedPrecheck.test_insecure_not_rejected) ... ok\ntest_loopback_not_rejected (test_svc_precheck.AgentListenRejectedPrecheck.test_loopback_not_rejected) ... ok\ntest_nonloop_auth_off_with_dsn_rejected (test_svc_precheck.AgentListenRejectedPrecheck.test_nonloop_auth_off_with_dsn_rejected) ... ok\ntest_nonloop_no_dsn_rejected (test_svc_precheck.AgentListenRejectedPrecheck.test_nonloop_no_dsn_rejected) ... ok\ntest_auth_off_beats_dsn (test_svc_precheck.DbAuthEnabledMatrix.test_auth_off_beats_dsn) ... ok\ntest_auth_on_explicit (test_svc_precheck.DbAuthEnabledMatrix.test_auth_on_explicit) ... ok\ntest_auto_with_effective_dsn_is_authed (test_svc_precheck.DbAuthEnabledMatrix.test_auto_with_effective_dsn_is_authed) ... ok\ntest_auto_without_dsn_is_denied (test_svc_precheck.DbAuthEnabledMatrix.test_auto_without_dsn_is_denied) ... ok\ntest_no_auth_no_dsn_denied (test_svc_precheck.DbAuthEnabledMatrix.test_no_auth_no_dsn_denied) ... ok\ntest_broken_dbref_refuses (test_svc_precheck.ResolveDbConfigFixtures.test_broken_dbref_refuses) ... ok\ntest_legacy_exec_dsn_migrates_to_recoverable_keys (test_svc_precheck.ResolveDbConfigFixtures.test_legacy_exec_dsn_migrates_to_recoverable_keys) ... ok\ntest_legacy_exec_dsn_without_instance_goes_to_dsn_key (test_svc_precheck.ResolveDbConfigFixtures.test_legacy_exec_dsn_without_instance_goes_to_dsn_key) ... ok\ntest_migration_is_idempotent (test_svc_precheck.ResolveDbConfigFixtures.test_migration_is_idempotent) ... ok\ntest_no_dsn_no_dbref_is_sqlite (test_svc_precheck.ResolveDbConfigFixtures.test_no_dsn_no_dbref_is_sqlite) ... ok\ntest_post_g17_exec_restores_dsn_from_dbref (test_svc_precheck.ResolveDbConfigFixtures.test_post_g17_exec_restores_dsn_from_dbref) ... ok\ntest_env_config_resets_identity_env (test_svc_precheck.ResolverStateIsolation.test_env_config_resets_identity_env) ... ok\ntest_env_config_resets_pidcheck_runtime_state (test_svc_precheck.ResolverStateIsolation.test_env_config_resets_pidcheck_runtime_state) ... ok\ntest_env_config_resets_resolver_state (test_svc_precheck.ResolverStateIsolation.test_env_config_resets_resolver_state) ... ok\ntest_help_topic_lists_rdm_admin (test_svc_rdm_admin.RdmAdminTests.test_help_topic_lists_rdm_admin) ... ok\ntest_recover_fails_when_port_stolen (test_svc_rdm_admin.RdmAdminTests.test_recover_fails_when_port_stolen) ... ok\ntest_recover_ignores_never_started_service (test_svc_rdm_admin.RdmAdminTests.test_recover_ignores_never_started_service) ... ok\ntest_recover_noop_while_running (test_svc_rdm_admin.RdmAdminTests.test_recover_noop_while_running) ... ok\ntest_recover_reserved_name_rejected (test_svc_rdm_admin.RdmAdminTests.test_recover_reserved_name_rejected) ... ok\ntest_recover_respects_explicit_stop (test_svc_rdm_admin.RdmAdminTests.test_recover_respects_explicit_stop) ... ok\ntest_recover_restarts_sigkilled_service (test_svc_rdm_admin.RdmAdminTests.test_recover_restarts_sigkilled_service) ... ok\ntest_recover_skips_when_lock_held (test_svc_rdm_admin.RdmAdminTests.test_recover_skips_when_lock_held) ... ok\ntest_refuses_when_base_db_missing (test_svc_rdm_admin.RdmAdminTests.test_refuses_when_base_db_missing) ... ok\ntest_refuses_when_rdm_db_missing (test_svc_rdm_admin.RdmAdminTests.test_refuses_when_rdm_db_missing) ... ok\ntest_show_empty_ledger_hint (test_svc_rdm_admin.RdmAdminTests.test_show_empty_ledger_hint) ... ok\ntest_show_known_owner_no_warning (test_svc_rdm_admin.RdmAdminTests.test_show_known_owner_no_warning) ... ok\ntest_show_prints_ledger_and_flags_unknown_owner (test_svc_rdm_admin.RdmAdminTests.test_show_prints_ledger_and_flags_unknown_owner) ... ok\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_rdm_admin.RdmAdminTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... ok\ntest_start_records_autostart_and_stop_clears (test_svc_rdm_admin.RdmAdminTests.test_start_records_autostart_and_stop_clears) ... ok\ntest_start_rejects_foreign_port_occupant (test_svc_rdm_admin.RdmAdminTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... ok\ntest_status_lists_rdm_admin_row_and_warning (test_svc_rdm_admin.RdmAdminTests.test_status_lists_rdm_admin_row_and_warning) ... ok\ntest_status_silent_without_rdm_db (test_svc_rdm_admin.RdmAdminTests.test_status_silent_without_rdm_db) ... ok\ntest_stop_on_dead_process_clears_autostart (test_svc_rdm_admin.RdmAdminTests.test_stop_on_dead_process_clears_autostart) ... ok\ntest_transfer_idempotent_when_already_owner (test_svc_rdm_admin.RdmAdminTests.test_transfer_idempotent_when_already_owner) ... ok\ntest_transfer_rejects_empty_ledger (test_svc_rdm_admin.RdmAdminTests.test_transfer_rejects_empty_ledger) ... ok\ntest_transfer_rejects_owner_missing_from_base_users (test_svc_rdm_admin.RdmAdminTests.test_transfer_rejects_owner_missing_from_base_users) ... ok\ntest_transfer_rewrites_single_row_with_provenance (test_svc_rdm_admin.RdmAdminTests.test_transfer_rewrites_single_row_with_provenance) ... ok\ntest_unknown_subcommand_usage_exit_2 (test_svc_rdm_admin.RdmAdminTests.test_unknown_subcommand_usage_exit_2) ... ok\ntest_watchdog_print_plan (test_svc_rdm_admin.RdmAdminTests.test_watchdog_print_plan) ... ok\ntest_U3_real_agent_identity_lifecycle_sqlite (test_svc_realcombo.RealComboTests.test_U3_real_agent_identity_lifecycle_sqlite)\n真实组合二进制:领养 ensure → verify → 两次裸重启身份/锚点稳定; ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_U3_real_pg_identity_env_delivery (test_svc_realcombo.RealComboTests.test_U3_real_pg_identity_env_delivery)\n真实 PostgreSQL:AGENT_SYSTEM_DSN 环境交付 ensure/verify(凭据不进 ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_U3_real_rdm_binary_lifecycle_sqlite (test_svc_realcombo.RealComboTests.test_U3_real_rdm_binary_lifecycle_sqlite)\n真实 RDM 组合二进制:identity 接线(Backend 公共 CLI)→ serve 门禁 → ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_U3_real_rdm_full_deploy_track (test_svc_realcombo.RealComboTests.test_U3_real_rdm_full_deploy_track)\n全轨:materialize(真实 make build)→ 候选身份门禁 → release 切换 → ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_fails_when_port_stolen (test_svc_realcombo.RealComboTests.test_recover_fails_when_port_stolen) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_ignores_never_started_service (test_svc_realcombo.RealComboTests.test_recover_ignores_never_started_service) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_noop_while_running (test_svc_realcombo.RealComboTests.test_recover_noop_while_running) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_reserved_name_rejected (test_svc_realcombo.RealComboTests.test_recover_reserved_name_rejected) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_respects_explicit_stop (test_svc_realcombo.RealComboTests.test_recover_respects_explicit_stop) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_restarts_sigkilled_service (test_svc_realcombo.RealComboTests.test_recover_restarts_sigkilled_service) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_skips_when_lock_held (test_svc_realcombo.RealComboTests.test_recover_skips_when_lock_held) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_realcombo.RealComboTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_start_records_autostart_and_stop_clears (test_svc_realcombo.RealComboTests.test_start_records_autostart_and_stop_clears) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_start_rejects_foreign_port_occupant (test_svc_realcombo.RealComboTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_stop_on_dead_process_clears_autostart (test_svc_realcombo.RealComboTests.test_stop_on_dead_process_clears_autostart) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_watchdog_print_plan (test_svc_realcombo.RealComboTests.test_watchdog_print_plan) ... skipped '真实组合专项 NOT_RUN:需 SVC_TEST_REAL=1(详见文件头运行条件)'\ntest_recover_fails_when_port_stolen (test_svc_recover.SvcAutoRecoverTests.test_recover_fails_when_port_stolen) ... ok\ntest_recover_ignores_never_started_service (test_svc_recover.SvcAutoRecoverTests.test_recover_ignores_never_started_service) ... ok\ntest_recover_noop_while_running (test_svc_recover.SvcAutoRecoverTests.test_recover_noop_while_running) ... ok\ntest_recover_reserved_name_rejected (test_svc_recover.SvcAutoRecoverTests.test_recover_reserved_name_rejected) ... ok\ntest_recover_respects_explicit_stop (test_svc_recover.SvcAutoRecoverTests.test_recover_respects_explicit_stop) ... ok\ntest_recover_restarts_sigkilled_service (test_svc_recover.SvcAutoRecoverTests.test_recover_restarts_sigkilled_service) ... ok\ntest_recover_skips_when_lock_held (test_svc_recover.SvcAutoRecoverTests.test_recover_skips_when_lock_held) ... ok\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_recover.SvcAutoRecoverTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... FAIL\ntest_start_records_autostart_and_stop_clears (test_svc_recover.SvcAutoRecoverTests.test_start_records_autostart_and_stop_clears) ... ok\ntest_start_rejects_foreign_port_occupant (test_svc_recover.SvcAutoRecoverTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... ok\ntest_stop_on_dead_process_clears_autostart (test_svc_recover.SvcAutoRecoverTests.test_stop_on_dead_process_clears_autostart) ... ok\ntest_watchdog_print_plan (test_svc_recover.SvcAutoRecoverTests.test_watchdog_print_plan) ... ok\ntest_I3_start_ensures_sqlite_identity (test_svc_u2.U2ReleaseTests.test_I3_start_ensures_sqlite_identity) ... ok\ntest_I3_wrong_db_identity_blocks_start (test_svc_u2.U2ReleaseTests.test_I3_wrong_db_identity_blocks_start) ... ok\ntest_T1_bare_restart_stable_identity (test_svc_u2.U2ReleaseTests.test_T1_bare_restart_stable_identity) ... ok\ntest_T2_port_change_keeps_anchors (test_svc_u2.U2ReleaseTests.test_T2_port_change_keeps_anchors) ... ok\ntest_T3_data_drift_rejected (test_svc_u2.U2ReleaseTests.test_T3_data_drift_rejected) ... ok\ntest_T4a_leftover_new_file_ignored (test_svc_u2.U2ReleaseTests.test_T4a_leftover_new_file_ignored) ... ok\ntest_T4b_corrupt_manifest_blocks (test_svc_u2.U2ReleaseTests.test_T4b_corrupt_manifest_blocks) ... ok\ntest_T5a_missing_marker_blocks (test_svc_u2.U2ReleaseTests.test_T5a_missing_marker_blocks) ... ok\ntest_T5b_foreign_marker_blocks (test_svc_u2.U2ReleaseTests.test_T5b_foreign_marker_blocks) ... ok\ntest_T5c_lost_manifest_blocks_not_rebuild (test_svc_u2.U2ReleaseTests.test_T5c_lost_manifest_blocks_not_rebuild) ... ok\ntest_T6_cwd_independent_identity (test_svc_u2.U2ReleaseTests.test_T6_cwd_independent_identity) ... ok\ntest_U1_bare_start_missing_row_is_event_init_recovers (test_svc_u2.U2ReleaseTests.test_U1_bare_start_missing_row_is_event_init_recovers)\n普通启动只验证不补行:DB 行缺失 → 拒绝且不建空行(缺行即事件); ... ok\ntest_U1_capability_probe_no_false_positive_no_hang (test_svc_u2.U2ReleaseTests.test_U1_capability_probe_no_false_positive_no_hang)\n能力探测无副作用:含 ensure 字样的服务态门禁报错不算能力(旧实现 ... ok\ntest_U1_update_ensures_missing_row_before_stop (test_svc_u2.U2ReleaseTests.test_U1_update_ensures_missing_row_before_stop)\n已建立身份后删行:update 在停服前拒绝,不自动补行,旧进程保持。 ... ok\ntest_U1_update_refuses_identityless_candidate_keeps_old_state (test_svc_u2.U2ReleaseTests.test_U1_update_refuses_identityless_candidate_keeps_old_state)\nmanifest 治理实例 × 无 identity 候选(RDM 旧形态):停服前拒绝—— ... ok\ntest_U2_build_failure_keeps_old_running (test_svc_u2.U2ReleaseTests.test_U2_build_failure_keeps_old_running) ... ok\ntest_U2_fault_after_switch_rolls_back_on_next_start (test_svc_u2.U2ReleaseTests.test_U2_fault_after_switch_rolls_back_on_next_start) ... ok\ntest_U2_health_timeout_rolls_back (test_svc_u2.U2ReleaseTests.test_U2_health_timeout_rolls_back) ... ok\ntest_U2_journal_interrupt_resolved_on_start (test_svc_u2.U2ReleaseTests.test_U2_journal_interrupt_resolved_on_start) ... ok\ntest_U2_layout_switch_and_rollback_on_start_failure (test_svc_u2.U2ReleaseTests.test_U2_layout_switch_and_rollback_on_start_failure) ... ok\ntest_U2_legacy_layout_bare_lifecycle_still_works (test_svc_u2.U2ReleaseTests.test_U2_legacy_layout_bare_lifecycle_still_works) ... ok\ntest_U2_schema_advance_blocks_rollback (test_svc_u2.U2ReleaseTests.test_U2_schema_advance_blocks_rollback) ... ok\ntest_Z_real_pg_not_run (test_svc_u2.U2ReleaseTests.test_Z_real_pg_not_run) ... skipped '真实 PG 身份专项 NOT_RUN:需真实实例(SVC_TEST_PG=1 + AGENT_PG_TEST_DSN)'\ntest_recover_fails_when_port_stolen (test_svc_u2.U2ReleaseTests.test_recover_fails_when_port_stolen) ... ok\ntest_recover_ignores_never_started_service (test_svc_u2.U2ReleaseTests.test_recover_ignores_never_started_service) ... ok\ntest_recover_noop_while_running (test_svc_u2.U2ReleaseTests.test_recover_noop_while_running) ... ok\ntest_recover_reserved_name_rejected (test_svc_u2.U2ReleaseTests.test_recover_reserved_name_rejected) ... ok\ntest_recover_respects_explicit_stop (test_svc_u2.U2ReleaseTests.test_recover_respects_explicit_stop) ... ok\ntest_recover_restarts_sigkilled_service (test_svc_u2.U2ReleaseTests.test_recover_restarts_sigkilled_service) ... ok\ntest_recover_skips_when_lock_held (test_svc_u2.U2ReleaseTests.test_recover_skips_when_lock_held) ... ok\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_u2.U2ReleaseTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... ok\ntest_start_records_autostart_and_stop_clears (test_svc_u2.U2ReleaseTests.test_start_records_autostart_and_stop_clears) ... ok\ntest_start_rejects_foreign_port_occupant (test_svc_u2.U2ReleaseTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... ok\ntest_stop_on_dead_process_clears_autostart (test_svc_u2.U2ReleaseTests.test_stop_on_dead_process_clears_autostart) ... ok\ntest_watchdog_print_plan (test_svc_u2.U2ReleaseTests.test_watchdog_print_plan) ... ok\ntest_T1_user_list_binds_manifest_data (test_svc_user_binding.UserBindingTests.test_T1_user_list_binds_manifest_data) ... ok\ntest_T2_reject_override_data_flag (test_svc_user_binding.UserBindingTests.test_T2_reject_override_data_flag) ... ok\ntest_T2b_reject_literal_default_data (test_svc_user_binding.UserBindingTests.test_T2b_reject_literal_default_data) ... ok\ntest_T3_missing_data_root_rejected (test_svc_user_binding.UserBindingTests.test_T3_missing_data_root_rejected) ... ok\ntest_T4_no_flock_rejects_user_and_deploy (test_svc_user_binding.UserBindingTests.test_T4_no_flock_rejects_user_and_deploy) ... ok\ntest_T5_identity_regression_smoke (test_svc_user_binding.UserBindingTests.test_T5_identity_regression_smoke) ... ok\ntest_recover_fails_when_port_stolen (test_svc_user_binding.UserBindingTests.test_recover_fails_when_port_stolen) ... ok\ntest_recover_ignores_never_started_service (test_svc_user_binding.UserBindingTests.test_recover_ignores_never_started_service) ... ok\ntest_recover_noop_while_running (test_svc_user_binding.UserBindingTests.test_recover_noop_while_running) ... ok\ntest_recover_reserved_name_rejected (test_svc_user_binding.UserBindingTests.test_recover_reserved_name_rejected) ... ok\ntest_recover_respects_explicit_stop (test_svc_user_binding.UserBindingTests.test_recover_respects_explicit_stop) ... ok\ntest_recover_restarts_sigkilled_service (test_svc_user_binding.UserBindingTests.test_recover_restarts_sigkilled_service) ... ok\ntest_recover_skips_when_lock_held (test_svc_user_binding.UserBindingTests.test_recover_skips_when_lock_held) ... ok\ntest_start_reclaims_own_orphan_without_pidfile (test_svc_user_binding.UserBindingTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。 ... ok\ntest_start_records_autostart_and_stop_clears (test_svc_user_binding.UserBindingTests.test_start_records_autostart_and_stop_clears) ... ok\ntest_start_rejects_foreign_port_occupant (test_svc_user_binding.UserBindingTests.test_start_rejects_foreign_port_occupant)\n外部 python http.server 占口:start 必须失败并提示非本服务。 ... ok\ntest_stop_on_dead_process_clears_autostart (test_svc_user_binding.UserBindingTests.test_stop_on_dead_process_clears_autostart) ... ok\ntest_watchdog_print_plan (test_svc_user_binding.UserBindingTests.test_watchdog_print_plan) ... ok\ntest_full_help_mentions_user_binding (test_svc_user_help.UserHelpTests.test_full_help_mentions_user_binding) ... ok\ntest_help_accounts_lists_six_commands (test_svc_user_help.UserHelpTests.test_help_accounts_lists_six_commands) ... ok\ntest_topics_and_short_and_lifecycle_mention_accounts (test_svc_user_help.UserHelpTests.test_topics_and_short_and_lifecycle_mention_accounts) ... ok\ntest_ide_lock_in_git_dir_does_not_block_finish (test_task.FinishGuardFixTests.test_ide_lock_in_git_dir_does_not_block_finish) ... ok\ntest_local_default_branch_at_origin_main_does_not_block (test_task.FinishGuardFixTests.test_local_default_branch_at_origin_main_does_not_block)\n克隆默认分支停在 origin/main 顶端(pin 为 feature 顶端时不在其历史内) ... ok\ntest_local_unique_commit_still_preserved (test_task.FinishGuardFixTests.test_local_unique_commit_still_preserved) ... ok\ntest_real_git_lock_still_blocks_finish (test_task.FinishGuardFixTests.test_real_git_lock_still_blocks_finish) ... ok\ntest_remote_tracking_refs_do_not_block_finish (test_task.FinishGuardFixTests.test_remote_tracking_refs_do_not_block_finish) ... ok\ntest_finish_abandon_retains_local_remote_tips_and_reason (test_task.TaskLifecycleTests.test_finish_abandon_retains_local_remote_tips_and_reason) ... ok\ntest_finish_abandon_without_reason_preserves_checkout_and_refs (test_task.TaskLifecycleTests.test_finish_abandon_without_reason_preserves_checkout_and_refs) ... ok\ntest_finish_clean_worktree_has_accurate_remote_result (test_task.TaskLifecycleTests.test_finish_clean_worktree_has_accurate_remote_result) ... ok\ntest_finish_deletes_only_merged_remote_branch (test_task.TaskLifecycleTests.test_finish_deletes_only_merged_remote_branch) ... ok\ntest_finish_preserves_component_commits_off_the_pinned_head (test_task.TaskLifecycleTests.test_finish_preserves_component_commits_off_the_pinned_head) ... ok\ntest_finish_preserves_component_untracked_file (test_task.TaskLifecycleTests.test_finish_preserves_component_untracked_file) ... ok\ntest_finish_preserves_linked_component_worktrees_at_the_pinned_head (test_task.TaskLifecycleTests.test_finish_preserves_linked_component_worktrees_at_the_pinned_head) ... ok\ntest_finish_preserves_linked_nested_component_worktree (test_task.TaskLifecycleTests.test_finish_preserves_linked_nested_component_worktree) ... ok\ntest_finish_preserves_locked_worktree (test_task.TaskLifecycleTests.test_finish_preserves_locked_worktree) ... ok\ntest_finish_preserves_main_and_active_index_lock (test_task.TaskLifecycleTests.test_finish_preserves_main_and_active_index_lock) ... ok\ntest_finish_preserves_modified_untracked_and_ignored_files (test_task.TaskLifecycleTests.test_finish_preserves_modified_untracked_and_ignored_files) ... ok\ntest_finish_preserves_remote_unmerged_tip (test_task.TaskLifecycleTests.test_finish_preserves_remote_unmerged_tip) ... ok\ntest_finish_recycles_clean_submodule_without_shared_config_changes (test_task.TaskLifecycleTests.test_finish_recycles_clean_submodule_without_shared_config_changes) ... ok\ntest_finish_rejects_subdirectory_without_deleting_it (test_task.TaskLifecycleTests.test_finish_rejects_subdirectory_without_deleting_it) ... ok\ntest_finish_remote_deletion_lease_preserves_concurrent_update (test_task.TaskLifecycleTests.test_finish_remote_deletion_lease_preserves_concurrent_update) ... ok\ntest_finish_requires_writer_exit_confirmation (test_task.TaskLifecycleTests.test_finish_requires_writer_exit_confirmation) ... ok\ntest_long_merge_history_keeps_merged_card_visible_and_closable (test_task.TaskLifecycleTests.test_long_merge_history_keeps_merged_card_visible_and_closable) ... ok\ntest_post_merge_is_silent_outside_main_checkout (test_task.TaskLifecycleTests.test_post_merge_is_silent_outside_main_checkout) ... ok\ntest_post_merge_main_merge_only_reminds_owner (test_task.TaskLifecycleTests.test_post_merge_main_merge_only_reminds_owner) ... ok\ntest_post_merge_main_pull_only_reminds_owner (test_task.TaskLifecycleTests.test_post_merge_main_pull_only_reminds_owner) ... ok\ntest_precheck_feature_behind_requires_sync (test_task.TaskLifecycleTests.test_precheck_feature_behind_requires_sync) ... ok\ntest_precheck_rejects_unreachable_authority (test_task.TaskLifecycleTests.test_precheck_rejects_unreachable_authority) ... ok\ntest_precheck_routes_existing_project_delivery_policy (test_task.TaskLifecycleTests.test_precheck_routes_existing_project_delivery_policy) ... ok\ntest_start_imports_precheck_and_creates_four_part_commit (test_task.TaskLifecycleTests.test_start_imports_precheck_and_creates_four_part_commit) ... ok\ntest_start_offline_does_not_create_worktree (test_task.TaskLifecycleTests.test_start_offline_does_not_create_worktree) ... ok\ntest_start_preserves_merged_local_and_remote_branch_names (test_task.TaskLifecycleTests.test_start_preserves_merged_local_and_remote_branch_names) ... ok\ntest_start_rejects_receipt_when_authoritative_base_changed (test_task.TaskLifecycleTests.test_start_rejects_receipt_when_authoritative_base_changed) ... ok\ntest_start_requires_precheck_receipt_before_creating_worktree (test_task.TaskLifecycleTests.test_start_requires_precheck_receipt_before_creating_worktree) ... ok\ntest_start_stacked_branch_records_parent_and_main_baseline (test_task.TaskLifecycleTests.test_start_stacked_branch_records_parent_and_main_baseline) ... ok\ntest_sync_commit_failure_never_reports_synced (test_task.TaskLifecycleTests.test_sync_commit_failure_never_reports_synced) ... ok\ntest_sync_conflict_is_not_reported_as_synced (test_task.TaskLifecycleTests.test_sync_conflict_is_not_reported_as_synced) ... ok\ntest_sync_does_not_execute_json_receipt_command (test_task.TaskLifecycleTests.test_sync_does_not_execute_json_receipt_command) ... ok\ntest_sync_keeps_json_evidence_fresh_after_metadata_only_changes (test_task.TaskLifecycleTests.test_sync_keeps_json_evidence_fresh_after_metadata_only_changes) ... ok\ntest_sync_keeps_unchanged_component_branch (test_task.TaskLifecycleTests.test_sync_keeps_unchanged_component_branch) ... ok\ntest_sync_materializes_nested_detached_components (test_task.TaskLifecycleTests.test_sync_materializes_nested_detached_components) ... ok\ntest_sync_materializes_updated_component (test_task.TaskLifecycleTests.test_sync_materializes_updated_component) ... ok\ntest_sync_new_base_reports_actual_final_head (test_task.TaskLifecycleTests.test_sync_new_base_reports_actual_final_head) ... ok\ntest_sync_preserves_component_feature_branch (test_task.TaskLifecycleTests.test_sync_preserves_component_feature_branch) ... ok\ntest_sync_preserves_dirty_child (test_task.TaskLifecycleTests.test_sync_preserves_dirty_child) ... ok\ntest_sync_preserves_dirty_parent_and_staged_changes (test_task.TaskLifecycleTests.test_sync_preserves_dirty_parent_and_staged_changes) ... ok\ntest_sync_preserves_nested_feature_branch_when_parent_pin_changes (test_task.TaskLifecycleTests.test_sync_preserves_nested_feature_branch_when_parent_pin_changes) ... ok\ntest_sync_reads_legacy_commands_with_escaped_pipes (test_task.TaskLifecycleTests.test_sync_reads_legacy_commands_with_escaped_pipes) ... ok\ntest_sync_rejects_unreachable_target_without_changing_head (test_task.TaskLifecycleTests.test_sync_rejects_unreachable_target_without_changing_head) ... ok\ntest_sync_same_base_preserves_head_and_card (test_task.TaskLifecycleTests.test_sync_same_base_preserves_head_and_card) ... ok\ntest_sync_still_warns_for_stale_legacy_table_evidence (test_task.TaskLifecycleTests.test_sync_still_warns_for_stale_legacy_table_evidence) ... ok\ntest_sync_warns_for_malformed_json_evidence (test_task.TaskLifecycleTests.test_sync_warns_for_malformed_json_evidence) ... ok\ntest_sync_warns_for_missing_json_receipt_fields_even_with_valid_checksum (test_task.TaskLifecycleTests.test_sync_warns_for_missing_json_receipt_fields_even_with_valid_checksum) ... ok\ntest_sync_warns_for_unresolved_json_evidence_head (test_task.TaskLifecycleTests.test_sync_warns_for_unresolved_json_evidence_head) ... ok\ntest_sync_warns_for_unresolved_legacy_evidence_head (test_task.TaskLifecycleTests.test_sync_warns_for_unresolved_legacy_evidence_head) ... ok\ntest_sync_warns_when_json_after_state_contains_uncommitted_code (test_task.TaskLifecycleTests.test_sync_warns_when_json_after_state_contains_uncommitted_code) ... ok\ntest_sync_warns_when_json_before_state_contains_uncommitted_code (test_task.TaskLifecycleTests.test_sync_warns_when_json_before_state_contains_uncommitted_code) ... ok\ntest_sync_warns_when_json_evidence_predates_noncard_changes (test_task.TaskLifecycleTests.test_sync_warns_when_json_evidence_predates_noncard_changes) ... ok\ntest_verify_rejects_recursive_drift_even_when_root_has_local_edits (test_task.TaskLifecycleTests.test_verify_rejects_recursive_drift_even_when_root_has_local_edits) ... ok\ntest_verify_rejects_uninitialized_component (test_task.TaskLifecycleTests.test_verify_rejects_uninitialized_component) ... ok\ntest_local_precheck_allows_known_lag_without_changing_head (test_task_recovery.TaskRecoveryTests.test_local_precheck_allows_known_lag_without_changing_head) ... ok\ntest_local_precheck_never_advertises_delivery_even_when_current (test_task_recovery.TaskRecoveryTests.test_local_precheck_never_advertises_delivery_even_when_current) ... ok\ntest_local_precheck_rejects_dirty_state_and_unknown_remote (test_task_recovery.TaskRecoveryTests.test_local_precheck_rejects_dirty_state_and_unknown_remote) ... ok\ntest_local_precheck_rejects_foreign_registration (test_task_recovery.TaskRecoveryTests.test_local_precheck_rejects_foreign_registration) ... ok\ntest_local_precheck_rejects_invalid_baseline (test_task_recovery.TaskRecoveryTests.test_local_precheck_rejects_invalid_baseline) ... ok\ntest_local_precheck_rejects_main_and_missing_registration (test_task_recovery.TaskRecoveryTests.test_local_precheck_rejects_main_and_missing_registration) ... ok\ntest_local_precheck_rejects_wrong_branch_registration (test_task_recovery.TaskRecoveryTests.test_local_precheck_rejects_wrong_branch_registration) ... ok\ntest_local_receipt_cannot_start_a_task_or_resume_for_delivery (test_task_recovery.TaskRecoveryTests.test_local_receipt_cannot_start_a_task_or_resume_for_delivery) ... ok\ntest_local_resume_imports_original_receipt_without_sync (test_task_recovery.TaskRecoveryTests.test_local_resume_imports_original_receipt_without_sync) ... ok\ntest_local_resume_rejects_divergent_target_before_import (test_task_recovery.TaskRecoveryTests.test_local_resume_rejects_divergent_target_before_import) ... ok\ntest_local_resume_rejects_target_rewind_before_import (test_task_recovery.TaskRecoveryTests.test_local_resume_rejects_target_rewind_before_import) ... ok\ntest_make_resume_exports_the_selected_mode_and_receipt (test_task_recovery.TaskRecoveryTests.test_make_resume_exports_the_selected_mode_and_receipt) ... ok\ntest_resume_rejects_another_worktree_with_same_head (test_task_recovery.TaskRecoveryTests.test_resume_rejects_another_worktree_with_same_head) ... ok\ntest_resume_rejects_changed_source_head (test_task_recovery.TaskRecoveryTests.test_resume_rejects_changed_source_head) ... ok\ntest_strict_resume_imports_current_ready_receipt (test_task_recovery.TaskRecoveryTests.test_strict_resume_imports_current_ready_receipt) ... ok\ntest_strict_resume_rejects_target_advance (test_task_recovery.TaskRecoveryTests.test_strict_resume_rejects_target_advance) ... ok\ntest_unknown_validation_purpose_is_rejected (test_task_recovery.TaskRecoveryTests.test_unknown_validation_purpose_is_rejected) ... ok\ntest_unknown_work_mode_is_rejected (test_task_recovery.TaskRecoveryTests.test_unknown_work_mode_is_rejected) ... ok\ntest_local_recovery_refuses_missing_fixed_rules_before_readiness (test_task_recovery.WorkspaceRecoveryTests.test_local_recovery_refuses_missing_fixed_rules_before_readiness) ... ok\ntest_local_recovery_verifies_fixed_rules_without_sync_or_application_materialization (test_task_recovery.WorkspaceRecoveryTests.test_local_recovery_verifies_fixed_rules_without_sync_or_application_materialization) ... ok\ntest_local_resume_preserves_registered_edit_branch_and_unsaved_component (test_task_recovery.WorkspaceRecoveryTests.test_local_resume_preserves_registered_edit_branch_and_unsaved_component) ... ok\ntest_resume_rechecks_fixed_rules_before_importing_receipt (test_task_recovery.WorkspaceRecoveryTests.test_resume_rechecks_fixed_rules_before_importing_receipt) ... ok\ntest_credentials_in_transport_url_are_rejected (test_transport.TransportTests.test_credentials_in_transport_url_are_rejected) ... ok\ntest_inherited_http_source_must_match_injected_server_owner_and_repository (test_transport.TransportTests.test_inherited_http_source_must_match_injected_server_owner_and_repository) ... ok\ntest_injected_http_server_maps_to_verified_local_mirror_without_authentication (test_transport.TransportTests.test_injected_http_server_maps_to_verified_local_mirror_without_authentication) ... ok\ntest_ordinary_config_cannot_enable_http_transport (test_transport.TransportTests.test_ordinary_config_cannot_enable_http_transport) ... ok\ntest_remote_revision_download_without_global_git_change (test_transport.TransportTests.test_remote_revision_download_without_global_git_change) ... ok\ntest_verified_local_mirror_mapping_survives_without_authentication (test_transport.TransportTests.test_verified_local_mirror_mapping_survives_without_authentication) ... ok\ntest_actual_go_version_baseline_overlay_and_unlink_restore_version_consumption (test_workspace.WorkspaceTests.test_actual_go_version_baseline_overlay_and_unlink_restore_version_consumption) ... ok\ntest_conflicting_duplicate_nested_component_stops_before_cloning (test_workspace.WorkspaceTests.test_conflicting_duplicate_nested_component_stops_before_cloning) ... ok\ntest_edit_registers_branch_and_prepare_preserves_work (test_workspace.WorkspaceTests.test_edit_registers_branch_and_prepare_preserves_work) ... ok\ntest_equivalent_recursive_nested_sources_share_an_independent_component (test_workspace.WorkspaceTests.test_equivalent_recursive_nested_sources_share_an_independent_component) ... ok\ntest_existing_fixed_checkout_is_not_switched_after_lock_change (test_workspace.WorkspaceTests.test_existing_fixed_checkout_is_not_switched_after_lock_change) ... ok\ntest_explicit_fixed_refresh_preserves_old_commit_refs_and_reflog (test_workspace.WorkspaceTests.test_explicit_fixed_refresh_preserves_old_commit_refs_and_reflog) ... ok\ntest_explicit_fixed_refresh_refuses_dirty_ignored_edited_and_locked_sources (test_workspace.WorkspaceTests.test_explicit_fixed_refresh_refuses_dirty_ignored_edited_and_locked_sources) ... ok\ntest_explicit_fixed_refresh_refuses_index_flags_hiding_owner_changes (test_workspace.WorkspaceTests.test_explicit_fixed_refresh_refuses_index_flags_hiding_owner_changes) ... ok\ntest_explicit_fixed_refresh_refuses_shared_or_unregistered_ownership (test_workspace.WorkspaceTests.test_explicit_fixed_refresh_refuses_shared_or_unregistered_ownership) ... ok\ntest_failed_explicit_fixed_refresh_keeps_old_binding_and_can_retry (test_workspace.WorkspaceTests.test_failed_explicit_fixed_refresh_keeps_old_binding_and_can_retry) ... ok\ntest_fresh_library_edit_resolves_fixed_consumer_and_preserves_consumer_manifest (test_workspace.WorkspaceTests.test_fresh_library_edit_resolves_fixed_consumer_and_preserves_consumer_manifest) ... ok\ntest_git_operation_is_reported_and_not_removed (test_workspace.WorkspaceTests.test_git_operation_is_reported_and_not_removed) ... ok\ntest_ignored_unique_files_and_shared_worktrees_block_branch_changes (test_workspace.WorkspaceTests.test_ignored_unique_files_and_shared_worktrees_block_branch_changes) ... ok\ntest_library_baseline_resolves_transitive_selected_module (test_workspace.WorkspaceTests.test_library_baseline_resolves_transitive_selected_module) ... ok\ntest_library_legacy_baseline_uses_gitlink_not_current_head (test_workspace.WorkspaceTests.test_library_legacy_baseline_uses_gitlink_not_current_head) ... ok\ntest_missing_fixed_source_never_falls_back_to_remote_main (test_workspace.WorkspaceTests.test_missing_fixed_source_never_falls_back_to_remote_main) ... ok\ntest_npm_library_edit_uses_consumer_lock_git_sha_not_remote_main (test_workspace.WorkspaceTests.test_npm_library_edit_uses_consumer_lock_git_sha_not_remote_main) ... ok\ntest_npm_library_rejects_wrong_lock_origin_and_competing_manual_lock (test_workspace.WorkspaceTests.test_npm_library_rejects_wrong_lock_origin_and_competing_manual_lock) ... ok\ntest_partial_initialization_is_retained_and_retry_is_safe (test_workspace.WorkspaceTests.test_partial_initialization_is_retained_and_retry_is_safe) ... ok\ntest_partial_nested_transition_keeps_originals_and_owner_recovery_state (test_workspace.WorkspaceTests.test_partial_nested_transition_keeps_originals_and_owner_recovery_state) ... workspace: injected partial nested copy failure\nok\ntest_prepare_pins_fixed_commit_and_reuses_without_advancing (test_workspace.WorkspaceTests.test_prepare_pins_fixed_commit_and_reuses_without_advancing) ... ok\ntest_private_git_metadata_symlink_is_not_adopted (test_workspace.WorkspaceTests.test_private_git_metadata_symlink_is_not_adopted) ... ok\ntest_rejects_mismatched_origin_dirty_and_git_lock_without_changes (test_workspace.WorkspaceTests.test_rejects_mismatched_origin_dirty_and_git_lock_without_changes) ... ok\ntest_rejects_paths_and_symlink_escape (test_workspace.WorkspaceTests.test_rejects_paths_and_symlink_escape) ... ok\ntest_rejects_unknown_component_and_bad_branch_without_source_creation (test_workspace.WorkspaceTests.test_rejects_unknown_component_and_bad_branch_without_source_creation) ... ok\ntest_repeated_transition_keeps_alias_tag_versions_and_snapshot_history (test_workspace.WorkspaceTests.test_repeated_transition_keeps_alias_tag_versions_and_snapshot_history) ... ok\ntest_repeated_transition_preserves_dirty_index_ignored_and_external_git_metadata (test_workspace.WorkspaceTests.test_repeated_transition_preserves_dirty_index_ignored_and_external_git_metadata) ... ok\ntest_repeated_transition_rejects_a_new_source_head_without_switching_destination (test_workspace.WorkspaceTests.test_repeated_transition_rejects_a_new_source_head_without_switching_destination) ... ok\ntest_status_does_not_expose_credentials_from_an_unmatched_actual_origin (test_workspace.WorkspaceTests.test_status_does_not_expose_credentials_from_an_unmatched_actual_origin) ... ok\ntest_status_reports_dirty_and_verify_rejects_it (test_workspace.WorkspaceTests.test_status_reports_dirty_and_verify_rejects_it) ... ok\ntest_transition_known_nested_repositories_preserves_external_worktree_and_runs_go (test_workspace.WorkspaceTests.test_transition_known_nested_repositories_preserves_external_worktree_and_runs_go) ... ok\ntest_transition_preserves_committed_symlink_deletion_and_file_type_change (test_workspace.WorkspaceTests.test_transition_preserves_committed_symlink_deletion_and_file_type_change) ... ok\ntest_transition_preserves_staged_blob_internal_symlink_and_reflog_commit (test_workspace.WorkspaceTests.test_transition_preserves_staged_blob_internal_symlink_and_reflog_commit) ... ok\ntest_transition_refuses_initialized_nested_repository (test_workspace.WorkspaceTests.test_transition_refuses_initialized_nested_repository) ... ok\ntest_transition_rejects_external_symlinks_preserving_both_locations (test_workspace.WorkspaceTests.test_transition_rejects_external_symlinks_preserving_both_locations) ... ok\ntest_transition_report_is_readonly_apply_preserves_unique_commits_refs_and_files (test_workspace.WorkspaceTests.test_transition_report_is_readonly_apply_preserves_unique_commits_refs_and_files) ... ok\ntest_unlink_refuses_manual_overlay_changes_without_changing_registration (test_workspace.WorkspaceTests.test_unlink_refuses_manual_overlay_changes_without_changing_registration) ... ok\ntest_workspace_operation_lock_and_user_go_work_are_preserved (test_workspace.WorkspaceTests.test_workspace_operation_lock_and_user_go_work_are_preserved) ... ok\ntest_architecture_gate_preserves_edges_under_workspace_paths_and_new_module_identity (test_workspace_cutover.WorkspaceCutoverTests.test_architecture_gate_preserves_edges_under_workspace_paths_and_new_module_identity) ... ok\ntest_boundary_gate_uses_isolated_map_and_rejects_new_backend_internal_import (test_workspace_cutover.WorkspaceCutoverTests.test_boundary_gate_uses_isolated_map_and_rejects_new_backend_internal_import) ... ok\ntest_finish_preserves_absorbed_metadata_after_legacy_checkout_disappears (test_workspace_cutover.WorkspaceCutoverTests.test_finish_preserves_absorbed_metadata_after_legacy_checkout_disappears) ... ok\ntest_finish_preserves_external_worktree_of_retired_legacy_checkout (test_workspace_cutover.WorkspaceCutoverTests.test_finish_preserves_external_worktree_of_retired_legacy_checkout) ... ok\ntest_finish_preserves_nonbranch_legacy_refs_without_remote_backup (test_workspace_cutover.WorkspaceCutoverTests.test_finish_preserves_nonbranch_legacy_refs_without_remote_backup) ... ok\ntest_make_workspace_commands_prepare_edit_unlink_and_report (test_workspace_cutover.WorkspaceCutoverTests.test_make_workspace_commands_prepare_edit_unlink_and_report) ... ok\ntest_old_task_sync_adopts_new_sources_and_reports_explicit_transition (test_workspace_cutover.WorkspaceCutoverTests.test_old_task_sync_adopts_new_sources_and_reports_explicit_transition) ... ok\ntest_old_task_sync_preserves_unique_legacy_commit_staging_dirty_and_ignored_files (test_workspace_cutover.WorkspaceCutoverTests.test_old_task_sync_preserves_unique_legacy_commit_staging_dirty_and_ignored_files) ... ok\ntest_old_task_text_conflict_keeps_legacy_source_and_reports_no_success (test_workspace_cutover.WorkspaceCutoverTests.test_old_task_text_conflict_keeps_legacy_source_and_reports_no_success) ... ok\ntest_precheck_never_claims_ready_for_unavailable_fixed_rules (test_workspace_cutover.WorkspaceCutoverTests.test_precheck_never_claims_ready_for_unavailable_fixed_rules) ... ok\ntest_precheck_prepares_fixed_rules_outside_project_before_ready (test_workspace_cutover.WorkspaceCutoverTests.test_precheck_prepares_fixed_rules_outside_project_before_ready) ... ok\ntest_precheck_rejects_borrowed_rules_cache_symlink (test_workspace_cutover.WorkspaceCutoverTests.test_precheck_rejects_borrowed_rules_cache_symlink) ... ok\ntest_start_prepares_fixed_sources_without_recursive_submodule_init (test_workspace_cutover.WorkspaceCutoverTests.test_start_prepares_fixed_sources_without_recursive_submodule_init) ... ok\ntest_sync_preserves_edit_branch_and_refuses_changed_declared_source (test_workspace_cutover.WorkspaceCutoverTests.test_sync_preserves_edit_branch_and_refuses_changed_declared_source) ... ok\ntest_verify_detects_active_git_operation_in_nested_retired_root (test_workspace_cutover.WorkspaceCutoverTests.test_verify_detects_active_git_operation_in_nested_retired_root) ... ok\ntest_verify_detects_nested_git_operation_inside_new_workspace (test_workspace_cutover.WorkspaceCutoverTests.test_verify_detects_nested_git_operation_inside_new_workspace) ... ok\ntest_deleting_main_symlink_to_outside_is_denied (test_write_guard.WriteGuardTests.test_deleting_main_symlink_to_outside_is_denied) ... ok\ntest_detached_and_bad_branches_are_denied (test_write_guard.WriteGuardTests.test_detached_and_bad_branches_are_denied) ... ok\ntest_every_patch_file_and_move_destination_is_checked (test_write_guard.WriteGuardTests.test_every_patch_file_and_move_destination_is_checked) ... ok\ntest_feature_missing_parent_is_allowed (test_write_guard.WriteGuardTests.test_feature_missing_parent_is_allowed) ... ok\ntest_invalid_json_is_denied (test_write_guard.WriteGuardTests.test_invalid_json_is_denied) ... ok\ntest_missing_parent_on_main_is_denied (test_write_guard.WriteGuardTests.test_missing_parent_on_main_is_denied) ... ok\ntest_missing_unknown_and_malformed_write_input_are_denied (test_write_guard.WriteGuardTests.test_missing_unknown_and_malformed_write_input_are_denied) ... ok\ntest_non_git_destination_is_explicitly_outside_scope (test_write_guard.WriteGuardTests.test_non_git_destination_is_explicitly_outside_scope) ... ok\ntest_nonwrite_tools_are_outside_scope (test_write_guard.WriteGuardTests.test_nonwrite_tools_are_outside_scope) ... ok\ntest_relative_path_uses_hook_cwd_not_process_cwd (test_write_guard.WriteGuardTests.test_relative_path_uses_hook_cwd_not_process_cwd) ... ok\ntest_symlink_into_main_with_missing_parents_is_denied (test_write_guard.WriteGuardTests.test_symlink_into_main_with_missing_parents_is_denied) ... ok\ntest_valid_multi_file_patch_on_feature_is_allowed (test_write_guard.WriteGuardTests.test_valid_multi_file_patch_on_feature_is_allowed) ... ok\n\n======================================================================\nFAIL: test_auth_preflight_aligns_with_effective_env_dsn (test_svc.SvcDbRecoveryTests.test_auth_preflight_aligns_with_effective_env_dsn)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/agent-system-composition-b5be4j99/Dev-test-root/tests/test_svc.py\", line 474, in test_auth_preflight_aligns_with_effective_env_dsn\n self.assertIn(\"拒绝启动\", result.stdout)\n ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: '拒绝启动' not found in '\\x1b[1;33m[svc]\\x1b[0m [nl3] 跳过 manifest 迁移:需 python3 与 scripts/svc_manifest.py\\n\\x1b[1;31m[svc]\\x1b[0m [nl3] 端口被占用(非本服务):LISTEN 0 5 127.0.0.1:18803 0.0.0.0:* users:((\"python3\",pid=2487150,fd=3)) \\n\\x1b[1;31m[svc]\\x1b[0m 处理:停掉该进程,或换端口(--port / --addr)\\n'\n\n======================================================================\nFAIL: test_caller_identity_env_does_not_reach_serve (test_svc_lifecycle_isolation.LifecycleIsolationTests.test_caller_identity_env_does_not_reach_serve)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/agent-system-composition-b5be4j99/Dev-test-root/tests/test_svc_lifecycle_isolation.py\", line 25, in test_caller_identity_env_does_not_reach_serve\n self.svc(\"iso\", \"start\", env=env)\n ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/tmp/agent-system-composition-b5be4j99/Dev-test-root/tests/test_svc_recover.py\", line 248, in svc\n self.assertEqual(proc.returncode, 0, proc.stdout)\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 1 != 0 : \u001b[1;32m[svc]\u001b[0m [iso] manifest:已迁移 rev=1 instance_id=svc-iso-7ecae8f6eb14 data=/tmp/svc-autorecover-w1qcsyvk/runtime/iso/data\n\u001b[1;31m[svc]\u001b[0m [iso] 端口被占用(非本服务):LISTEN 0 5 127.0.0.1:9461 0.0.0.0:* users:((\"python3\",pid=2550772,fd=3)) \n\u001b[1;31m[svc]\u001b[0m 处理:停掉该进程,或换端口(--port / --addr)\n\n\n======================================================================\nFAIL: test_start_reclaims_own_orphan_without_pidfile (test_svc_recover.SvcAutoRecoverTests.test_start_reclaims_own_orphan_without_pidfile)\n模拟 update 误清 pidfile 后本 bin 仍占口:裸 start 应回收并拉起新进程。\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/agent-system-composition-b5be4j99/Dev-test-root/tests/test_svc_recover.py\", line 484, in test_start_reclaims_own_orphan_without_pidfile\n self.start_ok(\"dev\")\n ~~~~~~~~~~~~~^^^^^^^\n File \"/tmp/agent-system-composition-b5be4j99/Dev-test-root/tests/test_svc_recover.py\", line 279, in start_ok\n result = self.svc(name, \"start\")\n File \"/tmp/agent-system-composition-b5be4j99/Dev-test-root/tests/test_svc_recover.py\", line 248, in svc\n self.assertEqual(proc.returncode, 0, proc.stdout)\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 1 != 0 : \u001b[1;33m[svc]\u001b[0m [dev] 跳过 manifest 迁移:需 python3 与 scripts/svc_manifest.py\n\u001b[1;31m[svc]\u001b[0m [dev] 端口被占用(非本服务):LISTEN 0 5 127.0.0.1:18812 0.0.0.0:* users:((\"python3\",pid=2577636,fd=3)) \n\u001b[1;31m[svc]\u001b[0m 处理:停掉该进程,或换端口(--port / --addr)\n\n\n----------------------------------------------------------------------\nRan 476 tests in 300.750s\n\nFAILED (failures=3, skipped=19)\nmake[2]: *** [Makefile:254: test-governance] Error 1\nmake[2]: Entering directory '/tmp/agent-system-composition-b5be4j99/Dev-test-root'\nPYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests -p 'test_*.py' -v\nfixed checkout byproducts after PostgreSQL fixture: ''\n[composition] npm ci --ignore-scripts --no-audit --no-fund\n\nadded 1 package in 94ms\n[composition] npm cache add composition-cold-fixture@1.0.0 --ignore-scripts --registry=https://registry.npmjs.org --userconfig=/dev/null --globalconfig=/tmp/composition-npm-metadata-imsmcb7b/empty-global.npmrc\n[main 6681a9a] rdm v2\n 1 file changed, 1 insertion(+)\n create mode 100644 marker\nmake[2]: Leaving directory '/tmp/agent-system-composition-b5be4j99/Dev-test-root'\nmake[1]: *** [Makefile:273: test] Error 2\nmake[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace'\n", + "output_sha256": "3964f57f5c36d760750e89a90f04400325b5524b54e531cf465d5c45848e5bc6", + "receipt_sha256": "8af14b7b1f30aadbc6a5d99cea322502b3ba172b0cbaa87d953930c65b1da9df" +} +``` + + +```json +{ + "schema": 1, + "source": "SELF", + "timestamp": "2026-10-14T05:30:21.396999+00:00", + "command": "GIT_SSH_COMMAND='timeout 180 ssh -o BatchMode=yes -o ConnectTimeout=15 -o ServerAliveInterval=10 -o ServerAliveCountMax=3' make build", + "command_sha256": "0cb93883f389c8d32c3dec87c3988326a4195b80f19fe7e005a220b58fb2694d", + "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace", + "common_dir": "/home/weichen/projects/Agent-System-Dev/.git", + "before": { + "head": "6160dae6fb0d591ccbfc2d2c17fc003a2ce209b0", + "branch": "feature/dependency-workspace", + "target_branch": "main", + "target_head": "4f84c2e1630cd0311643529fae1c3a99f1dd5d64", + "status": " M .task/feature-dependency-workspace.md\n", + "tracked_diff_sha256": "ca5c9578bb242503eb2cf1125eb998b7b9e81f4324babb60bd1e206b8a13b638", + "untracked": {}, + "submodules": "", + "components": { + "manifest_sha256": "c8cddfff753bee796e6a75f9c22b5392f4b2cfeee340dadc61ff82e71238318b", + "components": { + "Logging-System": { + "state": "missing" + }, + "Error-Code-System": { + "state": "missing" + }, + "Agent-System-Core": { + "state": "missing" + }, + "Agent-System-UI": { + "state": "missing" + }, + "Agent-System-Frontend": { + "head": "74511db9a6fb12e17954cb0c3f8e8846a6ecf831", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Native": { + "head": "6ddd3da8df5ccc532f5b06f0aa8d49662e6f049e", + "branch": "feature/dependency-live-edit-probe", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Intent": { + "state": "missing" + }, + "Agent-Command": { + "state": "missing" + }, + "Agent-Squad": { + "state": "missing" + }, + "Agent-System-Backend": { + "head": "48649a37ee92373c639a384a2c5a9dfaa2ec4bbb", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Development-Guidelines": { + "head": "db3824bfdbfdcad91d0941495719f04dbeaca053", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-System-Documents": { + "head": "1de7d17110efaa5ed2ed30a44d415f28987f89f3", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + } + }, + "lock_sha256": "9075ff0f527b00ef8767db99d2e2a11783deace76babbffbff04cfdc5c8d255f", + "state_sha256": "00077b52438250f37b217eb353c2927c17350ca6e5d5ec8249f5f98f02873e2f" + } + }, + "after": { + "head": "6160dae6fb0d591ccbfc2d2c17fc003a2ce209b0", + "branch": "feature/dependency-workspace", + "target_branch": "main", + "target_head": "4f84c2e1630cd0311643529fae1c3a99f1dd5d64", + "status": " M .task/feature-dependency-workspace.md\n", + "tracked_diff_sha256": "ca5c9578bb242503eb2cf1125eb998b7b9e81f4324babb60bd1e206b8a13b638", + "untracked": {}, + "submodules": "", + "components": { + "manifest_sha256": "c8cddfff753bee796e6a75f9c22b5392f4b2cfeee340dadc61ff82e71238318b", + "components": { + "Logging-System": { + "state": "missing" + }, + "Error-Code-System": { + "state": "missing" + }, + "Agent-System-Core": { + "state": "missing" + }, + "Agent-System-UI": { + "state": "missing" + }, + "Agent-System-Frontend": { + "head": "74511db9a6fb12e17954cb0c3f8e8846a6ecf831", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Native": { + "head": "6ddd3da8df5ccc532f5b06f0aa8d49662e6f049e", + "branch": "feature/dependency-live-edit-probe", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-Intent": { + "state": "missing" + }, + "Agent-Command": { + "state": "missing" + }, + "Agent-Squad": { + "state": "missing" + }, + "Agent-System-Backend": { + "head": "48649a37ee92373c639a384a2c5a9dfaa2ec4bbb", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Development-Guidelines": { + "head": "db3824bfdbfdcad91d0941495719f04dbeaca053", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + }, + "Agent-System-Documents": { + "head": "1de7d17110efaa5ed2ed30a44d415f28987f89f3", + "branch": "", + "status": "", + "tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "untracked": {} + } + }, + "lock_sha256": "9075ff0f527b00ef8767db99d2e2a11783deace76babbffbff04cfdc5c8d255f", + "state_sha256": "00077b52438250f37b217eb353c2927c17350ca6e5d5ec8249f5f98f02873e2f" + } + }, + "after_error": null, + "exit_code": 0, + "output": "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace'\npython3 scripts/build-composition.py --root . --target build\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Frontend.git /tmp/agent-system-composition-963wuwfl/Agent-System-Frontend-git\nCloning into '/tmp/agent-system-composition-963wuwfl/Agent-System-Frontend-git'...\n[composition] git clone --no-checkout --no-hardlinks -- ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Backend.git /tmp/agent-system-composition-963wuwfl/Agent-System-Backend-git\nCloning into '/tmp/agent-system-composition-963wuwfl/Agent-System-Backend-git'...\n[composition] npm ci --ignore-scripts --no-audit --no-fund\nnpm warn deprecated uuid@10.0.0: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).\n\nadded 178 packages in 3s\n[composition] npm cache add @babel/code-frame@7.29.7 @babel/compat-data@7.29.7 @babel/core@7.29.7 @babel/generator@7.29.8 @babel/helper-compilation-targets@7.29.7 @babel/helper-globals@7.29.7 @babel/helper-module-imports@7.29.7 @babel/helper-module-transforms@7.29.7 @babel/helper-plugin-utils@7.29.7 @babel/helper-string-parser@7.29.7 @babel/helper-validator-identifier@7.29.7 @babel/helper-validator-option@7.29.7 @babel/helpers@7.29.7 @babel/parser@7.29.9 @babel/plugin-transform-react-jsx-self@7.29.7 @babel/plugin-transform-react-jsx-source@7.29.7 @babel/template@7.29.7 @babel/traverse@7.29.8 @babel/types@7.29.8 @esbuild/linux-x64@0.25.12 @jridgewell/gen-mapping@0.3.13 @jridgewell/remapping@2.3.5 @jridgewell/resolve-uri@3.1.2 @jridgewell/sourcemap-codec@1.6.0 @jridgewell/trace-mapping@0.3.31 @napi-rs/lzma-linux-x64-gnu@1.5.1 @nodelib/fs.scandir@2.1.5 @nodelib/fs.stat@2.0.5 @nodelib/fs.walk@1.2.8 @oxc-resolver/binding-linux-x64-gnu@11.24.2 @playwright/test@1.64.0 @rolldown/pluginutils@1.0.0-beta.27 @rollup/rollup-linux-x64-gnu@4.63.5 @standard-schema/spec@1.1.0 @types/babel__core@7.20.5 @types/babel__generator@7.27.0 @types/babel__template@7.4.4 @types/babel__traverse@7.28.0 @types/chai@5.2.3 @types/deep-eql@4.0.2 @types/estree@1.0.9 @types/node@22.20.4 @types/react-dom@19.3.0 @types/react@19.3.0 @types/trusted-types@2.0.7 @vitejs/plugin-react@4.7.0 @vitest/expect@4.1.11 @vitest/mocker@4.1.11 @vitest/pretty-format@4.1.11 @vitest/runner@4.1.11 @vitest/snapshot@4.1.11 @vitest/spy@4.1.11 @vitest/utils@4.1.11 @xmldom/xmldom@0.8.15 adler-32@1.3.1 argparse@1.0.10 assertion-error@2.0.1 base64-js@1.5.1 baseline-browser-mapping@2.11.26 braces@3.0.3 browserslist@4.29.3 caniuse-lite@1.0.30001813 cfb@1.2.2 chai@6.2.2 codepage@1.15.0 convert-source-map@2.0.0 core-util-is@1.0.3 crc-32@1.2.2 csstype@3.2.3 debug@4.4.3 dingbat-to-unicode@1.0.2 docx-preview@0.4.1 dompurify@3.4.16 duck@0.1.12 echarts@5.6.0 electron-to-chromium@1.5.440 es-module-lexer@2.3.2 esbuild@0.25.12 escalade@3.2.0 estree-walker@3.0.3 expect-type@1.4.0 fast-glob@3.3.3 fastq@1.20.3 fd-package-json@2.0.0 fdir@6.5.0 fill-range@7.1.1 formatly@0.3.0 frac@1.1.2 gensync@1.0.0-beta.2 glob-parent@5.1.2 immediate@3.0.6 inherits@2.0.4 is-extglob@2.1.1 is-glob@4.0.3 is-number@7.0.0 isarray@1.0.0 jiti@2.7.0 js-tokens@4.0.0 jsesc@3.1.0 json5@2.2.3 jszip@3.10.2 knip@5.88.1 lie@3.3.0 lodash@4.18.1 lop@0.4.2 lru-cache@5.1.1 magic-string@0.30.21 mammoth@1.13.0 marked@15.0.12 merge2@1.4.1 micromatch@4.0.8 minimist@1.2.8 ms@2.1.3 nanoid@3.3.19 node-releases@2.0.57 obug@2.2.1 option@0.2.4 oxc-resolver@11.24.2 pako@1.0.11 pathe@2.0.3 picocolors@1.1.1 picomatch@2.3.2 picomatch@4.0.7 playwright-core@1.64.0 playwright@1.64.0 postcss@8.5.28 pptx-preview@1.0.7 process-nextick-args@2.0.1 queue-microtask@1.2.3 react-dom@19.3.0 react-refresh@0.17.0 react@19.3.0 readable-stream@2.3.8 reusify@1.1.0 rollup@4.63.5 run-parallel@1.2.0 safe-buffer@5.1.2 scheduler@0.28.0 semver@6.3.1 setimmediate@1.0.5 siginfo@2.0.0 smol-toml@1.9.0 source-map-js@1.2.1 sprintf-js@1.0.3 ssf@0.11.2 stackback@0.0.2 std-env@4.3.0 string_decoder@1.1.1 strip-json-comments@5.0.3 tinybench@2.9.0 tinyexec@1.3.1 tinyglobby@0.2.17 tinyrainbow@3.2.0 to-regex-range@5.0.1 tslib@2.3.0 tslib@2.8.1 typescript@5.9.3 unbash@2.2.0 underscore@1.13.8 undici-types@6.21.0 update-browserslist-db@1.3.3 util-deprecate@1.0.2 uuid@10.0.0 vite@6.4.3 vitest@4.1.11 walk-up-path@4.0.0 why-is-node-running@2.3.0 wmf@1.0.2 word@0.3.0 xlsx@0.18.5 xmlbuilder@10.1.1 yallist@3.1.1 yaml@2.9.1 zod@4.6.5 zrender@5.6.1 --ignore-scripts --registry=https://registry.npmjs.org --userconfig=/dev/null --globalconfig=/tmp/composition-npm-metadata-v8qyfz1u/empty-global.npmrc\n[composition] go mod verify\nall modules verified\n[composition] npm run build\n\n(!) Some chunks are larger than 500 kB after minification. Consider:\n- Using dynamic import() to code-split the application\n- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks\n- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.\n\n> agent-system-frontend@0.1.0 build\n> tsc -b && vite build\n\nvite v6.4.3 building for production...\ntransforming...\n✓ 1015 modules transformed.\nrendering chunks...\ncomputing gzip size...\ndist/index.html 0.40 kB │ gzip: 0.27 kB\ndist/assets/index-BWPiL_PS.css 93.18 kB │ gzip: 16.04 kB\ndist/assets/jszip.min-d-4Zmon1.js 0.12 kB │ gzip: 0.12 kB\ndist/assets/docx-preview-6sU_ku0G.js 77.41 kB │ gzip: 21.29 kB\ndist/assets/jszip.min-kSHCEEHx.js 97.26 kB │ gzip: 30.16 kB\ndist/assets/index-DoGujINZ.js 213.14 kB │ gzip: 70.03 kB\ndist/assets/xlsx-CkFp8p6R.js 429.53 kB │ gzip: 143.07 kB\ndist/assets/index-Ctb2bcvo.js 561.83 kB │ gzip: 175.12 kB\ndist/assets/pptx-preview.es-Dtz_cWFU.js 1,255.23 kB │ gzip: 401.46 kB\n✓ built in 4.84s\n[composition] go build -mod=readonly -trimpath -buildvcs=false -ldflags=-s -w -X main.version=6160dae6fb0d+backend=48649a37ee92+frontend=74511db9a6fb+deps=1771de583882 -o /tmp/agent-system-composition-963wuwfl/products/agent-system ./cmd/agent-system\n[composition] go build -mod=readonly -trimpath -buildvcs=false -ldflags=-s -w -o /tmp/agent-system-composition-963wuwfl/products/storage-migrate ./cmd/storage-migrate\n[composition] complete: build; manifest=/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace/bin/resolved-manifest.json\nmake[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-dependency-workspace'\n", + "output_sha256": "1cb9224a3d153b958f332cd3d1820d6a66e0186f621d528444d833127fc2d379", + "receipt_sha256": "0d58ae51c1379b7ef56233bf957b7f732077ba4141ff2425d96ceb5138d23d42" +} +``` + +## 2026-10-14 #537 正式窗口与阶段 7 待验收对象 + +用户授权本会话在 #518 先完成 #538 窗口交接,再接管 #537;该授权只覆盖 #537 的最终同步与验证,不替代阶段 7 人工验收。权威窗口 `mq-dev-20261014-537-01` 已领取,前一任务卡闭合 PR #538 实际合入后,Dev main=`4f84c2e1630cd0311643529fae1c3a99f1dd5d64`。本任务的正式合并提交 `6160dae6fb0d591ccbfc2d2c17fc003a2ce209b0` 包含该 main 和迁移候选 `3270abff016f2227b8a3894fa69645a5b61c6664`;当前阶段 7 结论仍为未评审,迁移 PR 未合入。 + +冲突处理只将旧 `modules/backend`、`modules/frontend` gitlink 从主仓索引退役,原物理目录与各自 `.git` 保留;`scripts/e2e.sh` 采用此前隔离浏览器重放过的语义合并,保留 #488 的首次设密、显式 `audit.read`、进程 PID 清理、审计与普通基座浏览器用例,并改用固定依赖构建。#538 对该脚本无新增修改;其任务卡闭合、`scripts/task.sh` 与治理回归已纳入。`make task-sync` 的初次冲突和固定 Frontend 工作区旧版拒绝原始收据分别在 `/tmp/dependency-537-final-sync-20261014-01a1345f.json`、`/tmp/dependency-537-sync-confirm-20261014-01a1345f.json`;旧版以显式 `REFRESH_FIXED=1` 保留引用后刷新到 `74511db9a6fb12e17954cb0c3f8e8846a6ecf831`,再跑同基线 task-sync 得 `changed=0`。成功的完整 SELF 输出已由 `IMPORT_RECEIPT` 原样导入本卡;外部原件 `/tmp/dependency-537-sync-confirm-2-20261014-01a1345f.json`。 + +当前固定的提供方版本:Frontend `74511db9a6fb12e17954cb0c3f8e8846a6ecf831`、Backend `48649a37ee92373c639a384a2c5a9dfaa2ec4bbb`、Guidelines `db3824bfdbfdcad91d0941495719f04dbeaca053`、Documents `1de7d17110efaa5ed2ed30a44d415f28987f89f3`;版本来源与 14 条消费记录的先前审计见 `/tmp/dependency-versioned-source-reachability-20261014-01a1345f.json`,最终提交仍需重验。RDM 本地 `1844df1d3ec453f8d1a4097596fa9b787c05d1c9` 已含上游业务及任务卡归档,但远端 #363 尚未推此对象;其固定 Dev composer `c5068ed` 待本分支正常推送后才能在平台取得。 + +本地 `make build` 在合并提交 6160dae 上通过,完整 SELF 输出已由 `make evidence` 写入本卡,receipt_sha256=`0d58ae51c1379b7ef56233bf957b7f732077ba4141ff2425d96ceb5138d23d42`。首次完整测试在私有 Core SSH 连接长时间无收发后受控退出,原始失败 SELF receipt_sha256=`4089679f6f14bdc8d9da7ac0d28092864d791d72efcdfda47d9b6ad2d042b772`;Core 单独 SSH 读取随后成功,原件 `/tmp/dependency-537-core-ssh-probe-20261014-01a1345f.json`。有界 SSH 的完整测试继续到 476 项治理回归,19 项显式跳过、3 项因固定端口 `18803`、`9461`、`18812` 被 Python 进程占用失败;同一时段另有其他工作区测试并行,具体占口 PID 归属未固化。该次失败完整 SELF 输出亦由 `make evidence` 写入本卡,receipt_sha256=`8af14b7b1f30aadbc6a5d99cea322502b3ba172b0cbaa87d953930c65b1da9df`,不标为通过。 + +阶段 7 仍需:当前最终 HEAD 的受信 CI(test、test-pg、svc-realcombo),固定组合清单与必要局部重放,RDM 当前 HEAD 的实际 GATE,以及 R1–R15 的完整证据/缺项表。源码外阶段 7 索引为 `/tmp/dependency-stage7-readiness-20261014-01a1345f.md`,将按最终 SHA、平台结果更新后提交人工审阅。前述隔离普通克隆、按需 Native 修改与解除、旧 gitlink 候选重建、浏览器 5+2 重放仍只属于各自原对象的 SELF/REPLAY,不能代替当前候选的 CI 或人工结论。共享服务、业务数据、发布、历史改写、保护设置、迁移 PR 合入及工作区回收均未执行。