Forum teuk.org

πŸͺ„ Lumos Maxima III β€” Tests Rise, Operators Empowered (May 2026)

in Mediabot Β· started by TeuK Β· 3h ago

TeuK Β· 3h ago

Overview

Two test files, a daily Scheduler report, a Partyline operator tool, and coverage locked in for the entire A-series wave. The codebase is now well-lit from every angle β€” operators, tests, and documentation all aligned.

β€œLumos Maxima III! Every corner illuminated. Every operator armed.” πŸ•―οΈπŸ›‘οΈ


πŸ§ͺ T2 β€” Tests 235–236 (I2 persona & I4 karmahist)

235 β€” !ai persona (I2)

Verifies the full persona pipeline end-to-end:

  • claude_ctx detects the persona subcommand (I2 marker present)
  • Stores text in _claude_persona{"nick\x00chan"}
  • Persona set notice delivered via botNotice
  • Persona cleared on !ai persona with no argument
  • 400-character cap enforced
  • claudeAI() reads _claude_persona and replaces $sys_prompt
  • Mediabot.pm help entry includes ai persona

236 β€” !karmahist (I4)

Verifies the full karma history pipeline:

  • processKarma appends to _karma_log{$channel} ring buffer
  • Ring buffer capped at 20 entries via splice
  • Log entries contain ts, from, delta, score
  • mbKarmaHist_ctx reverses the log (most recent first)
  • Output limited to 5 entries
  • Optional nick filter supported
  • Human-readable β€œago” timestamps
  • Mediabot.pm dispatches !karmahist with help entry

Total test suite: 228 cases.


πŸ“… I5 β€” Daily Channel Report

A new Scheduler task daily_channel_report posts a daily summary to every joined channel:

<mediabotv3> πŸ“Š Daily report β€” Top speakers: 1. teuk (247) | 2. Boole (183) | 3. Poyan (91)
             Β·  Top karma: teuk (+14) | Boole (+7) | Poyan (+3)

Two queries per channel, run once every 24 hours:

  • Top 3 speakers from CHANNEL_LOG filtered to the last 24 hours
  • Top 3 karma from the KARMA table ordered by score

Skips channels with no activity and no karma data. Uses ensure_connected before any DB query. All statements are ->finish’d. Autostart, no configuration required.


πŸ–₯️ I1 β€” Partyline .quota [nick]

Operators can now inspect Claude rate-limit state from the Partyline without touching IRC.

Without argument β€” all active windows:

.quota
Active Claude rate limit windows:
  teuk                 #boulets        4/5 req (18s left)
  Boole                #boulets        2/5 req (47s left)
  Poyan                #teuk           1/5 req (53s left)

With a nick β€” across all channels:

.quota teuk
Claude quota for teuk:
  #boulets        4/5 req β€” 1 remaining (18s left)
  #teuk           2/5 req β€” 3 remaining (44s left)

Expired windows (>60s) are silently skipped. Reads directly from $bot->{_claude_ratelimit} β€” no API call, no DB. Listed in .help.


πŸ“¦ Files Changed

File Changes
Partyline.pm I1: _cmd_quota sub, dispatch, help entry
mediabot.pl I5: daily_channel_report Scheduler task
t/cases/235 T2: !ai persona full pipeline
t/cases/236 T2: !karmahist full pipeline

You must be logged in to reply.