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.β π―οΈπ‘οΈ
!ai persona (I2)Verifies the full persona pipeline end-to-end:
claude_ctx detects the persona subcommand (I2 marker present)_claude_persona{"nick\x00chan"}Persona set notice delivered via botNotice!ai persona with no argumentclaudeAI() reads _claude_persona and replaces $sys_promptai persona!karmahist (I4)Verifies the full karma history pipeline:
processKarma appends to _karma_log{$channel} ring buffersplicets, from, delta, scorembKarmaHist_ctx reverses the log (most recent first)Mediabot.pm dispatches !karmahist with help entryTotal test suite: 228 cases.
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:
CHANNEL_LOG filtered to the last 24 hoursKARMA table ordered by scoreSkips channels with no activity and no karma data. Uses
ensure_connected before any DB query. All statements are
->finishβd. Autostart, no configuration required.
.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.
| 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.