0ad83b8d71
feat(parties): the register fills the row, a compact Företagsuppgifter, and the party for agents (v1 expand + MCP) (#2315)
Jakob Wennberg
2026-09-05 14:33:20 +02:00
f33628f005
feat(import): say in the SIE wizard that the chart and fiscal year come along (#2307)
Mattsson
2026-09-05 13:56:54 +02:00
04898c3178
feat(parties): company details on the supplier and customer pages, the registry name becomes the displayed name (#2306)
Jakob Wennberg
2026-09-05 13:43:34 +02:00
f7f40c04e4
fix: return provider OAuth callbacks to the initiating brand domain (#2305)
Mattsson
2026-09-05 13:35:11 +02:00
287828a850
fix(payments): refuse to book a bank row that unlinked vouchers already explain (#2300)
Jakob Wennberg
2026-09-05 11:59:59 +02:00
9418de585f
fix(invoices): say what is missing when an invoice preview cannot be rendered (#2303)
Mattsson
2026-09-05 11:55:45 +02:00
34bf5a7387
fix(providers): Fortnox freight and fee as rows, text rows as text, string quantities as numbers (#2304)
Jakob Wennberg
2026-09-05 11:41:17 +02:00
e80ea74e76
fix(providers): map Fortnox VAT-inclusive rows net of VAT, and refuse migrated rows that contradict their header (#2302)
Jakob Wennberg
2026-09-05 10:53:48 +02:00
7c36d471b5
fix(sandbox): use posting engine and recover failed seeds (#2297)
Mattsson
2026-09-05 10:42:14 +02:00
8e1f9d5201
fix(migration): complete the rows of migrated sales invoices the hydration budget did not reach (#2291)
Jakob Wennberg
2026-09-05 10:20:10 +02:00
0bd3c27fba
fix(assistant): the salary fact follows the ledger, never the column default (#2290)
Jakob Wennberg
2026-09-05 09:49:21 +02:00
e684606b23
fix(supplier-invoices): a credit note is never a payable, so it never waits for attest (#2289)
Jakob Wennberg
2026-09-05 09:43:00 +02:00
1e1e1d5d17
fix(enable-banking): connector-hop failures no longer park a connection in error (#2296)
Mattsson
2026-09-05 00:28:27 +02:00
abaab1bf8d
fix(settings): show series names in the verifikationsserie per typ picker (#2295)
Mattsson
2026-09-04 23:33:48 +02:00
a870c7f03e
fix(import): attach underlag by the basename of a folder-picked upload (#2288)
Jakob Wennberg
2026-09-04 19:14:33 +02:00
9618bab273
fix(bookkeeping): a following year's own IB no longer blocks nollställ, and a re-dated räkenskapsår gets the right name (#2286)
Jakob Wennberg
2026-09-04 18:49:23 +02:00
db289e3bdc
fix(payments): lock supplier payment batch inserts to the RPC and log the raw error behind create_failed (#2282)
Jakob Wennberg
2026-09-04 17:19:18 +02:00
68fee7dbe7
fix(supplier-invoices): fit the list inside the content column (#2262) (#2281)
Jakob Wennberg
2026-09-04 17:18:50 +02:00
88a3b5fb0f
fix(arcim): count already-linked invoices as done in the registration-link row (#2276)
Jakob Wennberg
2026-09-04 17:18:22 +02:00
1976129478
feat(import): let the Fortnox import fetch older fiscal years: the three-year limit becomes a default selection (#2280)
Jakob Wennberg
2026-09-04 17:14:49 +02:00
7a9036caa6
fix(kontoplan): remove the per-class active counter (#2273)
Jakob Wennberg
2026-09-04 17:14:21 +02:00
f96a445d88
fix(sjalvfaktura): name the arrival date so it is not read as payment date (#2272)
Jakob Wennberg
2026-09-04 17:13:52 +02:00
743e3ae7cc
fix(invoices): bank match stores the applied amount, not cash received, in invoice_payments (#2277)
Jakob Wennberg
2026-09-04 17:13:29 +02:00
2d927349d3
fix(payroll): enforce the jamkning both-dates invariant with a CHECK constraint (#2279)
Jakob Wennberg
2026-09-04 17:01:34 +02:00
c6ca119e73
feat(parties): one suggestion per legal person, rename on rebuild, review list for SCB matches, model reading for memos (#2274)
Jakob Wennberg
2026-09-04 17:01:10 +02:00
be0478c219
fix(bokslut): kontantmetod cut-off treats the ROT/RUT share as settled on 1513 (#2278)
Jakob Wennberg
2026-09-04 17:01:06 +02:00
6a68ecb4d4
fix(mfa): hard-navigate after TOTP verify, same race as #1984 on enroll (#2275)
Jakob Wennberg
2026-09-04 17:00:39 +02:00
417abfbe1f
docs(claude): fix from first principles before implementing a proposed solution (#2283)
Jakob Wennberg
2026-09-04 16:58:04 +02:00
d463ee1c87
feat(supplier-invoices): payment-queue sections and a grouping picker (#2102)
Joakim Hansson
2026-09-04 16:44:54 +02:00
304b50b5eb
feat(invoices): grouped sections and a grouping picker on the customer invoice list (#2101)
Joakim Hansson
2026-09-04 16:44:49 +02:00
50b6299699
feat(rot-rut): match Skatteverket's payout against the begäran from the bank row (#2271)
Mattsson
2026-09-04 14:33:41 +02:00
82859d01db
feat(parties): name the company inside a voucher text, and stop asking SCB about foreign ones (#2265)
Jakob Wennberg
2026-09-04 13:43:41 +02:00
7240bfe7f3
fix(mcp): supplier-invoice-from-inbox resolves FX through the shared resolver, with the cache and an override (#2173)
Jakob Wennberg
2026-09-04 09:47:16 +02:00
227a6317f1
fix(import): label the SIE preview IB total as "summa debet", not "IB Summa" (#2142)
Jakob Wennberg
2026-09-04 09:42:41 +02:00
67e878fb23
fix(mcp): reject unparseable voucher lines and allocation kinds; already-booked and unlinkable say why; N:1 reconcile groups survive staging (#2171)
Jakob Wennberg
2026-09-04 09:27:26 +02:00
f767977bf5
docs(decisions): Accounted Connect runs as a separate private service (Option A) (#2197)
Jakob Wennberg
2026-09-04 09:12:32 +02:00
01d903d3a3
fix(mcp): link_document_to_voucher marks the inbox item handled; document lists stop misleading agents (#2170)
Jakob Wennberg
2026-09-04 08:57:53 +02:00
bac9e01e2d
fix(arcim): offer the company's own accounts as mapping targets (#2164)
Pierre Grönberg
2026-09-04 08:56:56 +02:00
158108ec01
fix(bank): keep other companies' accounts out of the EB account picker (#2141)
Mattsson
2026-09-04 08:54:50 +02:00
11017ef9ee
build(deps-dev): bump @humanfs/node from 0.16.7 to 0.16.8 (#2192)
dependabot[bot]
2026-09-04 08:52:18 +02:00
91e2c66afc
fix(parties): readable suggestions from assistant vouchers, auto-build queue, SCB fetch after promotion (#2259)
Jakob Wennberg
2026-09-03 21:19:12 +02:00
d670fe6663
feat(invoices): named payee accounts and per-invoice choice of bank account (#2233)
Mattsson
2026-09-03 21:06:45 +02:00
88a5d78594
fix(inbox): trace every received mail and file multi-recipient mail once per inbox (#2181) (#2244)
Mattsson
2026-09-03 20:47:24 +02:00
b07efcafd4
fix(payroll): require jamkning valid_to on every write path (#2058) (#2240)
Mattsson
2026-09-03 20:22:41 +02:00
22b98e0a3b
feat(parties): fetch registry facts from SCB into the dossier, with a picker for parties without an org number (#2258)
Jakob Wennberg
2026-09-03 20:16:59 +02:00
47c73206e1
chore(parties): move party_decision_undo past a same-version migration merged tonight (#2257)
Jakob Wennberg
2026-09-03 20:08:31 +02:00
34b677b02c
chore(ui): retire the Building2 icon app-wide (#2235)
Jakob Wennberg
2026-09-03 20:02:14 +02:00
b996da60ee
feat(parties): Förslag från bokföringen, confirmed straight into Leverantörer and Kunder (#2206)
Jakob Wennberg
2026-09-03 19:49:25 +02:00
e2d38b0ab3
fix(invoices): record manual and Stripe settlements in invoice_payments (#2236)
Mattsson
2026-09-03 19:42:43 +02:00
3159920d7c
fix(customers): re-issue the country backfill skipping migration-reset source companies (#2249)
Mattsson
2026-09-03 19:39:56 +02:00
a48508e5b0
feat(dimensions): show the value's name after picking, and let an unused custom dimension be deleted (#2219) (#2255)
Jakob Wennberg
2026-09-03 19:20:09 +02:00
2c3ffaf51c
feat(invoices): offer proforma where the invoice is created (#2217) (#2254)
Jakob Wennberg
2026-09-03 18:56:14 +02:00
c3b7e79af8
fix(errors): show a route's Swedish message even without a keyword match (#2086) (#2253)
Jakob Wennberg
2026-09-03 18:55:33 +02:00
5070041028
fix(import): name the IB-imbalance cause and offer the manual opening-balance path (#2082) (#2252)
Jakob Wennberg
2026-09-03 18:55:09 +02:00
1150930cb9
fix(customers): allow 0-day payment terms and say why the field is invalid (#2070) (#2251)
Jakob Wennberg
2026-09-03 18:54:28 +02:00
5eac2a492c
fix(enable-banking): stop reading every ASPSP_ERROR as a too-wide window (#2202) (#2247)
Jakob Wennberg
2026-09-03 18:43:01 +02:00
0c82db88da
fix(settings): say on the Danger zone rows that a typed confirmation follows (#2214) (#2245)
Jakob Wennberg
2026-09-03 18:42:20 +02:00
e66195e5bb
fix(branding): render tenant logos unoptimized so self-hosted sidebars work (#2203) (#2246)
Jakob Wennberg
2026-09-03 18:41:40 +02:00
cc18e9d530
fix(bookkeeping): let a backfilled first räkenskapsår start mid-month (#2237) (#2242)
Jakob Wennberg
2026-09-03 18:41:14 +02:00
d69de86b71
fix(reports): count reversed originals in the KPI monthly breakdown (#2201) (#2243)
Jakob Wennberg
2026-09-03 18:21:00 +02:00
3918ff6620
fix(customers): make country ISO-2 everywhere and check it against the customer type (#2241)
Mattsson
2026-09-03 18:09:46 +02:00
80b87c55fc
fix(skatteverket): treat AGI kvittens gateway refusals as errors and name the connector operator (#2234)
Mattsson
2026-09-03 17:47:02 +02:00
cb39cded81
fix(payroll): declare AGI for the payout month, not the run's period month (#2191) (#2228)
Jakob Wennberg
2026-09-03 17:19:19 +02:00
601e521584
feat(kontoplan): filter the Verifikat column and inactivate unused accounts in bulk (#2186) (#2231)
Jakob Wennberg
2026-09-03 17:18:08 +02:00
1e91c126ff
fix(worklist): count unbooked skattekonto rows in the Att göra badge and Hem list (#2180) (#2227)
Jakob Wennberg
2026-09-03 17:17:41 +02:00
aeff998b90
feat(import): folder pick for underlag attach (#2189) (#2230)
Jakob Wennberg
2026-09-03 17:17:25 +02:00
9a25672dcb
fix(import): stop the per-file model pass and parallelize underlag-to-verifikat attach (#2188) (#2229)
Jakob Wennberg
2026-09-03 17:16:50 +02:00
bc5da12372
fix(mcp-oauth): allowlist Cursor's OAuth callbacks so its dynamic registration succeeds (#2225)
Mattsson
2026-09-03 15:33:58 +02:00
d900fea1a8
feat(connect): Skatteverket data calls through the connector with a per-company canary (#2209)
Jakob Wennberg
2026-09-03 14:41:11 +02:00
65bd675f43
fix(auth): unlink social identities bound to the old address when the login email changes (#2208)
Mattsson
2026-09-03 14:25:32 +02:00
fefef038c5
fix(sales-orders): pin the sales_order_items embed FK and teach the embed guard composite keys (#2207)
Mattsson
2026-09-03 12:18:47 +02:00
4c6feea64d
feat(connect): bank sync through the connector operation, with a per-company canary (#2205)
Jakob Wennberg
2026-09-03 11:06:47 +02:00
828628d882
fix(auth): land stock email-change links on the status page and stop retries voiding pending mails (#2199)
Mattsson
2026-09-03 10:55:12 +02:00
51b68afc87
fix(reconciliation): judge bank sign-off from the fiscal period start and show the refusal (#2200)
Mattsson
2026-09-02 23:11:42 +02:00
c72b8bcee1
feat(kpi): show every month's result in the Resultat per månad pane (#2198)
Mattsson
2026-09-02 22:43:11 +02:00
1c82baf553
feat(invoices): offert (quote) document type with own OF-series, decisions, conversion, MCP and v1 (#2163)
Mattsson
2026-09-02 22:40:25 +02:00
3f9a21c64d
refactor(connect): validate the Peppol connector with the shared contract schemas (#2193)
Jakob Wennberg
2026-09-02 21:08:49 +02:00
f31eeaa603
feat(connect): Peppol through the connector (hosted proxy, instance transport, ownership ledger) (#2177)
Jakob Wennberg
2026-09-02 20:57:57 +02:00
fcfa1ba974
feat(connect): extract the connector wire contract into packages/connect-contract (#2179)
Jakob Wennberg
2026-09-02 20:57:47 +02:00
8c8996773f
chore(connect): provider-host ratchet in check:guards, drop the dead Arcim gateway client (#2178)
Jakob Wennberg
2026-09-02 20:57:37 +02:00
c0ecf2fa3b
feat(parties): merge with survivor choice and 30-day undo (#2175)
Jakob Wennberg
2026-09-02 18:18:35 +02:00
fc04578818
feat(parties): suggestion pipeline from ledger keys and linked documents (#2172)
Jakob Wennberg
2026-09-02 18:18:12 +02:00
c0818bb2d2
feat(sales-orders): kundorder with partial delivery and partial invoicing (#2166)
Mattsson
2026-09-02 18:14:49 +02:00
c40e63e3f7
fix(parties): skip companies frozen by a migration reset in the party backfill (#2176)
Jakob Wennberg
2026-09-02 18:14:32 +02:00
a24982463b
fix(parties): skip nameless suppliers and customers in the party backfill (#2174)
Jakob Wennberg
2026-09-02 17:57:34 +02:00
daeab67dca
feat(parties): phase 1 substrate, one party per counterpart (#2162)
Jakob Wennberg
2026-09-02 17:43:06 +02:00
69d3bba587
feat(parties): selection-step evaluation against document-anchored truth (#2169)
Jakob Wennberg
2026-09-02 17:38:20 +02:00
5291806c37
feat(parties): observed parties from voucher text, ledger_key and its mirror (#2168)
Jakob Wennberg
2026-09-02 17:33:30 +02:00
b68c082ef5
feat(bank-sync): close the F2 report: gap backfill, consent and paused chip states, agent-triggered sync (#2165)
Mattsson
2026-09-02 17:17:41 +02:00
723a0f537b
feat(parties): shadow evaluation of the key pre-classifier (#2161)
Jakob Wennberg
2026-09-02 17:13:52 +02:00
a80ce54b78
fix(mcp): eager-auth flag on the Grok connector links so Grok starts OAuth (#2167)
Mattsson
2026-09-02 16:55:23 +02:00
f1230282a9
feat(bookkeeping): verifikationsserie per bankkonto for bank-transaction bookings (#2160)
Mattsson
2026-09-02 15:25:34 +02:00
678acfe7ef
fix(mcp): eager-auth flag so claude.ai's connector dialog detects OAuth, not "None" (#2159)
Jakob Wennberg
2026-09-02 14:51:32 +02:00
6a85efb00a
feat(mcp): allowlist Grok's connector callback and document the Grok path (#2158)
Mattsson
2026-09-02 14:42:39 +02:00
61a76b1669
feat(parties): phase 0 prerequisites, pg_trgm and golden-set draw (#2157)
Jakob Wennberg
2026-09-02 14:33:45 +02:00
f266c386f3
chore: repo-wide bloat sweep, remove dead code and fold duplicate helpers (#2150)
Jakob Wennberg
2026-09-02 11:51:16 +02:00