* chore(scripts): add prod repair scripts for Arcim and Capelix incidents
Two idempotent, dry-run-by-default repair scripts, committed for the audit
trail (matching the existing scripts/repair-*.ts convention). Neither runs
automatically — applying requires an explicit --execute/--commit flag.
- repair-arcim-supplier-payments.ts: Arcim Technology AB (2026-06-11). Two
supplier invoices left in inconsistent half-states (swallowed
AccountsNotInChartError on 3740; bank-sync auto-link without a booked
payment) plus expense booked on 5010 instead of 5420/6580. Runs through the
real engine (createJournalEntry/correctEntry) so voucher numbering and
balance triggers behave as in-app; every step checks its precondition.
- repair-capelix-invoice-payment.ts: Capelix AB invoice-001 double-booking
(2026-05-29), root-caused to the invoiceAlreadyBooked dead-column read fixed
in PR #713. Storno-only per BFL/BFNAR 2013:2: reverse the wrong cash entry,
post the correct 1930/1510 clearing entry, relink the bank tx + payment row.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* chore(scripts): scope Capelix invoice_payments relink to company_id
Address review (PR Agent + compliance swarm): the Step 3b invoice_payments
update filtered on journal_entry_id only; add .eq('company_id', COMPANY_ID) to
match the sibling transactions update directly above it (tenant isolation /
defense-in-depth). invoice_payments carries company_id (multi-tenant refactor).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>