Guard repeated rollovers and add web rollover #5

Merged
rubenjr0 merged 5 commits from fix/rollover into main 2026-10-18 16:41:48 +00:00
Owner
  • Add a unique index on month period. A second rollover for the same period now fails.
  • Check for an existing month before rollover in core. The CLI and web use this check.
  • Add a rollover panel to the web app.
  • Add the migration month_period_unique.
  • Pin the toolchain to nightly-2026-09-20. The newer nightly fails to build branches 0.4.6.
  • Add docs: plan, design, style, agent notes, concepts and savings layers.
- Add a unique index on month period. A second rollover for the same period now fails. - Check for an existing month before rollover in core. The CLI and web use this check. - Add a rollover panel to the web app. - Add the migration month_period_unique. - Pin the toolchain to nightly-2026-09-20. The newer nightly fails to build branches 0.4.6. - Add docs: plan, design, style, agent notes, concepts and savings layers.
nightly 2026-10-10 fails to build branches 0.4.6 (via turso_core).
- Core: rollover_state (Due/Current/Ahead), RolloverError. rollover and
  rollover_with_tree take the requested target and today; the target is
  checked inside the write transaction, so a repeated request opens nothing.
- set_income corrects the open month's income by the plan difference.
- Transactions book into the open month; a date after it is refused. Fixes
  spends after an early rollover landing in the closed month.
- UNIQUE (year, month) on months (migration month_period_unique).
- Web: POST /api/rollover takes the period (409 on conflict), POST
  /api/income, rollover card under the budget and ledger.
rubenjr0 changed title from WIP: fix/rollover to Guard repeated rollovers and add web rollover 2026-10-18 16:27:14 +00:00
rubenjr0 deleted branch fix/rollover 2026-10-18 16:41:49 +00:00
Sign in to join this conversation.
No reviewers
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
rubenjr0/budgit!5
No description provided.