Closer/functions/dist
null 8a9bd41fe5 fix(functions): rebuild stale dist + predeploy build hook (FUNCTIONS-DIST-STALE)
The phrase-change 🔑 alert never fired live because the deployed artifact
didn't contain it — functions/dist is committed and is what deploys, and I
changed functions/src without rebuilding it. My own gates were green and
irrelevant: tsc --noEmit emits nothing, ts-jest compiles in memory. The user
deployed twice, faithfully, and shipped my stale artifact both times. "git
status clean" is not "deployable current".

Two fixes: dist rebuilt (diff confirms exactly one stale function,
onCoupleKeyRotated — the phrase edge), and firebase.json now carries a
predeploy hook (npm run build) so every functions deploy compiles first —
the mistake class is structurally gone rather than remembered. Landmine
written up as FUNCTIONS-DIST-STALE in the manual: when verifying "is X
deployed", compare against dist/, not src/ — src is the intent, dist is
the truth.

Functions tests green (108).
2026-07-16 01:29:20 -05:00
..
backup chore(functions): rebuild dist for the restore cleanup + alert-precision batches 2026-07-15 02:39:50 -05:00
billing fix(billing): correct RevenueCat webhook auth to HMAC-SHA256 + enable export 2026-07-09 03:43:59 -05:00
couples fix(functions): rebuild stale dist + predeploy build hook (FUNCTIONS-DIST-STALE) 2026-07-16 01:29:20 -05:00
dates refactor(functions): B1 migrate 13 Firestore triggers to v2 + harden 2026-07-07 23:46:17 -05:00
games refactor(functions): B6c split game part-finished trigger + reorder reads (#11) 2026-07-08 00:08:18 -05:00
notifications chore(functions): rebuild dist for the restore cleanup + alert-precision batches 2026-07-15 02:39:50 -05:00
questions chore(functions): rebuild dist for the restore cleanup + alert-precision batches 2026-07-15 02:39:50 -05:00
releaseKey refactor(functions): B3 migrate 12 callables to v2 + harden 2026-07-07 23:58:32 -05:00
security refactor(functions): B3 migrate 12 callables to v2 + harden 2026-07-07 23:58:32 -05:00
users refactor(functions): B4+B5 migrate webhook to v2 + pin onUserDelete on v1 2026-07-08 00:00:29 -05:00
index.js feat(crypto): couple-key rotation, phase 1 — rotate forward (Future.md security #3) 2026-07-15 02:49:50 -05:00
index.js.map feat(crypto): couple-key rotation, phase 1 — rotate forward (Future.md security #3) 2026-07-15 02:49:50 -05:00
log.js build(functions): B0 v2 foundation — global options, shared push helper, structured logging 2026-07-07 23:36:16 -05:00
log.js.map build(functions): B0 v2 foundation — global options, shared push helper, structured logging 2026-07-07 23:36:16 -05:00
options.js fix(functions): gcf_gen1 fractional CPU to fit the Cloud Run CPU quota 2026-07-08 03:04:26 -05:00
options.js.map fix(functions): gcf_gen1 fractional CPU to fit the Cloud Run CPU quota 2026-07-08 03:04:26 -05:00