Repository navigation
fix(updates): distinguish held policy refusals in the journal - #409
Merged
Merged
Conversation
Contributor
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the
|
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.
What
stage=held-policyforreason=first_party_held_back.stage=simulationfor anapt-mark showholdcommand failure.and document the distinction in the backend README and discovery contract.
Why
A held first-party package is a policy refusal, not a failed simulation command.
Previously both appeared under
stage=simulation, so stage-only journal readerscould not distinguish them. Reason, step, exit/detail fields, deduplication,
redaction, update admission and installation behavior remain unchanged.
This is a post-release follow-up, rebased onto released main
7c076c15.The single rebased commit is
dcb6d469ed900247ccf1e2599ebe668ff84fa20d.Stable patch IDs match the independently approved original both with default
context and with
-U0; no semantic changes or conflict resolutions were needed.How to verify
apps/backend, runbun test src/tests/apt-all-journal.test.tsandbun test --parallel src/tests/update-orchestrator*.test.ts.bun run --filter backend test,bun run lint,bun run test:release-package-contracts,bun run check:rc-pins, andbun run --filter backend check:exec-guard.VITEST_SHARD=N/4 bun run --filter frontend test:ci-shardlanes,merge with
bun run --filter frontend test:ci-merge, and run the existingtech-debt, spec, workflow-shape and hardware-preflight guardrails.
BUILD_ARCH=amd64 bun run build:backendandBUILD_ARCH=arm64 bun run build:backend, plus the existing production frontend,poisoned-environment and bundle-budget gates.
orchestrator 651 pass; frontend 7275 tests in 435 files pass. Both architecture
builds, package contracts, lint/typechecks and guardrails pass.
sudo -nrequires apassword. It remains required on an authorized runner. An extra serial
orchestrator sweep had three notification-isolation assertions fail; both
affected files passed alone and the normal worker-isolated sweep passed
unchanged. Do not treat that extra serial run as green.
this exact head before merge. No UI or packaging files changed; browser E2E
was not rerun locally for this diagnostic-only follow-up.
Risks
stage=simulationmust also recognizeheld-policy. No such consumer wasfound by the independent review in the repository, docs or board kits.
reason=first_party_held_backandstep=held-packagesfilters remainvalid. Recovery/query independent of stage:
journalctl -u ceralive.service -o cat | grep '"reason":"first_party_held_back"'.installation or safety-policy change. Host tests and cross-compilation do not
establish installed-board qualification. The local rootful prerequisite
blocker must not be mistaken for complete CI parity.