This website requires JavaScript.
ff205951b1
fix(auth): store BankID personnummer ciphertext as raw bytea, not JSON-serialized Buffer (#1233 )
Jakob Wennberg and Claude Fable 5
2026-07-27 16:58:48 +02:00
88099f5390
docs(privacy): state the two local values PostHog actually stores (#1242 )
Jakob Wennberg and Claude Opus 5
2026-07-27 16:55:45 +02:00
fbd4b992f5
Add/db and speed (#1243 )
Mattsson and Claude Opus 5
2026-07-27 16:49:24 +02:00
1a7152a7af
feat(settings): skyline masthead on Abonnemang + AI works-with marks on API tab (#1241 )
Jakob Wennberg and Claude Fable 5
2026-07-27 16:41:22 +02:00
d47b19fd74
docs: correct the systemdokumentation template to match the actual system (#1240 )
Jakob Wennberg and Claude Opus 5
2026-07-27 16:32:36 +02:00
52ec3ce497
feat(support): open PostHog tickets from the existing support dialog (#1239 )
Jakob Wennberg and Claude Opus 5
2026-07-27 16:23:32 +02:00
1dce9227a4
feat(assistant): make the thumbs actually report something (#1236 )
Jakob Wennberg and Claude Opus 5
2026-07-27 15:46:08 +02:00
2da96c0be2
fix(agent): stop sending every page view to a third-party avatar CDN (#1226 )
Jakob Wennberg and Claude Opus 5
2026-07-27 15:35:14 +02:00
248d98bd7e
feat(analytics): remove Recapt, PostHog is now the only analytics (#1238 )
Jakob Wennberg and Claude Opus 5
2026-07-27 15:08:32 +02:00
c62d00bcb3
feat(invoices): preview invoices and underlag in the browser instead of downloading (#1228 )
Jakob Wennberg and Claude Opus 5
2026-07-27 14:59:33 +02:00
df29817826
fix(supplier-invoices): make the 'overdue' label two-way and stop it locking an invoice (#1227 )
Jakob Wennberg and Claude Opus 5
2026-07-27 14:49:22 +02:00
f5697cfc2f
feat(articles): filter the article register by currency (#1229 )
Jakob Wennberg and Claude Opus 5
2026-07-27 14:39:13 +02:00
d4f82cafc4
feat(analytics): add PostHog (EU) behind a same-origin proxy (#1237 )
Jakob Wennberg and Claude Opus 5
2026-07-27 14:30:49 +02:00
922cf16227
fix(deps): override postcss to 8.5.18+ to clear two HIGH CVEs (#1235 )
Jakob Wennberg
2026-07-27 14:27:18 +02:00
7dde8cac82
fix(security): resolve the CodeQL backlog, three fixes and three documented false positives (#1225 )
Jakob Wennberg
2026-07-27 14:02:25 +02:00
4702a63cff
fix(assistant): announce answers to screen readers, one label map, links that keep the thread (#1224 )
Jakob Wennberg and Claude Opus 5
2026-07-27 12:48:40 +02:00
5369349e9e
chore(ci): unblock the CVE gate, finish Sonnet 5, parallelize, harden the supply chain (#1223 )
Jakob Wennberg
2026-07-27 12:01:03 +02:00
bcbe9b0903
feat(assistant): say what the conversation is anchored to (#1222 )
Jakob Wennberg and Claude Opus 5
2026-07-27 11:26:16 +02:00
60cc51fe21
feat(assistant): dock the panel into the frame, give the trigger a status channel (#1220 )
Jakob Wennberg and Claude Opus 5
2026-07-27 10:57:22 +02:00
16e1a84b4b
fix(assistant): defuse memory prompt injection and bound replayed history (#1219 )
Jakob Wennberg and Claude Opus 5
2026-07-27 10:18:54 +02:00
2d543ac999
feat(agent): move every model call to Sonnet 5 (#1218 )
Jakob Wennberg and Claude Opus 5
2026-07-27 10:16:40 +02:00
f3eacb436d
Fix/articles (#1216 )
Mattsson and Claude Fable 5
2026-07-27 03:54:42 +02:00
f24b26a139
fix: similar-sweep currency remediation, security hardening and v1 API fixes (#1215 )
Mattsson and Claude Fable 5
2026-07-27 03:34:56 +02:00
a43a8b03cf
refactor(assistant): one source of truth for the conversation list (#1214 )
Jakob Wennberg and Claude Opus 5
2026-07-26 23:30:01 +02:00
8397452440
feat(assistant): copy, feedback, an interrupt marker and a way back to the latest answer (#1213 )
Jakob Wennberg and Claude Opus 5
2026-07-26 22:40:02 +02:00
4de648fb5d
fix(assistant): keep proposals, selections and picks intact across a resume (#1212 )
Jakob Wennberg and Claude Opus 5
2026-07-26 21:56:50 +02:00
f0f3050f54
fix(assistant): stop the chat loading in stages (#1210 )
Jakob Wennberg and Claude Opus 5
2026-07-26 18:10:47 +02:00
ee8ddb3849
fix(assistant): stop cross-user conversation access, bricked threads and lost sessions (#1209 )
Jakob Wennberg and Claude Opus 5
2026-07-26 17:48:18 +02:00
c210a01db5
docs(design): sync design guidance with the shipped system + new Stripe mark (#1211 )
Jakob Wennberg and Claude Fable 5
2026-07-26 14:34:04 +02:00
1270b6daeb
fix(bookkeeping): let a rättelseverifikation be stornoed; unblock aged supplier-invoice deletion (#1204 )
Jakob Wennberg and Claude Fable 5
2026-07-26 12:49:10 +02:00
968161b42b
fix(documents): read attachments with service client so colleague uploads open (#1207 )
Jakob Wennberg and Claude Fable 5
2026-07-26 12:34:11 +02:00
6d9846b1e7
feat(settings): Fönster redesign - flat rows, ? help, dirty save bar (#1193 )
Jakob Wennberg and Claude Fable 5
2026-07-25 23:55:08 +02:00
d54b43f80f
Bug/resend and invoices (#1192 )
Mattsson and Claude Opus 5
2026-07-25 22:56:17 +02:00
f07a34c51b
fix(invoices): stop popup blockers from silently eating the PDF preview tab (#1191 )
Jakob Wennberg and Claude Fable 5
2026-07-25 13:43:04 +02:00
b5e3c476a5
fix(articles): article delete failed for everyone on a phantom column (#1188 )
Jakob Wennberg and Claude Fable 5
2026-07-25 13:11:02 +02:00
01d2a1a946
fix(bookkeeping): stop draft edits wiping line FX metadata and tax_code (#1187 )
Jakob Wennberg and Claude Fable 5
2026-07-25 13:05:43 +02:00
5afd031306
fix(invoices): keep the stored ROT/RUT personnummer when editing a draft (#1186 )
Jakob Wennberg and Claude Fable 5
2026-07-25 12:59:50 +02:00
731a57dd6e
fix(deadlines): submit only form-managed fields from the deadline form (#1185 )
Jakob Wennberg and Claude Fable 5
2026-07-25 12:59:41 +02:00
d012d40b18
feat(mcp): currency param on create_article and update_article (#1184 )
Jakob Wennberg and Claude Fable 5
2026-07-25 12:59:32 +02:00
36a1df4f6b
feat(import): detect and import the article register's Valuta column (#1183 )
Jakob Wennberg and Claude Fable 5
2026-07-25 12:59:23 +02:00
aead2bc1d1
fix(ui): stop mislabeling unconverted FX amounts as kr in aggregates and toasts (#1182 )
Jakob Wennberg and Claude Fable 5
2026-07-25 12:59:14 +02:00
6d5a435ed9
fix(reports): drop the kr suffix from invoice-currency AR-ledger columns (#1180 )
Jakob Wennberg and Claude Fable 5
2026-07-25 12:59:05 +02:00
9b3e344796
fix(notifications,mcp): carry the record's currency in amount strings (#1179 )
Jakob Wennberg and Claude Fable 5
2026-07-25 12:58:55 +02:00
bb78f8fce8
fix(import): per-currency totals and row currency in bank-file preview (#1178 )
Jakob Wennberg and Claude Fable 5
2026-07-25 12:58:47 +02:00
e029376c08
fix(suppliers): per-currency stats and honest currency labels on the supplier page (#1177 )
Jakob Wennberg and Claude Fable 5
2026-07-25 12:58:38 +02:00
4bc2093e51
polish(vat): title-row Exportera, fused period chip, chip classification, calm SKV status (#1181 )
Jakob Wennberg and Claude Fable 5
2026-07-25 11:59:06 +02:00
17dc5f12f6
fix(articles): non-SEK price support + reinstated deactivate (support: odinaero.se) (#1166 )
Jakob Wennberg and Claude Fable 5
2026-07-25 11:39:49 +02:00
47938520d6
fix(bookkeeping): allow a first rakenskapsar shorter than 6 months (#1165 )
Jakob Wennberg and Claude Fable 5
2026-07-25 11:23:18 +02:00
98886e68d8
fix(vat): keep the RC-basis worklist visible until every voucher is fixed (#1164 )
Jakob Wennberg and Claude Fable 5
2026-07-24 22:10:20 +02:00
98e1a48c2b
feat(bokslut): the bokslut trio in the flat concept language (scenes 34-36) (#1161 )
Jakob Wennberg and Claude Fable 5
2026-07-24 20:20:00 +02:00
49e86e2e67
fix(transactions): share bank-sync busy state across surfaces (#1163 )
Jakob Wennberg and Claude Fable 5
2026-07-24 20:10:58 +02:00
8a7fd567bd
fix(settings): validate share-capital pair before saving (#1137 ) (#1160 )
Jakob Wennberg and Claude Fable 5
2026-07-24 20:07:24 +02:00
8a9162b948
polish(ui): loading feedback on sync/refresh buttons system-wide (#1156 )
Jakob Wennberg and Claude Fable 5
2026-07-24 19:37:34 +02:00
bb551d1d59
polish(ui): founder feedback batch - inset sidebar hairline, calmer dialogs, Discord mark, chat skeleton (#1158 )
Jakob Wennberg and Claude Fable 5
2026-07-24 19:36:45 +02:00
15300aa8e2
fix(invites): accept invite on BankID signup, recover missed invites on onboarding surfaces (#1157 )
Jakob Wennberg and Claude Fable 5
2026-07-24 19:36:09 +02:00
d3c37dac08
feat(stripe): enable Stripe integration and update UI components (#1159 )
Mattsson
2026-07-24 19:19:49 +02:00
cb7b31819b
feat(vat): Momsdeklaration as Stegen - stepper, flat steps, house toolbar (#1154 )
Jakob Wennberg and Claude Fable 5
2026-07-24 18:32:53 +02:00
5c42852d7e
fix(skatteverket): classify 400 expired-refresh-token as SESSION_EXPIRED (#1151 )
Jakob Wennberg and Claude Fable 5
2026-07-24 17:06:02 +02:00
d0fb72dc63
feat(kpi): Nyckeltal as Instrumentbrädan — instrument panes, monthly bars, cost list (#1148 )
Jakob Wennberg and Claude Fable 5
2026-07-24 16:43:42 +02:00
6911f657e9
feat(reports): catalog as one dry table with band groups and Senast öppnad (#1147 )
Jakob Wennberg and Claude Fable 5
2026-07-24 16:41:09 +02:00
9dfa6c6708
feat(home): first-run block as a numbered four-step thread with partner marks (#1149 )
Jakob Wennberg and Claude Fable 5
2026-07-24 16:37:51 +02:00
63fd5311ed
Bug/tic unlink (#1153 )
Mattsson and Claude Fable 5
2026-07-24 16:36:35 +02:00
213d611e54
feat(onboarding): journey PR D — wizard removal, /companies/new mode='add', searchable BankID picker (#1150 )
Jakob Wennberg and Claude Fable 5
2026-07-24 16:03:18 +02:00
53e343ee92
Bug/invalid imports (#1146 )
Mattsson and Claude Opus 4.8
2026-07-24 15:03:50 +02:00
51ca574ca4
feat(onboarding): journey PR C — flow component + /onboarding swap behind flag (#1143 )
Jakob Wennberg and Claude Fable 5
2026-07-24 13:33:39 +02:00
b771c1f923
feat(onboarding): journey PR B — reducer, orb, track, question primitives (behind /sandbox demo) (#1145 )
Jakob Wennberg and Claude Fable 5
2026-07-24 13:32:45 +02:00
f9ef8913ae
refactor(onboarding): extract first-year defaults + shared TIC lookup client (journey PR A) (#1141 )
Jakob Wennberg and Claude Fable 5
2026-07-24 13:29:56 +02:00
2bec5acedb
feat(ui): rest-of-nav 1 — Viktiga datum, Skattekonto, Periodiseringar, Import to the concept language (#1140 )
Jakob Wennberg and Claude Fable 5
2026-07-24 12:36:08 +02:00
d840257c0c
Add/stripe connect transactions (#1139 )
Mattsson and Claude Fable 5
2026-07-24 01:16:20 +02:00
be9d630347
feat(home): concept Hem with Att göra + Fortsätt (UI migration PR 11) (#1132 )
Jakob Wennberg and Claude Fable 5
2026-07-23 22:36:18 +02:00
4352862845
feat(register): concept scenes 25-31 for the seven register pages (#1131 )
Jakob Wennberg and Claude Fable 5
2026-07-23 22:24:25 +02:00
2175eccddd
feat(salary): concept Löner landing + nav collapse animation (UI migration PR 9) (#1130 )
Jakob Wennberg and Claude Fable 5
2026-07-23 22:17:20 +02:00
658c274d97
feat(supplier-invoices): concept supplier-invoice list (UI migration PR 8) (#1129 )
Jakob Wennberg and Claude Fable 5
2026-07-23 22:09:16 +02:00
323abc57fe
feat(invoices): concept customer-invoice list (UI migration PR 7) (#1128 )
Jakob Wennberg and Claude Fable 5
2026-07-23 21:59:46 +02:00
008b4710d3
feat(granskning): concept review queue (UI migration PR 6) (#1126 )
Jakob Wennberg and Claude Fable 5
2026-07-23 21:51:41 +02:00
7a6f9dd167
fix(transactions): reconcile #1105 's lifted source filter with the account picker (#1134 )
Jakob Wennberg and Claude Fable 5
2026-07-23 21:50:22 +02:00
1ccf7ab81f
feat(transactions): concept shell and row language (UI migration PR 5) (#1124 )
Jakob Wennberg and Claude Fable 5
2026-07-23 21:41:45 +02:00
aa72a75dfc
feat(bookkeeping): concept toolbar, template booking, confirm-first posting (UI migration PR 4) (#1123 )
Jakob Wennberg and Claude Fable 5
2026-07-23 21:37:37 +02:00
5b5ee8e429
feat(ui): shared migration primitives (UI migration PR 3) (#1122 )
Jakob Wennberg and Claude Fable 5
2026-07-23 21:29:36 +02:00
d59e4708cf
feat(nav): concept sidebar with folds, collapse rail, and user menu (UI migration PR 2) (#1133 )
Jakob Wennberg and Claude Fable 5
2026-07-23 21:28:07 +02:00
6b506a9ca8
feat(ui): frame-layout shell, pill buttons, 24px page titles (UI migration PR 1) (#1117 )
Jakob Wennberg and Claude Fable 5
2026-07-23 21:19:12 +02:00
288915c152
Fix/fdb fr usrs (#1125 )
Mattsson and Claude Fable 5
2026-07-23 16:16:55 +02:00
43f7ccab9e
feat(invoices): allow BAS class 1-3 posting-account overrides and complete the aktiekapital note (#1121 )
Mattsson and Claude Fable 5
2026-07-23 12:16:00 +02:00
b0044bfe98
fix(arsredovisning): make the aktiekapital note completable via compa… (#1118 )
Mattsson and Claude Fable 5
2026-07-23 11:41:14 +02:00
466e55a015
Fix/invoice delivery and payment accounts (#1116 )
Mattsson
2026-07-23 09:54:02 +02:00
321e684523
Fix/usr fdbck ch (#1105 )
Mattsson
2026-07-22 18:49:57 +02:00
3e1ea29d02
fix(pending-ops): record posted ids and land failed_partial instead of clean rejected after partial commits (#842 ) (#1110 )
Jakob Wennberg and Claude Fable 5
2026-07-22 18:33:49 +02:00
27ef398623
feat(mcp): briefing returns a recommended tool loadout per workflow (#1098 ) (#1109 )
Jakob Wennberg and Claude Fable 5
2026-07-22 18:31:39 +02:00
25a7261eda
fix(pending-ops): recovery sweep for operations stuck in committing (#843 ) (#1108 )
Jakob Wennberg and Claude Fable 5
2026-07-22 18:30:33 +02:00
8294899543
test(skatteverket): guard LEGACY_DISCOVERY_HOSTS against config drift (#1093 ) (#1107 )
Jakob Wennberg and Claude Fable 5
2026-07-22 18:11:04 +02:00
826513b4fd
fix(tax): representation meal warning inverted the 2017 VAT rule (#313 ) (#1106 )
Jakob Wennberg and Claude Fable 5
2026-07-22 18:09:18 +02:00
4a0b524fbb
fix(categorization): connect card descriptors to counterparty history (#1095 )
Jakob Wennberg and Claude Fable 5
2026-07-22 15:58:45 +02:00
3920c893f4
fix(migrations): adjust retention expiry trigger and validation for fiscal periods (#1104 )
Mattsson
2026-07-22 00:43:46 +02:00
e11f70b347
Bug/gh issues fiz (#1103 )
Mattsson
2026-07-21 23:00:15 +02:00
702512437a
fix(auth): accept 6-10 digit one-time codes on reset page (#1102 )
Jakob Wennberg and Claude Fable 5
2026-07-21 17:30:09 +02:00
aa6d42a167
fix(import): raise statement_timeout on import_sie_journal_entries to 290s (#1101 )
Jakob Wennberg and Claude Fable 5
2026-07-21 16:54:14 +02:00
3cb5ae7716
fix(auth): scanner-proof password reset with button-gated verify and OTP-code fallback (#1100 )
Jakob Wennberg and Claude Fable 5
2026-07-21 16:50:07 +02:00
335d908614
fix(domains,skatteverket): #1087 follow-ups: auth-path redirect exclusions, SKV callback hardening (#1094 )
Jakob Wennberg and Claude Fable 5
2026-07-21 13:48:01 +02:00
e33cc2428d
feat(plugin): official Claude Code plugin with marketplace and seven workflow skills (#1088 )
Jakob Wennberg and Claude Fable 5
2026-07-21 12:59:57 +02:00
b420f3e1d9
feat(domains): dual-domain cutover to app.accounted.se (#1087 )
Jakob Wennberg and Claude Fable 5
2026-07-21 11:39:42 +02:00