2026-05-16-roadmap-gaps-shipped

activetype/changelog

TL;DR

Invoice app shipped roadmap gaps: paidAt validation (UI + PATCH), two-step mark-paid dialogs, /receipt/[id] shareable receipt page, server validation mapped into InvoiceEditor, bulk mark paid on the invoices list, and receipts list Page link + paid-date labeling.

Details

  • API: PATCH /api/invoices/[id] returns 400 + { error, fields[] } when payment date is before invoice date (validatePaidAtForInvoice).
  • UX: MarkPaidDialog (editor + card), BulkMarkPaidDialog (list); markAsPaid hook returns structured MarkInvoicePaidResult for error messages.
  • Routes: App Router /receipt/[id] (ReceiptViewPage) — paid receipts only for full preview; unpaid gets redirect-style messaging + edit link.
  • Docs: Submodule pillars updated (docs/features/roadmap.md, invoice-receipt-flow.md, testing/manual-scenarios.md, utility/api-reference.md, architecture/system-overview.md).

Related

  • [[Projects/lumendev-invoice/lumendev-invoice]]