Skip to content

Implementation Backlog ​

Prioritized engineering backlog derived from roadmap phases and live test findings. Update as items complete.

P0 — Safety / correctness ​

  • [ ] Finish OUTGOING_INVOICE readback strategy — alternate probes (getPaymentTransactions, getAbstractDocument) when getUnpaidSumForAGivenInvoice lags
  • [x] Verify anomaly creation from PASS_WRITE/FAIL_RECONCILE case — verified 2026-06-19 (report)
  • [x] Block repeat write on open critical anomaly — API retry gate + UI disabled buttons
  • [ ] Add BackOffice verification workflow UX — API exists; operator procedure and UI polish
  • [ ] Confirm transaction type guard for write responses — OUTGOING_DOCUMENT_PAYMENT assertion in facade
  • [ ] Tune reconciliation backoff — validate ReadbackRetryDelaysSeconds against live iiko lag
  • [ ] Separate optimistic after from liveReadback in all evidence consumers (document for operators)
  • [ ] Add payment.anomalies.manage and notifications.view to Accountant seed role
  • [ ] Repeat PASS_WRITE + PASS_RECONCILE in test after readback fix

P1 — Multi-tenant foundation ​

  • [ ] Organization entity + API + migrations
  • [ ] Location entity + API + migrations
  • [ ] OrganizationQuota entity + enforcement
  • [ ] Scoped UserRoleAssignment (user + role + org + optional location)
  • [ ] Target roles: MegaAdmin, MegaManager, OrganizationAdmin, LocationAdmin (map from current Admin)
  • [ ] Ownership fields on: BankStatementImport, SyrveConnection, SyrveDocumentSnapshot, PaymentAllocation, SyrvePaymentPosting
  • [ ] Scope-aware API filters on all list/query endpoints
  • [ ] Quota enforcement on location/user/connection creation
  • [ ] Migrate nullable OrganizationId/LocationId on PaymentAnomaly, AppNotification to required where applicable

P2 — Product UX ​

  • [ ] Allocation UI hardening — partial payment, overpayment warnings, manual line edit
  • [ ] Payment anomaly dashboard — filters, severity, link to posting/evidence
  • [ ] Notification center UX — mark read, deep links, severity grouping
  • [ ] Syrve connection wizard — credential mode, health, bridge status in one flow
  • [ ] Posting detail — preflight status, attempt history, evidence tabs (before/live/optimistic)
  • [ ] Dashboard "requires attention" widgets — open anomalies, failed imports, unreconciled postings
  • [ ] Import list quality indicators — adapter confidence, parse warnings
  • [ ] Russian/operator copy review across statusMessages.ts

P3 — Bank adapters ​

  • [x] docs/docs/architecture/bank-statement-parsing.md
  • [x] Permata adapter (CSV/TXT/MT940-like) — Beta
  • [x] Corporate explicit debit/credit CSV adapter — Beta
  • [x] Multi-account CR/DB CSV adapter — Beta
  • [x] Duplicate bank reference detection across imports
  • [x] Counterparty extraction improvements per format (heuristics)
  • [x] Adapter fixture test suite with sanitized samples
  • [x] Import quality report API + UI
  • [ ] Duplicate review actions in operator workflow (confirm/dismiss wired; bulk review pending)
  • [ ] Live pilot validation on production bank exports

P4 — Production readiness ​

  • [ ] Production posting authorization/procedure by organization and Outlet (without capability flags)
  • [ ] Confirm deprecated DB capability columns are ignored across API/UI/runtime
  • [ ] Owner approval record for production pilot
  • [ ] Production write monitoring / alerts
  • [ ] Rollback and manual correction runbook
  • [ ] Backup/restore notes for Pay DB + evidence
  • [ ] Support/admin diagnostics page (connection health, worker status, flags)
  • [ ] Deployment runbook for test vs production Syrve profiles
  • [ ] Integration test: scoped user cannot see other org data
  • [ ] Full audit coverage review for payment write path

P5 — Nice to have ​

  • [ ] Name matching ML/synonym expansion beyond rules
  • [ ] Bulk allocation from multi-transaction import
  • [ ] Export reconciliation report PDF/CSV
  • [ ] Playwright screenshots for docs portal
  • [ ] Optional codegraph MCP in CI (developer tooling only)
  • [ ] Webhook notifications (Slack/email) in addition to in-app
  • [ ] Document sync selective filters per location department

Completed (reference) ​

  • Method-specific write preflight (ISyrvePaymentWritePreflightService)
  • IikoConnector Pay host DI subset (AddIikoConnectorForPayHost)
  • Auth diagnostics in connection health API
  • Evidence typed JSON via SyrvePostingEvidenceJson / PayJsonSerializer
  • Anomaly + notification creation on reconcile failure
  • Retry API block when open critical anomaly