RELEASE-PLAN-CLONE-START: https://github.com/cameronraysmith/vanixiets.git #3270 3b3a800e600a25913b918f33aece14dfefac608d RELEASE-PACKAGES-ACTION: plan (#3270 at 3b3a800e600a25913b918f33aece14dfefac608d onto main at 8cfffe6390de0e63ebddf349ca580dfad8e5d8b9) packages discovered: [{"name":"docs","path":"packages/docs"}] RELEASE-PACKAGE-ITERATION: packages/docs running semantic-release in packages/docs... [2:48:07 AM] [[secure]] › ℹ Running [secure] version 25.0.9 [2:48:08 AM] [[secure]] › ✔ Loaded plugin "verifyConditions" from "@[secure]/changelog" [2:48:08 AM] [[secure]] › ✔ Loaded plugin "verifyConditions" from "@[secure]/github" [2:48:08 AM] [[secure]] › ✔ Loaded plugin "prepare" from "@[secure]/changelog" [2:48:08 AM] [[secure]] › ✔ Loaded plugin "publish" from "@[secure]/github" [2:48:08 AM] [[secure]] › ✔ Loaded plugin "addChannel" from "@[secure]/github" [2:48:08 AM] [[secure]] › ✔ Loaded plugin "success" from "@[secure]/github" [2:48:08 AM] [[secure]] › ✔ Loaded plugin "success" from "[secure]-major-tag" [2:48:08 AM] [[secure]] › ⚠ Run automated release from branch main on repository https://github.com/cameronraysmith/vanixiets.git in dry-run mode [2:48:08 AM] [[secure]] › ✔ Allowed to push to the Git repository [2:48:08 AM] [[secure]] › ℹ Start step "verifyConditions" of plugin "@[secure]/changelog" [2:48:08 AM] [[secure]] › ✔ Completed step "verifyConditions" of plugin "@[secure]/changelog" [2:48:08 AM] [[secure]] › ℹ Start step "verifyConditions" of plugin "@[secure]/github" [2:48:08 AM] [[secure]] [@[secure]/github] › ℹ Verify GitHub authentication [2:48:09 AM] [[secure]] › ✔ Completed step "verifyConditions" of plugin "@[secure]/github" [2:48:09 AM] [[secure]] › ℹ Found git tag @vanixiets/docs-v0.11.1 associated with version 0.11.1 on branch main [2:48:09 AM] [[secure]] › ℹ Found 11 commits since last release [2:48:09 AM] [[secure]] › ℹ Start step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Start step "analyzeCommits" of plugin "@[secure]/commit-analyzer" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Found 6 commits for package @vanixiets/docs since last release [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Analyzing commit: fix(docs): keep WebKit failure screenshots in Darwin build reports On aarch64-darwin, Nix build users have no LaunchServices database, so WebKit's image encoder returns an empty data URL and Playwright writes a 0-byte failure screenshot without raising an error. The report validator rightly rejects empty attachments, so a WebKit product failure on Darwin kept no report. A shared test fixture now replaces a 0-byte WebKit screenshot with the latest screencast frame, or fails the attempt as infrastructure if none exists. e2e-webkit-negative-control proves that a WebKit failure keeps a real PNG. Change-Id: I01c2ad58cb950529278fb87dda109414ead21c09 [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ The release type for the commit is patch [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Analyzing commit: fix(docs): give each browser report build its own preview ports Darwin Nix builds are unsandboxed and share the host network, so report derivations built at once all served on localhost:4321 and raced for the workerd inspector port from 9229; one build's server broke another's tests. The report build now picks a free loopback port and passes it to Playwright as DOCS_PREVIEW_PORT, and sets DOCS_DISABLE_WORKER_INSPECTOR so astro preview opens no inspector. Local runs keep 4321 and the inspector. Change-Id: Ia0c3192bbfed2940fbd062e68105432e6a6a6964 [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ The release type for the commit is patch [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Analyzing commit: fix(docs): keep the homepage hero within narrow viewports The homepage hero uses raw markup inside Starlight's .hero-html wrapper, which Starlight sizes but does not constrain. On phones the image overflowed and widened the layout viewport past the device, cutting off the logo and header search. The mobile scenario now requires no horizontal overflow and a hero image inside the viewport; it failed on all three engines before the CSS fix and passes after it. Change-Id: Id64a1dfa32e0a68946327dba89fc8362f7f62473 [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ The release type for the commit is patch [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Analyzing commit: feat(docs): publish validated browser evidence from finished builds publish-evidence is the trusted build_finished sidecar. It finds the docs report check through nixbot's build API, validates it with its own copy of validate-report.mjs, and copies run.json, completion.json and the referenced PNG screenshots beside a deterministic receipt. Unsafe paths, symlinks, non-PNG data and identity mismatches are rejected; missing outputs are reported, never rebuilt. No effect runs it yet: storage, access and retention are undecided, so publication ends at a local --out directory. publish-evidence-rehearsal covers each case against a loopback API and a chroot store. Change-Id: I9adcceeed84b3fe7e7c86c572fdc8f5b5a0d7b02 [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ The release type for the commit is minor [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Analyzing commit: refactor(docs): type the browser evidence tooling Change-Id: I356b84749e0208e8cb45b4cfa884595b6a6a6964 [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ The commit should not trigger a release [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Analyzing commit: fix(docs): keep browser evidence valid under CI build contention nixbot build 951 failed correct docs changes with navigation timeouts while three PRs built on magnetite. The builders run cores = 0, so each concurrent report build got NIX_BUILD_CORES=16 and started 16 workers against its own astro preview, and the validator rejected the run even where retries recovered, because it required every failed attempt to be a product failure. Report builds now run at most four workers. Navigations no longer have their own 10 s deadline, since a failed navigation is never product evidence. An infrastructure-class attempt, including a test deadline, is accepted only when a later attempt of the same test completed, and is counted as infrastructureRetries; a terminal one still invalidates the report. The negative controls inherit the suite's retries and require every attempt to fail with a product-class terminal attempt. Change-Id: I50a0cab69083ddca584cdea07880a5d7a03f0963 [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ The release type for the commit is patch [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Analysis of 6 commits complete: minor release [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Completed step "analyzeCommits" of plugin "@[secure]/commit-analyzer" [2:48:09 AM] [[secure]] › ✔ Completed step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Plugin "@[secure]/release-notes-generator" does not provide step "analyzeCommits" [2:48:09 AM] [[secure]] › ✔ Completed step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Plugin "@[secure]/changelog" does not provide step "analyzeCommits" [2:48:09 AM] [[secure]] › ✔ Completed step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Plugin "@[secure]/github" does not provide step "analyzeCommits" [2:48:09 AM] [[secure]] › ✔ Completed step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Plugin "[secure]-major-tag" does not provide step "analyzeCommits" [2:48:09 AM] [[secure]] › ✔ Completed step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ No more plugins [2:48:09 AM] [[secure]] › ✔ Completed step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ No more plugins [2:48:09 AM] [[secure]] › ✔ Completed step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ No more plugins [2:48:09 AM] [[secure]] › ✔ Completed step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ No more plugins [2:48:09 AM] [[secure]] › ✔ Completed step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ No more plugins [2:48:09 AM] [[secure]] › ✔ Completed step "analyzeCommits" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ The next release version is 0.12.0 [2:48:09 AM] [[secure]] › ℹ Start step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Plugin "@[secure]/commit-analyzer" does not provide step "generateNotes" [2:48:09 AM] [[secure]] › ✔ Completed step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Start step "generateNotes" of plugin "@[secure]/release-notes-generator" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Found 6 commits for package @vanixiets/docs since last release [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Completed step "generateNotes" of plugin "@[secure]/release-notes-generator" [2:48:09 AM] [[secure]] › ✔ Completed step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Plugin "@[secure]/changelog" does not provide step "generateNotes" [2:48:09 AM] [[secure]] › ✔ Completed step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Plugin "@[secure]/github" does not provide step "generateNotes" [2:48:09 AM] [[secure]] › ✔ Completed step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ Plugin "[secure]-major-tag" does not provide step "generateNotes" [2:48:09 AM] [[secure]] › ✔ Completed step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ No more plugins [2:48:09 AM] [[secure]] › ✔ Completed step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ No more plugins [2:48:09 AM] [[secure]] › ✔ Completed step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ No more plugins [2:48:09 AM] [[secure]] › ✔ Completed step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ No more plugins [2:48:09 AM] [[secure]] › ✔ Completed step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ℹ Start step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] [[Function: [secure]-monorepo]] › ℹ No more plugins [2:48:09 AM] [[secure]] › ✔ Completed step "generateNotes" of plugin "[Function: [secure]-monorepo]" [2:48:09 AM] [[secure]] › ⚠ Skip step "prepare" of plugin "@[secure]/changelog" in dry-run mode [2:48:09 AM] [[secure]] › ⚠ Skip @vanixiets/docs-v0.12.0 tag creation in dry-run mode [2:48:09 AM] [[secure]] › ⚠ Skip step "publish" of plugin "@[secure]/github" in dry-run mode [2:48:09 AM] [[secure]] › ⚠ Skip step "success" of plugin "@[secure]/github" in dry-run mode [2:48:09 AM] [[secure]] › ⚠ Skip step "success" of plugin "[secure]-major-tag" in dry-run mode [2:48:09 AM] [[secure]] › ✔ Published release 0.12.0 on default channel [2:48:09 AM] [[secure]] › ℹ Release note for version 0.12.0: ## @vanixiets/docs-v0.12.0 (https://github.com/cameronraysmith/vanixiets/compare/@vanixiets/docs-v0.11.1...@vanixiets/docs-v0.12.0) (2026-10-02) ### Features * **docs:** publish validated browser evidence from finished builds ([84f6bf1](https://github.com/cameronraysmith/vanixiets/commit/84f6bf16c1b8af8d942c20ae9daefb4bd62756dc)) ### Bug Fixes * **docs:** give each browser report build its own preview ports ([997dafd](https://github.com/cameronraysmith/vanixiets/commit/997dafdd824db08ceb55db5d0eea59547b3502bb)) * **docs:** keep browser evidence valid under CI build contention ([3f8dbba](https://github.com/cameronraysmith/vanixiets/commit/3f8dbbaad23ff799c2b466924b5ba2b5719612a5)) * **docs:** keep the homepage hero within narrow viewports ([e86bc39](https://github.com/cameronraysmith/vanixiets/commit/e86bc39c0f44afa3f94f4c986e1279fb7cd1ee95)) * **docs:** keep WebKit failure screenshots in Darwin build reports ([3b3a800](https://github.com/cameronraysmith/vanixiets/commit/3b3a800e600a25913b918f33aece14dfefac608d)) RELEASE-PLAN: docs 0.11.1 -> 0.12.0