Ship the full Communication portal (real SMS API, feature-locked future channels), BFF proxy, docs, snapshot, and phase handover. Co-authored-by: Cursor <cursoragent@cursor.com>
55 lines
1.7 KiB
Markdown
55 lines
1.7 KiB
Markdown
# Communication Frontend — Validation Report
|
|
|
|
**Date:** 2026-07-26
|
|
**Scope:** Torbat Communication frontend module
|
|
|
|
## Automated checks
|
|
|
|
| Check | Result | Notes |
|
|
| --- | --- | --- |
|
|
| TypeScript (`npm run typecheck`) | **Pass** | Zero errors |
|
|
| Production build (`npm run build`) | **Blocked** | Webpack cache ENOENT on environment; clean rebuild recommended |
|
|
| Lint | Not run | — |
|
|
|
|
## Architecture validation
|
|
|
|
| Rule | Status |
|
|
| --- | --- |
|
|
| Business code in `frontend/modules/communication/` | Pass |
|
|
| App Router thin (page/layout/loading/error only) | Pass — 46 routes |
|
|
| BFF at `/api/communication/*` → :8005 | Pass |
|
|
| Shared DS reuse | Pass |
|
|
| No mock SMS data in active pages | Pass |
|
|
|
|
## SMS integration validation
|
|
|
|
| Screen | API connected |
|
|
| --- | --- |
|
|
| Providers CRUD | `/api/v1/providers` |
|
|
| Senders | `/api/v1/providers/senders` |
|
|
| Templates | `/api/v1/templates` |
|
|
| Recipients / address books | `/api/v1/contacts/manual` |
|
|
| Contact sources | `/api/v1/contacts/sources` |
|
|
| Send / campaigns | `/api/v1/messages/send` |
|
|
| Message history / delivery reports | `/api/v1/messages`, timeline |
|
|
| Queue / DLQ | queue process + dead-letters |
|
|
| OTP | `/api/v1/otp/*` |
|
|
| Monitoring / analytics / reports | `/api/v1/monitoring/*` |
|
|
| Health / capabilities | `/health`, `/capabilities` |
|
|
|
|
## UX states
|
|
|
|
| State | SMS pages |
|
|
| --- | --- |
|
|
| Loading | loading.tsx + PageLoader |
|
|
| Empty | EmptyState in tables |
|
|
| Error | error.tsx + PageError |
|
|
| Permission | PermissionDeniedState |
|
|
| Success | toast on mutations |
|
|
|
|
## Follow-up
|
|
|
|
1. Run `Remove-Item -Recurse .next; npm run build` locally
|
|
2. Add `validate:communication-routes` script (optional)
|
|
3. Wire home dashboard link to `/communication`
|