Skip to content

Commit e5c7fc6

Browse files
committed
fix(e2e): thread reconstruct identity param + m1 rejection rationale — F3/F4 stragglers
The two e2e call sites of BuildGitReconstructCommand gained the F3 identity parameter (robot constant — test fixtures); the m1 backlog rejection note explains why both of its halves are resolved (set-if-absent supersedes the always-re-set sketch it proposed; the self-heal net at every consumption point makes the bootstrap hard-fail redundant).
1 parent 99f8bee commit e5c7fc6

3 files changed

Lines changed: 12 additions & 2 deletions

File tree

e2e/git_delivery_fullchain_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ func TestE2E_GitDeliveryFullChain(t *testing.T) {
116116
t.Log("container replaced git-less (legacy no -g workflow) — exercising live reconstruction")
117117

118118
// 4. Live reconstruction from the recorded remote.
119-
if out, err := ssh.ExecSSH(ctx, hostname, ops.BuildGitReconstructCommand("/var/www", remote)); err != nil {
119+
if out, err := ssh.ExecSSH(ctx, hostname, ops.BuildGitReconstructCommand("/var/www", remote, ops.DeployGitIdentity)); err != nil {
120120
t.Fatalf("reconstruction: %v\n%s", err, out)
121121
}
122122
state, err := ssh.ExecSSH(ctx, hostname,

e2e/git_delivery_live_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func TestE2E_GitDeliveryPrimitives(t *testing.T) {
9090
// no longer exists.
9191

9292
t.Run("reconstruction no-ops on present repo", func(t *testing.T) {
93-
if _, err := ssh.ExecSSH(ctx, hostname, ops.BuildGitReconstructCommand("/var/www", remote)); err != nil {
93+
if _, err := ssh.ExecSSH(ctx, hostname, ops.BuildGitReconstructCommand("/var/www", remote, ops.DeployGitIdentity)); err != nil {
9494
t.Fatalf("reconstruction guard run failed: %v", err)
9595
}
9696
headAfter, err := ssh.ExecSSH(ctx, hostname, "cd /var/www && git rev-parse HEAD 2>/dev/null || echo NONE")

plans/backlog/rejected/m1-glc-safety-net-identity-reset.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Tighten the GLC `.git/` identity safety net (M1)
22

3+
**Why rejected (2026-07-12)**: both halves resolved by the git-contract fix
4+
(`plans/git-contract-2026-07-12.md`). Half 1 ("always re-set identity") is
5+
now an ANTI-PATTERN — the unconditional overwrite it prescribed (shipped
6+
f7a22c01→6720c923) caused the exact user-identity stomping this entry's own
7+
Risks section predicted; P1 replaced it with set-if-absent
8+
(`ops/git_identity.go`). Half 2 (bootstrap hard-fail on InitServiceGit
9+
error) is redundant: the repo/identity/HEAD invariant now self-heals at
10+
every consumption point (deploy safety-net, git-push-setup pre-probe), so a
11+
swallowed bootstrap failure has no surviving failure mode to hard-fail on.
12+
313
**Surfaced**: 2026-04-29 — `docs/audit-prerelease-internal-testing-2026-04-29.md`
414
finding M1. `InitServiceGit` failure is logged stderr-only at
515
`internal/tools/workflow_bootstrap.go:204-206` (no error propagation). Deploy-

0 commit comments

Comments
 (0)