type: meta

slug: tray-popup-dashboard

topic: tray-triggered graphical popup dashboard

exec_mode: ship

scheduler: sequential

land_mode: merge-to-main

base_branch: main

codex_impl_effort: high

codex_review_effort: low

status_enum: BLOCKED PENDING WORKING WRITTEN REVIEWED COMMITTED

truth_rule: this file is ground truth for INTENT (goals/directions/task list); git is ground truth for DONE-NESS — reconcile statuses against git, never trust a COMMITTED line with no commit

refresh_how: native Read of THIS file — NEVER ctx_execute/ctx_search

refresh_what: meta + every goal/methodology/intent/direction record + all WORKING and BLOCKED tasks (skip COMMITTED lines)

refresh_when:
wave boundary
any task status change
after compaction reminder

update_rule: on status change, rewrite that task's single line in place; append new session_memory lines as needed

report_rule: at session end emit brief: done / blocked / deferred / canceled — NO next action


type: goal

text: Ship a tray-triggered graphical popup dashboard with provider-aware account cards, native progress bars, reload controls, default/repair actions, timestamps, and configurable auto-close behavior.


type: methodology

text: Contract-first, GTK fake-widget tests first, preserve the existing tray process and health-cache pipeline while moving rich presentation out of the tray menu and normalizing provider-specific account data into one UI contract.


type: intent

text: Make account quota and health information readable and actionable without a warped scrolling tray menu, while keeping the UI ready for both Codex and Claude Code account data.


type: direction

verbatim: Lazy update the currently working accounts limits. when i click the tray icon, should start the update, and update the data when received from api


type: task

desc: Build popup window and account card widgets with auto-close-aware transient behavior and native progress presentation.

status: COMMITTED


desc: Integrate the popup dashboard into Indicator, including tray-click toggle, lazy refresh on open, Reload All, per-account reload, and popup state syncing.


desc: Run focused verification and adjust persistence/startup coverage for the popup dashboard UX without regressing health cache or repair flows.