Skip to content

fix(menu-bar): keep colored provider icons spanning two rows - #5081

Merged
steipete merged 2 commits into
mainfrom
triage/20260921-w63-threads
Nov 14, 2026
Merged

steipete merged 2 commits into
mainfrom
triage/20260921-w63-threads

Conversation

@steipete

Copy link
Copy Markdown
Owner

Provider coloring forced icons into the first line of custom two-line layouts, while the monochrome path could show a full-height leading icon. Keep eligible colored icons beside both rows by preparing the tint once and sharing it with inline rendering. Existing high-contrast, merged-provider-row, multiple-icon and icon-only-row behavior stays intact.

Also add characterization coverage for the reported Codex Session 2% / Weekly 6% layout, including switching from Automatic to Session, and Claude OAuth quota followed by a challenged optional web account check. The Claude change documents and tests existing fail-soft behavior; it does not add a transport or billing fetch. Thanks @elpinguinofrio, @capt-riley and @mySebbe for the detailed reports.

Validation:

  • Before the renderer fix: 121 focused tests, one expected failure at colored.leadingIcon; the Codex 2%/6% fixture passed on unchanged production code.
  • After the fix: 164 tests passed, including the temporary synthetic capture test. Both complete before/after captures were inspected locally; the capture harness is outside the repository.
  • Final tree, after removing the capture harness: source Scripts/test_environment.sh then swift test --build-system native --jobs 2 -Xswiftc -gnone --filter 'MenuBarLayoutRendererTests|CodexMenuBarLayoutTests|ClaudeSubscription.*Tests|BrowserCookiePromptContractTests|ProviderSwitcherEventPeekGateTests' — 163 tests in 7 suites passed. Heavy commands ran under the shared build lock.
  • make check, catalog precheck, and git diff --check passed.
  • Independent review with complete renderer/helper context found no actionable P0–P2 findings.
  • Production diff: 12 insertions, 13 deletions, net −1 line. No settings, application strings, authentication reads or provider wiring changed.

No live account probe or running-app relaunch was used.

Fixes #5031
Refs #5037
Refs #5047

Tint icons once before choosing inline or spanning placement, fixing provider-dependent icon heights in two-line layouts (#5031). Cover the reported Codex layout values and document/test Claude's fail-soft account-challenge billing path (#5047, #5037).
@clawsweeper

clawsweeper Bot commented Nov 14, 2026 •

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

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

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-14T13:26:59.557067Z f48705c New commits
ℹ️ 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.

@clawsweeper clawsweeper Bot added clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-environment Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. P2 Normal priority bug or improvement with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. clawsweeper:intake:needs-environment Preliminary submission classification; full source review pending. labels Nov 14, 2026
@clawsweeper

clawsweeper Bot commented Nov 14, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge.

What this changes

Keep eligible colored provider icons spanning both custom layout rows, with additional Codex and Claude characterization coverage.

Example: Claude uses Color by provider with Icon, Session Usage bar and Session reset on row one, and Weekly percentage and reset on row two.

  • Before: The colored Claude icon appears small within the first row.
  • After: The colored Claude icon appears at full size beside both rows.

Review scores

Measure Result What it means
Overall readiness 🧂 unranked krab (1/6) The implementation is focused and source-correct, but supplied evidence does not satisfy the required shipped-entry-point proof.
Proof confidence 🧂 unranked krab (1/6) Real behavior proof is not required for maintainer- or bot-authored pull requests.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Product

Kind: Bug fix · Worth it: Yes · Fix scope: Complete
User problem: Eligible two-row layouts show different provider icon sizes when provider tint is active.
Reason: The maintainer has approved extending uniform geometry to tinted icons, and the implementation changes that exception without broadening the rendering policy.

Merge readiness

✅ Ready for maintainer review

Keep open: this maintainer-authored PR makes a useful, focused rendering correction absent from current main; no actionable correctness or security defects were found.

Priority: P2
Reviewed head: 4d221731b1057d0a34ec091568b261d3a6cf4aa4

Before merge

None.

Findings

None.

Tests

  • Missing end-to-end proof: Supply a screenshot or recording from a freshly built running app showing the colored two-row icon spanning both rows, with sensitive account details redacted.
Agent review details

How this fits together

The menu-bar renderer combines saved layout tokens, provider usage, artwork and display options into an attributed title and optional image consumed by the status button and Settings preview.

flowchart LR
A[Saved layout] --> D[Layout renderer]
B[Provider usage] --> D
C[Artwork and display options] --> D
D --> E[Attributed title and image]
E --> F[Status button]
E --> G[Settings preview]
Loading

Technical review

Best possible solution:

Retain the shared tint preparation and existing placement rules so eligible colored icons match monochrome geometry without changing provider data or saved layouts.

Do we have a high-confidence way to reproduce the issue?

Current main deterministically suppresses the separate leading image whenever provider tint is active, explaining the reported first-row icon; this review ran no target code.

Is this the best way to solve the issue?

Preparing tint through the existing image helper before placement addresses the rendering cause with no parallel owner, while preserving non-template warning artwork and existing contrast exclusions.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 9ffcdb62b72c.

Provenance checked

Testing

Proof path: in-process harness.

Security

None.

Evidence

What I checked:

Likely related people:

  • Peter Steinberger: Raw commit 89b42bc adds Sources/CodexBar/MenuBarLayoutRenderer.swift:297 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: 89b42bc53a2d; files: Sources/CodexBar/MenuBarLayoutRenderer.swift)
  • Daniel Einspanjer: Raw commit 1321fe2 adds Sources/CodexBar/MenuBarLayoutRenderer.swift:465 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: 1321fe2d7d57; files: Sources/CodexBar/MenuBarLayoutRenderer.swift)
  • David Aronchick: Raw commit fd7fab6 adds Sources/CodexBar/MenuBarLayoutRenderer.swift:978 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: fd7fab6cee00; files: Sources/CodexBar/MenuBarLayoutRenderer.swift)

Preflight source

Source unknown. Source comparison at the observed PR snapshot only. Completion is self-reported; body, policy, tests, execution, and report bytes are not verified.

Review metrics

Metric Value Why it matters
Production and coverage scope Production +12/-13; tests +97/-3; documentation +3/-1 The runtime correction reduces production code; test growth covers tinted geometry and two explicitly identified characterization scenarios.

Labels

Label changes:

  • add P2: This corrects a bounded visual inconsistency while usage remains readable and the application remains usable.
  • add rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Label justifications:

  • P2: This corrects a bounded visual inconsistency while usage remains readable and the application remains usable.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Attach redacted running-app visual evidence of the changed two-row icon placement.

Rating scale

6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior.

Workflow

ClawSweeper edits this one comment on every review. Comment @clawsweeper re-review for a fresh review only. Repair and merge execution lanes are retired.

Reviewed November 14, 2026, 1:52 AM ET / 06:52 UTC.

# Conflicts:
#	docs/configuration.md
@steipete
steipete merged commit 5107b45 into main Nov 14, 2026
3 checks passed
@steipete

Copy link
Copy Markdown
Owner Author

Landed in 5107b45. Provider-colored icons now stay full height beside both rows of a two-line layout, and the docs cover how Claude subscription dates can be unavailable when a web account check is challenged while OAuth quota keeps working. It ships in the next release.

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

Labels

P2 Normal priority bug or improvement with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Custom two-line layout: provider icon height differs between providers (full menu-bar height vs. first line only)

1 participant