Show "Ness" instead of "harness" in the macOS app menu - #300
Merged
frenchie4111 merged 1 commit intoAug 27, 2026
Conversation
The app menu's About / Hide / Quit items read "harness" because they derive from app.name, which Electron takes from package.json's top-level "name" — still "harness". The menu bar title is already correct since macOS reads that from CFBundleName (build.productName). Renaming the package or calling app.setName() is not an option: app.name keys both the userData directory and the macOS Safe Storage keychain item, and the keychain is case-sensitive, so either would break secrets.enc decryption. Instead, set explicit labels from a new APP_DISPLAY_NAME constant, and set the About panel's applicationName so the dialog behind the About item matches too.
frenchie4111
self-requested a review
August 27, 2026 13:10
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.
Problem
The macOS app menu's items read "About harness", "Hide harness", and "Quit harness".
The menu bar title is already correct ("Ness") because macOS takes that from
CFBundleName, which electron-builder sets frombuild.productName. But the submenu items come fromapp.name, which Electron derives frompackage.json's top-level"name"— still"harness".Why not just rename the package
package.json's"name": "harness"is load-bearing, and CLAUDE.md documents it.app.getName()keys both:~/Library/Application Support/harness), andharness Safe Storage, accountharness Key).The filesystem is case-insensitive but the keychain is not, so renaming the package — or calling
app.setName('Ness')at boot — would breaksafeStoragedecryption ofsecrets.enc(GitHub PAT, backend tokens) with "A keychain can not be found to store …". Same reasoning that keepsbuild.appIdatorg.mikelyons.harness.So the fix is explicit labels, not a rename.
The change
All in
src/main/desktop-shell.ts:APP_DISPLAY_NAME = 'Ness'constant, with a "why" comment noting it is deliberately notapp.name.buildMenu(): explicit labels onabout,hide, andQuit(and the app-menulabel, which macOS ignores in favor ofCFBundleNamebut is kept consistent).hideOthers/unhideneed no change — they render "Hide Others" / "Show All" with no app name.app.setAboutPanelOptions({ applicationName, applicationVersion })on darwin at ready, so the About dialog behind the menu item stops showing "harness" too.No behavior outside the menu changes;
app.nameis untouched everywhere it matters (paths, keychain).Verification
npm run typecheck— cleannpx electron-vite build— cleannpx vitest run— 2987 tests / 227 files passOne note for reviewers: this machine's C++ toolchain can't build
node-pty(a bare#include <functional>fails system-wide), so the dev app runs but PTY spawns fail withposix_spawnp failed. That's a pre-existing local environment issue, unrelated to this change, and it doesn't affect the menu.PR opened on behalf of @blindpirate by Claude via Ness.