Log in Register

Developer changelog

Last 50 commits. Not publicly indexed.

f8310d8James Staines28 July 2026

docs: S228 handover update — PL541 resolution, main reconciliation, PL543

b40c03aJames Staines28 July 2026

docs: close PL541 — cron certificate BullMQ conversion verified and cherry-picked

143d90eJames Staines28 July 2026

PL541: convert cronJobs.js auto sign-off certificate generation to BullMQ queue

040b83cJames Staines15 July 2026

fix: add confirm() guards to irreversible/real-email admin actions

ce32cc2James Staines15 July 2026

docs: regenerate platform reference docs (session-end.sh S227)

97b0d99James Staines15 July 2026

S227: handover doc, platform audit updates, PL541

2926d1bJames Staines15 July 2026

docs: sync branch — propagate S225 handover + platform audit + PL531/533 from main

421ab3bJames Staines15 July 2026

Tier 1: BullMQ queue for completion-certificate issuance (in-process worker)

1330776James Staines15 July 2026

Tier 1: soft-delete on trades (deleted_at) — admin remove/restore + filter public/routing paths

53b00e5James Staines15 July 2026

Tier 1: add composite indexes on scopes(customer_id/assigned_trade_id, archived_at) + trade_scope_co

0b9e6feJames Staines15 July 2026

fix: move /ping health check registration before publicRoutes catch-all (PL539)

8c31dd0James Staines13 July 2026

fix: trust proxy 1 -> 2, matches Railway's real 2-hop edge (PL540)

b2a6a44James Staines13 July 2026

diag: move IP diagnostic before router mounting

7c4022bJames Staines13 July 2026

diag: temporary trust-proxy diagnostic on /ping

69a5f60James Staines13 July 2026

feat: Redis-backed rate limiters (Tier 1)

6a344a8James Staines13 July 2026

fix: /join trade signup checkbox silently broken since S168 (PL538)

67929b3James Staines13 July 2026

fix: block plus-addressed email duplicates at signup (PL537)

51d4f94James Staines13 July 2026

docs: sync branch — propagate credential redactions from main

06fb1adJames Staines13 July 2026

docs: log PL536 (audit event UI) and PL537 (plus-address dedup gap)

7391359James Staines13 July 2026

fix: sendTradeApproved to Postmark template (PL527)

a876448James Staines13 July 2026

fix: enforce sslmode=verify-full on Neon DB connection

335444dJames Staines13 July 2026

fix: remove DEV_LOGIN_BYPASS from portalAuth.js

e84f235James Staines13 July 2026

fix: ADMIN_TOKEN to env var, no hardcoded fallback

ff8597aJames Staines8 July 2026

S224: merge handover doc to production

ef088b9James Staines8 July 2026

S224: scopeStatusLabel() status labels, QUO- prefix, QUOTE PDF

fdd033cJames Staines8 July 2026

S224: merge staging to production — scope status labels, PL-DISPUTE-VISIBILITY-001

ce2a921James Staines8 July 2026

docs: raise PL-DISPUTE-VISIBILITY-001 — dispute reason not shown to client/trade

6add0baJames Staines8 July 2026

fix: scopeStatusLabel() — replace raw DB status strings with user-facing copy in client footer, trad

3ec64faJames Staines8 July 2026

fix: QUO- ref prefix, QUOTE PDF label/stamp, Completion Certificate dashboard attention item

8ee0eb8James Staines8 July 2026

S223: sync production fix (Quote Tool ref prefix) back to staging

6d79fdaJames Staines8 July 2026

fix: Quote Tool ref prefix INV- → QUO-, PDF label/stamp INVOICE → QUOTE

1948774James Staines8 July 2026

Merge branch 'staging' into production

50c6de6James Staines8 July 2026

docs: S223 handover amendment - full S118-S223 audit, 14 pre-launch blockers verified, ADMIN_TOKEN h

b0d10adJames Staines8 July 2026

Merge branch 'staging' into production

88116e8James Staines8 July 2026

docs: S223 handover finalized - verified against live DB state, not commit history. Migration 039, c

136cdc9James Staines8 July 2026

docs: PL188 — mark Completion Certificate copy alignment done, update invoice

a01d519James Staines8 July 2026

Merge branch 'staging' into production

b4d6a1aJames Staines8 July 2026

copy: align platform language with S219 legal position - invoice to Completion Certificate across la

ce7ddd2James Staines7 July 2026

Merge branch 'staging' into production

8ede0c7James Staines7 July 2026

rename: Invoice Tool -> Quote Tool - complete pass across all visible UI, forms, AI chat copy, page

ebbd620James Staines7 July 2026

Merge branch 'staging' into production

f9cb607James Staines7 July 2026

rename: Invoice Tool -> Quote Tool - landing page smoke card, email subject/body/plain-text

26e7c51James Staines7 July 2026

Merge branch 'staging' into production

d8b3ee3James Staines7 July 2026

rename: Invoice Tool -> Quote Tool - body copy, subtitle, review heading, features page description,

de7f732James Staines7 July 2026

S221: merge staging to production — nixpacks.toml postgresql-client fix

3d882dbJames Staines7 July 2026

infra: add nixpacks.toml to install postgresql-client in Railway container

f50df27James Staines7 July 2026

docs: cross-reference PL188 from password rotation item

e20d853James Staines7 July 2026

docs: create PL188 soft launch checklist (referenced in ROADMAP.md since May but never built), add p

7b6fa0eJames Staines7 July 2026

docs: PL-DB-PASSWORD-ROTATION-001 — rotate Neon password before launch onboarding

d69407eJames Staines7 July 2026

fix: sanitize DATABASE_URL from backup.js error logging before it reaches audit_events