Skip to content

feat(priority): put Priority Icons first in Display and list running-out pins only under Running Out - #1559

Merged
robinebers merged 2 commits into
mainfrom
capy/put-priority-icons-first
Nov 3, 2026
Merged

robinebers merged 2 commits into
mainfrom
capy/put-priority-icons-first

Conversation

@robinebers

@robinebers robinebers commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

TL;DR

Priority Icons is now the first section of Settings → Display, and a pinned metric that's running out shows only under Running Out. It goes back to Pinned once it isn't running out.

What was happening

What this changes

  • Settings → Display: the Priority Icons section (preview, Show In Menu Bar, footnote) moves above Appearance. Nothing inside it changed.
  • Priority: PriorityBoard decides it.
    • A pinned metric that Running Out would list shows there, ranked like any other.
    • It's left out of Pinned, so it never shows twice.
    • Once it stops running out, it's back in Pinned, in dashboard order.
    • While every pin is running out, the Pinned section disappears.
    • A pinned Running Out row's right-click menu offers Unpin (PriorityItem.isPinned).
  • Used Up stays as feat(priority): pin metrics to a Pinned section at the top of Priority #1553 made it. A used-up pinned metric or $0 balance stays under Pinned and isn't listed again under Used Up.
  • Menu bar: no change. StatusItemController builds its board without pins (StatusItemController.swift:203), so the strip already listed pinned limits that are running out.
  • Docs: README (Metrics per account), docs/dashboard.md (Pinned and the Priority row menu) and docs/settings.md (section order), plus the existing CHANGELOG lines under Unreleased → Changed.

Heads-up

  • Question for Robin: Used Up. Your words covered Running Out only, so a pinned used-up limit still shows in Pinned (an empty ring, 0% left), not in the faded Used Up list. Should Used Up also win over Pinned? It's a one-line change in PriorityBoard.make.
  • The share screenshot uses the same board, so it follows the same rule.

Tests

Run on the Mac mini (macOS 15.7.7) with nice -n 10 script/test_quiet.sh --filter, one suite at a time.

  • Red with the old behaviour restored and the new tests kept:
    • PriorityBoardTests.testAPinnedMetricRunningOutIsListedOnlyUnderRunningOutUntilItIsNot: 5 failures.
    • MetricPinTests.testPinnedMetricsLeadPriorityInDashboardOrderAndAreListedOnlyThere: 2 failures.
    • DisplaySettingsTests.testPriorityIconsLeadsTheDisplayTab: 1 failure. It reads the pickers top-down and got System, Auto where it expected Up to 3, System.
  • Green: PriorityBoard 24, MetricPin 4, DisplaySettings 1, PriorityDashboard 4, MenuBarContent 13, ShareCardRenderer 1, UpdateControls 3 (1 skipped by design), MetricPinMenu 2 (skipped without OPENUSAGE_FOCUS_TESTS), all with 0 failures.

Screenshots

Rendered offscreen on macOS 15.

Settings → Display

Light Dark
Before Display before, light Display before, dark
After Display after, light Display after, dark

Priority, with Session (8% left, running out) and Weekly (60% left) both pinned. Before, both were under Pinned. After, Session shows only under Running Out and Weekly stays in Pinned.

Light Dark
Before Priority before, light Priority before, dark
After Priority after, light Priority after, dark

Open in Capy


Note

Medium Risk
Changes Priority tab grouping and pin visibility rules that affect screenshots and menus, but logic is localized to PriorityBoard.make with dedicated tests and no auth or data-path changes.

Overview
Priority pinning no longer keeps urgent pins only in Pinned. A pinned limit that qualifies for Running Out appears there (ranked like other urgent rows), is omitted from Pinned, and returns to Pinned when it is healthy again. If every pin is running out, the Pinned section is hidden. Used-up pins still stay under Pinned only, not Used Up. Running Out rows carry PriorityItem.isPinned so the context menu can offer Unpin.

Settings → Display moves the Priority Icons block (preview and Show In Menu Bar) above Appearance and Usage; controls are unchanged.

Docs (CHANGELOG, README, dashboard/settings) and tests (PriorityBoardTests, MetricPinTests, new DisplaySettingsTests) match the new rules.

Reviewed by Cursor Bugbot for commit 7fb6413. Bugbot is set up for automated code reviews on this repo. Configure here.

…out pins only under Running Out

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@cursor

cursor Bot commented Nov 3, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: 58bd54e5-5896-410e-9c54-a7662b18c1ba)

@github-actions github-actions Bot added the tests label Nov 3, 2026

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ One minor documentation mismatch; no runtime regressions found.

Reviewed changes Reviewed the full PR, the dashboard and menu-bar consumers, regression tests, and supplied screenshots.

  • Priority grouping: Running-out pins appear only in Running Out, retain urgency ranking, and return to Pinned after recovery; used-up pins retain their existing placement.
  • Pin actions: Running Out rows carry their pin state so the context menu offers Unpin correctly.
  • Display settings: Priority Icons moves above Appearance and Usage without changing its controls.
  • Coverage: Tests and behavior docs cover the new grouping and section order. I could not rerun macOS tests on this Linux runner; Build and Test was pending when checked.

ℹ️ README still promises top-of-Priority placement for pins

The README's feature descriptions still say pinning lists a metric under Pinned at the top of Priority. With this change, pinning a running-out metric leaves it in Running Out, so that description no longer matches the behavior or the updated dashboard docs.

Technical details
# Align the README with pin placement

## Affected sites
- README.md:68-69: Priority description places urgent limits below pinned metrics without the new exception.
- README.md:81-83: Metrics per account description promises placement under Pinned.

## Required outcome
- Briefly explain that running-out pins stay in Running Out and return to Pinned once they recover, consistent with docs/dashboard.md.
- Keep used-up pin behavior unchanged. AGENTS.md requires README updates for logic changes.

Pullfrog  | Fix it ➔ | View workflow run | Using gpt-6-astra | 𝕏

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@cursor

cursor Bot commented Nov 3, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: 740a1c42-b208-4a48-ab9f-766a646e8720)

@capy-ai

capy-ai Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

pullfrog's README note is valid. Fixed in 7fb6413: the Metrics per account bullet now says a pin shows under Running Out while it's running out. The Priority bullet ("under any metrics you pinned") still holds, so I left it as is.

@robinebers
robinebers merged commit debd37a into main Nov 3, 2026
6 of 7 checks passed
@robinebers
robinebers deleted the capy/put-priority-icons-first branch November 3, 2026 09:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant