Forum teuk.org

πŸ“š MB682 β€” Update the Marauder's Map So the Documentation Matches the Castle

in Mediabot Β· started by TeuK Β· yesterday

TeuK Β· yesterday

MB682 is a documentation-consolidation round.

After several architectural and operational changes in MB678 through MB681, the runtime had moved ahead of the public documentation. MB682 closes that gap without touching production behaviour.

The final commit is:

Version : 3.4dev-20260822_065822
Commit  : bf1ee89
Branch  : master

πŸ“š Update the Marauder's Map So the Documentation Matches the Castle

🎯 Scope

MB682 is intentionally documentation-only.

No runtime implementation changed.

No updater implementation changed.

No deployment script changed.

No database or schema changed.

The round updates the public documentation so it accurately reflects the current Mediabot architecture and operator workflow.


πŸ“œ CHANGELOG catch-up

Before MB682, the public CHANGELOG.md had fallen behind the codebase.

MB682 restores the documented history for the recent 3.4dev work, including:

MB672
MB673
MB675
MB676
MB677
MB678
MB679
MB680
MB681

MB674 is deliberately not fabricated: no reliable MB674 artefact was established from the audited repository state, so the changelog only documents work supported by the codebase/history available during the round.


🏰 Partyline architecture documentation

MB678 fundamentally changed the Partyline architecture.

MB682 adds a dedicated public architecture document:

docs/PARTYLINE_ARCHITECTURE.md

It documents the current responsibilities of:

Mediabot::Partyline
Mediabot::Partyline::Transport
Mediabot::Partyline::SessionAuth
Mediabot::Partyline::Dispatcher
Mediabot::Partyline::Commands
Mediabot::Partyline::Privileged

The important final boundary remains:

Partyline.pm
    295 lines
    5 core subroutines
    0 physical _cmd_* implementations

The document also explains the historical facade/import model used to preserve compatibility while moving physical implementations into their proper modules.


πŸ§ͺ Test runner documentation

MB679 introduced the progress display for long test runs.

The README now documents the intended commands:

perl t/test_commands.pl --fast --progress

and:

perl t/test_commands.pl --progress

This aligns the public validation workflow with the workflow actually used during development.


πŸ•°οΈ Updater observability documentation

MB680 introduced durable updater state.

The README now describes:

update status

as a local-only status operation.

It also documents the durable updater record and the distinction between:

remote update availability

and:

local last-update history

This matches the current product behaviour rather than the older transient-only model.


🩺 Doctor documentation

MB681 taught Doctor 1.2 to consume the durable updater record.

MB682 documents that integration, including the fact that Doctor can reason about the last update without performing a network fetch.

The documentation now reflects the current local-first updater diagnostics rather than older assumptions.


πŸͺ΅ Runtime validation guidance

The operational validation guidance is also updated.

After a Mediabot restart, the preferred application-level source is now:

/home/mediabot/mediabot_v3/mediabot.log

with:

journalctl -u mediabot@dev

used as the complementary systemd/process-level source.

In short:

mediabot.log = application runtime truth
journalctl   = service/process complement

This better separates application startup/runtime diagnostics from service-manager failures.


πŸ§ͺ Documentation contract

MB682 adds:

t/cases/884_mb682_public_docs_architecture_sync.t

The contract protects the important documentation anchors introduced by the round.

Focused validation:

871
881
882
883
884

Result:

PASSED : 367/367  (5s)

The MB682 contract itself passed:

PASSED : 23/23

⚑ Fast validation

perl t/test_commands.pl --fast --progress

Result:

Selected: 323 of 767 discovered test file(s)

[====================] 100% [323/323 files | 5982 tests]

PASSED : 5982/5982  (65s)

🏰 Full validation

perl t/test_commands.pl --progress

Result:

[====================] 100% [767/767 files | 15455 tests]

PASSED : 15455/15455  (211s)

🧱 Runtime guard

Because MB682 is docs-only, a restart would have added noise without validating anything useful.

Instead, the worktree was explicitly checked for unexpected runtime files.

Final guard:

OK: no runtime/product file modified

The worktree contained only:

CHANGELOG.md
README.md
docs/PARTYLINE_ARCHITECTURE.md
t/cases/884_mb682_public_docs_architecture_sync.t

plus VERSION during commit.


πŸ“¦ Commit

Version : 3.4dev-20260822_065822
Commit  : bf1ee89

πŸ“š Update the Marauder's Map So the Documentation Matches the Castle

Commit summary:

5 files changed
428 insertions
1 deletion

New files:

docs/PARTYLINE_ARCHITECTURE.md
t/cases/884_mb682_public_docs_architecture_sync.t

The commit was successfully pushed to GitHub.


🧭 Why this matters

Documentation drift is a real regression even when the runtime still works.

After MB678–MB681, a new contributor could otherwise read the README or changelog and form an outdated mental model of:

Partyline
the test runner
the updater
Doctor
runtime validation

MB682 brings the public map back in sync with the castle.


πŸ”­ Next direction

The next round is MB683.

It should not be scoped from assumptions.

The correct sequence remains:

fresh post-bf1ee89 snapshot
        ↓
audit current state
        ↓
identify the next concrete 3.5-readiness gap
        ↓
define a small MB683 scope

The project is now moving away from large structural refactors and toward consolidation and readiness.


πŸ“š The castle changed first. Now the Marauder’s Map finally shows the corridors that actually exist.

You must be logged in to reply.