Repository navigation
Merged
Conversation
…pects the overlay fragment path (D-1482) golden-path.sh now writes its JSON report from an EXIT trap when it ends non-zero with no failed step (missing prerequisite, signal, unbound variable), marking the first unfinished step failed with the reason. live-safety-fixture.sh still looked for @plugins/<name>/docker-compose.plugin.yml in the build plan; since D-0318 the rewritten fragment is the project overlay .nself/plugins/<name>/docker-compose.plugin.yml. This was the failing assertion behind the red Cascade integration step in the scheduled run.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
D-1482: E2E Golden Path scheduled run red, no report
Run 40261854806 (schedule, 2026-10-26, head 41dad92) was checked line by line. The row's description does not match it, so this PR fixes what the log shows plus the trap the row asked for.
What the run actually did
Run golden-path smokewrote its report (Report written to /tmp/golden-path-report.json, artifact uploaded). Step 9 (plugin install ai) failed with[E124] checksum mismatch. This is the registry/tarball problem (plugin tarballs are not reproducible), not a cli bug; it is NOT fixed here.exit 1after theacc3PASS lines is theCascade integration suitestep:live-safety-smoke.shprinted46 assertions: 45 passed, 1 failed. The one failure wasacc1 live-safety-fixture.sh exited 1/the rewritten plugin fragment is not a plan artifact.Changes
scripts/ci/live-safety-fixture.sh: the fixture still expected the plan artifact@plugins/nself-alpha/docker-compose.plugin.yml. Since D-0318 (fix(build): isolate plugin compose normalizations in the project overlay (D-0318) #849) the build writes the rewritten fragment to the project overlay.nself/plugins/<name>/docker-compose.plugin.yml. Reproduced on origin/main (plan lists the overlay path, no@plugins/key); with the assertion corrected the plugin-fragment cases pass.scripts/golden-path.sh: report written from the EXIT trap. When the script exits non-zero with no failed step (missing prerequisite, signal, unbound variable), the first unfinished step is markedfailwith the reason and the report is rewritten. A report that already names a failed step is left alone. HUP/INT/TERM exit through the trap.scripts/ci/golden-path_test.sh(new, wired intoci.yml): missing prerequisite, SIGTERM during the health wait, and a deliberate health timeout keeping its own note. Against origin/main's script the first case fails (no report written); with the change all three pass.Not fixed (out of scope)
GOLDEN_PATH_DRY_RUN=1cannot pass: step 6cds into a project dir the dry run never created. Noted for a separate row.Commands run
go build -mod=vendor -o <tmp>/nself ./cmd/nself, thenbuild --plan --jsonon the dev-plugin fixture: artifact path confirmed.live-safety-fixture.shwith a stubdocker(no daemon here): every ok throughplugin fragment edited after the plan: E450; the finalunknown Docker state read as emptycase needs a real unreachable daemon and fails only because of the stub. CI has real Docker.bash scripts/ci/golden-path_test.sh: 3/3 ok (about 10s).bash scripts/ci/workflow-lint.sh,actionlint .github/workflows/ci.yml,bash scripts/ci/flag-drift-audit.sh: pass.shellcheck -S warning: no new findings (one pre-existing SC2034 in golden-path.sh).