Files
multi-agent-mux/.mam/reports/canary-projects-multi-agent-mux-reviewer-cline/report-mam-installer-rereview.md
T

3.5 KiB
Raw Blame History

Review Report (Re-review) — MAM Installer (scripts/install_mam.sh) & Manual (.agents/INSTALL.md)

  • Reviewer: Reviewer Cline (canary-projects-multi-agent-mux-reviewer-cline, role: reviewer)
  • Date: 2026-07-11 (re-review after D1/D2/D3 remediation)
  • Previous report: report-mam-installer-review.md (verdict: NOT PASS)
  • Files reviewed: scripts/install_mam.sh (untracked, new), .agents/INSTALL.md (untracked, new)
  • Governing documents: AGENTS.md, .agents/MULTI_AGENT_RULES.md / .ko.md

Verdict: PASS

All three previously-blocking defects (D1 undeclared rsync dependency, D2 __pycache__/+.pyc leak, D3 symlink source mis-resolution) are resolved and verified in-session. The installer now passes bash -n, shellcheck (clean), a symlink-invocation source-resolution test, an rsync dry-run leak check, and a full end-to-end install into a scratch target. It conforms to AGENTS.md and MULTI_AGENT_RULES.md.


1. Remediation Verification (all three defects)

D1 — rsync undeclared dependency → RESOLVED

Fix: DEPS=(tmux python3 sqlite3 rsync) (line 80) — rsync now in the declared dependency list. .agents/INSTALL.md §1 line 14 documents rsync as a prerequisite. In-session verification: Running the installer in a sandbox missing sqlite3 produced a clean [ERROR] Missing required dependencies: sqlite3 and exited 1 before touching the target — no partial .agents/ created (post-install checks confirmed .agents/, .gitignore, and AGENTS.md all absent). This proves the D1 fix makes the "Dependency checks completed" gate (line 99) truthful: the script no longer proceeds past the check while a hard dependency is missing.

D2 — __pycache__/+.pyc leak → RESOLVED

Fix: rsync invocation (line 107) now includes --exclude='__pycache__/' --exclude='*.pyc'. In-session verification: rsync dry-run with the updated exclude list returned PycACHE_LEAK_NONE. Full end-to-end install find /tmp/.../.agents -name '__pycache__' -o -name '*.pyc' returned nothing. The target is no longer polluted with host-specific bytecode caches.

Fix: lines 6067 — a while [ -h "$SOURCE" ] readlink loop tracks symlinks back to the original script, with relative-symlink handling ([[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"). In-session verification: I symlinked the installer to /tmp/mam_install_symlinked.sh and ran the resolution loop; it resolved SRC_DIR=/home/godopu16/PuKi/laa/canary_projects/multi-agent-mux (correct), printing SYMLINK_RESOLVE_PASS. The previous failure (resolving to /) is gone.


2. Full Validation Suite (Re-run)

Check Command Result
Syntax bash -n scripts/install_mam.sh BASH_N_OK
Lint shellcheck -f gcc scripts/install_mam.sh SHELLCHECK_CLEAN (0 findings)
D3 symlink resolve loop on /tmp/...symlinked.sh SRC_DIR=.../multi-agent-mux (SYMLINK_RESOLVE_PASS)
D2 leak dry-run rsync --dry-run ... | grep __pycache__ PycACHE_LEAK_NONE
D1 dep-gate abort install with sqlite3 missing clean abort, no partial install
End-to-end install install_mam.sh --target /tmp/... completes; INSTALL_MD_PRESENT, GITIGNORE_PRESENT, AGENTS_MD_PRESENT, PYCACHE_LEAK_CHECK_DONE (no leaks)
INSTALL.md rsync doc grep -n rsync .agents/INSTALL.md line 14 documents rsync