Repository navigation
chore(ci): record the producer re-audit procedure and re-audit at af0547c2d - #2460
Merged
Merged
Conversation
Refs #2408 Co-Authored-By: Claude Opus 5.5 <[email protected]>
Four audited producers drifted after the 498270f audit (build.ts, ci-proof.ts, check-pr.ts, ci.yml), leaving the generated stylesheet binding unavailable on main. The reviewed changes keep the binding's guarantees: #2449 moved the build body into build-execution.ts unchanged apart from returning its exit code; #2433 reorders candidate validation; #2372 adds a local sandbox precheck; ci.yml adds candidate validation, artifacts, a third browser shard and the draft aggregate name. build-execution.ts now carries the cleaned output, the frozen Tailwind compile, checked exits and the receipt, so it joins the audited set. The owner moves to af0547c and every pin equals that blob. Refs #2408 Co-Authored-By: Claude Opus 5.5 <[email protected]>
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.
Closes #2408
What changed
docs/decisions/ci-utility.md): records the maintainer's 2026-10-18 option-1 ruling.af0547c2d4d197ed3766f2817cf56eb5f0486ab4:const owner(tests/frozen-generated-source.ts) moves from498270fbdtoaf0547c2d.const auditedProducer(scripts/generated-build-inputs.ts): four digests are refreshed andscripts/build-execution.tsis added. All 12 entries equal both the owner blob and the current bytes.generated-build-inputs,generated-theme-inputs,inclusion-inputs) gainbuild-execution.ts.Audit record
Drift since
498270fbd, reviewed against the binding's guarantees: cleaned package output, the frozen Tailwind compile, the build finishing before browser execution, checked exits and the fresh receipt.scripts/build.tsscripts/build-execution.tsand added an env-gated isolated-operation branchdistremoval,tscand Tailwind arguments and cwd, theme/token/hooks copies, bin modes, receipt events, dependency-level scheduling and exit codes (now returned and assigned toprocess.exitCode). Thesubsetflag is still passed asdirectories !== undefined. The body now lives inbuild-execution.ts, so that file joins the audited set.scripts/ci-proof.tsscripts/check-pr.tsbun run buildbefore browser/layout are unchanged..github/workflows/ci.ymlci-proof <category> --shard. No environment reaches the build.Isolated build operation:
build.tsdynamically importsci-build-operation.tsonly whenBRAIN_CI_BUILD_OPERATION=isolated-v1.ci.ymlmaps novarsto it.attemptCiBuildreturns to the auditedexecuteBuildpath unless its separate qualification policy is complete. ci: skip unchanged workspace builds by a complete input stamp instead of rebuilding in every runtime hook #2319 keeps that deferred (export async function attemptCiBuild,scripts/ci-build-operation.ts:93).Remaining drift: none in the audited set. Separately filed: #2459.
observedBuildContext(scripts/build-repeat-observation.ts) has its own diagnostic list, which also omitsbuild-execution.ts. Fixing it changes an audited producer, so it follows its own re-audit.Validation
Binding restored:
generatedCssInputsreturnsnullforpackages/ui-react/dist/styles.css,packages/ui-kit/dist/styles.cssandpackages/ui-react/dist/theme.csson a checkout of current mainaf0547c2d. On this branch, each binds its source stylesheet with 13 producer inputs.Verification suites:
bun run test tests/generated-theme-inputs.test.ts tests/generated-build-inputs.test.ts tests/inclusion-inputs.test.tspasses 20, fails 0. These suites include the real locked offline compiler controls.Mutation receipts, both restored byte-identically (
cmp):generatedCssInputs)tests/generated-build-inputs.test.ts:29("producer, execution-order, receipt and package-script drift refuse generated stylesheet binding") andtests/generated-theme-inputs.test.ts:23("command, input, execution-order drift and extra callers refuse the generated theme binding")3f6008994, a main commit where every producer exists butci-proof.tspredates test(ci): enforce candidate validation before aggregate planning #2433)UNCHANGED_PRODUCER_RETAINS_BINDINGexpectedpackages/ui-react/src/styles.css, receivedundefined, and the theme binding expectedpackages/ui-react/src/theme.css, receivedundefinedA first attempt at the second mutation used the old owner
498270fbd. It failed reading the missingbuild-execution.tsblob instead of on the positive assertion, so it was discarded as a receipt.Preflight:
bun run check:pr --base origin/mainat1170e46f9passes 970 fast and 222 affected tests, 0 failures. It ran in a clean mount namespace (74 mounts) because the host has 3,689 leaked Docker Desktop mounts, which the fix(ci): refuse slow Linux sandbox setup before local preflight #2372 sandbox precheck correctly refuses.Independent gpt-6-astra review: it verified build-body equivalence, default-path import coverage, build-before-browser ordering and exit checks, and all 12 digests against the owner blob and HEAD. It found no remaining
498270reference. Its one finding is the pre-existing ci: build repeat observation omits the moved build body #2459.Hosted: this PR's ready run is the confirmation.
No changeset: no shipped package files changed.
🤖 Generated with Claude Code