Skip to content

Restarting CodexBar creates a new Bartender item identity and resets it to Always Hidden #3201

Description

@zxfxpower

Summary

Every normal quit and relaunch of CodexBar causes Bartender 6 to treat the menu bar item as a new identity.

The previously configured item remains in Bartender's Shown list, while a new UUID-prefixed identity with the same codexbar-merged suffix is added to Always Hidden. As a result, manually moving CodexBar to Shown does not persist across app restarts.

Environment

  • CodexBar: 0.55.0 (build 129)
  • Bartender: 6.6.2 (build 662000)
  • macOS: 26.6.2 (25G83)
  • Architecture: Apple Silicon (arm64)
  • CodexBar bundle identifier: com.steipete.codexbar

Reproduction steps

  1. Launch CodexBar and Bartender.
  2. In Bartender, move the current CodexBar item to Shown.
  3. Quit CodexBar normally.
  4. Confirm the CodexBar process exits.
  5. Relaunch CodexBar without changing any Bartender settings.
  6. Inspect Bartender's menu bar item configuration.

Controlled before/after evidence

Bartender's ProfileSettings.activeProfile was inspected read-only before quitting, after quitting, and after relaunching.

Stage CodexBar process Shown Always Hidden Identity result
Before quit Running 15 10 0F5CE9D2-CAF6-4213-BB2A-F3497C39177B-codexbar-merged was in Shown
After quit Exited 15 10 Configuration was byte-for-byte equivalent for the CodexBar identity sets
After relaunch New process 15 11 New 8142B235-395D-4F5C-A7C9-405DAB207B62-codexbar-merged entry appeared in Always Hidden

No existing identity was removed or moved. The old UUID remained in Shown, and the only configuration change was the new UUID being appended to Always Hidden.

The Bartender configuration had already accumulated 25 CodexBar entries with 23 distinct UUID prefixes, consistent with this happening repeatedly.

Expected behavior

Bartender should be able to associate the relaunched status item with the existing stable CodexBar identity and preserve the user's Shown/Hidden classification.

Actual behavior

Each CodexBar launch is persisted as a new UUID-prefixed Bartender item. The new identity is classified as Always Hidden, so the user's previous placement is not reused.

Possible contributing factor

This is an inference, not a confirmed root cause: the current status-item creation path creates the NSStatusItem, invokes the creation callback, and only then assigns the stable autosaveName.

https://github.com/steipete/CodexBar/blob/main/Sources/CodexBar/StatusItemController.swift

A menu bar manager may therefore observe the item before codexbar-merged is attached and persist an ephemeral identity. Bartender's internal matching logic is closed-source, so the exact UUID origin has not been confirmed.

Related issues

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal priority bug or improvement with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:ux-frictionUser-facing flow adds avoidable confusion or support burden without fully blocking progress.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.no-staleExempts this issue from stale automation.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions