Independent re-review: fix missed regressions and close gaps
5bd5d41
SilverElixircommited on
Fix regressions found by adversarial review: routing, rendering, rate limits
62c1832
SilverElixircommited on
Docs and tests wave 7: routing description matches reality, stronger assertions instead of or-chains, document the deliberate drop_pending_updates tradeoff
5d33e1a
SilverElixircommited on
Cleanup wave 6: one shared SSE parser and one shared fallback chain, drop dead code and a silent list alias, cover the previously untested failure branches
36e6ab0
SilverElixircommited on
Quality wave 5: summarizing history trim in streaming, LaTeX parity between render paths, rate limit before state/album downloads, parity tests
5a68db4
SilverElixircommited on
Medium wave 4: validated env numbers, Upstash backend and shutdown flush tests, deno check/lint in CI, reproducible pip step, docs for missing variables
7786593
SilverElixircommited on
Reliability wave 3: router skips quota-exhausted models, prune never drops a chat holding the lock
83fef4a
SilverElixircommited on
Security wave 2: gate deploy on push+own repo, 401 and denial logging on admin endpoints, FastAPI schema off, proxy body cap, ownerless pick confined to chat, loud warning about secrets derived from BOT_TOKEN
1c833d2
SilverElixircommited on
Fix chat-lock hangs: TTS async with timeout, stream handshake capped, route attempts bounded by remaining budget, one shared chat-lock limit
6472592
SilverElixircommited on
Split glued 3-item bullet lists in both render paths (prod 26.09.2026 threshold miss)
76aeacc
SilverElixircommited on
Continue feature: resume interrupted stream answers on bare continue request
f7686fb
SilverElixircommited on
Reliability: cap malformed-call retry by route deadline, service quota separation, album buffer cleanup
c67c969
SilverElixircommited on
Security: validate pick before pop (foreign tap no longer burns token), SSRF guard on download hosts