You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sims-hq/apps/hq/src
Thomas Joise 953cf1dff8 feat(modules): module→client roster, notify-all, CSV export (Phase 10, spec §10)
- listClientsByModule: reverse lookup over active links, ordered by client name,
  paginated with a true total; per-row dated price via priceOn + next renewal;
  footer revenue total spans ALL links (active=0 excluded by design, stated)
- GET /modules/:id/clients (paginated) + /clients.csv (streams every row, no cap)
- POST /modules/:id/notify (owner/manager): resolves the full roster first, sends
  via the Gmail path, one email_log + one audit row per attempted recipient,
  names every unreachable client in the response (warn, never truncate)
- Modules page roster panel: table + revenue footer + Notify-all composer + CSV
- 8 tests; suite green

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
5 days ago
..
api.ts feat(modules): module→client roster, notify-all, CSV export (Phase 10, spec §10) 5 days ago
audit.ts feat(hq): sqlite schema + audit log (HQ-1 task 2) 2 weeks ago
auth.ts feat(clients): account-owner plumbing — client.owner_id, audited owner route, role gate 5 days ago
aws-costs.ts feat(hq): aws cost explorer ingestion — sigv4 signer and monthly tag-grouped pull 2 weeks ago
bounces.ts feat(hq): mailbox bounce detection with email_bounced reminders 2 weeks ago
crypto.ts feat(hq): gmail send with token-death handling and email log (HQ-1 task 11) 2 weeks ago
db.ts feat(reminders): escalating quote follow-up (Phase 6, spec §7) 5 days ago
gmail.ts feat(hq): reminder email send reusing gmail, plus manual-queue routes 2 weeks ago
import-apex.ts feat(hq): seed + apex csv importer with verification and series seeding (HQ-1 task 13) 2 weeks ago
pdf.ts feat(hq): letterhead HTML templates and puppeteer PDF (HQ-1 task 10) 2 weeks ago
reminder-templates.ts feat(reminders): escalating quote follow-up (Phase 6, spec §7) 5 days ago
repos-amc.ts feat(hq): amc contracts with renewal invoice and derived paid state 2 weeks ago
repos-aws.ts feat(hq): aws usage repo — upsert/list, cross-client cost ranking, routes 2 weeks ago
repos-clients.ts feat(clients): account-owner plumbing — client.owner_id, audited owner route, role gate 5 days ago
repos-dashboard.ts feat(reminders): escalating quote follow-up (Phase 6, spec §7) 5 days ago
repos-documents.ts feat(documents): one-click convert-and-send + proforma supersede (Phases 7-8, spec §8) 5 days ago
repos-email.ts feat(hq): gmail send with token-death handling and email log (HQ-1 task 11) 2 weeks ago
repos-employees.ts fix(employees): purge sessions on password reset; reject empty patches and duplicate emails cleanly 5 days ago
repos-interactions.ts feat(hq): interaction log with types, follow-ups and routes 2 weeks ago
repos-modules.ts feat(modules): module→client roster, notify-all, CSV export (Phase 10, spec §10) 5 days ago
repos-payments.ts feat(hq): payment receipts — own RCT/ series, zero-GST acknowledgment PDF 2 weeks ago
repos-pipeline.ts fix(funnel): review fixes — stop-chase on convert/cancel/lost, scoped ?status=, send guards, F3/F4 convert hardening 5 days ago
repos-recurring.ts feat(hq): recurring plan repo and owner-gated routes 2 weeks ago
repos-reminders.ts fix(funnel): review fixes — stop-chase on convert/cancel/lost, scoped ?status=, send guards, F3/F4 convert hardening 5 days ago
repos-reports.ts feat(hq): reports — dues aging, module revenue, client profitability with margin 2 weeks ago
repos-shares.ts feat(reminders): escalating quote follow-up (Phase 6, spec §7) 5 days ago
scheduler.ts feat(reminders): invoice dN milestone escalation from the dated schedule (Phase 9, spec §8) 5 days ago
seed.ts feat(reminders): dated reminder_schedule table + resolveSchedule resolver (Phase 4) 5 days ago
send-reminder.ts feat(reminders): invoice dN milestone escalation from the dated schedule (Phase 9, spec §8) 5 days ago
series.ts docs(hq): comment ON CONFLICT portability quirk in doc series (D12 guardrail) 2 weeks ago
server.ts feat(hq): public GET /share/:token document view route 1 week ago
templates.ts feat(hq): beautify document template — "Slate Ledger" visual system + template.accent 1 week ago