Skip to content

Rename user-facing desktop branding to Whiteboard - #507

Merged
thesiti92 merged 5 commits into
whiteboard-public-surfacefrom
whiteboard-app-branding
Sep 23, 2026
Merged

thesiti92 merged 5 commits into
whiteboard-public-surfacefrom
whiteboard-app-branding

Conversation

@sidkmenon

@sidkmenon sidkmenon commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Display Whiteboard throughout the desktop app: application/window names, menus, command titles, welcome/settings screens, theme labels, install/uninstall dialogs and frontend diagnostics. Onboarding names the actual whiteboard executable and launcher path.

Keep command IDs, localization keys, settings keys, bundle/updater/profile identifiers, package names and stored data unchanged. Theme labels become Whiteboard Dark/Light while explicit IDs preserve existing saved Review Dark/Light selections. This builds on the agent-facing surface in #506.

Validation: branded desktop dev build and launch, canvas/native tests and repository checks. The previous head passed full CI; fresh CI covers the final notification/diagnostic wording. The 38 installer tests pass after the launcher-error text changes. Removed literal-only branding/default tests under the repository’s change-detector-test rule; retained behavioral and compatibility checks.

The Whiteboard is pinned to this PR’s current head, with updated explanations, file lenses and mechanical rename ranges marked viewed.

@sidkmenon
sidkmenon added this pull request to stack #508 September 23, 2026 19:26
@sidkmenon sidkmenon changed the title whiteboard app branding Rename user-facing desktop branding to Whiteboard Sep 23, 2026
@sidkmenon
sidkmenon force-pushed the whiteboard-app-branding branch 6 times, most recently from 9fd9776 to da43877 Compare September 23, 2026 20:04
@sidkmenon
sidkmenon force-pushed the whiteboard-app-branding branch from da43877 to 9db1e66 Compare September 23, 2026 20:19
@sidkmenon
sidkmenon force-pushed the whiteboard-app-branding branch 5 times, most recently from b043592 to ef1e69f Compare September 23, 2026 21:09
@sidkmenon
sidkmenon marked this pull request as ready for review September 23, 2026 21:21
@sidkmenon
sidkmenon force-pushed the whiteboard-app-branding branch from 0c59f55 to 4b59aed Compare September 23, 2026 21:22
Agent-Session: b320a5ae-50a4-4472-a324-515d964c5f5a
Agent-Session: 01a0cf8e-5b2b-7253-9d6c-2d77ac6485b8
Agent-Session: 01a0cf8e-5b2b-7253-9d6c-2d77ac6485b8
Agent-Session: 01a0cf8e-5b2b-7253-9d6c-2d77ac6485b8
Agent-Session: 01a0cf8e-5b2b-7253-9d6c-2d77ac6485b8
Agent-Session: 01a0cf8e-5b2b-7253-9d6c-2d77ac6485b8
@sidkmenon
sidkmenon force-pushed the whiteboard-app-branding branch from 4b59aed to 8c27ce8 Compare September 23, 2026 21:33
@thesiti92
thesiti92 merged commit 814673d into main Sep 23, 2026
1 of 2 checks passed
@thesiti92
thesiti92 deleted the whiteboard-app-branding branch September 23, 2026 21:49
thesiti92 pushed a commit that referenced this pull request Sep 23, 2026
Restore the Whiteboard agent-facing surface after #500 without renaming
internal Review packages, paths or stored data. This selectively
combines #479, #480 and Alex’s #475 setup redesign.

- Expose the `whiteboard` CLI/MCP registration and `session_*` tools
with `sessionId` arguments through the public adapter. Authored content
remains opaque; internal HTTP/store contracts and the legacy CLI alias
remain.
- Restore connection prompts, pointer skills/plugins and MCP-served
authoring guidance, replacing automatic skill/config installation.
- Follow #475’s launcher migration: retarget enabled repositories’
managed hooks to `whiteboard`, even when the old executable still works,
before removing the app-owned old launcher. Recognize both executable
names for hook ownership.
- Keep the npm package named `@dev.fast/review`. Remove the unnecessary
root convenience shortcut; `pnpm dev` remains the development command.

Validation: the packed npm artifact installed outside the workspace and
passed trace-hook installation/removal plus headless authoring through
`whiteboard` and `session_*`, without Desktop. All 250 trace tests, 38
installer tests and 8 historical-copy canvas tests pass, along with lint
and trace typechecking. Earlier validation covered desktop build/launch,
workspace typechecks, canvas/native suites and public-adapter
integration.

The separate visible-branding layer is #507. Both Whiteboards are
updated to the current stack.
milanb17 added a commit that referenced this pull request Sep 23, 2026
## Summary

The native source window added in #498 took its name from the registered
checkout's directory. For a Whiteboard registered from a linked
worktree, the Explorer header and root folder showed e.g.
`autocompact-500k-f92161` instead of `review`. The window title also
still ended in "— Review" after #507.

- **Name:** the GitHub slug's repo part, falling back to
`basename(dirname(commonDir))`. This is the same rule as
`repositoryGroup()` on Home. It's used for both the `.code-workspace`
file name (the Explorer header) and `folders[0].name`.
- **Title:** now ends in "— Whiteboard".
- **Existing workspaces:** each open updates the root folder's name and
path and `window.title`, and keeps every other setting, folder and key.
The file is only rewritten when something changed. A file that isn't
plain JSON (VS Code allows comments) is left untouched.

## Reviewer notes

VS Code identifies a workspace window by the path of its
`.code-workspace` file, so renaming a file in place would break a window
already open on it. Instead, an old checkout-named file seeds the new
file and is left where it is. The cost is one-time: the first open after
this change starts a new window instead of focusing a window still open
on the old path, and that workspace's saved editor layout starts fresh.
After that, reopening focuses the window as before. Old-name files only
exist from #498, which merged the same day.

For a bare repo, or a jj repo that isn't colocated with git, and has no
GitHub remote, the fallback name comes out wrong (for example `store`
for jj). Home's grouping has the same problem.

## Testing

- New behavioral test: registers a linked worktree named
`autocompact-500k-f92161` and opens its source. It checks that the
workspace and root folder are named `repository` and the title ends "—
Whiteboard". It checks that an old-name file's settings carry over and
the old file is kept. It checks that adding a GitHub `origin` names the
workspace `whiteboard`.
- `local-data.test.ts`: 82/82 pass.
- `tsc`: no errors in the changed files. The 8 existing errors are all
in `software-map-connectivity-validation.ts`.
- ESLint wasn't run: the package has no `eslint.config.*` file.
- Not yet checked in the desktop app.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
thesiti92 added a commit that referenced this pull request Sep 24, 2026
## Why

#507 set `nameShort`/`nameLong` to Whiteboard in `product.json`, but
every release and preview job runs `stamp-release-channel.mjs` first,
which overwrites those fields from `release-channel.mjs`. That file
still said Review and Review Preview, so published builds kept shipping
as `Review.app` / `Review Preview.app` and
`Review-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.
- Artifact names: `Whiteboard-darwin-arm64-<version>.zip` / `.dmg`, the
`releases/latest/darwin-arm64/Whiteboard.dmg` and `preview-latest`
aliases, and `df-whiteboard[-preview]-<version>.dmg` download filenames.
Updated in `notarize-macos.sh`, `validate-release-artifacts.mjs`, both
release workflows and the landing verification steps.
- Test fixtures, the CLI edges journey's bundle pattern, the latency
runner's packaged path and the `--preview` help text.

## What stays the same

`applicationName`, `dataFolderName`, `darwinBundleIdentifier` and
`urlProtocol` are 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

- Auto-update needs no sequencing: clients take the zip URL from the
manifest the Worker hands them.
- install.dev.fast must serve the new alias. Fix-Fast/dev#1084 switches
the Worker to `Whiteboard.dmg` with a fallback to `Review.dmg` while the
alias is absent, so it can deploy before or after the next release.
- Existing installs keep their on-disk `Review.app` filename because
Squirrel swaps the bundle contents in place. Only a fresh drag from the
DMG produces `Whiteboard.app`. Worth a line in the release notes.
- `apps/review-desktop/README.md` and `scripts/review-latency/README.md`
still document the old filenames; left for a follow-up.

## Validation

- `node --test` on `validate-release-artifacts`, `linux-package` and
`stamp-release-channel`: 25 pass.
- Stamped a temp copy of `product.json` for both channels: `Whiteboard`
/ `Whiteboard Preview` with unchanged `applicationName`, bundle id and
data folder.
- `oxlint`, `oxfmt --check` and `actionlint` on the touched files show
only pre-existing style notes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants