Cover the runnable D3 scenarios with real artifacts #503

Merged
weichen merged 21 commits from feature/svc-d3-real-scenarios into main 2026-10-13 04:56:48 +00:00
Owner

Summary

  • 用真实 RDM 制品补齐可运行的 D3 场景:旧候选拒绝、prev/sha 切换与回退、缺行与不匹配、回滚与 phase 对账、双向混合批次、无 manifest 三入口、PG 跨实例错绑、凭据扫描、bootstrap 领域数据保留。
  • test-pg 按 rdm.pin 的三个 40 位 hex 检出并构建,不放宽 URL allowlist,不 source pin。套件结束打印组合清单。
  • 登录与 rdm.ping 保持 NOT_RUN。可运行场景全覆盖,登录 NOT_RUN。不得写成全覆盖。

Test plan

  • 当前 HEAD 的 ci/test、ci/test-pg、ci/svc-realcombo 均为 success
  • 任务卡证据为 SELF;权威通过以 CI 为准
  • 不搬迁 live 数据,不公共化账户 CLI

Refs: .task/feature-svc-d3-real-scenarios.md

## Summary - 用真实 RDM 制品补齐可运行的 D3 场景:旧候选拒绝、prev/sha 切换与回退、缺行与不匹配、回滚与 phase 对账、双向混合批次、无 manifest 三入口、PG 跨实例错绑、凭据扫描、bootstrap 领域数据保留。 - test-pg 按 rdm.pin 的三个 40 位 hex 检出并构建,不放宽 URL allowlist,不 source pin。套件结束打印组合清单。 - 登录与 rdm.ping 保持 NOT_RUN。可运行场景全覆盖,登录 NOT_RUN。不得写成全覆盖。 ## Test plan - [ ] 当前 HEAD 的 ci/test、ci/test-pg、ci/svc-realcombo 均为 success - [ ] 任务卡证据为 SELF;权威通过以 CI 为准 - [ ] 不搬迁 live 数据,不公共化账户 CLI Refs: .task/feature-svc-d3-real-scenarios.md
weichen added 12 commits 2026-10-13 03:41:38 +00:00
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-svc-d3-real-scenarios.md; R0=5aebedebeb963b5c01f39fd9122ec60dbe6d34d3.

Impact: task metadata only; the feature workspace starts at 5aebedebeb.

Refs: .task/feature-svc-d3-real-scenarios.md
Why: The lifecycle gate only ran four realcombo cases. A legacy candidate and a missing or mismatched identity row must be refused before the old process stops, and the prev/sha pins must switch without changing the identity row.
Evidence: SELF unittest of the four LifecycleRealTests methods exited 0 against a private RDM clone. The pin moved to the identity merge and a later commit on the same backend pin, because the previous card-close SHAs build a binary with no ensure/verify.
Impact: make test still skips this class unless SVC_TEST_REAL, SVC_RDM_SRC_DIR and SVC_REAL_RDM_BIN are set. make test-lifecycle now runs the module. Login and rdm.ping stay NOT_RUN.
Refs: tests/integration/lifecycle/rdm.pin
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Stub journals do not prove that a real RDM binary rolls back after a switched fault, a failed build, or a candidate that exits on serve.
Evidence: SELF unittest of the three new LifecycleRealTests methods exited 0. Staging leaves the old pid and release in place; the next start clears that journal. Switched and an immediate serve exit both restore the previous real binary.
Impact: The crash candidate delegates version and identity to the real binary so the gate still sees a capable artifact. Login and rdm.ping stay NOT_RUN.
Refs: tests/integration/lifecycle/test_lifecycle_real.py
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: A static dev deploy deleted the worktree before copying dist, so a mixed batch could not update the workbench. Missing manifests and a second instance on the same Postgres database must fail closed the same way on real artifacts.
Evidence: SELF unittest of the mixed batch, the three-entry manifest-loss case, and the PG cross-instance case exited 0. The PG case used a temporary cluster.
Impact: static dev deploys copy dist before recycling the worktree. Login and rdm.ping stay NOT_RUN.
Refs: tests/integration/lifecycle/test_lifecycle_real.py
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: A real process must not keep the caller DSN in its command line, environment, log, history, or svc.env. Domain events written by -bootstrap have to survive a later pin deploy.
Evidence: SELF unittest of the two new LifecycleRealTests methods exited 0.
Impact: The scan uses a sentinel that is not a live database password. Login and rdm.ping stay NOT_RUN.
Refs: tests/integration/lifecycle/test_lifecycle_real.py
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: test-pg only cloned the default branch, so prev_sha and legacy_sha were never built or attested.
Evidence: SELF python3 -m unittest tests.test_ci_credentials tests.test_lifecycle_pin (11 tests, exit 0).
Impact: the lifecycle suite prints the combination inventory and keeps login and rdm.ping as NOT_RUN.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the card still had the task-start placeholders, so review would not see the NOT_RUN boundary.
Evidence: documentation only; command evidence follows via make evidence.
Impact: login and rdm.ping stay NOT_RUN, and the card does not claim full coverage.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=3fb8210f6495a78e70a67af3661bdfe9c00fb9de.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=3fb8210f6495a78e70a67af3661bdfe9c00fb9de; candidate=c1e82872ff6deb547da49dcf58f4766d30c79286.

Impact: task metadata only.

Refs: .task/feature-svc-d3-real-scenarios.md
Why: completion claims need tool-written receipts, including the SSH timeout and the passing rerun.
Evidence: SELF make evidence rows on this card.
Impact: task metadata only; login and rdm.ping stay NOT_RUN.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=3fb8210f6495a78e70a67af3661bdfe9c00fb9de; candidate=c2739b236cd738bc20f90e1af8f8e86fa336d905.

Impact: task metadata only.

Refs: .task/feature-svc-d3-real-scenarios.md
Record the task-sync evidence receipt
ci / test-pg (pull_request) Failing after 3m38s
ci / svc-realcombo (pull_request) Successful in 1m59s
ci / test (pull_request) Successful in 4m55s
5243030370
Why: the sync checkpoint must be a tool-written receipt on the same card as the tests.
Evidence: SELF CMD make task-sync, exit 0, sync_base 3fb8210f64.
Impact: task metadata only.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
weichen added 1 commit 2026-10-13 03:42:07 +00:00
Link the task card to pull request 503
ci / svc-realcombo (pull_request) Successful in 1m42s
ci / test-pg (pull_request) Failing after 3m25s
ci / test (pull_request) Successful in 4m46s
678590b1dc
Why: the card's main record must point at the review object before CI is accepted.
Evidence: PR 503 exists on the current branch.
Impact: task metadata only.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
weichen added 2 commits 2026-10-13 04:05:50 +00:00
Why: test-pg has no SSH known_hosts, and the shared agent_test database already holds another instance identity.
Evidence: SELF python3 -m unittest tests.test_ci_credentials.CheckoutTests.test_rdm_pin_fetch_is_three_shas_on_the_allowlist tests.integration.lifecycle.test_lifecycle_real (1 pass, 24 skip).
Impact: lifecycle children forward GIT_CONFIG_* only; serve stays env -i. Login and rdm.ping stay NOT_RUN.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Record the pin-channel unit evidence
ci / svc-realcombo (pull_request) Successful in 1m51s
ci / test (pull_request) Successful in 4m53s
ci / test-pg (pull_request) Failing after 6m39s
b5cf1f2f1e
Why: the CI fix needs a tool-written receipt on the commit that contains it.
Evidence: SELF make evidence, exit 0.
Impact: task metadata only.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
weichen added 2 commits 2026-10-13 04:14:12 +00:00
Why: depth 1 makes prev_sha and sha unrelated shallow roots, so update reports a fork instead of an upgrade.
Evidence: SELF the pin-fetch credential test; CI run 2829 showed the fork message.
Impact: test-pg fetches 200 commits from each pin, not the full history.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Record the deeper pin-fetch evidence
ci / test (pull_request) Successful in 4m50s
ci / svc-realcombo (pull_request) Successful in 1m50s
ci / test-pg (pull_request) Successful in 7m59s
f59a189b6f
Why: the ancestry fix needs a tool-written receipt beside the workflow change.
Evidence: SELF make evidence, exit 0.
Impact: task metadata only.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
weichen added 2 commits 2026-10-13 04:25:41 +00:00
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=d40d1c2e5d29bb0ce429edf2221d9c4e4bcb0dcb.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
Record the sync checkpoint
ci / svc-realcombo (pull_request) Successful in 2m48s
ci / test-pg (pull_request) Successful in 10m0s
ci / test (pull_request) Successful in 6m23s
170b07702c
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=d40d1c2e5d29bb0ce429edf2221d9c4e4bcb0dcb; candidate=da0bb034c9679c396b2f96bdb1b3857c456455cf.

Impact: task metadata only.

Refs: .task/feature-svc-d3-real-scenarios.md
weichen added 2 commits 2026-10-13 04:46:20 +00:00
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=6fd51fec9fed2a95f51420d2c1a8bd5d82db2ae6.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
Record the sync checkpoint
ci / test-pg (pull_request) Successful in 8m27s
ci / svc-realcombo (pull_request) Successful in 2m29s
ci / test (pull_request) Successful in 5m34s
424892258b
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=6fd51fec9fed2a95f51420d2c1a8bd5d82db2ae6; candidate=4ba2aff7d7dd71606851a23d229dd5b5241e7b7b.

Impact: task metadata only.

Refs: .task/feature-svc-d3-real-scenarios.md
Author
Owner

Review: 当前 HEAD 424892258b 上 ci/test、ci/test-pg、ci/svc-realcombo 均为 success(run 见各 status)。可运行的真实制品场景已覆盖。登录与 rdm.ping 保持 NOT_RUN,不得写成全覆盖。未搬迁 live 数据,未公共化账户 CLI。无冲突。

Review: 当前 HEAD 424892258b19a8bdd1c9dd430d89334ea0cafa78 上 ci/test、ci/test-pg、ci/svc-realcombo 均为 success(run 见各 status)。可运行的真实制品场景已覆盖。登录与 rdm.ping 保持 NOT_RUN,不得写成全覆盖。未搬迁 live 数据,未公共化账户 CLI。无冲突。
weichen merged commit 719bfe945f into main 2026-10-13 04:56:48 +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#503