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 9c59430c31 perf/fix(d24): DB indexes (both engines) + case-insensitive client search
Red-team backend-quality highs/mediums:
- Added 30 indexes on the foreign-key / status / date / renewal columns the
  lists, reports, joins and scans read — zero existed, so every query full-scanned
  (tolerable on dev SQLite, a real problem on production Postgres at 300 clients /
  thousands of tickets & documents). Same DDL on both engines: INDEX_DDL in the
  SQLite SCHEMA + pg migration 007 (CREATE INDEX IF NOT EXISTS, idempotent).
- Client search + district/sector filters now LOWER(...) LIKE LOWER(?): bare LIKE
  is case-insensitive on SQLite but case-SENSITIVE on Postgres, so search silently
  broke on the prod engine. Test locks case-insensitivity.
Verified: pg migrations 006+007 apply cleanly on local Postgres; suite green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4 days ago
..
api.ts fix(sec/d24): concurrency + workflow isolation 4 days ago
audit.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
auth.ts fix(sec/d24): gate destructive/sensitive ops to managerial 4 days ago
aws-costs.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
bounces.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
crypto.ts feat(hq): gmail send with token-death handling and email log (HQ-1 task 11) 2 weeks ago
db-pg.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
db.ts perf/fix(d24): DB indexes (both engines) + case-insensitive client search 4 days ago
gmail.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
import-apex-full.ts feat(d21): P4 — importer seeds module field_spec + writes field_values 4 days ago
import-apex.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
migrations-pg.ts perf/fix(d24): DB indexes (both engines) + case-insensitive client search 4 days ago
pdf.ts fix(sec/d24): PDF render hardening — strict CSP + request interception 4 days ago
rate-limit.ts fix(sec/d24): auth hardening — login lockout, rate limits, constant-time, trust proxy 4 days ago
reminder-templates.ts feat(documents): invoice due dates — terms default + override, honest overdue chase (Phase 1, D18) 5 days ago
repos-amc.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-aws.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-branches.ts feat(d20): P1 — ticket desk, client branches, per-service data (schema + repos) 4 days ago
repos-clients.ts perf/fix(d24): DB indexes (both engines) + case-insensitive client search 4 days ago
repos-dashboard.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-documents.ts fix(sec/d24): money-integrity guards — CN cap, atomic doc-no, qty, TDS, markStatus 4 days ago
repos-email.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-employees.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-interactions.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-milestones.ts feat(d22): P1 — onboarding milestone tracker (backend) + monotonic uuidv7 4 days ago
repos-modules.ts feat(d22): P1 — onboarding milestone tracker (backend) + monotonic uuidv7 4 days ago
repos-payments.ts fix(sec/d24): money-integrity guards — CN cap, atomic doc-no, qty, TDS, markStatus 4 days ago
repos-pipeline.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-rate-card.ts feat(d23): SMS volume-band billing (dated rate card, money locked) 4 days ago
repos-recurring.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-reminders.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-reports.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-shares.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-tickets.ts feat(d20): P1 — ticket desk, client branches, per-service data (schema + repos) 4 days ago
scheduler.ts fix(sec/d24): concurrency + workflow isolation 4 days ago
seed.ts feat(d22): P1 — onboarding milestone tracker (backend) + monotonic uuidv7 4 days ago
send-reminder.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
series.ts fix(sec/d24): money-integrity guards — CN cap, atomic doc-no, qty, TDS, markStatus 4 days ago
server.ts fix(sec/d24): auth hardening — login lockout, rate limits, constant-time, trust proxy 4 days ago
templates.ts fix(sec/d24): PDF render hardening — strict CSP + request interception 4 days ago