MONEY: manage category groups (add, rename, reorder, move, collapse, hide, delete) like YNAB #570

Open
opened 2026-10-01 04:41:27 +00:00 by kayg · 0 comments
Owner

Owner question (2026-10-01): "what about category groups on Money?"

Today (dev cc25c441b, read in code):

  • Category groups exist in the format: a group is a ## heading in the budget Markdown (crates/plugins/money/src/views.rs).
  • The budget screen lists them with Assigned / Activity / Available totals.
  • The only way to make a group is to type a new group name in Add category (AddCategoryForm.svelte).
  • There is no way to rename, reorder, hide, collapse or delete a group, or to move a category between groups. No route exists for it either.
    Build (YNAB conventions, calternal aesthetics; parity over API/CLI/MCP #484):
  • Add group: a "New group" action on the budget screen (header ⋯ and the keyboard shortcut from the registry).
  • Rename group: inline, by double-click or the context menu; it rewrites the ## heading only. The categories and month files stay byte-stable otherwise.
  • Reorder:
    • groups and categories by drag (touch: long-press, then drag; keyboard: ⌥↑/⌥↓, no animation for keyboard, #527);
    • moving a category to another group by drag or "Move to…".
    • The Markdown order is the order.
  • Collapse/expand a group: a per-User UI preference (not written into the budget). Collapsed groups still show their totals row.
  • Hide group/category: hidden items move to a "Hidden" section at the bottom (YNAB). Hidden items keep their history and still count in totals.
  • Delete group: only when it is empty, or after moving its categories (a dialog asks where). Never delete history.
  • Every action has Copy link (the group anchor) and an Undo toast (8 s, #539).
    Money rules: exact minor units (totals unchanged by any of these moves: property test); a byte-stable round trip; a separate break-the-numbers review before merge (owner rule).
    Tests: an e2e where a User creates, renames, reorders, collapses, hides and deletes groups and the screen totals stay right, plus the written Markdown diff. Web + money crate gates. Screenshots at 390/1440 in both themes.
    Order: after merge round 5 lands the Money kinds UI (#462 job/money-kinds), since it is the same budget page.
## Owner question (2026-10-01): "what about category groups on Money?" **Today (dev cc25c441b, read in code):** - Category groups exist in the format: a group is a `##` heading in the budget Markdown (`crates/plugins/money/src/views.rs`). - The budget screen lists them with Assigned / Activity / Available totals. - The only way to make a group is to type a new group name in **Add category** (`AddCategoryForm.svelte`). - There is **no** way to rename, reorder, hide, collapse or delete a group, or to move a category between groups. No route exists for it either. **Build (YNAB conventions, calternal aesthetics; parity over API/CLI/MCP #484):** - **Add group:** a "New group" action on the budget screen (header ⋯ and the keyboard shortcut from the registry). - **Rename group:** inline, by double-click or the context menu; it rewrites the `##` heading only. The categories and month files stay byte-stable otherwise. - **Reorder:** - groups and categories by drag (touch: long-press, then drag; keyboard: ⌥↑/⌥↓, no animation for keyboard, #527); - moving a category to another group by drag or "Move to…". - The Markdown order is the order. - **Collapse/expand a group:** a per-User UI preference (not written into the budget). Collapsed groups still show their totals row. - **Hide group/category:** hidden items move to a "Hidden" section at the bottom (YNAB). Hidden items keep their history and still count in totals. - **Delete group:** only when it is empty, or after moving its categories (a dialog asks where). Never delete history. - Every action has Copy link (the group anchor) and an Undo toast (8 s, #539). **Money rules:** exact minor units (totals unchanged by any of these moves: property test); a byte-stable round trip; a separate break-the-numbers review before merge (owner rule). **Tests:** an e2e where a User creates, renames, reorders, collapses, hides and deletes groups and the screen totals stay right, plus the written Markdown diff. Web + money crate gates. Screenshots at 390/1440 in both themes. **Order:** after merge round 5 lands the Money kinds UI (#462 job/money-kinds), since it is the same budget page.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#570
No description provided.