| Age | Commit message (Expand) | Author |
| 23 hours | build: gate builds the clients too, not just the tests | Anders Betts |
| 23 hours | tui: bank prefill vouchers and auto-match after posting | Anders Betts |
| 24 hours | docs: render enum args as type(values) in the generated catalogue | Anders Betts |
| 24 hours | docs: generate the command catalogue from the command tables | Anders Betts |
| 24 hours | bokftui-bw: fall back to the checkout in the current directory | Anders Betts |
| 24 hours | bokftui-bw: default to the checkout's build/bokftui | Anders Betts |
| 24 hours | build: make gate with WERROR and a pre-push hook | Anders Betts |
| 24 hours | sru: bound the org-nr copy so -Werror builds are clean | Anders Betts |
| 24 hours | commands: shared DB-error helpers | Anders Betts |
| 24 hours | tui: split bokftui into screen files | Anders Betts |
| 24 hours | tests: named test_core sections with --only | Anders Betts |
| 26 hours | commands: split the command table by domain | Anders Betts |
| 26 hours | tui: bankgiro and our ref belong to Företagsuppgifterv0.1.53 | Anders Betts |
| 30 hours | tui: set the next invoice number from the listv0.1.52 | Anders Betts |
| 30 hours | docs: invoicing waves 1-3 completev0.1.51 | Anders Betts |
| 30 hours | tui: fakturering with invoice form, preview and send | Anders Betts |
| 30 hours | docs: document the invoice_our_ref setting | Anders Betts |
| 30 hours | settings: allow invoice_our_ref | Anders Betts |
| 30 hours | deploy: pass BOKFD_SECRET_KEY through compose; document waves 1-2 | Anders Betts |
| 30 hours | invoice: send the issued PDF over SMTP | Anders Betts |
| 30 hours | build: wire the SMTP client into the test suite | Anders Betts |
| 30 hours | smtp: send messages with a PDF attachment | Anders Betts |
| 30 hours | secret: build it as its own unit | Anders Betts |
| 30 hours | settings: encrypted secrets and SMTP settings | Anders Betts |
| 31 hours | invoice: skip the Swish QRv0.1.50 | Anders Betts |
| 31 hours | invoice: allow setting the bankgiro, document wave 1 | Anders Betts |
| 31 hours | invoice: customer, sequence, preview and issue commands | Anders Betts |
| 31 hours | build: wire the invoice renderer into the test suite | Anders Betts |
| 31 hours | invoice: render the document as PDF | Anders Betts |
| 31 hours | db: schema v9 for invoicing, vouchers source rebuild | Anders Betts |
| 31 hours | invoice: extract the Comfortaa wordmark as vector paths | Anders Betts |
| 31 hours | pdf: minimal PDF writer for generated documents | Anders Betts |
| 31 hours | invoicing: keep customers in Register per the menu rule | Anders Betts |
| 31 hours | invoicing: design chapter with layout, numbering and SMTP | Anders Betts |
| 33 hours | docs: bank reconciliation phase 1v0.1.49 | Anders Betts |
| 33 hours | tests: bank reconciliation pty scenario | Anders Betts |
| 33 hours | tui: bank reconciliation screen | Anders Betts |
| 33 hours | bank: import SEB CSV and match against vouchers (schema v8) | Anders Betts |
| 36 hours | db: make attachments append-only (schema v7) | Anders Betts |
| 36 hours | tui: pinned report headers, voucher detail headers, clamped pagingv0.1.48 | Anders Betts |
| 36 hours | tui: align list rows beyond nine itemsv0.1.47 | Anders Betts |
| 36 hours | docs: mark the moms rule editor and pre-migration snapshot donev0.1.46 | Anders Betts |
| 36 hours | tests: momsregler pty scenario | Anders Betts |
| 36 hours | tui: momsregler screen for the vat report rules | Anders Betts |
| 36 hours | report: per-org moms rule editor commands | Anders Betts |
| 36 hours | db: snapshot the database before forward migrations | Anders Betts |
| 36 hours | build: ignore the sanitizer build directories | Anders Betts |
| 36 hours | tests: wire check, pty and sanitizer targets and document them | Anders Betts |
| 36 hours | ledger: free the default-series string on every post error path | Anders Betts |
| 37 hours | commands: declarative argument schemas with dispatch validation | Anders Betts |