Skip to content

feat(app,menubar): surface parity — punchcard in the app, PR spend in the menubar - #962

Merged
iamtoruk merged 1 commit into
mainfrom
feat/surface-parity
Aug 10, 2026
Merged

feat(app,menubar): surface parity — punchcard in the app, PR spend in the menubar#962
iamtoruk merged 1 commit into
mainfrom
feat/surface-parity

Conversation

@iamtoruk

Copy link
Copy Markdown
Member

Closes the surface gaps for the release's new capabilities: the desktop app gains the Spend punchcard (dedicated timeline fetch so all other payloads stay lean; cheap under the resident serve child), and the menubar gains a top-pull-requests strip fed by the pullRequests payload block it previously didn't decode. Both hide cleanly on older payloads. Deliberate non-ports documented in the commit (codex Tok/s stays TUI/report - per-session rollout file reads are too heavy for payload cadence; no punchcard in a compact popover). App suite 468, swift 156, CLI suite all green.

…requests strip in the menubar

The release's new capabilities were unevenly surfaced: the Spend
punchcard existed only on the web dashboard, and the menubar decoded
nothing of the PR-attribution block the payload already carries.

- Desktop app: new Punchcard component (hour-of-day x weekday spend
  matrix, ported from the dash and restyled to the app's tokens) on the
  Spend page. Fed by a dedicated getTimeline bridge channel that fetches
  the payload WITH history.timeline; every other fetch keeps the lean
  --no-timeline path, and the serve child makes the extra fetch cheap.
  Hides gracefully when the payload has no timeline (older CLI).
- Menubar: PullRequestsSection renders the top three PRs by attributed
  spend under the Workflow strip; MenubarPayload now decodes the
  pullRequests block (decodeIfPresent, so older payloads are unchanged).
  Hidden when absent or empty.

Deliberately NOT ported: codex Tok/s (reads rollout files per session -
too heavy for payload cadence; stays a TUI/report analytics view) and
the punchcard in the menubar (a 7x24 matrix has no legible place in a
compact popover).

App suite 468 green (bridge channel pinned, mocks extended), swift
build + 156 tests green, CLI suite green.
@iamtoruk
iamtoruk merged commit 8df6c4f into main Aug 10, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant