Last 50 commits. Not publicly indexed.
docs: S228 handover update — PL541 resolution, main reconciliation, PL543
docs: close PL541 — cron certificate BullMQ conversion verified and cherry-picked
PL541: convert cronJobs.js auto sign-off certificate generation to BullMQ queue
fix: add confirm() guards to irreversible/real-email admin actions
docs: regenerate platform reference docs (session-end.sh S227)
S227: handover doc, platform audit updates, PL541
docs: sync branch — propagate S225 handover + platform audit + PL531/533 from main
Tier 1: BullMQ queue for completion-certificate issuance (in-process worker)
Tier 1: soft-delete on trades (deleted_at) — admin remove/restore + filter public/routing paths
Tier 1: add composite indexes on scopes(customer_id/assigned_trade_id, archived_at) + trade_scope_co
fix: move /ping health check registration before publicRoutes catch-all (PL539)
fix: trust proxy 1 -> 2, matches Railway's real 2-hop edge (PL540)
diag: move IP diagnostic before router mounting
diag: temporary trust-proxy diagnostic on /ping
feat: Redis-backed rate limiters (Tier 1)
fix: /join trade signup checkbox silently broken since S168 (PL538)
fix: block plus-addressed email duplicates at signup (PL537)
docs: sync branch — propagate credential redactions from main
docs: log PL536 (audit event UI) and PL537 (plus-address dedup gap)
fix: sendTradeApproved to Postmark template (PL527)
fix: enforce sslmode=verify-full on Neon DB connection
fix: remove DEV_LOGIN_BYPASS from portalAuth.js
fix: ADMIN_TOKEN to env var, no hardcoded fallback
S224: merge handover doc to production
S224: scopeStatusLabel() status labels, QUO- prefix, QUOTE PDF
S224: merge staging to production — scope status labels, PL-DISPUTE-VISIBILITY-001
docs: raise PL-DISPUTE-VISIBILITY-001 — dispute reason not shown to client/trade
fix: scopeStatusLabel() — replace raw DB status strings with user-facing copy in client footer, trad
fix: QUO- ref prefix, QUOTE PDF label/stamp, Completion Certificate dashboard attention item
S223: sync production fix (Quote Tool ref prefix) back to staging
fix: Quote Tool ref prefix INV- → QUO-, PDF label/stamp INVOICE → QUOTE
Merge branch 'staging' into production
docs: S223 handover amendment - full S118-S223 audit, 14 pre-launch blockers verified, ADMIN_TOKEN h
Merge branch 'staging' into production
docs: S223 handover finalized - verified against live DB state, not commit history. Migration 039, c
docs: PL188 — mark Completion Certificate copy alignment done, update invoice
Merge branch 'staging' into production
copy: align platform language with S219 legal position - invoice to Completion Certificate across la
Merge branch 'staging' into production
rename: Invoice Tool -> Quote Tool - complete pass across all visible UI, forms, AI chat copy, page
Merge branch 'staging' into production
rename: Invoice Tool -> Quote Tool - landing page smoke card, email subject/body/plain-text
Merge branch 'staging' into production
rename: Invoice Tool -> Quote Tool - body copy, subtitle, review heading, features page description,
S221: merge staging to production — nixpacks.toml postgresql-client fix
infra: add nixpacks.toml to install postgresql-client in Railway container
docs: cross-reference PL188 from password rotation item
docs: create PL188 soft launch checklist (referenced in ROADMAP.md since May but never built), add p
docs: PL-DB-PASSWORD-ROTATION-001 — rotate Neon password before launch onboarding
fix: sanitize DATABASE_URL from backup.js error logging before it reaches audit_events