This website requires JavaScript.
8b1e90abcc
feat(inbox): say what an underlag would be booked as (#1514 )
2026-08-11 11:52:25 +02:00
1e2b952f9c
fix(inbox): one frame around Underlag, not two (#1513 )
2026-08-11 11:05:26 +02:00
59269959d6
fix(inbox): stop an inline field edit from wiping the AI classification (#1512 )
2026-08-11 11:05:18 +02:00
ca6b962662
feat(receipt-hunt): a directory of where suppliers keep their invoices (#1506 )
2026-08-11 10:39:06 +02:00
614b7e60b9
fix(salary): apply percent brackets for monthly incomes above 80 000 kr (#1510 )
Mattsson and Claude Fable 5
2026-08-11 01:27:16 +02:00
e45218bcc6
fix(payments): creditor address on every payment (Validex round 3) (#1509 )
2026-08-10 21:54:07 +02:00
4655f3da48
fix(payments): creditor address per Swedbank TwnNm rule (Validex round 2) (#1508 )
2026-08-10 21:19:44 +02:00
fea5dfd1f9
fix(payments): correct pain.001 dialect per Swedbank Validex run (#1507 )
2026-08-10 20:53:43 +02:00
f0bedc14af
feat(payments): betalfil UI (betalfil 3/3) (#1505 )
2026-08-10 20:07:04 +02:00
576a34750a
feat(payments): payment-batch API surface (betalfil 2/3) (#1504 )
2026-08-10 20:00:42 +02:00
f776e375c5
feat(payments): supplier payment batch schema + pain.001 domain lib (betalfil 1/3) (#1500 )
2026-08-10 19:53:39 +02:00
f0ce322a7c
feat(receipt-hunt): keep looking until the mailboxes stop yielding (#1499 )
2026-08-10 19:15:40 +02:00
88140e5774
feat(receipt-hunt): let a model settle the pairs the arithmetic cannot (#1498 )
2026-08-10 18:12:14 +02:00
4c479f84f4
feat(receipt-hunt): convert a foreign receipt instead of refusing to compare it (#1497 )
2026-08-10 17:54:22 +02:00
1d635b0d25
feat(receipt-hunt): look for receipts on request, from the mailbox settings page (#1496 )
2026-08-10 16:08:06 +02:00
6821568523
feat(registry): add Bank Statement Sheet MCP server (#1472 )
Alim Polat and alimpolat
2026-08-10 15:23:52 +02:00
0d0415e19c
fix(vat): danstillställningar 25% → 6% from 2026-07-01 in guidance and suggestions (#1491 )
2026-08-10 14:18:23 +02:00
c77367ac1a
feat(audit): log trusted-role committed_at overrides to behandlingshistorik (#1490 )
2026-08-10 14:11:09 +02:00
fe1ff8649b
fix(bookkeeping): drop non-standard account 2012, book EF F-skatt on 2013 (#1409 ) (#1489 )
2026-08-10 14:04:08 +02:00
3ff12faa77
fix(bookkeeping): reverse-charge VAT in booking templates is 25% of the base, not 20% (#1494 )
Mattsson and Claude Fable 5
2026-08-10 13:59:55 +02:00
38f5d9812e
feat(receipt-hunt): find receipts in connected mailboxes and pair them on the amount (#1492 )
2026-08-10 12:23:42 +02:00
6aab1fbe23
fix(transactions): fetch all pending rows so the inbox is never capped at 200 (#1493 )
Mattsson and Claude Fable 5
2026-08-10 11:45:21 +02:00
d4b0bd3df1
feat(invoices): expose the automatic reminder kill switch in settings (#1476 )
Mattsson and Claude Fable 5
2026-08-10 11:24:15 +02:00
741cdcc60e
feat(onboarding): completion signature when the checklist finishes (#1487 )
2026-08-10 09:57:38 +02:00
d1b938d869
chore(onboarding): delete the dead first-run components and their orphaned strings (#1488 )
2026-08-10 09:51:40 +02:00
51bf1b77bf
feat(import): mount the knowledge-graph theater on the Arcim migrating step (#1486 )
2026-08-10 09:43:32 +02:00
1d01010928
feat(import): stream real Arcim migration progress as NDJSON (#1485 )
2026-08-10 09:26:27 +02:00
4ccebd3645
feat(loops): regeluppdat + docs-freshness scans (#1417 ) (#1478 )
2026-08-10 09:13:05 +02:00
ce1e0b7642
feat(banking): the bank-connect payoff (#1477 )
2026-08-09 20:52:25 +02:00
170b2722d6
feat(import): the Din historia reveal after SIE import (#1473 )
2026-08-09 20:05:00 +02:00
d4ef4f8bc4
feat(import): the import theater during SIE execute (#1471 )
2026-08-09 19:58:33 +02:00
622b144a3d
fix(agent): let non-payers dismiss the upsell FAB for the session (#1475 )
Mattsson and Claude Fable 5
2026-08-09 13:40:58 +02:00
c187fabf92
feat(shopify): Shopify order/refund feed into the transactions inbox (#1474 )
Mattsson and Claude Fable 5
2026-08-09 12:44:08 +02:00
02a5d10538
refactor(ui): migrate remaining inline pages to the concept design language (#1470 )
2026-08-08 16:40:19 +02:00
645ed0a53e
feat(login): method-state login panel with quiet inline errors (#1469 )
2026-08-08 16:33:50 +02:00
b4b7549004
feat(agent): resizable, undockable assistant panel (#1467 )
Mattsson and Claude Fable 5
2026-08-08 16:13:02 +02:00
39f4ecdad4
fix(providers): surface migration step errors; INK2 SRU 7104; non-modal invoice dialog (#1465 )
Mattsson and Claude Fable 5
2026-08-08 16:04:58 +02:00
c7dd78b0a3
feat(onboarding): branch question on the journey done screen (#1468 )
2026-08-08 15:27:17 +02:00
44cff5e5e4
feat(onboarding): activation quick wins on the Hem checklist (#1461 )
2026-08-08 15:14:34 +02:00
ddbe9b1379
fix(reports): always emit compulsory #FORMAT PC8 in SIE export (#1466 )
2026-08-08 15:04:07 +02:00
799fa1246a
fix(vat): downgrade per-voucher RC basis gaps only under per-rate evidence (#1464 )
Mattsson and Claude Fable 5
2026-08-08 14:45:22 +02:00
cadf02e407
fix(migration): derive Visma invoice payment state from PaymentStatus enum (#1462 )
2026-08-08 14:26:34 +02:00
4b0a185876
fix(invoice-inbox): parse AI extraction output wrapped in markdown fences (#1460 )
Mattsson and Claude Fable 5
2026-08-08 13:41:27 +02:00
70845edf69
feat(transactions): structured transaction_method instead of channel-in-the-name (#1459 )
2026-08-08 11:58:51 +02:00
3d1ed15b6d
feat(registry): move community registry source of truth into the public repo (#1458 )
2026-08-08 10:54:09 +02:00
a49d75db77
fix(migration): Visma pagination + chunk-insert resilience (the '300 misslyckades' case) (#1455 )
2026-08-08 10:45:02 +02:00
cf373e9dd1
fix(vat): make ruta 41 reachable (omvänd skattskyldighet sales, 3231-3233) (#1456 )
2026-08-08 10:40:36 +02:00
c912fc5633
fix(sandbox): delete api_keys and retag log in teardown (final backlog blockers) (#1454 )
Mattsson and Claude Fable 5
2026-08-07 16:05:46 +02:00
526f0315d0
fix(sandbox): loop small cleanup batches (8s cap is real), clear last FK blockers (#1452 )
Mattsson and Claude Fable 5
2026-08-07 15:18:59 +02:00
858ad49852
fix(booking): explicit Ingen moms in quick review books exempt, not the derived default (#1450 )
2026-08-07 14:58:46 +02:00
7c93d53fd5
chore(nav): hide Korjournal from the sidebar (#1453 )
Mattsson and Claude Fable 5
2026-08-07 14:46:21 +02:00
bd7a423b86
fix(sandbox): fit the nightly cleanup inside PostgREST's 8s session cap (#1451 )
Mattsson and Claude Fable 5
2026-08-07 14:37:28 +02:00
7411a0171b
feat(mileage): körjournal with milersättning booking, MCP tools and CSV export (#1448 )
Mattsson and Claude Fable 5
2026-08-07 14:17:21 +02:00
f7f3a31f8e
fix(sandbox): repair the silently-failing nightly sandbox cleanup and lock down its RPCs (#1449 )
Mattsson and Claude Fable 5
2026-08-07 13:51:01 +02:00
6458180bf5
fix(db): reconcile orphaned mail-hunt migrations applied to prod (#1447 )
Mattsson and Claude Fable 5
2026-08-07 11:45:11 +02:00
93f81f03e8
feat(providers): WINT migration provider behind WINT_MIGRATION_ENABLED (#1446 )
Mattsson and Claude Fable 5
2026-08-07 11:07:14 +02:00
c0a106e591
feat(ux): Bucket A defaults pass: remove choices the system already knows the answer to (#1443 )
2026-08-07 10:16:23 +02:00
63d520719a
fix(import): treat a voucher-less SIE file as a no-op, not a failed migration (#1445 )
2026-08-07 09:45:29 +02:00
707d597b2e
feat(woocommerce): store order/refund feed extension (#1442 )
Mattsson and Claude Fable 5
2026-08-06 23:30:00 +02:00
cd344b6dbb
fix(db): enforce balance check on directly inserted posted journal entries (v2) (#1439 )
Mattsson and Claude Fable 5
2026-08-06 23:00:05 +02:00
28b58aedc4
feat(auth): sign in with Google behind NEXT_PUBLIC_GOOGLE_AUTH_ENABLED (#1441 )
2026-08-06 21:26:09 +02:00
0bb0b89353
feat(auth): inline, specific error states on login and signup (#1440 )
2026-08-06 21:24:36 +02:00
a0ca692fed
feat(invoices): quarterly, half-yearly and yearly recurring invoice schedules (#1438 )
Mattsson and Claude Fable 5
2026-08-06 15:43:54 +02:00
d41ef2a909
feat(sandbox): seed payroll, articles and a year of ledger history; calm the connect CTAs (#1437 )
2026-08-06 15:30:04 +02:00
43386b4852
feat(agent): offer unmatched inbox receipts as confirmable underlag (#1436 )
2026-08-06 14:07:30 +02:00
0f7147a078
fix(agent): read a WhatsApp "nej" as an answer, not a half answer (#1433 )
2026-08-06 14:00:20 +02:00
2dff83e2f3
feat(bokslut): kontantmetoden year-end cut-off for fordringar and skulder (#1432 )
2026-08-06 12:12:05 +02:00
d73f288927
fix(supplier-invoices): reverse credit notes on paid kontantmetoden invoices (#1430 )
2026-08-06 12:06:00 +02:00
5b0ca3d874
fix(copy): make K3 and year-end claims match what the code actually does (#1431 )
2026-08-06 11:54:57 +02:00
a5c10e441a
chore(analytics): configure posthog session replay masking (#1428 )
Mattsson and Claude Fable 5
2026-08-06 11:40:54 +02:00
902b3ee986
fix(invoices): resolve ROT/RUT strings and hide the payout action when it does not apply (#1429 )
2026-08-06 11:13:25 +02:00
ab712f829a
fix(arsredovisning): truthful K3 policy note and GRANSKNINGSUTKAST watermark (#1423 )
2026-08-06 10:05:33 +02:00
12c59399ee
fix(bokslut): remove uppskjuten skatt on obeskattade reserver in juridisk person (K3 29.37) (#1421 )
2026-08-06 10:05:15 +02:00
8f38baca05
fix(assets): block Ej K2 accounts for K2 companies and fix immaterial defaults (#1422 )
2026-08-06 10:04:58 +02:00
78a37f6396
fix(year-end): typed preflight blocker codes so remediation links render (#1420 )
2026-08-06 10:04:42 +02:00
31fba5e8f9
fix(accruals): carry origin dimensions onto dissolution entries (#1419 )
2026-08-06 10:04:20 +02:00
d7320a6c87
feat(invoice-inbox): show receipt fields on receipts, invoice fields on invoices (#1426 )
2026-08-05 20:26:16 +02:00
576ed4d290
fix(agent): let the assistant see answers the user gave in WhatsApp (#1425 )
2026-08-05 20:08:15 +02:00
c84f951a5c
fix(whatsapp-inbox): name both ways to route receipts for multi-company senders (#1424 )
2026-08-05 19:43:37 +02:00
77d20287b9
fix(bokslut): unblur the pre-submission warning list on the årsredovisning page (#1415 )
2026-08-05 18:08:38 +02:00
c0825e9bd2
fix(bokslut): surface unbooked transactions and AR/AP tie-outs in year-end preflight (#1414 )
2026-08-05 18:05:38 +02:00
17d48ebb84
fix(invoices): guard cash-method partial payments across every payment path (#1413 )
2026-08-05 18:05:11 +02:00
0449b1d0ea
feat(settings): WhatsApp brand mark on the WhatsApp settings page (#1418 )
2026-08-05 17:30:13 +02:00
88760ae6f6
fix(whatsapp-inbox): harden against adversarial review findings (#1342 )
2026-08-05 15:47:23 +02:00
bf5ca2c615
feat(whatsapp-inbox): GDPR retention cron and RoPA entry (#1341 )
2026-08-05 15:35:41 +02:00
629069e281
feat(whatsapp-inbox): conversation layer with clarifying questions (#1340 )
2026-08-05 15:27:00 +02:00
f633349c8d
feat(analytics): show form field labels in session replays (#1416 )
Mattsson and Claude Fable 5
2026-08-05 15:18:07 +02:00
d1c411ad6f
feat(invoice-inbox): surface WhatsApp chat context in booking flows (#1339 )
2026-08-05 14:54:30 +02:00
398c734b93
feat(whatsapp-inbox): intake extension with webhook, phone linking and receipt ack (#1338 )
2026-08-05 14:47:08 +02:00
bd3592cb99
feat(db): WhatsApp channel schema (phone links, messages, inbox source) (#1337 )
2026-08-05 14:36:00 +02:00
02e48efe11
refactor(invoice-inbox): export uploadAndExtract from lib (#1336 )
2026-08-05 14:28:03 +02:00
3b3adf96c7
feat(invoice-inbox): receipt-aware extraction + OCR pipeline fixes (#1331 )
2026-08-05 14:20:40 +02:00
b1f71912a2
feat(analytics): show static nav chrome in session replays (#1412 )
Mattsson and Claude Fable 5
2026-08-05 14:19:36 +02:00
6dcd401fb5
chore: union-merge DECISIONS.md to stop phantom-green conflicting PRs (#1351 )
2026-08-05 14:03:19 +02:00
af9db54405
docs(self-hosting): AI runs on AWS Bedrock, not ANTHROPIC/OPENAI keys (#1407 )
2026-08-04 20:17:25 +02:00
86c6af6976
feat(api): v1 REST company-settings write endpoint (PATCH) (#1405 )
2026-08-04 19:46:13 +02:00
9f5a43310b
fix(salary): recompute entitled_days on existing ledger rows and record pre-cutover taken days (#1403 )
2026-08-04 19:35:02 +02:00
2296c0cd59
fix(auth): provision invitees server-side when signups are disabled (#1404 )
2026-08-04 19:34:54 +02:00
a9242551eb
fix(reports): stop double-counting arets resultat on open years (#1401 )
2026-08-04 19:34:18 +02:00
97bbba323f
fix(salary): report F-skatt compensation on FK131 only, not FK011 too (#1402 )
2026-08-04 19:33:36 +02:00