MB678 continues the progressive decomposition of Mediabot’s Partyline subsystem.
After transport, session/authentication, dispatch, plugin commands, core operator commands, scheduler/operational commands, and channel/network visibility, MB678-IV-E extracts the next coherent family: reminders and seen-history commands.
The goal remains unchanged: move responsibility without changing Partyline protocol, command syntax, privilege rules, runtime behaviour, or the historical Mediabot::Partyline method surface.
MB678-IV-E moves the following methods from:
Mediabot/Partyline.pm
into:
Mediabot/Partyline/Commands.pm
Methods moved:
_cmd_remind
_cmd_seen
_cmd_purgereminders
This family covers:
The Karma command family intentionally remains in Partyline.pm for a later dedicated extraction.
Mediabot::Partyline continues to expose the historical methods through imports from Mediabot::Partyline::Commands.
Before MB678-IV-E:
Mediabot/Partyline.pm : 2974 lines
Mediabot/Partyline/Commands.pm : 2157 lines
After MB678-IV-E:
Mediabot/Partyline.pm : 2816 lines
Mediabot/Partyline/Commands.pm : 2326 lines
Mediabot/Partyline/Dispatcher.pm : 407 lines
Mediabot/Partyline/SessionAuth.pm : 676 lines
Mediabot/Partyline/Transport.pm : 1012 lines
The parent module loses another 158 lines of mixed command responsibility.
The original pre-MB678 Partyline.pm contained:
6976 lines
It now stands at:
2816 lines
A new extraction contract was added:
t/cases/869_mb678_partyline_reminder_seen_commands_extraction.t
Existing source contracts were adapted where they historically assumed the implementation lived physically in Mediabot/Partyline.pm:
387_seen_wildcard_like_escape.t
629_mb411_channel_id_cached_helper.t
868_mb678_partyline_channel_commands_extraction.t
Targeted validation covered:
387
629
868
869
Result:
PASSED : 110/110
The historical method surface was explicitly checked for:
_cmd_remind
_cmd_seen
_cmd_purgereminders
Result:
3/3 resolved through Mediabot::Partyline
The complete fast suite passed cleanly:
PASSED : 5767/5767 (63s)
No fast regression was introduced by IV-E.
The security audit remained completely green:
RC_AUDIT=0
Verdict: GO — all 11 security invariants hold.
The extraction preserved all currently enforced authentication, transport, throttling, download-cap, and external-command protections.
The development service restarted successfully:
mediabot@dev : active
The Partyline listener remained available:
0.0.0.0:23456
A real TCP smoke test returned:
Mediabot Partyline
Please enter your nickname.
Enter your password.
Result:
RC_SMOKE=0
The journal contained no obvious runtime errors.
The complete regression suite passed cleanly:
PASSED : 14701/14701 (206s)
No full-suite source-contract repair was required in this round.
Reminder and seen-history handling form a natural responsibility boundary.
Moving them together keeps the extraction narrow and coherent while avoiding an unnecessarily broad “community commands” migration.
The Karma command family remains separate on purpose: it has its own business logic and deserves its own validation boundary.
The Partyline architecture now has dedicated areas for:
No reminder syntax changed.
No seen semantics changed.
No purge behaviour changed.
No historical method disappeared.
The Pensieve remembers exactly the same things; it simply has its own shelf now.
Version : 3.4dev-20260821_072234
Commit : eed64c3
Branch : master
⏰ Give Partyline Reminders Their Own Pensieve Without Forgetting Anyone
Commit summary:
7 files changed
248 insertions
168 deletions
New test:
t/cases/869_mb678_partyline_reminder_seen_commands_extraction.t
The commit was successfully pushed to GitHub.
⏰ Nothing was forgotten. The memories simply moved into a better Pensieve.
You must be logged in to reply.