Spaces:
Running
Running
Commit History
7 days ago
-
Polish the thinking animation: no frozen first frame, a route-wide timer and honest media stages
SilverElixir7a1db0a -
Stream replies on every model in the route so a failed head no longer removes the typing effect
SilverElixired078b4 -
Make search answers stick to snippets and lighten the simple thought line
SilverElixir9ac8e44 -
Harden identity/output filters, quotas, history and deploy guards after the security audit
SilverElixire6073ca -
Add the thought-for block to non-streamed fallback answers in private chats
SilverElixire980e7c -
Show a Claude-style live status timeline while the bot searches and thinks
SilverElixir221264d -
Cut four hot-path waits: background typing, stream prefetch, in-memory attachments, shared search session
SilverElixireb2b6ab
8 days ago
-
Run routes as consecutive provider blocks and keep Gemma out of the Gemini daily limit
SilverElixirGrouping by provider glued the Gemini fallback chain ahead of Groq and burned the route budget; sorting moved Gemma off the head. Blocked Gemini answers now return empty so the chain moves on.5fcacff
13 days ago
-
Route plain text through Gemma 26B/31B head; drop dead OR slugs (catalog 22.10.2026)
SilverElixird0d695d
21 days ago
-
Check actual answering model for live search, retry route with fresh snippets
SilverElixir109b907
28 days ago
-
Restore Gemini 3.x chains and cool down unavailable models
SilverElixir7bb8c4a -
Trim Groq prompt history to token budget to stop HTTP 413s
SilverElixir5fecfef -
Retry tool-only Gemini replies instead of leaking tool JSON
SilverElixir7bea82f
29 days ago
-
Fix small hardening issues across logging media and errors
SilverElixir3438464 -
Align daily quota accounting across draw TTS and 429 paths
SilverElixir168044d -
Record cooldown after non-streaming 429 like streaming
SilverElixirc0d4d78
30 days ago
-
Merge near-duplicate router tests into parametrized cases
SilverElixirc836aa8 -
Drop 4 duplicate and introspection-only tests
SilverElixirfd5cff9 -
Close ban guest bypass and quarantine echo poisoning
SilverElixir0803c88 -
Quarantine models after 3 bad responses until quota day ends
SilverElixir398ccda
-
Fix stats activity clock and expand diagnostics
SilverElixir5e12873 -
Log per-request token usage
SilverElixirff45898 -
Add per-user daily limits with Gemini fallback
SilverElixirf47e28b -
Tighten LIMITS prompt to Claude-like boundaries
SilverElixir3ccfac1
-
Message pipeline lows: captioned album main, passive files, reply history, off-loop read, trigger helper, cancel cleanup, empty retry, split throttle, edit-death fallback (A4-06..A4-13, A4-16)
SilverElixir0b2d333 -
Fix ttf EMA pollution, quota log, explicit url_context, dynamic freshness years, transcribe cap (A2-4, A2-10..A2-13)
SilverElixir453b05f
-
Lock guest path; share route deadline with transcription; trim history with summary; mark blind media fallback (A4-02, A4-03, A4-05, A4-15)
SilverElixir49f4622 -
Route draw/tts via _tg_call; honor RetryAfter, no 4xx retry; scrub error texts (A8-01..A8-05, A8-08)
SilverElixir6181fd1
-
Subagent re-review: fix confirmed misses, harden thin tests
SilverElixirFour parallel adversarial reviewers re-checked the wave. Confirmed and fixed: - lumen_routes: a failed MALFORMED_FUNCTION_CALL retry returned the "response blocked" placeholder as a successful answer and stopped the chain. Retry failure now falls through to the next model like the spent-budget path. - lumen_message_core/bot.py: lock-busy replies and pick language fallback no longer create chat state via get_state (_t_no_create/_peek_chat_lang). - lumen_commands: a pick tap without a message no longer burns the token. - bot.py: lock comment now states the truth — slash commands bypass the lock, draw/tts trigger phrases run under it. - lumen_formatting: table-block lines without a leading pipe are skipped by both inline splitters, closing the HTML/rich divergence on bare tables. Tests hardened (each fails without its fix where stated): timeout fallback now uses a real async hang with distinct answers; budget assertion tightened; deadline test bounds elapsed time; admin seed f…3d3384a
-
Independent re-review: fix missed regressions and close gaps
SilverElixir- lumen_routes: initialize the skipped-retry flag before the MALFORMED branch. A blocked non-MALFORMED answer raised UnboundLocalError instead of reporting the block reason. Added a regression test. - lumen_routes: recognize Google's concatenated PerDay quota metric (GenerateRequestsPerDayPerProjectPerModel) as a daily quota; otherwise a real daily limit was downgraded to a short cooldown. - lumen_tts/lumen_commands: TTS now distinguishes daily quota from burst 429 like the text route. A burst only cools the TTS model down; a daily quota still marks it exhausted. Updated and added TTS quota tests. - lumen_message_core/lumen_chat_state: rate-limit refusals no longer create chat state. Added _t_no_create/_peek_chat_lang and a test proving a rejected message leaves no state behind. - lumen_tiktok: follow download redirects manually, validating scheme and public host before each hop instead of trusting the client and checking only after contact. Added redirect tests. - …5bd5d41 -
Fix regressions found by adversarial review: routing, rendering, rate limits
SilverElixirRegressions from the previous waves, found by six independent adversarial reviews and confirmed directly: - lumen_routes: the account-wide OpenRouter early exit had moved into the request wrapper, where the shared except swallowed it, so the whole chain was burned instead of stopping after one attempt. The decision now lives in the loop via stop_on. - lumen_routes: a skipped retry after a malformed tool call used to answer the user with a "response blocked" placeholder instead of falling through to the next model. - lumen_formatting: the inline list splitters ate blockquotes, headings and markdown table rows, so quotes rendered empty, a bare heading marker leaked and tables broke differently in the stream and in the final message. - lumen_formatting: the element-of command preceded the integral command in the symbol map, so int with limits turned into element-of plus t. Headings were also extracted before the LaTeX scrub, leaving raw commands in h3. - lumen_streaming…62c1832 -
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
SilverElixir36e6ab0 -
Fix chat-lock hangs: TTS async with timeout, stream handshake capped, route attempts bounded by remaining budget, one shared chat-lock limit
SilverElixir6472592
-
Reliability: cap malformed-call retry by route deadline, service quota separation, album buffer cleanup
SilverElixirc67c969
-
Luna audit round 2: review fixes (regex bounds, mixed albums, redaction guards)
SilverElixirf95285c -
Luna audit fixes: album lock, multilingual routing, streaming budget, quota and persistence hardening
SilverElixirdd4c939 -
Review fixes: real audio suffix, no RU marker, transcript cap
SilverElixir217e497 -
Ideal routing: voice transcribed into scenario routing, OR qwen newcomer in light chain
SilverElixir9bccd1d -
Qwen audit fixes: aio Gemini client, snapshot-before-thread state flush, drop dead Fish check, utcnow fix
SilverElixir3704a0f
-
Stale text: drop dead /model ref from prompt, fix test counts and TTS order notes
SilverElixircacf723
-
Groq provider: qwen head + gpt-oss reserve on light routes (calibrated 21.09.2026), streaming, quota/stats/diag, 8 tests
SilverElixir9b9fc79
-
Move tests to tests/ and proxy to proxy/, update CI and docs paths
SilverElixir7a11b13