Materialize each pinned RDM artifact with its own submodules and refuse to build a stale one #684

Merged
weichen merged 2 commits from fix/ci-rdm-pin-materialization into main 2026-10-21 15:52:46 +00:00
Owner

Why: test-pg built each pinned RDM artifact on top of the previous pin's submodule content, and a pin whose nested submodules never landed degraded silently — Go then fell back to remote module resolution and failed with a misleading missing go.sum entry. This makes the RDM materialization step correct and, more importantly, makes it fail loudly instead of quietly.

Evidence:

  • The step had two loops. The first updated submodules per pin; the build loop then checked out each pin and ran make -C rdm build without updating them, so a pin could be built against another pin's submodule content.
  • The build loop now updates submodules after each checkout, so every pin is built against its own.
  • A fail-loud assertion runs before each build: for every pins/* submodule recorded in that pin, its HEAD must equal the pin's gitlink and its working tree must contain tracked files. Landing is deliberately judged this way rather than by the presence of a go.mod — the pin set mixes Go and non-Go repositories, and the frontend pin has no go.mod at its root. That distinction was learned the hard way: an earlier version of this assertion used go.mod and rejected a pin that git had just reported as checked out correctly.
  • Credentials stay available for the submodule updates and are stripped from the environment for make via a small helper, so the build process never receives them and nothing is written to disk or exposed in a command line.

This is deliberately independent of any pin value: it changes no pin, and the comment describing the first-parent distance is left as-is because it remains true for the current pins.

Refs: surfaced by RDM PR #460's pin advance, which is held in a separate pull request.

Why: `test-pg` built each pinned RDM artifact on top of the previous pin's submodule content, and a pin whose nested submodules never landed degraded silently — Go then fell back to remote module resolution and failed with a misleading `missing go.sum entry`. This makes the RDM materialization step correct and, more importantly, makes it fail loudly instead of quietly. Evidence: - The step had two loops. The first updated submodules per pin; the build loop then checked out each pin and ran `make -C rdm build` without updating them, so a pin could be built against another pin's submodule content. - The build loop now updates submodules after each checkout, so every pin is built against its own. - A fail-loud assertion runs before each build: for every `pins/*` submodule recorded in that pin, its HEAD must equal the pin's gitlink and its working tree must contain tracked files. Landing is deliberately judged this way rather than by the presence of a `go.mod` — the pin set mixes Go and non-Go repositories, and the frontend pin has no `go.mod` at its root. That distinction was learned the hard way: an earlier version of this assertion used `go.mod` and rejected a pin that git had just reported as checked out correctly. - Credentials stay available for the submodule updates and are stripped from the environment for `make` via a small helper, so the build process never receives them and nothing is written to disk or exposed in a command line. This is deliberately independent of any pin value: it changes no pin, and the comment describing the first-parent distance is left as-is because it remains true for the current pins. Refs: surfaced by RDM PR #460's pin advance, which is held in a separate pull request.
weichen added 1 commit 2026-10-21 15:27:19 +00:00
agent-exec transport af819d334d76f62e9dec6b105da6ca49/8751322a8e74
ci / svc-realcombo (pull_request) Successful in 3m32s
ci / test (pull_request) Successful in 9m30s
ci / test-pg (pull_request) Successful in 12m5s
340543549e
weichen added 1 commit 2026-10-21 15:42:23 +00:00
Merge authoritative main into the task branch
ci / svc-realcombo (pull_request) Successful in 2m34s
ci / test (pull_request) Successful in 8m18s
ci / test-pg (pull_request) Successful in 9m44s
10b253c356
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=5a907f42944af56dbca68b6a058cc4f0bc2681d7.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
weichen merged commit b25846d25b into main 2026-10-21 15:52:46 +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#684