Lumen / bot.py

Commit History

Today

  1. router: провайдер Munito под флагом MUNITO_ENABLED — весь текст там, прежние цепочки резервом по второму флагу

    SilverElixir
    7598b3a
  2. history: не отдавать модели блоки даты и выдачи поиска, осевшие в старых чатах

    SilverElixir
    6ae5242

4 days ago

  1. Drop thirty shim names bot.py only re-exported for tests that never used them

    SilverElixir
    6dc6be5
  2. Route album and guest updates through the shared chat-lock guard, one DDG budget for both attempts, name the capped Telegram file in logs

    SilverElixir
    863044c
  3. 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

    SilverElixir
    f9da0a2

6 days ago

  1. Show typing before media downloads and register localized command menus in parallel

    SilverElixir
    14ad7cf

7 days ago

  1. Restore the full symmetric spinner rotation with the centered horizontal stage at 0.3s

    SilverElixir
    2447fb0
  2. Speed the status spinner to the real Claude rhythm and drop the diagonal line frames

    SilverElixir
    eaa4a11

8 days ago

  1. Keep reconciled stream tails formatted, tighten freshness word boundaries and probe real TikWM API paths

    SilverElixir
    8cdce5e
  2. Gate webhook updates until startup state loads and shut down gracefully on SIGTERM

    SilverElixir
    c43d58c
  3. Cap global media concurrency, hash public log ids, require the admin seed in production

    SilverElixir
    62be4a4
  4. Keep private-chat service replies free of Telegram reply quotes too

    SilverElixir
    4d9061b
  5. Send private-chat answers as plain messages without a Telegram reply quote

    SilverElixir
    cbf1039
  6. Harden identity/output filters, quotas, history and deploy guards after the security audit

    SilverElixir
    e6073ca
  7. Cut four hot-path waits: background typing, stream prefetch, in-memory attachments, shared search session

    SilverElixir
    eb2b6ab

9 days ago

  1. Cap a message by a shared deadline and bound streaming's first chunk by it⁠

    SilverElixir
    53310cd
  2. Tag log lines with the chat, silence uvicorn access noise, log stack traces for unexpected failures

    SilverElixir
    22981df
  3. Slideshow: wait for post budget instead of dropping slides; log effective TikTok limits

    SilverElixir
    c262572

22 days ago

  1. Wire dev trace hooks into message core and admin endpoint

    SilverElixir
    8eec4ca

28 days ago

  1. Cap Telegram flood-wait sleep so long RetryAfter cannot hold the chat lock

    SilverElixir
    8fdbe53
  2. Review fixes: full sender names, nick hints, ctx persist, trim order

    SilverElixir
    6e8e909
  3. Group context: author tags and reply-target answers

    SilverElixir
    8365632
  4. Chat memory: sender directory and combined 100-message cap

    SilverElixir
    60ad579

30 days ago

  1. Fix small hardening issues across logging media and errors

    SilverElixir
    3438464
  2. Exit nonzero when the HTTP server dies first

    SilverElixir
    e2c6512

  1. Add owner ban commands, dependabot PR cap, seed docs

    SilverElixir
    eb80878
  2. Quarantine models after 3 bad responses until quota day ends

    SilverElixir
    398ccda

  1. Add owner-only /selftest route-head probe with quota accounting

    SilverElixir
    0e3aacf
  2. Fix review findings on limits and stats

    SilverElixir
    87259c9
  3. Fix stats activity clock and expand diagnostics

    SilverElixir
    5e12873
  4. Add per-user daily limits with Gemini fallback

    SilverElixir
    f47e28b

  1. setWebhook retries with backoff; fail fast with exit(1) on dead setup (D4: A1-7)

    SilverElixir
    c1767cf
  2. TTS total deadline with shortened notice (D2: A6-4)

    SilverElixir
    4583c1a
  3. 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)

    SilverElixir
    e7c2546
  4. 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)

    SilverElixir
    5f62711
  5. Single-source limit scalars; generation-checked chat lock acquisition (A5-8, A5-10)

    SilverElixir
    a7a4333
  6. Media lows: safe mime suffix, exact game forms, ext map, WAV check, album skip log, mg cap (A6-5..A6-11, A1-5)

    SilverElixir
    e8e379a
  7. Harden startup/shutdown: token exit, tick survival, off-loop IO, honest command log (A1-1..A1-4, A1-6, A8-06)

    SilverElixir
    8cc0538
  8. Drop unused re-export of media bucket cap (pyflakes)

    SilverElixir
    b2a727a
  9. 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)

    SilverElixir
    d728999

  1. Comment cleanup: short Russian why-comments, no AI boilerplate⁠

    SilverElixir
    5f80ef1
  2. Subagent re-review: fix confirmed misses, harden thin tests⁠

    SilverElixir
    3d3384a

  1. Independent re-review: fix missed regressions and close gaps⁠

    SilverElixir
    5bd5d41
  2. Fix regressions found by adversarial review: routing, rendering, rate limits⁠

    SilverElixir
    62c1832
  3. Docs and tests wave 7: routing description matches reality, stronger assertions instead of or-chains, document the deliberate drop_pending_updates tradeoff

    SilverElixir
    5d33e1a
  4. 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

    SilverElixir
    36e6ab0
  5. Medium wave 4: validated env numbers, Upstash backend and shutdown flush tests, deno check/lint in CI, reproducible pip step, docs for missing variables

    SilverElixir
    7786593
  6. 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

    SilverElixir
    1c833d2
  7. Fix chat-lock hangs: TTS async with timeout, stream handshake capped, route attempts bounded by remaining budget, one shared chat-lock limit

    SilverElixir
    6472592

  1. Claude-parity fixes: callback filters for pick buttons, inline numbered-list splitter in both render paths, prompt ban on glued lists

    SilverElixir
    d59ebea