Updates

Every change shipped to bookkeeper.onestos.org, most recent first.

5 May 2026 latest
feat Close pack: warning resolutions, channel P&L, accountant checklist 48f2527

Three improvements to the month-end close pack. (1) Warning resolutions: run 'bookkeeper resolve 2026-04 ANOM-010 "Interest Expense" --reason "..."' to mark a warning as investigated. Re-open the pack and it shows a CLEARED badge with your reason. (2) Channel P&L breakdown: new section showing revenue, COGS, and gross margin by channel (Amazon, Shopify DTC, Wholesale, Other) — derived from P&L line names, no extra Xero calls. (3) Accountant checklist: open items are separated from cleared ones with checkboxes, so your accountant can see at a glance what still needs attention. Schema bumped to v4 (close_resolutions table, auto-migrates on deploy).

feat Real Gmail integration for bills inbox 259d3f0

The bills inbox workflow now connects to Gmail directly when GMAIL_CLIENT_ID and GMAIL_REFRESH_TOKEN are set in the environment. Previously it ran in demo mode only. Set the three env vars in DigitalOcean and forward [email protected] supplier invoices to the bookkeeper-bills label to go live.

fix Approval card: correct Approve count and dedup auto-applied items 259d3f0

The 'Approve X safe' button previously counted already-auto-applied transactions, making the number misleading. Auto-applied items now appear only in the 'Auto-applied this run' section, not in the pending approval sections. High-confidence transactions held back because they exceed the $1,000 auto-apply threshold are now flagged with [>AUD 1000] in the card.

fix Ledger auto-migrates on startup 55f7461

The database now upgrades itself when the container starts. Schema version errors like 'Found v1, expected v2' can no longer block the site after a deploy.

feat Rule promotion sweep (Lane D) adfbec9

When 3 or more bank transactions share the same LLM-assigned supplier and account code within 90 days, they're automatically queued as a proposed rule. The rule goes into a pending review queue — Ryan approves or rejects it. Fires after every batch apply and every Telegram approval.

feat LLM auto-apply gate (Lane C) b97e8a1

High-confidence LLM suggestions (90%+) on transactions under $1,000 now apply to Xero automatically without waiting for manual approval. Medium and low confidence still go to the review queue.

feat LLM categorizer + suggestion cache (Lane A) 903c3a2

Claude Haiku now categorizes bank transactions that don't match any coding rule. Results are cached for 24 hours so the same transaction isn't sent to the API twice. Includes 'bookkeeper migrate' command to upgrade existing databases to schema v2.

4 May 2026
feat Inter-account bank transfer auto-reconciliation 44c98eb

Transfers between ONEST bank accounts (e.g. ANZ operating to Amex credit card payment) are now detected and reconciled as matching pairs automatically. They no longer show up as unmatched exceptions.

fix Shopify clearing account excluded from transfer matching 67363b3

The Shopify payout clearing account was incorrectly being matched as an inter-account transfer. It's now excluded from the transfer-pair detector.

feat Telegram approve buttons write to Xero 4d919af

Tapping Approve Safe or Approve All in the daily Telegram card now immediately reconciles the transactions in Xero — no separate step needed. Previously approve and apply were two separate actions.

feat Cashflow page redesign 672d713

New hero card showing current cash position, 30/60/90-day milestone cards, and a cleaner weekly bar chart. Replaced the previous basic table layout.

30 April 2026
feat Real cashflow from Google Sheets + Xero Balance Sheet c561e17

Cashflow projections now pull live data from the Google Sheets revenue model and Xero AR/AP balances. Previously the cashflow page showed demo data only.

feat Apply button on web dashboard 2b959ff

You can now trigger the write-to-Xero apply step directly from the web UI without using the CLI. Also upgraded close-month commentary to Claude Sonnet for better quality summaries.

feat Logout button + apply diagnostics 42a4c23

Added a sign-out button to the sidebar footer. Apply now surfaces detailed results (how many applied, how many skipped, any errors) as a modal rather than silently reloading.

feat Help page b9ce32c

Plain-English guide covering every section of the dashboard, confidence levels, common questions, and the Xero setup checklist for Waseem.

29 April 2026
feat Rule mining 1c2c725

System analyses 90 days of transactions already reconciled in Xero and proposes new coding rules. Claude Haiku clusters transactions by counterparty and suggests a rule slug, account code, and reference pattern for each cluster. Ryan reviews and approves before rules go live.

15 April 2026
feat Deployed to DigitalOcean — bookkeeper.onestos.org live b67cc05

The bookkeeper moved from localhost to a production DigitalOcean App Platform service. Persistent volume for the SQLite ledger so data survives deploys.

feat Turso cloud persistence for ledger + rules f6eb8e4

Ledger database now syncs to Turso (cloud SQLite) after each run. Data is preserved across container restarts and deploys even when the DO volume isn't mounted.

14 April 2026
feat Month-end close pack 5d20789

Generates a full close pack for any entity + month: P&L comparison (current vs prior month vs prior year), balance sheet reconciliation, variance analysis, anomaly detection, and an AI executive summary. Read-only — nothing is written to Xero.

feat Plain-English close banner e043076

The month-end close page now opens with a plain-English verdict: 'This month can be closed' or 'X things are blocking close', with specific actions listed.

feat Xero auto-confirm bookmarklet e3611cd

A browser bookmarklet that clicks all green 'OK' suggestion ticks in Xero's bank rec UI automatically. Install once (drag to bookmarks bar), use on any Xero bank rec page. Saves clicking 50+ rows one-by-one.

feat Reconciled history dashboard 93cc19e

New page showing bank transactions already reconciled in Xero with their assigned account codes. Useful for auditing how suppliers have been coded historically.

10 April 2026
feat Web dashboard launched 2105a14

bookkeeper serve now starts a full web dashboard at localhost:8765 (now bookkeeper.onestos.org). Includes bank rec, bills inbox, cashflow, runs history, rules management, entities, and settings.

feat Bills inbox workflow 7b943a6

Reads supplier invoices from the Gmail 'bookkeeper-bills' label, extracts vendor, amount, date, and line items using Claude, and creates draft bills in Xero for review.

feat Phase 1 — CLI foundation f6e00b7

Initial bookkeeper-cli: typed CLI with SQLite operation ledger, entities resolver, idempotency keys, error codes, init/doctor/status/runs/explain commands. The foundation everything else is built on.