Spaces:
Running
Running
Commit History
Today
-
router: провайдер Munito под флагом MUNITO_ENABLED — весь текст там, прежние цепочки резервом по второму флагу
SilverElixir7598b3a -
history: не отдавать модели блоки даты и выдачи поиска, осевшие в старых чатах
SilverElixir6ae5242
4 days ago
-
Drop thirty shim names bot.py only re-exported for tests that never used them
SilverElixir6dc6be5 -
Route album and guest updates through the shared chat-lock guard, one DDG budget for both attempts, name the capped Telegram file in logs
SilverElixir863044c -
Keep TikTok post alive on unparsable URLs, cap music at the Telegram upload limit, stop logging signed URLs, fix cover ffmpeg orphan and probe cap
SilverElixirf9da0a2
6 days ago
-
Show typing before media downloads and register localized command menus in parallel
SilverElixir14ad7cf
7 days ago
-
Restore the full symmetric spinner rotation with the centered horizontal stage at 0.3s
SilverElixir2447fb0 -
Speed the status spinner to the real Claude rhythm and drop the diagonal line frames
SilverElixireaa4a11
8 days ago
-
Keep reconciled stream tails formatted, tighten freshness word boundaries and probe real TikWM API paths
SilverElixir8cdce5e -
Gate webhook updates until startup state loads and shut down gracefully on SIGTERM
SilverElixirc43d58c -
Cap global media concurrency, hash public log ids, require the admin seed in production
SilverElixir62be4a4 -
Keep private-chat service replies free of Telegram reply quotes too
SilverElixir4d9061b -
Send private-chat answers as plain messages without a Telegram reply quote
SilverElixircbf1039 -
Harden identity/output filters, quotas, history and deploy guards after the security audit
SilverElixire6073ca -
Cut four hot-path waits: background typing, stream prefetch, in-memory attachments, shared search session
SilverElixireb2b6ab
9 days ago
-
Cap a message by a shared deadline and bound streaming's first chunk by it
SilverElixirLock wait, search, route retry and history summary each had their own timeout, so one message could hold the chat lock for minutes. stream_interrupted now survives a successful return so continue works.53310cd -
Tag log lines with the chat, silence uvicorn access noise, log stack traces for unexpected failures
SilverElixir22981df -
Slideshow: wait for post budget instead of dropping slides; log effective TikTok limits
SilverElixirc262572
22 days ago
-
Wire dev trace hooks into message core and admin endpoint
SilverElixir8eec4ca
28 days ago
-
Cap Telegram flood-wait sleep so long RetryAfter cannot hold the chat lock
SilverElixir8fdbe53 -
Review fixes: full sender names, nick hints, ctx persist, trim order
SilverElixir6e8e909 -
Group context: author tags and reply-target answers
SilverElixir8365632 -
Chat memory: sender directory and combined 100-message cap
SilverElixir60ad579
30 days ago
-
Fix small hardening issues across logging media and errors
SilverElixir3438464 -
Exit nonzero when the HTTP server dies first
SilverElixire2c6512
-
Add owner ban commands, dependabot PR cap, seed docs
SilverElixireb80878 -
Quarantine models after 3 bad responses until quota day ends
SilverElixir398ccda
-
Add owner-only /selftest route-head probe with quota accounting
SilverElixir0e3aacf -
Fix review findings on limits and stats
SilverElixir87259c9 -
Fix stats activity clock and expand diagnostics
SilverElixir5e12873 -
Add per-user daily limits with Gemini fallback
SilverElixirf47e28b
-
setWebhook retries with backoff; fail fast with exit(1) on dead setup (D4: A1-7)
SilverElixirc1767cf -
TTS total deadline with shortened notice (D2: A6-4)
SilverElixir4583c1a -
Size caps: 20MB Telegram downloads, album semaphore and total, slideshow post budget, honest too-big reply (D1: A6-1, A4-04, A7-1, A6-2, A6-3)
SilverElixire7c2546 -
Docs and comments match code: env defaults, routing, rich path, stale notes (A12, A2-5..A2-9, A2-14, A3-5, A6-8, A7-10, A8-07, A5-11)
SilverElixir5f62711 -
Single-source limit scalars; generation-checked chat lock acquisition (A5-8, A5-10)
SilverElixira7a4333 -
Media lows: safe mime suffix, exact game forms, ext map, WAV check, album skip log, mg cap (A6-5..A6-11, A1-5)
SilverElixire8e379a -
Harden startup/shutdown: token exit, tick survival, off-loop IO, honest command log (A1-1..A1-4, A1-6, A8-06)
SilverElixir8cc0538 -
Drop unused re-export of media bucket cap (pyflakes)
SilverElixirb2a727a -
Validate restored chat state; cap media buckets per chat; stop pruning from dirtying every chat (A5-4, A5-5, A5-6, A5-7, A5-9)
SilverElixird728999
-
Comment cleanup: short Russian why-comments, no AI boilerplate
SilverElixirOnly comments and docstrings changed in all 27 files; code verified identical via AST comparison (comments/docstrings normalized). - Removed the repeated P2-audit/extraction-history boilerplate from every module docstring; kept one line saying what the module does. - Trimmed verbose paraphrasing comments to 2-3 lines of reason and evidence. - Kept dated evidence comments (incidents, audits) in short form. - Translated leftover English headers to Russian; no emojis in comments (the ones found live in user strings and assertions, untouched). - Fixed a mojibake comment and two docstrings accidentally truncated mid-edit; full gate green after the fix.5f80ef1 -
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 -
Docs and tests wave 7: routing description matches reality, stronger assertions instead of or-chains, document the deliberate drop_pending_updates tradeoff
SilverElixir5d33e1a -
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 -
Medium wave 4: validated env numbers, Upstash backend and shutdown flush tests, deno check/lint in CI, reproducible pip step, docs for missing variables
SilverElixir7786593 -
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
SilverElixir1c833d2 -
Fix chat-lock hangs: TTS async with timeout, stream handshake capped, route attempts bounded by remaining budget, one shared chat-lock limit
SilverElixir6472592
-
Claude-parity fixes: callback filters for pick buttons, inline numbered-list splitter in both render paths, prompt ban on glued lists
SilverElixird59ebea