breadbox doctoris now available as a standalone pre-flight command. Run it before starting the server to verify your database connection, encryption key, and provider credentials in one pass β no server boot required. Use--jsonfor CI or scripted installs.- The transaction activity timeline now groups events by day with clear date headers. Same-day events no longer blur together, and tapping a rule row on mobile navigates directly to the rule that fired.
- CSV import now shows plain-English error messages when a file is malformed instead of leaking raw Go parse errors.
- Anonymous
404and500pages no longer render the admin sidebar for logged-out visitors.
- Keyboard shortcuts now work correctly on the review queue:
j/knavigation,ato approve, and all transaction bindings carry over from the main list via scope inheritance. - Category tree keyboard nav is fully wired:
Enterexpands or jumps to filtered transactions,eopens the edit form, andncreates a new category β all from the keyboard. - Chord shortcuts (
g+h,n+t, etc.) are suppressed on touch devices so mobile users no longer get a stalled prefix state when tapping keys. - The
?shortcut help modal now shows page-level shortcuts above globals and labels sections with the current page context.
- Breadbox can now be installed with a single command:
curl -fsSL https://breadbox.sh/install.sh | bash. The installer auto-detects your OS, arch, package manager, and init system. - On Linux, the installer offers to register a systemd unit so Breadbox starts on boot. On macOS, it registers a launchd agent. Pass
--register-daemonto accept without prompting. - Caddy (HTTPS reverse proxy) is now opt-in behind a Docker Compose profile. Localhost-only installs no longer bind ports 80/443. The installer prompts for an optional public domain and wires Caddy automatically when one is provided.
update.shnow preserves your installed version pin and only upgrades when you explicitly pass--bump=vX.Y.Zor--bump=latest.
An integration test harness now locks the response shapes for all ~14 key MCP tools β
list_accounts, query_transactions, transaction_summary, merchant_summary, list_categories, preview_rule, and more. Any rename or field drop in the service layer will fail a test in the same PR, preventing silent breakage for agents that depend on specific field names.Keyboard shortcut hints throughout the admin UI now use a unified
Kbd/KbdChord component. Hints are hidden automatically on touch devices (both via CSS and Alpine.js runtime) so mobile views are no longer cluttered with inaccessible shortcut badges.The final confirmation step of the CSV import wizard no longer clips content on narrow viewports, making the import flow fully usable on tablets and small-screen laptops.