MB678 continues the progressive decomposition of Mediabot’s Partyline subsystem. This round extracts the runtime diagnostics and observability commands from Mediabot::Partyline.pm into Mediabot::Partyline::Commands without changing their historical surface or behaviour.
_cmd_ping
_cmd_uptime
_cmd_dccstat
_cmd_stat
_cmd_dbstats
These commands cover Partyline liveness, uptime, DCC visibility, runtime statistics, database statistics, and associated operational metrics.
The moderation family and .eval remain intentionally in Partyline.pm for later rounds.
Before IV-K:
Mediabot/Partyline.pm : 1882 lines
Mediabot/Partyline/Commands.pm : 3330 lines
After IV-K:
Mediabot/Partyline.pm : 1577 lines
Mediabot/Partyline/Commands.pm : 3659 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 is now down to 1577 lines.
The following historical methods remain available through Mediabot::Partyline:
_cmd_ping
_cmd_uptime
_cmd_dccstat
_cmd_stat
_cmd_dbstats
Validation result:
5/5 historical methods available
Existing source contracts adapted for modularization:
t/cases/609_mb391_core_command_release_contract.t
t/cases/870_mb678_partyline_karma_commands_extraction.t
t/cases/872_mb678_partyline_reload_commands_extraction.t
t/cases/873_mb678_partyline_network_stats_commands_extraction.t
t/cases/874_mb678_partyline_irc_control_commands_extraction.t
t/cases/875_mb678_partyline_ai_commands_extraction.t
New contract:
t/cases/876_mb678_partyline_runtime_diagnostics_commands_extraction.t
Focused validation:
14
609
870
872
873
874
875
876
PASSED : 222/222 (1s)
.ping keeps its timestamped PONG response.
.uptime keeps the shared process-start helper, duration formatting, and Claude/AI observability section.
.dccstat keeps the shared DCC public-IP resolver, listen-port helper, and pending-offer snapshot visibility.
.stat keeps its short-lived cache, channel-owner lookup, Partyline command metrics, runtime counters, and RSS visibility.
.dbstats keeps MariaDB runtime status queries and existing Mediabot request counters.
No database schema, metrics model, DCC transport, or command permission change was introduced.
perl t/test_commands.pl --fast --progress
Selected: 322 of 759 discovered test file(s)
[====================] 100% [322/322 files | 5907 tests]
PASSED : 5907/5907 (65s)
mediabot@dev : active
Partyline : 0.0.0.0:23456 LISTEN
RC_SMOKE : 0
Handshake observed:
Mediabot Partyline
Please enter your nickname.
Enter your password.
Journal result:
OK: no obvious runtime error
RC_AUDIT=0
Verdict: GO — all 11 security invariants hold.
perl t/test_commands.pl --progress
[====================] 100% [759/759 files | 14903 tests]
PASSED : 14903/14903 (211s)
Runtime diagnostics now have a clearer architectural home while the Partyline parent continues shrinking toward a true coordinating/core role.
What did not change is the important part:
same commands
same historical method surface
same metrics
same DCC visibility
same DB visibility
same security posture
MB678 remains one stage in the larger 3.4dev hardening roadmap:
finish Partyline modularization
↓
complete/update observability work
↓
documentation and architecture consolidation
↓
full 3.5 readiness audit
↓
stable 3.5 only after explicit GO
The future readiness audit must still cover clean Debian 13 installation, upgrade path, migrations/schema drift, secrets/Gitleaks, security, CI, real updater validation, IRC runtime, documentation, public artifacts, fast and full suites.
Version : 3.4dev-20260821_122934
Commit : 970f00b
Branch : master
🔭 Give Partyline Diagnostics Their Own Astronomy Tower Without Losing Sight
10 files changed
455 insertions
337 deletions
New test:
t/cases/876_mb678_partyline_runtime_diagnostics_commands_extraction.t
The commit was successfully pushed to GitHub.
🔭 The telescope moved upstairs. The view stayed exactly the same.
You must be logged in to reply.