Skip to content
Nuits ReceiptsDocs
HomeSearch the docs, Ctrl KGitHubDark mode

Changelog

What changed in each release of Nuits Receipts, from CHANGELOG.md.

Updated

This page is built from CHANGELOG.md in the repository by docs-site/scripts/sync-changelog.mjs, with commit and compare links removed. scripts/version.mjs generates the entries from Conventional Commits on every release. The first release run planted the v0.1.0 baseline from package.json; entries start after it.

To read the releases as a comic, one receipt slip per release, see the changelog on the project site.

2.2.3 (2026-10-31)

Hotfixes

  • ui: clarify folder and month navigation
  • ui: address medium design audit findings
  • ui: phone viewer keeps a word on every control, opaque bar keeps its sticky rule, spacing from tokens
  • viewer: desktop toolbar keeps its order, phone toolbar is five even 44px buttons
  • ui: address low priority design audit findings
  • ui: only unknown routes say Nothing here, shared CSS is one cached stylesheet, bank rows skip a repeated payee line
  • ui: Didrik’s round 2 look-check and a centred Add pill on phones
  • ui: one more spacing step under the check bar so the last card clears it

2.2.2 (2026-10-31)

Hotfixes

  • archive: a seller with one month of data draws one normal bar, not one across the card
  • pwa: the shared-files message names the Upload button

2.2.1 (2026-10-31)

Hotfixes

  • pwa: the home screen name is the full app name, Nuits Receipts

2.2.0 (2026-10-31)

Features

  • site: the pile files itself, a home page rebuilt around the archive

Hotfixes

  • deploy: pass the config’s account to wrangler, so deploy works with several accounts
  • pwa: serve the manifest without sign-in and add the iOS home screen tags

2.1.1 (2026-10-31)

Hotfixes

  • ui: every block keeps an 8px gap, and ui-lint now checks gaps on every page

2.1.0 (2026-10-31)

Features

  • add: one Add button in the same place on every page, phone and desktop (#58)

2.0.1 (2026-10-31)

Hotfixes

  • home: open a document without the slow transition, and keep the list’s place (#57)

2.0.0 (2026-10-31)

Breaking changes

  • home: Home becomes the archive of every finance document (#56)

1.16.0 (2026-10-31)

Features

  • scripts: ui-lint, a rerunnable lintapple check of the rendered pages
  • mockups: generator for the two v4 directions
  • mockups: Native app and Warm paper pages
  • mockups: Mix direction, paper look on the native layout with glass
  • todo: only required facts put a receipt in To do
  • discard: one click, no reason
  • bulk: checkboxes are always visible, Select mode is gone
  • parts: hide Part while there is only one part
  • pwa: render install icons from the app glyph
  • pwa: manifest, offline-only service worker, Android share target
  • bank: To do | All, open payments first, no offset
  • worklist: one model for list state, the next open row and return URLs
  • worklist: every action returns to its list at the next open row
  • worklist: overdue sales invoices join Receipts To do
  • receipts: Review merges into Receipts To do, with All beside it
  • settings: one Email senders list holds allowed, ignored and mail we didn’t keep
  • db: undo_log table for one generic Undo
  • undo: registry of undoable actions with same-batch snapshot and guarded restore
  • undo: every resolving action leaves the list with one Undo
  • import: one-step bank import with skip, Import anyway and an import Undo
  • tokens: warn and info colour roles from the Mix mockup
  • tokens: the Mix palette, glass at the lowest readable alpha, DM Mono
  • settings: five sections and one Save
  • forms: show a refused form in place on every route that takes typed input
  • home: fold done setup steps, and skip a month held open only by a doubtful date
  • receipt: fields to fill, a two-group More, and Approve above the phone keyboard
  • app: every screen has a way back, and files and the OneDrive return work standalone

UI enhancements

  • ui: Match, one Matched status, lighter Bank rows, fewer folds
  • ui: ask before Move and OneDrive Disconnect, which have no Undo
  • ui: a resolved row leaves by cross-document view transition, with the next row focused and described
  • ui: Lucide icon sprite generated from lucide-static 1.65.0
  • ui: ACTIONS and STATUS registries; every control renders from them
  • ui: one row() for every list, and the Mix look on the Native layout
  • ui: keyboard shortcuts, the ? sheet and a pending cue on submit

Hotfixes

  • bulk: Discard still asks before it removes a match
  • receipts: search with instr so a long query no longer fails
  • worklist: move on from where the acted-on row stood, and land an Undo on what it restored
  • bulk: refuse a bulk post whose list state is missing or invalid
  • lists: true totals above 500, and select-all takes the first 500
  • receipt: every receipt page form keeps the list it was opened from
  • bank: an own transfer returns to the Bank view it was made on
  • review: Merge duplicates returns to the To do it was offered on
  • receipt: start the tab counts with the receipt read
  • receipts: the To do header counts the list, and the old Merge form still merges
  • import: a transfer paired across imports stops the import’s Undo
  • bulk: never follow a redirect from the bulk post
  • invoices: the sales All view waits on D1 once, not five times
  • invoices: the older-invoices note counts other months only
  • ui: the finished-steps fold sits 8 px from the panel edge

1.15.0 (2026-10-29)

Features

  • app: bulk select and bulk actions on receipt lists
  • bank: bulk actions on Bank, held mail and senders

Hotfixes

  • app: pass bulk receipt ids as one bound parameter
  • ui: align the bulk bar and keep focused rows clear of it
  • app: add bulk-allowed senders in the order they were picked
  • ui: accent the bulk checkboxes and trim the discard confirm
  • ui: keep bulk runs honest: caps in all mode, Escape, chunk totals, no resubmit
  • app: bulk totals, FX on approve, batched held mail, own-key checks
  • ui: give the bulk checkboxes the app accent

1.14.0 (2026-10-28)

Features

  • match: mark food delivery as not a purchase

Hotfixes

  • match: match every receipt that exists and mark obvious non-purchases

1.13.0 (2026-10-28)

Features

  • imports: XLSX statements, preamble header detection, stated totals and AI column mapping
  • imports: PDF bank statements, Holvi by layout and other banks through Clairic

Hotfixes

  • imports: scan XLSX XML in one linear pass under one 16 MiB inflate budget

1.12.4 (2026-10-25)

Hotfixes

  • wait on the database about once per page

1.12.3 (2026-10-25)

Hotfixes

  • load each page with fewer database round trips, and fetch tabs ahead

1.12.2 (2026-10-25)

Hotfixes

  • ui: spacing, font and tap-target pass across app, site and docs (#20)

1.12.1 (2026-10-24)

Hotfixes

  • Check waits for undated receipts, mapping before row errors, Needs you on Bank (#18)

1.12.0 (2026-10-24)

Features

  • settings: show mail we didn’t keep, with Allow this sender (#16)

1.11.0 (2026-10-24)

UI enhancements

  • ui: restyle the app to the Swiss workbench direction (#15)

1.10.0 (2026-10-24)

Features

  • setup: a checklist that stays until done, /help glossary, plain Settings words (#14)

1.9.0 (2026-10-24)

Features

  • nav: open on the oldest unsent month, one primary action, Undo for mark sent, Receipts and Invoices tabs (#13)

1.8.0 (2026-10-24)

Features

  • bank: likely-match rows, Match all with Undo, searchable picker, one status vocabulary (#12)

1.7.0 (2026-10-24)

Features

  • review: split view, two tiers of flags, sticky Approve, hand-off after the last receipt (#11)

1.6.0 (2026-10-24)

Features

  • app: UX v3 foundations: tokens, feedback with Undo, plain errors shown in place (#10)

1.5.1 (2026-10-24)

Hotfixes

  • receipts: saving a receipt keeps its manual bank match (#7)

1.5.0 (2026-10-24)

Features

  • Discard receipts in Review, with undo, restore and bulk select (#6)

1.4.1 (2026-10-24)

Hotfixes

  • strip account-holder labels from vendor names, and keep the docs changelog in step with releases (#4)

1.4.0 (2026-10-24)

Features

  • one receipt per email, and better reading of email bodies (#3)

1.3.0 (2026-10-24)

UI enhancements

  • One app shell, quiet statuses and a one-line footer notice on every page.
  • Home shows the month as three steps (Check, Match, Send). Review is a plain list, and the receipt page puts the fields to fix first.
  • Receipts, Invoices and Bank are quiet lists with one search field and one More menu per row. Statements are folded.
  • Settings has one fold per section and an About section with the full notice, licence and trademark lines. The docs match the new screens.
  • Much less text on every page.

1.2.0 (2026-10-24)

Features

  • One five-item navigation: Home, Review, Receipts, Bank, Settings. Home closes the month.
  • Bank holds the bookkeeping (statements, matching, transfers). Settings holds the configuration. Old addresses redirect.

1.1.0 (2026-10-24)

Features

  • Mail from unknown senders is held for your approval. A new All receipts page.

Fixes

  • Docs: the Cloudflare analytics script is allowed by the docs Content-Security-Policy.

1.0.2 (2026-10-23)

Fixes

  • Settings: a list of allowed senders is limited to 75 addresses, so the longest list always fits the stored-setting limit. A value that is too long is refused with a clear message instead of failing on save.
  • Month package: the “changes” package no longer replaces the full month index.
  • Bank matching: a seller name that reduces to nothing never matches a payment.
  • The app has a tab icon.

Documentation and project site

  • The docs changelog no longer links to commits that are not in this repository.
  • The docs site sends security headers, including a Content-Security-Policy.
  • The phone tab bar and the More page are documented, and the deploy tutorial lists the right navigation.
  • The project site has a Docs link, a 404 page and a sitemap.

1.0.1 (2026-10-23)

First public release. Earlier development history is not part of this repository.

Features

  • Self-hosted receipt and invoice reader that runs on Cloudflare Workers: PDF and image uploads, optional email ingestion with an allowlist and SPF check, private R2 storage of originals, D1 storage of extracted rows.
  • Extraction with Cloudflare’s Clairic model on Workers AI (preview), VAT arithmetic checked in code, review flags for uncertain rows.
  • Vendor rules with a Clef fallback for product and expense type.
  • Bank CSV import with a column mapping, payment matching suggestions and a list of payments with no receipt.
  • Monthly package: costs in EUR by product and type, CSV or ZIP with every original and an index spreadsheet, optional OneDrive upload.
  • Sales invoices you send, matched to money coming in.
  • In-app settings, Cloudflare Access sign-in, compact mobile layout with a bottom tab bar.
  • Project site in site/ with a demo video, and a documentation site in docs-site/.
  • Apache License 2.0, no-warranty notice in the README and in the app.

Type to search…

↑↓ navigate↵ selectEsc close