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 5f9f961d20 feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter
P1: every repo, route, scheduler path and test now speaks one async DB
interface (all/get/run/exec/transaction). better-sqlite3 stays underneath
for dev/tests via SqliteDb (statement cache, manual BEGIN/SAVEPOINT
nesting); openDb stays sync so fixtures remain one-liners. Zero behavior
change: 346/346 tests, typecheck clean.

P2: migrations-pg.ts — numbered Postgres migration set (001-init: bigint
paise, integer flags, TEXT ISO dates, TEXT JSON; reminder CHECK born in
final widened form) + schema_migrations runner.

P3: db-pg.ts — pg Pool behind the same interface: ?->$n rewrite outside
string literals, transactions pinned to one pooled client via
AsyncLocalStorage with savepoint nesting, int8/numeric parsed to JS
numbers so paise math is identical on both engines.

Also: reminder upsert INSERT OR IGNORE -> ON CONFLICT DO NOTHING
(portable, same changes-count semantics).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4 days ago
..
api.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
audit.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
auth.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 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 feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
gmail.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
import-apex.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
migrations-pg.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
pdf.ts feat(hq): letterhead HTML templates and puppeteer PDF (HQ-1 task 10) 2 weeks 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-clients.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-dashboard.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-documents.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 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-modules.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-payments.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
repos-pipeline.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 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
scheduler.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
seed.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
send-reminder.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
series.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
server.ts feat(db): D19 P1-P3 — async DB interface, dual engines, Postgres adapter 4 days ago
templates.ts fix(review): close all 8 findings from the D18 slice review 5 days ago