Thomas Joise
d29025189c
feat(hq): beautify document template — "Slate Ledger" visual system + template.accent
...
Rewrite documentHtml to a restrained, print-first GST layout: hairline table
rules, tabular money aligned to the paisa, a single accent driving every
structural color (letterhead rule, title, table-header rule + color-mix tint,
docmeta edge, amount-in-words edge, filled grand-total band).
Add optional template.accent setting (validated hex-or-fallback #334155
slate-indigo) read from the settings map and interpolated only after
validation, so a raw setting string can never be injected into the CSS.
print-color-adjust:exact so the accent tint and grand-total fill survive
puppeteer. DRAFT stays: accent chip in docmeta + optional watermark for
un-issued docs. lineRow/totalsRows untouched; @media screen paper + @page
14mm preserved; renderer stays one pure function so preview===pdf identity holds.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 week ago
Thomas Joise
52e8a03c81
feat(hq): GET /reminders/:id/preview — exact email via shared reminderContext
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 week ago
Thomas Joise
48731fdb2b
feat(hq): GET/PUT /settings/template + logo upload (owner-gated, audited)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 week ago
Thomas Joise
c2f94df06d
feat(hq): screen paper styles + documentHtmlSample + POST /previews/sample
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 week ago
Thomas Joise
a948a92350
feat(hq): render editable template.* letterhead fields with default fallback
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 week ago
Thomas Joise
1ac44ae7de
test(hq): golden fidelity — preview HTML byte-identical to the PDF's HTML
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 week ago
Thomas Joise
268a7469d3
feat(hq): POST /documents/preview — permissive live preview, persists nothing
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 week ago
Thomas Joise
90df8b0e9f
feat(hq): extract pure prepareDraft from createDraft (permissive preview path)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 week ago
Thomas Joise
5495b42e30
feat(hq): schedule monthly aws cost pull and owner-gated manual pull route
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
ea8c2b23ad
feat(hq): company profile settings — owner-gated GET/PUT, audited
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
b7085ce56e
feat(hq): payment receipts — own RCT/ series, zero-GST acknowledgment PDF
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
42cfa3d0b2
feat(hq): reports — dues aging, module revenue, client profitability with margin
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
51732df5e5
feat(hq): aws cost explorer ingestion — sigv4 signer and monthly tag-grouped pull
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
9d2eedc366
feat(hq): aws usage repo — upsert/list, cross-client cost ranking, routes
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
3a09feab6f
feat(hq): hq-3a schema — aws_usage table (per client per month)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
06b5eb532c
feat(hq): dashboard money view and 6-hourly scheduler wiring
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
7e1dcc1ad8
feat(hq): mailbox bounce detection with email_bounced reminders
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
1b14e49d86
feat(hq): recurring invoice generation with at-most-once auto-send
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
2d3b1a52a9
feat(hq): daily scan detection rules with idempotent reminders
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
3204a9af97
feat(hq): reminder email send reusing gmail, plus manual-queue routes
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
a5f6b6fdaf
feat(hq): reminder templates and idempotent reminder repo
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
868fe17a5d
feat(hq): interaction log with types, follow-ups and routes
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
0e66bd8ff8
feat(hq): amc contracts with renewal invoice and derived paid state
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
405ee2917f
feat(hq): recurring plan repo and owner-gated routes
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
c6a8058430
feat(hq): hq-2 schema — recurring/amc/interaction/reminder tables + bounce column + seeds
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
fbf39d7a51
docs+chore: HQ DDL snapshot, gitignored import-drop, Postgres locked pre-go-live (D15)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
54d6a63e81
feat(hq): HQ-1.5 — module quote content, pack pick-lists, bundle isolation check
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
3671c9c40f
feat(hq): server assembly, build script and e2e smoke (HQ-1 task 14)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
4a025786aa
feat(hq): seed + apex csv importer with verification and series seeding (HQ-1 task 13)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
60d5d38d92
feat(hq): one-time gmail oauth connect script (HQ-1 task 12)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
94734d04bf
feat(hq): gmail send with token-death handling and email log (HQ-1 task 11)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
8c90b09595
feat(hq): letterhead HTML templates and puppeteer PDF (HQ-1 task 10)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
63b0d9932a
docs(hq): comment ON CONFLICT portability quirk in doc series (D12 guardrail)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
5fc07b97ed
feat(hq): payments with allocation, TDS and advances (HQ-1 task 9)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
21ccaff363
feat(hq): document lifecycle with GST compute and credit notes (HQ-1 task 8)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
2710455b78
feat(hq): seedable per-FY document series (HQ-1 task 7)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
78771dad8d
feat(hq): client-module lifecycle tracking (HQ-1 task 6)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
fa8bb9c50a
feat(hq): module catalog with dated price book (HQ-1 task 5)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
9e4d53fb65
feat(hq): client registry with GSTIN validation (HQ-1 task 4)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
ac7aa891db
feat(hq): staff auth with sessions and owner gate (HQ-1 task 3)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
89e468eeda
feat(hq): sqlite schema + audit log (HQ-1 task 2)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
d17726941f
feat(hq): app skeleton with health endpoint (HQ-1 task 1)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago