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
7afd769a14
docs: live preview plan (13 tasks) + editable template-data scope in spec
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 week ago
Thomas Joise
152545555e
docs: live document preview design (approved via ultracode panel)
...
Same-code preview endpoint (no drift), form+A4-paper split layout, server-truth
totals strip, permissive-preview/strict-save, + company-letterhead / quote-content /
reminder-email sibling previews. Store-product surfaces documented as handoff.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 week ago
Thomas Joise
dbccb8f954
feat(hq-web): owner company profile editor and client 360 aws usage trend
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
2acca18fc9
feat(hq-web): reports page — dues aging, module revenue, profitability, aws cost chart
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks 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
8267ef9257
docs: HQ-3a implementation plan (10 TDD tasks — reports, AWS costs, receipts, company profile)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
92fb5e6245
feat(hq-web): client 360 recurring, amc and interaction sections
...
Browser-walk fixes (Task 12 step 3): reload the reminder queue after a failed send so the row flips to 'failed' live, and reload AMC contracts after recording a payment so the Paid badge derives fresh.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
a9f78c4e3c
feat(hq-web): client 360 recurring, amc and interaction sections
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
9e3886d0be
feat(hq-web): dashboard money view with manual reminder queue as default route
...
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
ea0bc146bb
docs(security): SEC-A5 — /bills/offline commits bills with no authentication
...
Automated review (CRITICAL): route registered above requireAuth, identity
fields trusted from the body. Two fix options specified; must land before
any pilot. Companion to SEC-C6.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
1523ebbcce
docs: HQ-2 implementation plan (12 TDD tasks — reminders, recurring, AMC, dashboard)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
507eec67f3
docs(security): SEC-C6 — override approval is client-asserted, audit forgery hole
...
Automated review flagged POST /api/bills trusting overrides[].approvedByUserId
from the client; verify-pin result never bound to the commit. Server-side
approval-token fix specified; must land before any pilot (Phase 1).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
406839659d
chore: bring the full store-product codebase under version control
...
POS, back office, store-server, all packages, workspace configs, README/
BUILDING, and the WIP HQ-2 plan — everything except gitignored data
(client import staging, .env, local DBs).
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
7bc7976e4e
chore: root typecheck now fans out to every workspace's own tsconfig
...
Closes the gap where app-level type errors escaped the standard gate
(root tsconfig covers packages/* only; apps each have their own).
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
8c145d5a3b
feat(hq-web): clients, modules, composer and document pages (HQ-1 task 16)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
10529beb42
docs(spec): module quote-content blocks + pack pick-lists (SMS 50k/1L) as HQ-1.5
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
3cfda5b55d
docs: record one-repo/two-apps confirmation + HQ-DB-as-cloud-nucleus rule (D15)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 weeks ago
Thomas Joise
a08ab1aa79
feat(hq-web): react shell with login and email-status banner (HQ-1 task 15)
...
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