fix(reconciliation): Bankavstämning phase 0 — correctness + feedback batch (+ nav IA regrouping) (#879)
* feat(nav): interaction-mode sidebar grouping — Arbeta/Analys/Data/Skatt & bokslut Nav IA redesign phase 0 (dev_docs/nav_ia_redesign.md): same routes, regrouped by what the user is doing. CLAUDE.md restructured around Hard Rules (doc references updated); pending-page explainer removed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(reconciliation): correctness + feedback batch for Bankavstämning (phase 0) Engine: fetchAllRows pagination on status/run/RPC fetches (silent 1000-row cap corrupted totals), optimistic-lock guards on manualLink + apply, unlink audit rows attributed to the acting user (was: company UUID), selected_matches partial apply intersected with a fresh match run. View: silent in-place refresh instead of a full-page skeleton per action, checkbox-gated apply with confidence badges (fuzzy unticked) in chunks of 500, honest result toasts, dry-run errors surfaced, ranked per-row picker candidates pinned to the applied date window, currency-correct amounts (bank side in account currency, GL side SEK), voucher links, translated source types, colored differens, dirty-date-filter guard. Discovery: year-end preflight 404 href fixed (/reconciliation/bank never existed), ⌘K palette entry, real links from the transactions page. v1: status registry schema now matches the actual ReconciliationStatus payload, errors documented as a count, false ~0.85-threshold pitfall replaced, route test mocks the real shape. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
59ecaee650
commit
ea236cbcdf
+7
-6
@@ -93,15 +93,18 @@
|
||||
"expenses": "Expenses",
|
||||
"receipts": "Receipts",
|
||||
"deadlines": "Deadlines",
|
||||
"vat_declaration": "VAT",
|
||||
"skattekonto": "Tax account",
|
||||
"year_end": "Year-end",
|
||||
"pending": "Pending",
|
||||
"help": "Help",
|
||||
"extensions": "Extensions",
|
||||
"settings": "Settings",
|
||||
"group_main": "Main",
|
||||
"group_sales": "Sales",
|
||||
"group_purchases": "Purchases",
|
||||
"group_personnel": "Personnel",
|
||||
"group_accounting": "Accounting",
|
||||
"group_work": "Work",
|
||||
"group_analysis": "Analytics",
|
||||
"group_data": "Data",
|
||||
"group_tax": "Tax & year-end",
|
||||
"group_other": "Other",
|
||||
"group_extensions": "Extensions",
|
||||
"mitt_konto": "My account",
|
||||
@@ -279,8 +282,6 @@
|
||||
"origin_mcp": "Suggested by an AI assistant via {label}",
|
||||
"origin_api": "Suggested via API integration",
|
||||
"origin_cron": "Created by a scheduled job",
|
||||
"explainer": "Approve executes the bookkeeping operation. Reject just discards the proposal — nothing is booked.",
|
||||
"auto_expiry_note": "Unhandled proposals expire automatically after 30 days — doing nothing is safe.",
|
||||
"badge_auto_expired": "Expired automatically",
|
||||
"auto_expired_detail": "Expired automatically after 30 days without action. Nothing was booked."
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user