Difficulty
Advanced epic — minimum 25 files changed. Cross-cutting work across 26 listed paths. Not a single-helper or isolated-test task.
Why this matters
Dashboard is the seller home after create. Stats, filters, empty states, and invoice ordering must be wallet-scoped and demo-ready; raw Horizon feeds must not leak cross-wallet data.
Scope (avoid overlap)
Goal
Dashboard shows only connected wallet invoices with filterable status tabs, per-asset revenue, stable sort, and polished empty/loading/error states.
Tasks
Minimum file touch list (≥25 required)
Contributors must touch at least 25 of these paths (additional files OK):
frontend/app/dashboard/page.tsx
frontend/lib/dashboard-history.js
frontend/lib/dashboard-history.d.ts
frontend/tests/dashboard-history.test.js
frontend/components/InvoiceCard.tsx
frontend/components/PaymentStatus.tsx
frontend/components/WalletConnect.tsx
frontend/lib/api.ts
frontend/lib/store.ts
frontend/lib/utils.ts
frontend/app/layout.tsx
backend/src/storage/invoice-stats.ts
backend/src/routes/invoice.handlers.ts
backend/src/routes/invoice.routes.ts
backend/src/services/invoice-memory.service.ts
backend/src/storage/memory-storage.ts
backend/src/storage/memory-invoice-storage.ts
backend/tests/invoice-handlers.test.ts
backend/tests/invoice-service.test.ts
backend/tests/memory-storage.test.ts
backend/src/types/api.ts
frontend/tests/pay-page-status-matrix.test.js
README.md
frontend/app/page.tsx
frontend/components/InvoiceForm.tsx
backend/src/server-mvp.ts
Acceptance
- Dashboard shows only connected wallet invoices with filterable status tabs, per-asset revenue, stable sort, and polished empty/loading/error states.
- No regressions in create → pay → verify → proof → dashboard loop.
- Backend and/or frontend tests updated and passing.
- English-only user strings and comments.
- PR changes ≥25 files from the list above.
Key areas
dashboard overhaul
Difficulty
Advanced epic — minimum 25 files changed. Cross-cutting work across 26 listed paths. Not a single-helper or isolated-test task.
Why this matters
Dashboard is the seller home after create. Stats, filters, empty states, and invoice ordering must be wallet-scoped and demo-ready; raw Horizon feeds must not leak cross-wallet data.
Scope (avoid overlap)
Goal
Dashboard shows only connected wallet invoices with filterable status tabs, per-asset revenue, stable sort, and polished empty/loading/error states.
Tasks
Minimum file touch list (≥25 required)
Contributors must touch at least 25 of these paths (additional files OK):
frontend/app/dashboard/page.tsxfrontend/lib/dashboard-history.jsfrontend/lib/dashboard-history.d.tsfrontend/tests/dashboard-history.test.jsfrontend/components/InvoiceCard.tsxfrontend/components/PaymentStatus.tsxfrontend/components/WalletConnect.tsxfrontend/lib/api.tsfrontend/lib/store.tsfrontend/lib/utils.tsfrontend/app/layout.tsxbackend/src/storage/invoice-stats.tsbackend/src/routes/invoice.handlers.tsbackend/src/routes/invoice.routes.tsbackend/src/services/invoice-memory.service.tsbackend/src/storage/memory-storage.tsbackend/src/storage/memory-invoice-storage.tsbackend/tests/invoice-handlers.test.tsbackend/tests/invoice-service.test.tsbackend/tests/memory-storage.test.tsbackend/src/types/api.tsfrontend/tests/pay-page-status-matrix.test.jsREADME.mdfrontend/app/page.tsxfrontend/components/InvoiceForm.tsxbackend/src/server-mvp.tsAcceptance
Key areas
dashboard overhaul