Name the stamped Desktop and its release artifacts Whiteboard - #543
Merged
Merged
Conversation
#507 set nameShort and nameLong to Whiteboard in product.json, but every release and preview job runs stamp-release-channel.mjs first, and that overwrote them from release-channel.mjs, which still said Review and Review Preview. Published builds therefore kept shipping as Review.app and Review Preview.app. Give both channel identities their Whiteboard names, so the packaged bundle, the Info.plist names, the app menu and the Linux desktop entry follow. Rename the artifacts to match: Whiteboard-darwin-arm64-<v>.zip and .dmg, the releases/latest and preview-latest Whiteboard.dmg aliases, and the df-whiteboard download filenames. applicationName, dataFolderName, darwinBundleIdentifier and urlProtocol stay as they are: they name the Linux binary and RPM, the user data directory, the bundle Squirrel verifies updates against and the share link scheme, so renaming them would break existing installs. Existing installs keep their on-disk Review.app filename, since Squirrel replaces the bundle contents in place. Only a fresh drag from the DMG produces Whiteboard.app. install.dev.fast serves the new alias once the update Worker deploys with its Review.dmg fallback. Agent-Session: dc92f1ba-7080-4b63-b006-4dae65124781 Agent-Session: 78ffd160-974b-41b4-b7dd-d536de7c2833 Agent-Session: dd71f4e3-5ca2-4bf2-a4ca-1eb0bacd43ec Agent-Session: a95580ef-9598-48ce-a13d-1c74ea1ef2fa Agent-Session: aad32659-bbbe-45b2-b163-317afc1a6a83
sidkmenon
approved these changes
Sep 24, 2026
Agent-Session: dc92f1ba-7080-4b63-b006-4dae65124781 Agent-Session: 78ffd160-974b-41b4-b7dd-d536de7c2833 Agent-Session: dd71f4e3-5ca2-4bf2-a4ca-1eb0bacd43ec Agent-Session: a95580ef-9598-48ce-a13d-1c74ea1ef2fa Agent-Session: aad32659-bbbe-45b2-b163-317afc1a6a83 Agent-Session: 01a0d16a-3c5b-7151-a388-02c852d993ff
thesiti92
force-pushed
the
feat/whiteboard-artifact-names
branch
from
September 24, 2026 03:32
98ad54a to
4e2082d
Compare
thesiti92
enabled auto-merge (squash)
September 24, 2026 03:41
thesiti92
added a commit
that referenced
this pull request
Sep 24, 2026
## Why Squirrel.Mac renames an install to the folder name inside the update zip whenever the installed app's executable and folder names match (`SQRLUpdater` `useUpdateBundleName`). After #543 the zip carries `Whiteboard.app`, so every `Review.app` becomes `Whiteboard.app` on its next update: the Dock tile turns into a question mark and the post-install relaunch fails (`-67068`, ShipIt re-verifying the old path). Seen on two preview installs today. ## What changes One build, one signing and notarization pass, two zips: - `release-channel.mjs` lists the bundle folder names each channel still has in the field. Stable: `Review` (default) and `Whiteboard`. Preview: `Whiteboard Preview` (default) and `Review Preview`. - `notarize-macos.sh` copies the stapled app under each folder name and zips it: `Review-darwin-arm64-<v>.zip` and `Whiteboard-darwin-arm64-<v>.zip`. The DMG stays `Whiteboard.app`. - `validate-release-artifacts.mjs` checks each zip's top-level folder matches its bundle name and writes `latest.json` with a `bundles` map keyed by folder name, plus the default `url`/`sha256hash` as before. - Updater client: the darwin service adds `?bundle=<its own .app folder name>` to the feed URL. - Workflows upload every zip and verify the feed answers with the right zip both with and without the parameter. - README: the feed section and the sentence about renamed installs. Result: `Review.app` installs stay `Review.app`, fresh installs are `Whiteboard.app`, nobody's Dock breaks, and the relaunch after update works. Old clients without the parameter get the channel default. Depends on Fix-Fast/dev#1085 (Worker reads `bundles` and `?bundle=`), which is backward compatible and should deploy before the next release. ## Validation - `node --test` on the packaging scripts: 25 pass, including the manifest schema change. - Dry run of the zip loop and `assertZipFolder` on a fake bundle: both zips carry the right top-level folder, mismatches throw. - Fork typecheck: no errors under `platform/update` (the remaining fresh-worktree errors are the ungenerated protocol module). - `oxlint`, `oxfmt`, `shellcheck`, `actionlint` on the touched files. - Not yet exercised end to end: a preview release after merge will show both zips uploaded and the feed picking by `?bundle=`.
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.
Why
#507 set
nameShort/nameLongto Whiteboard inproduct.json, but every release and preview job runsstamp-release-channel.mjsfirst, which overwrites those fields fromrelease-channel.mjs. That file still said Review and Review Preview, so published builds kept shipping asReview.app/Review Preview.appandReview-darwin-arm64-<version>.dmg.What changes
release-channel.mjs: both channel identities now carry Whiteboard names. The packaged bundle, Info.plist names, app menu and Linux desktop entry follow from this.Whiteboard-darwin-arm64-<version>.zip/.dmg, thereleases/latest/darwin-arm64/Whiteboard.dmgandpreview-latestaliases, anddf-whiteboard[-preview]-<version>.dmgdownload filenames. Updated innotarize-macos.sh,validate-release-artifacts.mjs, both release workflows and the landing verification steps.--previewhelp text.What stays the same
applicationName,dataFolderName,darwinBundleIdentifierandurlProtocolare untouched. They name the Linux binary and RPM package, the user data directory, the bundle identifier Squirrel verifies updates against, and the share link scheme. Renaming any of them would break existing installs.Rollout
Whiteboard.dmgwith a fallback toReview.dmgwhile the alias is absent, so it can deploy before or after the next release.Review.appfilename because Squirrel swaps the bundle contents in place. Only a fresh drag from the DMG producesWhiteboard.app. Worth a line in the release notes.apps/review-desktop/README.mdandscripts/review-latency/README.mdstill document the old filenames; left for a follow-up.Validation
node --testonvalidate-release-artifacts,linux-packageandstamp-release-channel: 25 pass.product.jsonfor both channels:Whiteboard/Whiteboard Previewwith unchangedapplicationName, bundle id and data folder.oxlint,oxfmt --checkandactionlinton the touched files show only pre-existing style notes.