Skip to content

runtime_modules.list is parsed 4x and the version-stamp sed exists 2x — D4 consolidated the data, not the code #89

Description

@aradanmn

Found during the 2026-07-17 architecture audit (docs/AUDIT-ARCHITECTURE-2026-07-17.md).

D4 correctly reduced the runtime module list to one manifest (modules/runtime_modules.list) — but four consumers each hand-roll the identical comment/blank-line filter (grep -vE '^[[:space:]]*(#|$)' or equivalent):

  1. install-minecraft-splitscreen.sh:121read_runtime_manifest()
  2. modules/launcher_setup.sh:168 — inline mapfile ... grep -vE in install_runtime_modules
  3. deploy.sh:59runtime_module_list()
  4. minecraftSplitscreen.sh:74-81 — the launcher's source loop

A format change to the manifest (say, per-module annotations) now needs four synchronized edits. Constraint to respect: the launcher and deploy.sh are deliberately standalone, so a naive "everyone sources utilities.sh" doesn't fit — but installer + launcher_setup CAN share one helper today, and deploy.sh can source it from the checkout. At minimum, the four sites need cross-reference comments pinning the parse rule to one spec line in the manifest header.

Second duplication, same file pair: the __MCSS_VERSION__/__MCSS_COMMIT__/__MCSS_BUILD_DATE__ stamping sed exists verbatim in launcher_setup.sh:123-127 (setup_splitscreen_launcher_script) and deploy.sh:182-186 (which also adds the +dirty marker and stamp-normalized --check diff). Extract one stamping helper (a small modules/ lib or scripts/ helper both source from the checkout) so install-deploy and dev-deploy can't drift — today a stamp-format change would silently break deploy.sh's --check normalization.

Metadata

Metadata

Assignees

No one assigned

    Labels

    auditFrom the code auditcleanupTech debt / dead code

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions