Skip to content

Dedicated Budgets page (dimension-generic)#140

Open
etiennechabert wants to merge 1 commit into
mainfrom
auto-claude/007-local-budgets-per-owner-team
Open

Dedicated Budgets page (dimension-generic)#140
etiennechabert wants to merge 1 commit into
mainfrom
auto-claude/007-local-budgets-per-owner-team

Conversation

@etiennechabert

@etiennechabert etiennechabert commented Apr 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds a Budgets nav page for tracking spending against annual budgets
  • Dimension-generic: budgets can be set on any dimension (owner teams, products, accounts, custom tags)
  • Page shows dimension selector, date range picker, summary stats (total annual, spent, usage %, over-budget count), and a card grid with progress bars sorted by urgency
  • Budget cards are clickable to edit; "Add Budget" opens a modal with entity picker filtered to entities without existing budgets
  • Client-side proration avoids N+1 queries — one queryCosts call per dimension instead of per-budget
  • Removes the orphaned entity detail view (unreachable since dashboard filter navigation change in Replace entity detail page with dashboard filter navigation #187)

Changes

  • New: packages/ui/src/views/budgets.tsx — Budgets page view
  • Modified: budget-card.tsx — redesigned as compact clickable card with entity name, color-coded progress bar
  • Modified: budget-editor-modal.tsx — entity dropdown for create mode, delete button for edit mode
  • Modified: App.tsx — registered Budgets as nav page
  • Deleted: entity-detail.tsx, entity-detail.test.tsx, Entity Detail E2E tests
  • Existing (from prior PR work): budget types, IPC handlers, JSON persistence, preload bridge

@etiennechabert etiennechabert force-pushed the auto-claude/007-local-budgets-per-owner-team branch 3 times, most recently from 2257d7f to f1f1a98 Compare April 30, 2026 23:23
@etiennechabert etiennechabert changed the title Local Budgets per Owner Team Dedicated Budgets page (dimension-generic) Apr 30, 2026
@etiennechabert etiennechabert force-pushed the auto-claude/007-local-budgets-per-owner-team branch from f1f1a98 to c282b23 Compare April 30, 2026 23:40
@etiennechabert etiennechabert force-pushed the auto-claude/007-local-budgets-per-owner-team branch from c282b23 to 3971cae Compare May 4, 2026 16:33
@etiennechabert etiennechabert force-pushed the auto-claude/007-local-budgets-per-owner-team branch from 3971cae to 74bb8cf Compare May 18, 2026 23:01
Track annual spend per entity for any dimension (team, account, product,
tag). Each budget is prorated against the active date range; cards show
spent / prorated / over-budget at a glance.

- Pure proration in @costgoblin/core (computeBudgetProgress) is the
  single source of truth; UI and any future server consumer share it.
- One queryCosts per dimension covers every budget on the page (no N+1).
- Searchable single-select entity picker for "Add Budget" — extracted
  from Explorer's inline ValuesPicker into a shared component used by
  both.
- IPC surface is CRUD-only (budgets:get / save / delete); progress
  computation lives in the renderer.
- Save/delete errors surface inline in the editor modal.
@etiennechabert etiennechabert force-pushed the auto-claude/007-local-budgets-per-owner-team branch from 74bb8cf to c0e020c Compare May 18, 2026 23:38
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