Skip to content

Fix macOS 26 menu bar ownership and recovery - #9

Open
bifrost-proxy wants to merge 2 commits into
masterfrom
codex/fix-macos26-menu-bar-registration
Open

bifrost-proxy wants to merge 2 commits into
masterfrom
codex/fix-macos26-menu-bar-registration

Conversation

@bifrost-proxy

Copy link
Copy Markdown
Owner

Background

On macOS 26.5, BLEUnlock could keep running while its status item disappeared and the app was absent from System Settings > Menu Bar > Allow in the Menu Bar.

A read-only decode of Control Center's trackedApplications reproduced the root cause: com.bifrost-proxy.BLEUnlock was recorded in the menuItemLocations owned by the disabled com.openai.codex entry. Control Center therefore blocked BLEUnlock as if it belonged to its launcher.

Changes

  • assign a stable autosave identity to BLEUnlock's NSStatusItem;
  • avoid installer auto-launch on macOS 26 by default, so Finder performs the first launch and Control Center does not attribute the status item to Terminal or another tool;
  • add an explicit --launch opt-in while preserving --no-launch;
  • document the one-time Reset Control Center recovery for already-corrupted ownership state in Chinese and English;
  • add real-Mac human test coverage and the observed failure baseline;
  • keep Command Line Tools-generated dSYM output outside the local app bundle so the mandated DMG signature gate succeeds.

Verification

  • bash -n install.sh
  • bash install.sh --help
  • scripts/build-local.sh --verify in a non-FileProvider temporary checkout: compile, 5-second smoke test, ad-hoc signature verification, DMG, SHA-256, read-only mount, and nested executable verification all passed.
  • bash install.sh --version v1.15.1 --install-dir <temporary-dir> on macOS 26.5: download, checksum, signature verification, copy, and post-install verification passed; the app did not auto-launch and the Finder instruction was printed.
  • Confirmed the production BLEUnlock process was alive while no BLEUnlock row appeared in Menu Bar settings.
  • Confirmed Control Center's ledger nested both the production and isolated LocalDev bundle IDs under disabled com.openai.codex.

Manual recovery still requiring user approval

The affected Mac still needs System Settings > Menu Bar > Reset Control Center followed by a first launch from Finder. That reset changes the user's current menu bar arrangement, so it was not executed automatically. MB-01 and MB-02 remain explicitly pending for that reason.

Environment limits

Full xcodebuild was not run because this Mac has Command Line Tools only (/Library/Developer/CommandLineTools) and no full Xcode installation. The repository's CLT verification gate passed.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 31, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-08-31T09:35:54.245425Z ee9dd3c PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ee9dd3ce3f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread install.sh
Comment on lines +69 to +70
[[ "${LAUNCH_MODE}" == "auto" && "${macos_major}" -ge 26 ]]; then
launch_app=0

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the macOS 26 release checklist runnable

On macOS 26, the default installer command in docs/RELEASING.md:79-83 now takes this branch after the script has quit the existing app at line 125, leaving no BLEUnlock process. The same release checklist later runs the performance gate using pgrep (docs/RELEASING.md:95-100), which consequently exits with “A running BLEUnlock process is required” unless the verifier independently knows to relaunch the app from Finder. Update the release guide to include that required Finder launch before the runtime checks. agents.mdL168-L176

Useful? React with 👍 / 👎.

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.

1 participant