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
11 Commits
Author SHA1 Message Date
weichen e9673cad88 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
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.
2026-10-12 14:56:00 +00:00
weichen 7dd2079b06 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
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.
2026-10-12 14:47:56 +00:00
weichen 3f6522f3f0 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
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.
2026-10-12 14:43:35 +00:00
weichen 139fda0fe3 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
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.
2026-10-12 14:40:14 +00:00
weichen 2c767867ca 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
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.
2026-10-12 14:36:32 +00:00
weichen fbe76cc014 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
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.
2026-10-12 14:32:48 +00:00
weichen 802904646c 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
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.
2026-10-12 14:30:13 +00:00
weichen c5f37bd82f 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
2026-10-12 14:28:27 +00:00
weichen c27b647012 Record the sync checkpoint
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
2026-10-12 14:28:27 +00:00
weichen 99bbbc089e Gate svc lifecycles on real Dev and RDM artifacts in CI
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.
2026-10-12 14:27:59 +00:00
weichen 74623437f2 Record the task card for feature-svc-u3-realcombo
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
2026-10-12 14:06:49 +00:00