From 83f12685c470adc95d93a90aa0b4987f90358817 Mon Sep 17 00:00:00 2001 From: Thomas Joise Date: Fri, 17 Jul 2026 16:00:02 +0530 Subject: [PATCH] =?UTF-8?q?docs:=20record=20ideal-web-app=20pass=20deliver?= =?UTF-8?q?ed=20=E2=80=94=20346=20tests,=20Settings=20hub=20row,=20spec=20?= =?UTF-8?q?stamped?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- CLAUDE.md | 4 ++-- README.md | 2 +- STATUS.md | 6 +++--- docs/superpowers/specs/2026-07-17-ideal-web-app-design.md | 5 +++++ 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 3509cc6..ad2124f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -43,7 +43,7 @@ distilled to what applies to HQ. A change that breaks one does not land. | Append-only audit | Every mutation calls `writeAudit(db, userId, action, entity, id, before, after)` in the **same transaction** as the change. The audit log is append-only — never update or delete rows. Previews and the public share route write nothing. | `audit.ts` | | Client id is the future tenant id | `client.id` is a client-generated UUIDv7 that becomes `tenant_id` when the cloud tier stands up — same rows, promoted once. Never re-key clients. | `repos-clients.ts` | | No silent caps | Every list that can grow paginates or warns; never silently truncate. | reports, directory queries | -| Strict TS, green before landing | Strict TypeScript everywhere; `npm run typecheck` and `npm test` both clean before anything lands. Money math is locked by tests — a rounding change without a test change does not land. | `tsc`, vitest (345 tests) | +| Strict TS, green before landing | Strict TypeScript everywhere; `npm run typecheck` and `npm test` both clean before anything lands. Money math is locked by tests — a rounding change without a test change does not land. | `tsc`, vitest (346 tests) | ## Running it @@ -63,7 +63,7 @@ cd apps/hq-web && npm run dev - Env: `HQ_DATA_DIR` (DB location), `SIMS_PIN_PEPPER` (set once, never change), `HQ_SECRET_KEY` (before Gmail), `GOOGLE_*` (Gmail), `AWS_*` (Cost Explorer), `HQ_PORT` (default 5182). - Health check: `GET /api/health` → `{ ok: true }`. -- Verified state: `npm install` + typecheck clean, 345 tests pass. Exercise real flows end +- Verified state: `npm install` + typecheck clean, 346 tests pass. Exercise real flows end to end before claiming done. ## Docs (kept in `docs/`) diff --git a/README.md b/README.md index 4db6bcf..567e149 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ document and conversation we've had with them. ## Build state (start here) -Working codebase, not a plan. `npm install` + typecheck are clean and **345 tests pass**. +Working codebase, not a plan. `npm install` + typecheck are clean and **346 tests pass**. Current state and run-vs-pending detail live in **[STATUS.md](STATUS.md)**; the go-live runbook (server, HTTPS, backups, Gmail/AWS/import wiring, the Postgres switch) is in **[docs/DEPLOY-HQ.md](docs/DEPLOY-HQ.md)**. diff --git a/STATUS.md b/STATUS.md index 3dcf798..d8d76e1 100644 --- a/STATUS.md +++ b/STATUS.md @@ -25,9 +25,9 @@ section-per-module quotation PDF — then closed all 8 findings from its review. | --- | --- | | `npm install` | clean | | `npm run typecheck` (root + workspaces) | clean, no errors | -| `npm test` (`vitest run`) | **345 tests pass across 66 files** | +| `npm test` (`vitest run`) | **346 tests pass across 66 files** | -The 345 figure is the live `vitest run` count measured 2026-07-17, after the +The 346 figure is the live `vitest run` count measured 2026-07-17, after the D18 go-live cluster **and its post-delivery review pass** (8 reviewer findings — convert-and-send click bubbling, importer support-field mapping, Pipeline convert parity, client-book filters, typed contact roles, due-date anchors on @@ -267,7 +267,7 @@ command palette, Gmail status pill, theme/accent switcher and a user menu | `/documents` | `Documents` | Register of every document, newest first: type chips + status filter, honest server pagination with true totals, one-click confirmed **Convert & send** on issued proformas | | `/documents/new` | `NewDocument` | Quotation-in-minutes composer: client type-ahead, line editor, server-computed GST, due-date field on invoices (auto-filled from terms, editable), and a live PDF-fidelity preview (desktop split view / mobile sheet) | | `/documents/:id` | `DocumentView` | Document page: PDF preview, state-driven action bar (issue / send / mark / convert / cancel / credit note / record payment), share & download group (copy link / WhatsApp / native share / revoke), event timeline and email log | -| `/settings/template` | `DocumentTemplate` | Owner-only letterhead editor (company + boilerplate + titles + logo) with a live sample preview | +| `/settings` | `Settings` | Settings hub (Pinterest-style left rail, `?s=` deep-links): Company profile · Document template (live preview) · Reminders (dated cadence rows, append-only) · Sharing default expiry · Integrations status · Appearance. Owner-only except Appearance; `/settings/template` redirects here | | `/employees` | `Employees` | Owner-only staff management: add / edit / re-role / reset password / deactivate / reactivate, surfacing the last-owner and self-deactivation guards | | `/profile` | `Profile` | Self-service: edit display name/phone (email + role read-only), change own password (current password required; other sessions purged) | | `/import` | `ImportApex` | Owner-only APEX cutover: CSV pickers → staged rows with per-row problem chips → verification summary → commit locked until zero problems | diff --git a/docs/superpowers/specs/2026-07-17-ideal-web-app-design.md b/docs/superpowers/specs/2026-07-17-ideal-web-app-design.md index db27b5b..554bc08 100644 --- a/docs/superpowers/specs/2026-07-17-ideal-web-app-design.md +++ b/docs/superpowers/specs/2026-07-17-ideal-web-app-design.md @@ -1,5 +1,10 @@ # "Ideal Web App" Pass — Edit Everywhere, Dialogs, Toasts, Settings Hub +> **STATUS: DELIVERED 2026-07-17.** All 10 plan tasks landed (dialog/toast kit, edit +> dialogs everywhere, send composer, /settings hub, favicon/titles); e2e-walked live and +> hardened by a 63-agent adversarial review — 27 confirmed findings fixed (2 deferred: +> billing-terms edit UI, dynamic record tab titles). Suite green at 346 tests. + *Approved 2026-07-17 (Approach A). Fixes the six gaps that keep the console feeling like a wireframe despite the D17 restyle: no record editing, browser `window.prompt/confirm` popups, silent success, no Settings home, inline wireframe forms, no favicon. Visual