"Check for updates" is unreachable in practice — buried in About, and on macOS About isn't where the app says it is #79

Closed
opened 2026-07-20 12:21:31 -04:00 by the_og · 0 comments
Owner

Reported from the field: "there's no check for updates button."

There is one — but it's effectively undiscoverable, for two compounding reasons.

1. The only affordance lives inside the About dialog

AboutDialog owns the sole "Check for updates" button. Reaching it means knowing to open Help ▸ About Better Claude Config… first. There is no update entry in the menu bar and nothing in the main window. A user looking for "check for updates" has no reason to look inside an About box.

2. On macOS, that menu path is wrong

The action is created without a menu role:

about_action = QAction("About Better Claude Config…", self)
help_menu.addAction(about_action)

Qt auto-detects actions whose text begins with "About" and assigns AboutRole, which relocates the item from Help into the application menu — so on macOS it appears under BetterClaudeConfig ▸ About Better Claude Config, not under Help. No setMenuRole call exists anywhere in bcc.py to override this.

The consequence: the in-app hint the update notice prints — "Help ▸ About to view it." — points at a menu that, on macOS, doesn't contain the item.

Suggested fix

  • Add "Check for updates…" directly to the Help menu as its own action, so it's reachable without knowing about About. Give it an explicit setMenuRole(QAction.MenuRole.ApplicationSpecificRole) so macOS doesn't relocate it too (Qt also auto-detects "update"-ish text in some versions — set the role explicitly rather than relying on the default).
  • Set an explicit role on the About action so its location is intentional rather than emergent.
  • Fix the hint text so it can't contradict the platform — reference the action, not a menu path, or make the notice itself actionable (see the banner in the sibling issue).

Related

Pairs with the ephemeral-notification issue — together they explain a shipped update checker that works correctly and is invisible to the user.

Reported from the field: "there's no check for updates button." There is one — but it's effectively undiscoverable, for two compounding reasons. ## 1. The only affordance lives inside the About dialog `AboutDialog` owns the sole "Check for updates" button. Reaching it means knowing to open **Help ▸ About Better Claude Config…** first. There is no update entry in the menu bar and nothing in the main window. A user looking for "check for updates" has no reason to look inside an About box. ## 2. On macOS, that menu path is wrong The action is created without a menu role: ```python about_action = QAction("About Better Claude Config…", self) help_menu.addAction(about_action) ``` Qt auto-detects actions whose text begins with "About" and assigns `AboutRole`, which **relocates the item from Help into the application menu** — so on macOS it appears under **BetterClaudeConfig ▸ About Better Claude Config**, not under Help. No `setMenuRole` call exists anywhere in `bcc.py` to override this. The consequence: the in-app hint the update notice prints — `"Help ▸ About to view it."` — points at a menu that, on macOS, doesn't contain the item. ## Suggested fix - Add **"Check for updates…"** directly to the Help menu as its own action, so it's reachable without knowing about About. Give it an explicit `setMenuRole(QAction.MenuRole.ApplicationSpecificRole)` so macOS doesn't relocate it too (Qt also auto-detects "update"-ish text in some versions — set the role explicitly rather than relying on the default). - Set an explicit role on the About action so its location is intentional rather than emergent. - Fix the hint text so it can't contradict the platform — reference the action, not a menu path, or make the notice itself actionable (see the banner in the sibling issue). ## Related Pairs with the ephemeral-notification issue — together they explain a shipped update checker that works correctly and is invisible to the user.
the_og added the P1 label 2026-07-20 12:21:31 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: the_og/better-claude-config#79