Gate svc lifecycles on real Dev and RDM artifacts in CI (U3) #484

Merged
weichen merged 11 commits from feature/svc-u3-realcombo into main 2026-10-12 15:02:10 +00:00
Owner

任务卡(同一份文档):.task/feature-svc-u3-realcombo.md @ c5f37bd8

Why: 桩套件证明脚本逻辑、不证明真实产物行为(本轮事故全部桩测绿后仍发生)。
改动:tests/test_svc_realcombo.py(SVC_TEST_REAL 硬开关:真实 agent-system/agent-system-rdm 领养-verify-裸重启-capabilities-未知子命令-全轨部署-真实 PG 身份);ci.yaml 新增 svc-realcombo 作业 + test-pg 追加真实 PG 步骤(RDM 克隆经受信基址 URL 级 token 头,allowlist 扩项 Agent-System-RDM 由本 PR 评审背书);svc.sh identity pg 档 DSN 改 AGENT_SYSTEM_DSN 环境交付(G1-7)+ 首次部署同轮 manifest 领养(全轨实测发现的次序缺口);modules/backend→main(#182)。
Evidence: make test exit 0 + 本地 realcombo 干跑 16 OK(证据表);干跑暴露并修复的两个真实缺口见 Why。
Refs: 用户根因诊断 U3;backend #182;RDM #285。

任务卡(同一份文档):.task/feature-svc-u3-realcombo.md @ c5f37bd8 Why: 桩套件证明脚本逻辑、不证明真实产物行为(本轮事故全部桩测绿后仍发生)。 改动:tests/test_svc_realcombo.py(SVC_TEST_REAL 硬开关:真实 agent-system/agent-system-rdm 领养-verify-裸重启-capabilities-未知子命令-全轨部署-真实 PG 身份);ci.yaml 新增 svc-realcombo 作业 + test-pg 追加真实 PG 步骤(RDM 克隆经受信基址 URL 级 token 头,allowlist 扩项 Agent-System-RDM 由本 PR 评审背书);svc.sh identity pg 档 DSN 改 AGENT_SYSTEM_DSN 环境交付(G1-7)+ 首次部署同轮 manifest 领养(全轨实测发现的次序缺口);modules/backend→main(#182)。 Evidence: make test exit 0 + 本地 realcombo 干跑 16 OK(证据表);干跑暴露并修复的两个真实缺口见 Why。 Refs: 用户根因诊断 U3;backend #182;RDM #285。
weichen added 4 commits 2026-10-12 14:28:38 +00:00
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-svc-u3-realcombo.md; R0=4d362537d0e8755a03b1757b5bad92779a064b33.

Impact: task metadata only; the feature workspace starts at 4d362537d0.

Refs: .task/feature-svc-u3-realcombo.md
Why: stub suites proved the script logic but not real artifact
behavior (the 2026-10-12 incidents passed all stub tests); the report's
U3 requires real-combination gates, and realcombo dry-runs exposed two
real gaps: fresh deploys closed identity governance one lifecycle late,
and pg-bound identity calls put the DSN on the command line.
Evidence: make test exit 0; local realcombo dry-run 16 OK (rows in the
task card); CI adds svc-realcombo (SQLite, both real binaries, full RDM
track) and a real-PG identity step on test-pg with env-delivered DSN.
Impact: tests/test_svc_realcombo.py (SVC_TEST_REAL gate, explicit
NOT_RUN otherwise); ci.yaml new job + test-pg step (RDM clone via
trusted-base URL-scoped token header, allowlist addition reviewed in
this PR); svc.sh delivers identity DSN via AGENT_SYSTEM_DSN and runs
manifest adoption in the same deploy that first registers svc.env;
modules/backend pinned to main (env fallback, backend #182).
Refs: .task/feature-svc-u3-realcombo.md; user goal directive 2026-10-12
(U3); backend #182; RDM #285.
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=4d362537d0e8755a03b1757b5bad92779a064b33; candidate=99bbbc089eae0e4524a5d4e6085967ab15acb403.

Impact: task metadata only.

Refs: .task/feature-svc-u3-realcombo.md
Record task-sync evidence
ci / svc-realcombo (pull_request) Failing after 56s
ci / test-pg (pull_request) Failing after 1m33s
ci / test (pull_request) Successful in 4m0s
c5f37bd82f
weichen added 1 commit 2026-10-12 14:30:16 +00:00
Keep clone credentials through nested RDM pins fetch in CI
ci / svc-realcombo (pull_request) Failing after 1m20s
ci / test (pull_request) Failing after 2m24s
ci / test-pg (pull_request) Failing after 2m29s
802904646c
Why: the realcombo steps unset the URL-scoped token env before
'submodule update', so nested pins fell back to raw SSH URLs and failed
host-key verification on the runner (first svc-realcombo run 2605).
Evidence: job log run 2605 shows ssh clone failures; reordered steps
keep insteadOf + token header active through the pins fetch.
Impact: ci.yaml ordering only.
weichen added 1 commit 2026-10-12 14:32:49 +00:00
Resolve realcombo paths inside CI run scripts
ci / svc-realcombo (pull_request) Failing after 1m29s
ci / test-pg (pull_request) Failing after 2m21s
ci / test (pull_request) Successful in 3m53s
fbe76cc014
Why: YAML env: values do not shell-expand, so $PWD-based binary paths
reached the suite as literal strings (run 2606: SVC_REAL_BIN not
executable).
Evidence: job log run 2606; paths now exported in the run script.
Impact: ci.yaml only.
weichen added 1 commit 2026-10-12 14:36:33 +00:00
Hard-disable RDM exec tools in realcombo tests
ci / test-pg (pull_request) Failing after 1m19s
ci / svc-realcombo (pull_request) Failing after 1m27s
ci / test (pull_request) Failing after 2m23s
2c767867ca
Why: CI runners lack bwrap, so the real RDM binary refuses to start
under the sandbox fail-closed policy (run 2607: serve exits right after
launch); the product provides RDM_DISABLE_EXEC_TOOLS as the top-level
fallback and lifecycle semantics under test are unchanged.
Evidence: local rerun with the env set stays green.
Impact: tests only.
weichen added 1 commit 2026-10-12 14:40:17 +00:00
Route realcombo git subprocesses through the trusted base in CI
ci / svc-realcombo (pull_request) Failing after 1m58s
ci / test-pg (pull_request) Successful in 2m28s
ci / test (pull_request) Successful in 4m15s
139fda0fe3
Why: on keyless runners the RDM cache clone and pins materialization
inside svc.sh fetched nested pins over raw SSH URLs (run 2608: host key
verification failed); the suite now injects the same URL-scoped token
header and insteadOf rewrite via environment when SVC_CI_GIT_* is set.
Evidence: local rerun stays green (env unset locally); CI run applies it.
Impact: tests + ci.yaml only; token travels via environment only.
weichen added 1 commit 2026-10-12 14:43:37 +00:00
Attach svc.log tail to full-track deploy failures
ci / svc-realcombo (pull_request) Failing after 1m46s
ci / test (pull_request) Failing after 2m30s
ci / test-pg (pull_request) Successful in 3m43s
3f6522f3f0
Why: the CI-only serve-exit failure left no server-side evidence in the
assertion output; the tail pinpoints the refuse reason on the runner.
Evidence: local rerun green (diagnostic inert on success).
Impact: test diagnostics only.
weichen added 1 commit 2026-10-12 14:47:57 +00:00
Hard-disable exec tools for every call in the full-track test
ci / svc-realcombo (pull_request) Successful in 1m37s
ci / test (pull_request) Failing after 2m19s
ci / test-pg (pull_request) Successful in 3m9s
7dd2079b06
Why: only the deploy invocation carried RDM_DISABLE_EXEC_TOOLS; the
trailing restart ran without it and the serve died on keyless runners
under the bwrap fail-closed policy (run 3765).
Evidence: local suite green; the restart now inherits the hard-disable.
Impact: tests only.
weichen added 1 commit 2026-10-12 14:56:03 +00:00
Wait for port release after stopping a service
ci / svc-realcombo (pull_request) Successful in 2m1s
ci / test-pg (pull_request) Successful in 4m2s
ci / test (pull_request) Successful in 4m55s
e9673cad88
Why: on slow runners the orphaned http child of a stopped stub lingers
a few hundred milliseconds past the parent's exit (ppid-watch suicide),
and the immediately following start - notably the U2 rollback restart -
classified the unparented listener as a foreign occupant and refused to
start (CI run 3774).
Evidence: test_svc_u2/identity/svc suites 82 OK locally with the wait
in both stop paths.
Impact: adds <=3s bounded wait in do_stop/do_stop_quiet after SIGTERM
cleanup; no behavior change when the port is already free.
weichen merged commit a1693f8f92 into main 2026-10-12 15:02:10 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Dev#484