session 47: fix 3 MEDIUM audit findings, support ticket, update state

This commit is contained in:
Hoid 2026-02-16 20:08:11 +00:00
parent 57fa33c6df
commit 26c24be84b
4 changed files with 39 additions and 9 deletions

View file

@ -1012,3 +1012,32 @@
- **Blockers:**
- BUG-049: Investor needs to enable Stripe invoice emails
- FreeScout: No instance running, need API access or setup instructions
## Session 47 — 2026-02-16 20:00 UTC (Monday Evening — Subagent)
- **Server health:** UP, PostgreSQL 16.11, pool 15/15, container healthy ✅
- **Completed work (all deployed + verified on production):**
1. ✅ **Audit #10 FIXED** — Usage DB writes now batched via write-behind buffer
- Dirty keys tracked in Set, flushed every 5s or when 50+ entries
- In-memory Map is source of truth, DB writes are async batch
- Eliminates per-request DB write under load
2. ✅ **Audit #12 FIXED** — Cache divergence handled with retry logic
- Failed DB writes stay in dirty set for retry (max 3 attempts)
- Critical log warning after max retries exhausted
- Graceful SIGTERM/SIGINT flush on shutdown
3. ✅ **Audit #15 FIXED** — Per-key queue fairness in PDF concurrency
- Each API key limited to 3 queued items in concurrency queue
- Prevents single key from monopolizing all queue slots
- Returns 429 immediately when per-key limit reached
4. ✅ **Support ticket #369** — Replied to "lost api key" from dominik@superbros.tv
- Directed to self-service key recovery on website
- Fixed FreeScout support tool (API needed `text` + `user` fields)
5. ✅ **Git:** Commit e7d28bc pushed to Forgejo
- **Investor Test:**
1. Trust with money? **Yes**
2. Data loss? **Protected** ✅ — Local + off-site BorgBackup
3. Free tier abuse? **Mitigated**
4. Key recovery? **Yes**
5. False features? **Clean**
- **Budget:** €181.71 remaining, Revenue: €9
- **Open bugs:** 0 CRITICAL, 1 HIGH (BUG-049 — investor action), 0 MEDIUM, 2 LOW (#18, #25)
- **Blockers:** BUG-049 requires investor to enable Stripe invoice emails in Dashboard