This website requires JavaScript.
fddc58f624
fix(mcp): exclude VAT contra accounts from ledger-context dominant pick (#932 )
Jakob Wennberg and Claude Fable 5
2026-07-08 15:04:25 +02:00
a3c6566caf
feat(mcp): ledger-context resource with per-company booking patterns (#928 )
Jakob Wennberg and Claude Fable 5
2026-07-08 13:48:04 +02:00
abe9ac9d8c
Fix/attributes config (#926 )
Mattsson and Claude Opus 4.8
2026-07-08 09:54:46 +02:00
63e05c4eec
fix(import): company-scope the bank_file_imports dedup key (#925 )
Jakob Wennberg and Claude Fable 5
2026-07-08 02:14:15 +02:00
19cbb0094b
fix(entitlements): gate the AI-only invoice-inbox for non-payers (#924 )
Jakob Wennberg and Claude Fable 5
2026-07-07 23:20:39 +02:00
a566a42aec
fix(entitlements): gate remaining paid-feature UI, drop stale beta pricing copy (#921 )
Jakob Wennberg and Claude Opus 4.7
2026-07-07 14:22:14 +02:00
ed7a178ac6
fix(import): scope bank account picker to the active company (#922 )
Jakob Wennberg and Claude Opus 4.7
2026-07-07 14:17:35 +02:00
cbffcd7292
fix(invoices): accept empty self-billing fields on invoice create (#920 )
Mattsson and Claude Opus 4.8
2026-07-07 13:20:23 +02:00
27b88426e2
fix(entitlements): show paid features as gated upsells instead of dead ends (#913 )
Jakob Wennberg and Claude Opus 4.7
2026-07-07 10:01:44 +02:00
fca75df3e2
chore: update snapshot for endpoint counts and keys (#912 )
Mattsson
2026-07-07 01:50:18 +02:00
3a88b53fd9
Add/api and invoice (#911 )
Mattsson and Claude Opus 4.8
2026-07-07 01:14:59 +02:00
7f24ede6c0
fix(entitlements): close paywall leaks on interactive bank, SKV, and email routes (#910 )
Jakob Wennberg and Claude Opus 4.7
2026-07-06 22:20:26 +02:00
573feea890
perf: cross-system snappiness batch (middleware, loading states, bundle) (#909 )
Jakob Wennberg and Claude Opus 4.7
2026-07-06 16:16:33 +02:00
cdac1808c9
feat(api): ROT/RUT, articles, and project lifecycle on the v1 API (#904 )
Jakob Wennberg and Claude Opus 4.7
2026-07-06 15:21:53 +02:00
31b244acf5
fix: stop dropping VAT on MCP inbox-converted supplier invoices (#896 )
Jonas Flodén and Jakob Wennberg
2026-07-06 14:04:37 +02:00
a1fad3193e
build(deps): bump the minor-and-patch group (38 updates) (#884 )
dependabot[bot]
2026-07-06 13:53:09 +02:00
5149caebbf
fix(transactions): use the resolved cash account name as bank line description (#899 )
Jonas Flodén
2026-07-06 12:14:02 +02:00
185b6f799c
fix(build): pin turbopack.root, update comment for middleware to proxy rename (#897 )
Jonas Flodén
2026-07-06 12:13:59 +02:00
8094f288fa
fix(ci): quote workflow name with embedded colon in compliance-swarm.yml (#898 )
Jonas Flodén
2026-07-06 12:08:42 +02:00
9b126d22b9
fix(reconciliation): server-side confidence floor for unattended auto-apply (#903 )
Jakob Wennberg and Claude Fable 5
2026-07-06 11:30:46 +02:00
b700108107
feat(mcp): add invoice_date_override to create_supplier_invoice_from_inbox (#848 )
Jonas Flodén
2026-07-06 11:24:05 +02:00
ac1529e413
fix(ui): block illegal VAT rates, honest opening-balance state, surface account-save errors (#902 )
Jakob Wennberg and Claude Fable 5
2026-07-06 11:20:46 +02:00
8e7e7201d3
fix(db): drop delete_user_account RPC that bypassed BFL retention (#901 )
Jakob Wennberg and Claude Fable 5
2026-07-06 11:20:34 +02:00
b5f568004f
fix(ci): fail loud when the compliance diff artifact is missing (#832 )
Jonas Flodén
2026-07-06 09:29:01 +02:00
f58b7a3602
fix(mcp): treat created_journal_entry_id as a terminal link in gnubok_list_unmatched_documents (#891 )
Jonas Flodén
2026-07-06 09:27:51 +02:00
c43c4a076c
feat(salary): allow recalling approval on a salary run (approved → review) (#894 )
Jakob Wennberg and Claude Fable 5
2026-07-05 19:44:22 +02:00
2c2743eb79
Check/salary bankid api (#892 )
Mattsson and Claude Opus 4.8
2026-07-05 03:05:09 +02:00
ec27228a8e
style: remove em/en dashes repo-wide, add CLAUDE.md rule against them (#890 )
Jakob Wennberg and Claude Sonnet 5
2026-07-04 15:58:06 +02:00
a5154ee884
docs(dimensions): post-merge review nits from #888 (#889 )
Jakob Wennberg and Claude Fable 5
2026-07-03 17:26:00 +02:00
86c924a6e9
fix(dimensions): exempt system source types from account dimension rules (#888 )
Jakob Wennberg and Claude Fable 5
2026-07-03 17:17:16 +02:00
764348e99c
feat(dimensions): PR10 advanced — custom dimensions, hierarchy, account rules, commit enforcement (#886 )
Jakob Wennberg and Claude Fable 5
2026-07-03 16:50:28 +02:00
70e893b8d4
fix(skattekonto): stop conflating live-call auth failures with "inte anslutet" + surface SKV connection first in tax settings (#887 )
Jakob Wennberg and Claude Fable 5
2026-07-03 16:35:09 +02:00
9f7c842a33
feat(skatt): setup gates + auto-loading momsdeklaration across Skatt & bokslut tabs (#885 )
Jakob Wennberg and Claude Fable 5
2026-07-03 16:12:51 +02:00
100a4d1291
feat(ux): create salary runs, employees & recurring schedules in modals (#883 )
Jakob Wennberg and Claude Fable 5
2026-07-03 15:18:20 +02:00
237b77a366
feat: custom inbound mail domains, rot/rut payout file, invoice email texts, security hardening (#878 )
Mattsson and Claude Fable 5
2026-07-03 13:57:59 +02:00
678f2ccffd
feat(mcp): P2 hygiene — honest category suggestions, skill-reference lint, cadence copy (#882 )
Jakob Wennberg and Claude Fable 5
2026-07-03 11:48:29 +02:00
b27f6cdb04
fix(db): NULL-safe tenant guards via caller_is_company_member + mechanical sweep (#881 )
Jakob Wennberg and Claude Fable 5
2026-07-03 11:48:09 +02:00
ea236cbcdf
fix(reconciliation): Bankavstämning phase 0 — correctness + feedback batch (+ nav IA regrouping) (#879 )
Jakob Wennberg and Claude Fable 5
2026-07-03 11:21:38 +02:00
59ecaee650
feat(mcp): qualified identifiers in all tool output schemas (P1-2) (#877 )
Jakob Wennberg and Claude Fable 5
2026-07-03 11:20:32 +02:00
21512db81a
feat(mcp): unify missing-document surfaces on one predicate (#876 )
Jakob Wennberg and Claude Fable 5
2026-07-03 10:56:14 +02:00
250cc7c450
feat(mcp): always-explicit retryable on structured errors + transient inference (P1-1) (#875 )
Jakob Wennberg and Claude Fable 5
2026-07-03 10:29:58 +02:00
001de3c844
feat(mcp): structured supplier-resolution failure with candidates in create_supplier_invoice_from_inbox (#873 )
Jakob Wennberg and Claude Fable 5
2026-07-03 10:14:16 +02:00
28827c2613
feat(dimensions): voucher-level retro-tagging workbench — reversal pairs hidden by default (#874 )
Jakob Wennberg and Claude Fable 5
2026-07-03 10:11:07 +02:00
45438d4d64
fix(mcp): SQL-side filtering and pagination for list_verifikat_without_documents (#872 )
Jakob Wennberg and Claude Fable 5
2026-07-03 09:42:02 +02:00
4b5fe9ee57
fix(mcp): add link_document_to_voucher to pending_operations CHECK constraint (#871 )
Jakob Wennberg and Claude Fable 5
2026-07-03 09:41:31 +02:00
fb3f0a9cee
feat(dimensions): PR9 cutover — cost_center/project become GENERATED columns, dual-write removed (#870 )
Jakob Wennberg and Claude Fable 5
2026-07-02 23:28:42 +02:00
163fbd8222
feat(dimensions): PR8 salary — employees.default_dimensions, per-employee cost lines, aggregation re-key (#869 )
Jakob Wennberg and Claude Fable 5
2026-07-02 22:21:46 +02:00
755e0f7e47
feat(dimensions): PR7 producers — auto-tagged documents (invoices, supplier invoices, bulk-book, templates, MCP) (#868 )
Jakob Wennberg and Claude Fable 5
2026-07-02 21:21:01 +02:00
816b1769c8
feat(dimensions): PR6 retro-tagging — audited retag carve-out, BulkTagWorkbench, staged MCP tool (#867 )
Jakob Wennberg and Claude Fable 5
2026-07-02 17:02:34 +02:00
fb3fe82a56
feat(dimensions): PR5 SIE round-trip — lossless dimension import + undo lockstep (#866 )
Jakob Wennberg and Claude Fable 5
2026-07-02 16:05:13 +02:00
c7f0db00c8
fix(invoices): allowlist forwarded params on the /new redirects (#861 review) (#864 )
Jakob Wennberg and Claude Fable 5
2026-07-02 15:30:21 +02:00
01dbef4015
feat(dimensions): PR4 reports — dimension-filtered P&L + Resultat per projekt/kostnadsställe (#862 )
Jakob Wennberg and Claude Fable 5
2026-07-02 15:20:47 +02:00
86071334cb
feat(invoices): create customer & supplier invoices in modals, matching the verifikat pattern (#861 )
Jakob Wennberg and Claude Fable 5
2026-07-02 14:04:52 +02:00
11126d6d56
feat(dimensions): PR3 tagging — voucher-form pickers, MCP dimension tools with resolve-don't-select, engine soft validation (#859 )
Jakob Wennberg and Claude Fable 5
2026-07-02 13:36:45 +02:00
6be6510d73
fix(entitlements): gate paid AI document OCR server-side (free-tier leak) (#852 )
Jakob Wennberg and Claude Opus 4.8
2026-07-02 13:36:15 +02:00
f675ae6565
fix(loops): committed playbook path + Sentry-first error source (#851 )
Jakob Wennberg and Claude Opus 4.8
2026-07-02 13:36:12 +02:00
8bb49c07a2
feat(dimensions): PR2 registry — CRUD API, register UI, settings toggle, SIE export on the new registry (#858 )
Jakob Wennberg and Claude Fable 5
2026-07-02 12:26:42 +02:00
8cc2efb083
feat(dimensions): PR1 substrate — SIE-native registry + dimensions JSONB on journal lines (#857 )
Jakob Wennberg and Claude Fable 5
2026-07-02 11:27:07 +02:00
f63d3e3100
Bug/open banking flow (#854 )
Mattsson and Claude Opus 4.8
2026-07-01 18:13:00 +02:00
2da9c71eb3
UI badge cleanup + /chart-of-accounts route + loop skills (#850 )
Jakob Wennberg and Claude Opus 4.8
2026-07-01 14:29:23 +02:00
d63d2aecf0
feat: UI slop cleanup, invoice icon/header polish + year-end in Rapporter, journal-list DataList refactor (#847 )
Jakob Wennberg and Claude Opus 4.8
2026-06-30 20:42:56 +02:00
db843a7a5b
fix(entitlements): gate paid MCP tools (send_invoice/agi_submit/vat_declaration_submit) server-side (#846 )
Jakob Wennberg and Claude Opus 4.8
2026-06-30 16:38:14 +02:00
5df6199bd1
fix(invoices): remaining_amount + invoice.paid on agent mark-paid path (#825 ) (#845 )
Jakob Wennberg and Claude Opus 4.8
2026-06-30 16:01:07 +02:00
46039f14f4
fix(reports): valid two-file NE-bilaga SRU submission (#318 , #319 ) (#844 )
Jakob Wennberg and Claude Opus 4.8
2026-06-30 16:01:02 +02:00
f8504f3bd0
fix: audit batch — pagination truncation, MFA/dead-code cleanup, mark-paid fail-closed (#841 )
Jakob Wennberg and Claude Opus 4.8
2026-06-30 14:34:23 +02:00
b800dcd403
style(ui): system-wide UX/UI polish pass — design-system conformance + copy cleanup (#835 )
Jakob Wennberg and Claude Opus 4.8
2026-06-30 13:14:13 +02:00
a8072f6423
feat: realtime updates for dashboard transactions (rebased reimplementation of #757 ) (#833 )
2026-06-30 08:58:01 +02:00
f8aef335c9
fix(ci): persist-credentials: false on the privileged compliance-review checkout (#831 )
Jakob Wennberg and Claude Opus 4.8
2026-06-30 08:57:58 +02:00
a68123bbe8
fix(ci): fork-safe compliance review (two-stage workflow_run) — safe alternative to #829 (#830 )
Jakob Wennberg and Claude Opus 4.8
2026-06-29 23:44:30 +02:00
1cd8863958
fix(transactions): resolve bank account from cash_account_id in booking dialog (#769 )
Jonas Flodén and Claude Sonnet 4.6
2026-06-29 23:08:04 +02:00
5b4cefe8ab
feat(api): v1 endpoints to stamp invoice inbox items as consumed (#767 )
Jonas Flodén and Claude Sonnet 4.6
2026-06-29 23:08:01 +02:00
7cd1a7388f
fix(customers): add columns the system-migration importer needs (address_line2, default_payment_terms, vat_number_validated) (#780 )
2026-06-29 22:59:58 +02:00
837f354d81
fix(sie): add ?encoding=cp437 for legacy bookkeeping software (#810 )
Jonas Flodén and Claude Sonnet 4.6
2026-06-29 22:59:55 +02:00
37ee125b9b
fix(mcp): paginate trial-balance and VAT aggregations (1000-row truncation) (#806 )
2026-06-29 22:49:10 +02:00
e4a9fdb4a6
fix(reports): add missing allLines mock to SIE OB-exclusion test (#828 )
Jakob Wennberg and Claude Opus 4.8
2026-06-29 22:36:24 +02:00
6b4bf63fec
fix(reports): sort trial balance source lines by date then voucher_number (#763 )
Jonas Flodén and Claude Sonnet 4.6
2026-06-29 22:14:10 +02:00
5e9aa52dea
feat(mcp): add gnubok_link_document_to_voucher tool (#804 )
Jonas Flodén
2026-06-29 22:14:07 +02:00
15af0cd7ea
feat(mcp): add per-line account overrides to create_supplier_invoice_from_inbox (#805 )
Jonas Flodén
2026-06-29 22:14:03 +02:00
4f96ce920a
fix(arcim-migration): dedup customers/suppliers by name when org-number is absent (#788 )
Jonas Hagberg
2026-06-29 22:13:59 +02:00
96989f1cde
fix(arcim-migration): treat 12-digit Swedish numbers as domestic + route personnummer to personal_number (#799 )
Jonas Hagberg
2026-06-29 22:13:55 +02:00
47f03f4238
feat(arcim): import Bokio underlag and link to verifikat (#786 ) (#813 )
Jonas Hagberg
2026-06-29 22:13:51 +02:00
da692c2898
fix(transactions): include 'overdue' in match-supplier-invoice CAS guard (#779 )
Jonas Flodén
2026-06-29 22:13:48 +02:00
b2aa79d553
fix(reports): exclude opening-balance entry from SIE #UB movement (#809 )
Jonas Flodén and Claude Sonnet 4.6
2026-06-29 22:13:44 +02:00
d603042328
build(deps): bump The-PR-Agent/pr-agent from 0.37.0 to 0.38.0 (#818 )
dependabot[bot]
2026-06-29 22:13:40 +02:00
5cf23c180d
build(deps): bump alpine from a2d49ea to 28bd5fe in /docker (#819 )
dependabot[bot]
2026-06-29 22:13:36 +02:00
cb01b946fc
fix(bokslut): map computer/vehicle depreciation to standard 7832 so it resolves (#755 ) (#822 )
Jakob Wennberg and Claude Opus 4.8
2026-06-29 21:47:46 +02:00
663e1232a4
fix(bookkeeping): push grundbok series filter into the RPC so pagination total is honest (#798 ) (#823 )
Jakob Wennberg and Claude Opus 4.8
2026-06-29 21:47:42 +02:00
4872c0f242
fix(reports): stable total order on SIE-export fetchAllRows paging (#793 hardening) (#824 )
Jakob Wennberg and Claude Opus 4.8
2026-06-29 21:39:40 +02:00
0e8698f538
fix(entitlements): billing reachable in settings modal + conversion redesign (#821 )
Jakob Wennberg and Claude Opus 4.8
2026-06-29 16:51:31 +02:00
60e33c4b51
Fix/cus fee 28 (#820 )
Mattsson and Claude Opus 4.8
2026-06-29 16:34:51 +02:00
4f0a7b1db0
feat(entitlements): per-company capability paywall — gate, trial seeding, UI upsells, Stripe checkout (#815 )
Jakob Wennberg and Claude Opus 4.8
2026-06-29 15:56:19 +02:00
fce6faff2c
fix(api): stabilize report pagination + declare real { data, meta } envelope on v1 single/write endpoints (#811 )
Jakob Wennberg and Claude Opus 4.8
2026-06-28 13:42:50 +02:00
ae17b304d7
fix(import): add stable .order() to account-sync chart paging (#790 , #791 follow-up) (#812 )
Jakob Wennberg and Claude Opus 4.8
2026-06-28 13:42:41 +02:00
fc2b4d1e23
fix(api): declare the real { data, meta } envelope for v1 list endpoints (#802 )
Jakob Wennberg and Claude Opus 4.8
2026-06-26 15:30:48 +02:00
55ba66908b
feat(salary): let an enskild firma employ staff while blocking owner/board payroll (#797 )
Jakob Wennberg and Claude Opus 4.8
2026-06-26 15:30:03 +02:00
5bacda4839
fix(vat): drop personnummer century so enskild firma VAT number is SE+12 not SE+14 (#796 )
Jakob Wennberg and Claude Opus 4.8
2026-06-26 15:29:58 +02:00
9278221616
fix(api): guard params await so static v1 routes don't 500 (#795 )
Jakob Wennberg and Claude Opus 4.8
2026-06-26 15:29:54 +02:00
9ed0b9515a
Fix/invoice booking vat fixes (#778 )
Mattsson and Claude Opus 4.8
2026-06-25 15:54:35 +02:00
bc09cea07e
chore(scripts): add prod repair scripts for Arcim and Capelix incidents (#773 )
Jakob Wennberg and Claude Opus 4.8
2026-06-25 13:42:57 +02:00
10a0b1d8dd
fix(invoices): embed company logo as PNG so it renders on invoice PDFs (#772 ) (#776 )
Jakob Wennberg and Claude Opus 4.8
2026-06-25 13:42:53 +02:00