ci: add gated macOS preview updater feed promotion - #414
Conversation
fd0ebdd to
dc05303
Compare
65c94d8 to
3167493
Compare
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
…motion Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
3167493 to
a53a3f1
Compare
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
Star Lord — automated source review via Wes’s account
One actionable public-material finding; no additional concrete implementation defect found. Mantis independently reviewed the signature, rollback and workflow-publication paths at the same pins; I checked those conclusions against the source. This is a non-blocking comment review, not approval or merge authorization.
- Head:
1a6e98c9bc8737b08399b7d7a53ff206df561841 - Base:
32982724223d8090441415ed89ddf7cb7a8d286e
P2 — Remove deployment-specific identity details from the public commit metadata
All four outgoing commits (4acf081c, 130ac469, a53a3f1b, 1a6e98c9) expose an internal relay deployment domain and its environment-scoped agent identifier in the author/committer email and Signed-off-by trailer. This is part of the public PR surface even though it is not in the file diff. Please have the contributor replace that deployment-scoped address with their verified public-safe contribution identity throughout these commits, preserving actual authorship and truthful DCO certification. Do not substitute another person’s identity or remove required sign-offs. I am deliberately not repeating the address here. This concrete disclosure is what keeps the overall change below the repository’s 9/10 readiness bar.
Implementation assessment
The production change is bounded to the promotion job and one verifier. It retains main-only release publication and candidate-build exclusion, serializes promotion with macOS releases, verifies both Minisign signatures before uploading the manifest, checks the candidate’s embedded key/endpoint, compares all canonical preview-version components using BigInt, preserves identical same-version manifests, and reads back the uploaded API asset. Three Node integration tests are added; no browser cases are added or removed.
I am not reopening these explicitly documented rollout choices as newly discovered defects:
- The reviewed head does not yet contain the updater integration from #312. Its build cannot satisfy the new embedded-key/endpoint gate until that dependency lands; promotion fails closed rather than making an updater-less artifact eligible. The matching key/endpoint in #312 were checked separately at
727792ccdf5a322d9fa1462078cd63a044dfec19, not treated as part of this head. - CLI 2.11.x signatures do not authenticate the advertised version. Signature verification here is not end-to-end anti-rollback protection against a modified feed response; the coordinated signer/client change and acceptance of the stated preview risk remain outstanding.
- A failed
--clobberupload may leave the rolling asset absent and require operator recovery. API readback is not public-endpoint or installed-client validation. Automatic promotion before broad-distribution acceptance is the stated rollout policy, not proof that installation works.
Validation limits
Source only: no PR code, tests, builds, release workflows, app installs or production writes were executed. The description has no attached images. Existing deployment-specific release-documentation references also remain, but are unchanged from the base rather than introduced by this diff.
At the single CI snapshot, JavaScript, Rust/integration and browser jobs were still running; DCO, Semgrep and zizmor had passed, and Windows native validation was skipped. No timing artifacts were available at that snapshot, so job counts, elapsed/summed execution and slowest-test/file regressions could not be assessed. The PR reports 3/3 focused local tests and 133/161 full integration tests, with 28 local fixture/launcher failures; these are author-reported, not independently reproduced results.
Production-key verification, exact public-endpoint checks, controlled Apple-signed old→new installation, relaunch/version confirmation, failure/retry behavior on disposable clients and human acceptance remain unverified. No UI focus behavior is changed or validated by this PR review.
* origin/main: ci: add gated macOS preview updater feed promotion (#414) Set up incomplete inventory identities through a working Use here dialog (#287) Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz> # Conflicts: # src/bundled/agents/AgentsPage.tsx # src/bundled/agents/InventoryIdentityCard.tsx # src/bundled/agents/InventoryView.tsx # src/bundled/agents/UnifiedInventory.tsx
* origin/main: feat(channels): archive and delete channels from settings (#385) feat(updates): add in-app auto-updates with restart toast (#312) fix(ui): keep background loading from shifting populated views (#418) Improve member and agent identity previews (#412) Fix initial emoji autocomplete selection (#419) Add community membership settings (#348) Keep nested replies compact and place actions above message text (#367) Import an exact inventory identity from its selected source with retry (#288) ci: add gated macOS preview updater feed promotion (#414) Set up incomplete inventory identities through a working Use here dialog (#287) Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz> # Conflicts: # src/app/App.tsx
* origin/main: (58 commits) flake fix: keep restored reading anchor out of bottom follow (WebKit scroll measurement) (#407) Replace fixed browser-test waits with conditions, gates and the clock (#373) feat(updates): show installed version in Software Updates settings (#430) fix(desktop): allow deep-link delivery to the main webview (#432) feat(shell): open your profile from the account menu avatar (#390) Polish top bar and animate contextual sidebar toggle (#360) fix(profiles): preserve nonlocal agent identity in profile fallback (#327) test(agents): pause the status poll around the failed-Stop checks (#431) fix(sidebar): paint channel rows with the scroller contents (#428) feat(channels): archive and delete channels from settings (#385) feat(updates): add in-app auto-updates with restart toast (#312) fix(ui): keep background loading from shifting populated views (#418) Improve member and agent identity previews (#412) Fix initial emoji autocomplete selection (#419) Add community membership settings (#348) Keep nested replies compact and place actions above message text (#367) Import an exact inventory identity from its selected source with retry (#288) ci: add gated macOS preview updater feed promotion (#414) Set up incomplete inventory identities through a working Use here dialog (#287) Show saved local and relay inventory while retaining existing import controls (#286) ...
* origin/main: (58 commits) flake fix: keep restored reading anchor out of bottom follow (WebKit scroll measurement) (#407) Replace fixed browser-test waits with conditions, gates and the clock (#373) feat(updates): show installed version in Software Updates settings (#430) fix(desktop): allow deep-link delivery to the main webview (#432) feat(shell): open your profile from the account menu avatar (#390) Polish top bar and animate contextual sidebar toggle (#360) fix(profiles): preserve nonlocal agent identity in profile fallback (#327) test(agents): pause the status poll around the failed-Stop checks (#431) fix(sidebar): paint channel rows with the scroller contents (#428) feat(channels): archive and delete channels from settings (#385) feat(updates): add in-app auto-updates with restart toast (#312) fix(ui): keep background loading from shifting populated views (#418) Improve member and agent identity previews (#412) Fix initial emoji autocomplete selection (#419) Add community membership settings (#348) Keep nested replies compact and place actions above message text (#367) Import an exact inventory identity from its selected source with retry (#288) ci: add gated macOS preview updater feed promotion (#414) Set up incomplete inventory identities through a working Use here dialog (#287) Show saved local and relay inventory while retaining existing import controls (#286) ... Signed-off-by: Elrond <28d6302a099e5225b02c4155ac4236e4912603df2ab08dbfc2f4fef08ce598c8@buzz.block.builderlab.xyz>
Summary
preview-feed/latest.jsonafter publication. Scheduled and manual build runs use the same gate; explicitpromote_versionremains available for controlled recovery. Candidate-only Windows/Linux runs cannot publish the feed.stable-feedreserved and legacyblock/buzzuntouched.Validation and rollout limits
1a6e98c9,node --test tests/integration/preview-feed.test.mjspasses 3/3 (including workflow-graph assertions for automatic/manual paths and crypto/rollback fixtures); Biome and commit/push hooks pass.git diff --check origin/main...HEADpasses.rustc/pnpmEACCES. Preview-feed and packaging gate tests passed. Not claiming a clean full suite.docs/releases.md.