Skip to content

feat(omarchy): show provider logos in the compact bar - #3845

Closed
steipete wants to merge 1 commit into
mainfrom
triage/20260921-omarchy
Closed

steipete wants to merge 1 commit into
mainfrom
triage/20260921-omarchy

Conversation

@steipete

Copy link
Copy Markdown
Owner

Omarchy currently identifies providers only by text tags. Adopt @jsonMartin's logo renderer and SVG packaging from #3795, with structured barEntries supplied by the existing Linux backend. Missing logos and older backends keep the text fallback; dark SVGs are tinted to the bar foreground.

This standalone adaptation preserves the current compact quota, used/remaining preference, ordering, two-entry limit and +N count. Provider fetching and authentication remain in Core/CLI. It does not require #3794 or #3799. The wider quota/weekly-pace layout in #3794 remains a separate maintainer decision.

Validation:

  • node --test Integrations/Omarchy/test.mjs Integrations/Omarchy/notifications.test.mjs: 29 passed. The two new structured-label tests failed before implementation (27 passed, 2 failed), then passed.
  • python3 Integrations/Omarchy/test_install.py: 6 passed; added logo check failed before implementation.
  • python3 Integrations/Linux/tests/test_package.py: 3 passed locally and on Linux; added archive check failed before implementation. Verifies exact current SVG filenames and bytes, including archive installation/reinstallation without a checkout.
  • Linux: qmake6 ../../Integrations/Linux/codexbar-linux.pro && make -j2, then python3 Integrations/Linux/tests/test_desktop.py: 16 passed with a fake CLI and isolated HOME/XDG directories.
  • Linux account-action build: qmake6 ../../Integrations/Linux/tests/accounts.pro && make -j2 && ./tst_accounts: 3 passed, 0 failed.
  • make check: passed; SwiftLint reported 0 violations in 2547 files. The first run hit an unchanged process-cleanup timing test; the focused retry and full rerun passed.
  • swift build --jobs 2: Build complete! (942.55 sec); no release build or app launch.
  • Independent review: no actionable P0–P2 findings.
  • Synthetic Qt before/after rendering exercised the actual WidgetButton block in a minimal host: logo, missing-logo text fallback, overflow, dark-logo tint, stale marker, and old-backend fallback. These are not installed Omarchy screenshots. Reviewed PNGs are retained in the lane evidence for the coordinator to attach under the restricted GitHub-write workflow.

Scope: 206 insertions and 14 deletions across 13 files; Sources/, WidgetExtension/, and Tests/ are unchanged. Relevant coverage lives under Integrations/.

Closes #3795
Refs #3794

Adopt the logo renderer and SVG packaging from #3795 independently of
#3794 and #3799. Share compact text segments with the existing summary
so quota selection, display mode, ordering, and overflow stay unchanged.
Preserve text fallback for missing logos and older IPC backends.

Closes #3795
Refs #3794

Co-authored-by: jsonMartin <4033621+jsonMartin@users.noreply.github.com>
@clawsweeper

clawsweeper Bot commented Sep 22, 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.

@clawsweeper clawsweeper Bot added P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Sep 22, 2026
@clawsweeper

clawsweeper Bot commented Sep 22, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge. Reviewed September 22, 2026, 12:49 AM ET / 04:49 UTC.

ClawSweeper review

What this changes

Adds theme-tinted provider logos to Omarchy’s compact usage bar, packages the existing SVG assets, and preserves text fallbacks and quota formatting.

Merge readiness

Ready for maintainer review

Keep open: this is a useful, owner-sponsored adaptation that is absent from current main and the latest release. No actionable correctness or security defect was found.

Priority: P3
Reviewed head: b6c59b6a604391a4541147b711d6d15c34b17834

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) A focused adaptation with shared formatting, backward-compatible fallbacks and targeted packaging coverage; no blocking defect was found.
Proof confidence 🌊 off-meta tidepool Not applicable: The OWNER-authored PR is exempt from the ordinary contributor proof gate. Its reported Qt rendering targets the changed bar block, while inspected installed-bar images belong to the related stacked proposal; no exact-head live verification is claimed. No stored-data contract changes.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Not applicable Not applicable: The OWNER-authored PR is exempt from the ordinary contributor proof gate. Its reported Qt rendering targets the changed bar block, while inspected installed-bar images belong to the related stacked proposal; no exact-head live verification is claimed. No stored-data contract changes.
Evidence reviewed 9 items Introduced change verified: Read all introduced hunks across 13 files. The pinned head directly follows the pinned main revision; the verified test-merge comparison contains the same changed paths.
Still necessary on main and release: Both pinned main and v0.64.0 render the combined summary as text without provider-logo rendering. The related logo proposal remains open rather than merged.
Compact formatting remains shared: barSegments selects the same first two entries and leading quota as the previous summary implementation. summary now joins those segments, retaining used/remaining formatting and overflow counting. The backend updates both representations after settings changes and completed usage batches.
Findings None None.
Security None None.

How this fits together

The Linux desktop backend turns CLI usage results into a local snapshot consumed by the Omarchy bar. The bar combines formatted quota entries with installed provider logos while the backend continues to own polling and settings.

flowchart LR
  A[CLI usage results] --> B[Linux desktop backend]
  C[Display preferences] --> B
  B --> D[Local usage snapshot]
  D --> E[Omarchy bar]
  F[Installed provider logos] --> E
  E --> G[Logo or text with compact quota]
Loading

Before merge

None.

Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Production and test growth Production +132 net lines; tests +46 net lines Production growth implements the renderer, additive snapshot field and asset distribution; tests cover formatting and installation.
Packaged logo assets 73 existing SVGs added to the Linux archive Packaging follows the current resource glob, and tests verify exact filenames and bytes.

Technical review

Best possible solution:

Keep logo rendering as a thin presentation layer over the existing compact quota model, with local assets and backward-compatible text fallbacks.

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

Not applicable: this adds provider-logo presentation rather than repairing a reported bug; source inspection confirms main and v0.64.0 use text tags.

Is this the best way to solve the issue?

Yes: extracting the existing compact segments avoids competing quota logic and cleanly separates this feature from the wider quota-and-pace proposal.

AGENTS.md: found and applied where relevant.

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

Labels

Label changes:

  • add P3: This is bounded visual polish for an optional desktop integration, without an urgent user-facing failure.
  • add merge-risk: 🚨 compatibility: The adapter-facing snapshot gains barEntries; the owner explicitly sponsors this additive contract, with summary and older-backend fallbacks retained.
  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The OWNER-authored PR is exempt from the ordinary contributor proof gate. Its reported Qt rendering targets the changed bar block, while inspected installed-bar images belong to the related stacked proposal; no exact-head live verification is claimed. No stored-data contract changes.

Label justifications:

  • P3: This is bounded visual polish for an optional desktop integration, without an urgent user-facing failure.
  • merge-risk: 🚨 compatibility: The adapter-facing snapshot gains barEntries; the owner explicitly sponsors this additive contract, with summary and older-backend fallbacks retained.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The OWNER-authored PR is exempt from the ordinary contributor proof gate. Its reported Qt rendering targets the changed bar block, while inspected installed-bar images belong to the related stacked proposal; no exact-head live verification is claimed. No stored-data contract changes.

Evidence

What I checked:

  • Introduced change verified: Read all introduced hunks across 13 files. The pinned head directly follows the pinned main revision; the verified test-merge comparison contains the same changed paths. (b6c59b6a6043)
  • Still necessary on main and release: Both pinned main and v0.64.0 render the combined summary as text without provider-logo rendering. The related logo proposal remains open rather than merged. (Integrations/Omarchy/Panel.qml:39, 3703a72b6b66)
  • Compact formatting remains shared: barSegments selects the same first two entries and leading quota as the previous summary implementation. summary now joins those segments, retaining used/remaining formatting and overflow counting. The backend updates both representations after settings changes and completed usage batches. (Integrations/Linux/Shared/Usage.js:144, b6c59b6a6043)
  • Owner-scoped adapter compatibility: The owner-authored body explicitly adopts structured barEntries and logo packaging while preserving older-backend and missing-logo fallbacks. The snapshot addition retains schemaVersion 1 and summary; Panel.qml uses summary when structured entries are absent. This is distinct from the wider layout decision in feat(omarchy): offer bar detail, per-model caps and provider count as preferences #3794. (Integrations/Linux/DesktopController.cpp:330, b6c59b6a6043)
  • Install and upgrade coverage: The installer adds logos inside its newly created adapter directory without changing preference serialization. Tests check exact logo filenames and bytes, archive installation without a checkout, repeated installation, and preserved preferences. The current resource glob contains 73 SVGs; it does not hard-code the older proposal’s count. (Integrations/Linux/tests/test_package.py:43, b6c59b6a6043)
  • Actual widget dependency checked: The target Panel.qml imports qs.Ui and now consumes WidgetButton.labelVisible, fixedWidth, foreground, fontSize and scaledHorizontalMargin. The verified upstream repository defines these properties, supporting the adapter’s API usage. (shell/Ui/WidgetButton.qml, 947e2fc002d6)

Likely related people:

  • steipete: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)
  • jsonMartin: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

steipete added a commit that referenced this pull request Sep 22, 2026
Adopt the logo renderer and SVG packaging from #3795 independently of
#3794 and #3799. Share compact text segments with the existing summary
so quota selection, display mode, ordering, and overflow stay unchanged.
Preserve text fallback for missing logos and older IPC backends.

Closes #3795
Refs #3794

Co-authored-by: jsonMartin <4033621+jsonMartin@users.noreply.github.com>
(cherry picked from commit b6c59b6)
steipete added a commit that referenced this pull request Sep 22, 2026
Adopt the logo renderer and SVG packaging from #3795 independently of
#3794 and #3799. Share compact text segments with the existing summary
so quota selection, display mode, ordering, and overflow stay unchanged.
Preserve text fallback for missing logos and older IPC backends.

Closes #3795
Refs #3794

Co-authored-by: jsonMartin <4033621+jsonMartin@users.noreply.github.com>
(cherry picked from commit b6c59b6)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. 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.

1 participant