Skip to content

feat(budget): explainable setup prompts and compact overview (Refs #123) - #242

Merged
alex-mextner merged 7 commits into
mainfrom
feat/budget-setup-ux-123-20261106
Nov 6, 2026
Merged

alex-mextner merged 7 commits into
mainfrom
feat/budget-setup-ux-123-20261106

Conversation

@alex-mextner

@alex-mextner alex-mextner commented Nov 6, 2026 •

Copy link
Copy Markdown
Owner

Lands the abandoned branch feat/budget-setup-ux-123 (5fbd154 + f1027df, pushed 2026-10-02, never merged) onto current main. Stacked on #241; retarget to main after #241 merges.

What changes for users (#123 acceptance)

  • Suggested amounts: after the category wizard (or for unbudgeted categories), the bot sends persistent prompts with data-driven suggested budget amounts (buttons budget:psuggest:<id>:<amount> / budget:pskip:<id>).
  • Free-text entry: reply to a prompt message with an amount — or send a lone plain amount while exactly one prompt is active — and it sets the budget (handleBudgetPromptText wired as an awaited-input stage in the message handler).
  • View budget after set: setting a budget shows a Показать бюджет button (budget:view → rich overview).
  • Rich overview: /budget and the monthly cron notify render a compact multi-message HTML overview (per-currency totals, aligned table, forecast block) with localized Russian month names (formatMonthYearRu).

Conflict resolution (all 5, in favor of main's structure)

  • schema.ts → new src/database/migrations/budget-prompts.ts, renumbered 052/053 → 056/057 (main already shipped its own 052-055); golden schema snapshot regenerated.
  • callback.handler.ts → main's split layout kept; prompt sub-actions delegated via callback/budget.ts → handlers/budget-callbacks.ts; category wizard calls sendBudgetPrompts.
  • budget.ts → main's monolith helpers replaced by commands/budget-view.ts (sendBudgetView); cron uses packHtmlBlocks multi-message notify.
  • Main's per-PR stage-qa pr-ship.sh kept (branch carried a stale pre-feat(ci): per-PR stage QA, a required stage-qa status driven through real Telegram messages #215 copy); the branch's machine-local .claude/settings.json dropped.

Verification

  • server-run -- bun run test → 252 files, 6059 tests, 0 fail (exit 0)
  • server-run -- 'bun run type-check && bun run lint' → exit 0
  • bunx knip → clean
  • Staged-review gate: commit landed as a true merge replay of already-reviewed branch history; the interactive reviewer seats were down (codex quota exhausted until 2026-11-09, omp anthropic accounts excluded) — please give the PR diff an extra human/codex look at review time.

Issue #123 stays open on merge (Refs #123); it is closed only after deploy verification, per repo convention.

alex-mextner and others added 6 commits October 2, 2026 11:37
Lands the abandoned 2026-10-02 branch (5fbd154 explainable setup prompts and
compact overview, f1027df retain prompt month + share suggestion snapshots).
Conflicts resolved in favor of main's split layout; budget_prompts migrations
renumbered 052/053 -> 056/057 in src/database/migrations/budget-prompts.ts
(main already shipped its own 052-055). Main's per-PR stage-qa gh ship
delegator kept; the branch's machine-local .claude/settings.json dropped.
Base automatically changed from fix/budget-routing-121-20261106 to main November 6, 2026 13:29
@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

🔁 PR closed. Stage bot switched back to main.

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