docs(d29,d30): log the cockpit/theming + Home-hub/nav decisions

- 06-DECISIONS.md: add D29 (cockpit Dashboard + palette axis Warm/Slate/
  Graphite/Zinc + Geist font) and D30 (Home hub landing + 6-group sidebar
  reorg + section count badges + per-module client count).
- CLAUDE.md: refresh the frontend page list (Home is the landing, Dashboard
  at /dashboard) and note the palette/font theme system.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat/client-detail-redesign
Thomas Joise 3 days ago
parent 79717133b8
commit 583b663aa6

@ -17,7 +17,7 @@ dashboard, an append-only audit log, an APEX importer, and a scheduler.
| Part | Where | Notes |
|---|---|---|
| Backend | `apps/hq/src` | Express over `better-sqlite3`, DB at `data/hq.db` (WAL) |
| Frontend | `apps/hq-web/src` | React + Vite; pages Dashboard (My Day) / Pipeline / Reminders / Clients / ClientDetail / Documents / NewDocument / DocumentView / Modules / Reports / Employees (owner-only) / Profile / APEX Import (owner-only) / Settings |
| Frontend | `apps/hq-web/src` | React + Vite. **Home** card launcher is the landing (`/`); Dashboard (My Day) is at `/dashboard` (D30). Pages: Home / Dashboard / Pipeline / Reminders / Tickets / Onboarding / Clients / ClientDetail / Documents / NewDocument / DocumentView / Renewals / Modules / Module data / Portals / Reports / MIS cockpit (owner-only) / SMS credits / Employees (owner-only) / Profile / APEX Import (owner-only) / Audit log (owner-only) / Settings. Theme = light/dark, 7 accents, 4 neutral palettes (Warm/Slate/Graphite/Zinc), Geist font -- all in Settings > Appearance (D29) |
| Repos | `apps/hq/src/repos-*.ts` | one file per domain; plain functions over a `DB` handle |
| Schema | `apps/hq/src/db.ts` + `apps/hq/schema.sql` | `CREATE TABLE IF NOT EXISTS` + additive `migrate()` |
| Shared packages | `packages/*` | trimmed forks — see below |

@ -494,6 +494,34 @@ and the owner Cockpit + Dashboard carry the low-count alert. **Ticket SLA**: an
`ticket.sla_days` (dated) drives an overdue mark + filter, and a "Bill" action opens New
Document with the client pre-selected (light ticket→invoice; `/documents/new?client=`).
## D29 — Console visual refresh: cockpit dashboard + palettes + Geist (2026-07-19)
The Dashboard is reworked into a **cockpit**: a flat "Today" hero (date, greeting, the headline
overdue figure, Everyone↔Mine scope, quick actions), the four KPI stat cards, the reminder queue,
then a **bento grid** of the day's sections (overdue, due-this-week, renewals, follow-ups, recent
payments). Low-colour on purpose — ink + neutrals + one accent, red only for real failures
(`.dash-*` in `apps/hq-web/src/app.css`, wired to the existing `/dashboard` payload; honest data
only, no invented figures).
**Theme gains a third axis — palette (the neutral ground).** Alongside mode (light/dark) and the
seven accents, `data-palette` selects the greys: **Warm** (the default, unchanged), **Slate**
(cool), **Graphite** (dark-first), **Zinc** (near-mono). Backward-compatible and config-driven
(`packages/ui` `theme.ts` + `tokens.css`; `warm` needs no attribute), picked in Settings →
Appearance beside accent + mode. The UI font is swapped **Inter → Geist Variable + Geist Mono**
(bundled offline via `@fontsource-variable/geist`). Class names stay stable — restyling stays in
one place.
## D30 — Home hub landing + sidebar reorg + section counts (2026-07-19)
A **Home hub** card launcher becomes the landing (`/`); the Dashboard moves to `/dashboard`. The
hub surfaces only the day-to-day sections (Dashboard, Clients, Documents, Reminders, Renewals,
Pipeline, Tickets, SMS credits, Modules) — each a card with a one-line purpose and a live count —
everything else stays in the sidebar. The **sidebar is reorganized** from one overloaded "Work"
group into six intent groups (Overview · Work · Clients & billing · Catalog · Insight · Admin)
with clearer names (MIS cockpit, SMS credits, APEX import); "New document" is an action, not a nav
row. **Section count badges** — neutral by default, amber for SMS-low, red for failed sends — sit
on Reminders / Pipeline / Tickets / Renewals / SMS / Clients / Documents-drafts / Modules, fetched
best-effort (a slow/failed one never blocks the shell). The Modules page gains a per-module
**client count** column.
## D31 — Credentials stored in the clear (owner decision, 2026-07-19)
Founder call: "no encryption for anything — those credentials will be used regularly." The
held-out `HQ_SECRET_KEY` was a daily friction point (the SMS-gateway balance pull needs to

Loading…
Cancel
Save