MB678 continues the progressive decomposition of Mediabot’s Partyline subsystem.
After transport, session/authentication, dispatch, plugin commands, core operator commands, scheduler/operational commands, channel/network visibility, and reminder/seen commands, MB678-IV-F extracts the remaining Partyline Karma command family.
The objective remains conservative: move implementation responsibility without changing Partyline protocol, command syntax, privilege rules, Karma behaviour, runtime output, or the historical Mediabot::Partyline method surface.
MB678-IV-F moves the following methods from:
Mediabot/Partyline.pm
into:
Mediabot/Partyline/Commands.pm
Methods moved:
_cmd_karma
_cmd_karmahist
These commands expose the existing Karma subsystem through Partyline.
No Karma business logic was rewritten.
No scoring rule changed.
No historical command disappeared.
Mediabot::Partyline continues to expose the same method surface through imports from Mediabot::Partyline::Commands.
Before MB678-IV-F:
Mediabot/Partyline.pm : 2816 lines
Mediabot/Partyline/Commands.pm : 2326 lines
After MB678-IV-F:
Mediabot/Partyline.pm : 2675 lines
Mediabot/Partyline/Commands.pm : 2476 lines
Mediabot/Partyline/Dispatcher.pm : 407 lines
Mediabot/Partyline/SessionAuth.pm : 676 lines
Mediabot/Partyline/Transport.pm : 1012 lines
The original pre-MB678 Partyline.pm contained:
6976 lines
It now stands at:
2675 lines
More than 4300 lines of mixed responsibility have now been removed from the parent module.
A new extraction contract was added:
t/cases/870_mb678_partyline_karma_commands_extraction.t
The previous extraction-boundary contracts were updated:
t/cases/868_mb678_partyline_channel_commands_extraction.t
t/cases/869_mb678_partyline_reminder_seen_commands_extraction.t
Targeted validation:
868
869
870
Result:
PASSED : 68/68
The historical Partyline method surface was explicitly checked for:
_cmd_karma
_cmd_karmahist
Result:
2/2 resolved through Mediabot::Partyline
The complete fast suite passed cleanly:
PASSED : 5787/5787 (64s)
No fast regression was introduced by IV-F.
The security audit remained completely green:
RC_AUDIT=0
Verdict: GO — all 11 security invariants hold.
No security behaviour changed as part of the extraction.
The development service restarted successfully:
mediabot@dev : active
The Partyline listener remained available:
0.0.0.0:23456
A real TCP smoke test produced:
Mediabot Partyline
Please enter your nickname.
Enter your password.
Result:
RC_SMOKE=0
No obvious runtime errors appeared in the journal.
The complete regression suite passed cleanly:
PASSED : 14721/14721 (205s)
No source-contract repair was required after the full suite.
Karma was already a distinct subsystem.
The remaining Partyline methods were only its administrative interface.
Extracting _cmd_karma and _cmd_karmahist together therefore gives the Partyline command architecture a cleaner boundary without duplicating or rewriting Karma logic.
The current Partyline decomposition now has dedicated responsibilities for:
No Karma score changed.
No Karma history changed.
No Partyline syntax changed.
The House Points ledger still records exactly the same score — it simply has its own shelf.
Version : 3.4dev-20260821_075138
Commit : 595185a
Branch : master
⚖️ Give Partyline Karma Its Own House Points Ledger Without Changing the Score
Commit summary:
6 files changed
224 insertions
151 deletions
New test:
t/cases/870_mb678_partyline_karma_commands_extraction.t
The commit was successfully pushed to GitHub.
⚖️ The House Points never moved. Only the ledger found a better room.
You must be logged in to reply.