Skip to content

Household basics on the server: recategorise, debts with a rate, monthly budget, push alerts - #168

Merged
chandralegend merged 6 commits into
mainfrom
feat/household-server
Oct 25, 2026
Merged

chandralegend merged 6 commits into
mainfrom
feat/household-server

Conversation

@chandralegend

Copy link
Copy Markdown
Contributor

Server only (packages/mobile and packages/console untouched); the owner exempted these household basics from the scope freeze (noted in docs/scope.md).

  • Recategorise: POST /v1/entries/{id}/recategorise books the entry's reversal and a corrected copy (source recategorise) in one transaction, dated as a reversal is. salli entries recategorise, MCP recategorise_entry (confirmed_by_user).
  • Debts with a rate from first run: owe lines in POST /v1/onboarding/balance-sheet take rate and minimum_payment and declare a debt linked to the account; the payoff plan's debts carry apr, minimum_payment, payoff_month.
  • Monthly budget: GET/PUT /v1/budget/monthly (rollover), GET /v1/budget/current (limit, carried, spent, left, pace), GET /v1/budget/trend; budget_over / budget_pace signals. salli budgets monthly|current|trend.
  • Push alerts: GET/POST /v1/devices, DELETE /v1/devices/{id} (token sealed, found by SHA-256), salli-server jobs send-push hourly through SALLI_PUSH_RELAY_URL, worded like digests, once per state; a CompositeNotifier keeps the extension's single notifier for digests.

Migration core_0045_household_basics.

🤖 Generated with Claude Code

chandralegend and others added 6 commits October 25, 2026 18:39
…nthly budget, push alerts

The phone app needs four things the API lacked; the owner exempted them from
the scope freeze (noted in docs/scope.md).

Changing a category after booking: POST /v1/entries/{id}/recategorise books,
in one transaction, the entry's reversal and a corrected copy (source
"recategorise", external_ref naming the original), both dated as a reversal
is. Entries stay immutable: the account is part of a posting's hashed content
and core_0037's trigger refuses any UPDATE, while tags (editable outside
closed books) are not the category the books and budget count. `salli entries
recategorise`, MCP recategorise_entry (confirmed_by_user).

Owe lines in first run (POST /v1/onboarding/balance-sheet) may carry rate and
minimum_payment, declaring a debt linked to its liability account; the payoff
plan's debts now carry apr, minimum_payment and payoff_month together.

A monthly budget (user_profiles.monthly_budget): recurring limits per
expense account with optional rollover, /v1/budget/monthly, /current (limit,
carried, spent, left, pace against the share of the month gone) and /trend
(month by month), and the budget_over and budget_pace signals.

Push alerts: devices (/v1/devices, token sealed with the BYOK key ring and
found by its SHA-256), worded like digests, sent once per state through
SALLI_PUSH_RELAY_URL by `salli-server jobs send-push`; a CompositeNotifier
routes by kind so the extension's single notifier keeps delivering digests.

Migration core_0044_household_basics.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chandralegend
chandralegend merged commit a933dd6 into main Oct 25, 2026
17 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