-
Notifications
You must be signed in to change notification settings - Fork 2k
Restarting CodexBar creates a new Bartender item identity and resets it to Always Hidden #3201
Copy link
Copy link
Closed
Labels
P2Normal priority bug or improvement with limited blast radius.Normal priority bug or improvement with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:ux-frictionUser-facing flow adds avoidable confusion or support burden without fully blocking progress.User-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.Very strong issue quality with high-confidence source-level or clear reproduction.no-staleExempts this issue from stale automation.Exempts this issue from stale automation.
Description
Activity
Metadata
Metadata
Assignees
Labels
P2Normal priority bug or improvement with limited blast radius.Normal priority bug or improvement with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:ux-frictionUser-facing flow adds avoidable confusion or support burden without fully blocking progress.User-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.Very strong issue quality with high-confidence source-level or clear reproduction.no-staleExempts this issue from stale automation.Exempts this issue from stale automation.
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-mergedsuffix is added to Always Hidden. As a result, manually moving CodexBar to Shown does not persist across app restarts.Environment
arm64)com.steipete.codexbarReproduction steps
Controlled before/after evidence
Bartender's
ProfileSettings.activeProfilewas inspected read-only before quitting, after quitting, and after relaunching.0F5CE9D2-CAF6-4213-BB2A-F3497C39177B-codexbar-mergedwas in Shown8142B235-395D-4F5C-A7C9-405DAB207B62-codexbar-mergedentry appeared in Always HiddenNo 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 stableautosaveName.https://github.com/steipete/CodexBar/blob/main/Sources/CodexBar/StatusItemController.swift
A menu bar manager may therefore observe the item before
codexbar-mergedis 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