DocFast session 146: staging noindex, dead code cleanup

This commit is contained in:
Hoid 2026-03-08 17:04:09 +01:00
parent 8cc6b4fd4e
commit 0f0a82fef2
5 changed files with 94 additions and 4 deletions

View file

@ -20,7 +20,7 @@
- **Issue:** `updateEmailByCustomer()` in `src/services/keys.ts` only checks `keysCache` (in-memory). In 2-replica production, if a Stripe `customer.updated` webhook hits a pod that doesn't have the key cached (pod restart, key created on other pod), the function returns `false` without checking DB. Customer's email change from Stripe is silently lost.
- **Impact:** Email sync from Stripe billing silently fails. Customer's email in DocFast DB diverges from Stripe. Recovery emails go to wrong address.
- **Fix:** Add DB fallback: query `api_keys` table by `stripe_customer_id` when not found in cache, then update email in DB and hydrate local cache.
- **Status:** OPEN
- **Status:** ✅ FIXED — commit d376d58. DB fallback + cache hydration. 2 TDD tests added. 547 tests total.
## BUG-107: Recover route uses in-memory cache only — recovery fails silently across pods
- **Date:** 2026-03-06
@ -119,6 +119,7 @@
- **Expected:** HTTP 400 with validation error about scale range
- **Actual:** HTTP 200 with generated PDF
- **Note:** format:"invalid" and margin with non-string values could not be retested due to 5/hour demo rate limit. These may also lack validation.
- **Status:** ✅ FIXED — BUG-102 fix (commit ba2e542) added `validatePdfOptions()` to all demo and convert routes. Scale validation (0.12.0) now enforced. Original test used nested `options` object (wrong API format); top-level `scale:99` is correctly rejected.
## BUG-095: /docs page footer missing most footer links (Home, Docs, Examples, API Status, Support, Change Email)
- **Date:** 2026-03-02