Files
multi-agent-mux/.agents/reports/reviewer-agy-01/report-471806f8.md
T
GodopuandClaude Fable 5.1 9fb037c084 release(v4.7.2): bump framework and eight skills to 4.7.2 in lockstep; archive PR #35 merge-side reviews
Issues #23 and #24: cross-server herdr scope, agent-agnostic start-up
dialogs, onboarding delivery judged by the agent's own started event,
verified rollback. VERSIONS.md carries the entry; the merge-side reports
(round 1: claude/agy/grok; round 2 on 05b0ea4: all four, with identity
sidecars, base f4ba205 -> head 05b0ea4, evidence review-tree) are archived
under .agents/reports/<session>/. The round-1 codex report was lost to the
host sleeping mid-review; its two probes are recorded in the changelog.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VCgu9Fa9iT7TbJUSzdq4Ff
2026-09-24 08:36:35 +09:00

5.4 KiB
Raw Blame History

Pre-Merge Independent Delta Review Report: PR #35 (fix/issue-23-24 Round 2)

  • Job ID: 471806f8
  • Target Agent: agy (Session: herdr:reviewer-agy-01)
  • Role: Reviewer
  • Target Worktree Context:
    • Loop ID: loop-20260923T220355Z-76dd1d
    • Base Commit: f4ba205c9f755d817e2206c7a9cb390a3e61fd2f (Round 1 target)
    • Head Commit: 05b0ea4762de3fad013e8986d45db21c4e6aa465 (1 delta commit: +76 / −5)
    • Tree SHA: 8f5e8b0402017d2cc809364e60400c4c25b922f3
    • Verification Path: /var/folders/q_/68sxgw3j073dgjg8wl9s08vw0000gn/T/mam-review/loop-20260923T220355Z-76dd1d/1

1. Executive Summary

This second review round examines delta commit 05b0ea4 ("fix(issue-23-24): merge review - the environment form of the auto-trust switch reaches the handler; a rate-limited dialog does not hide the next one"). The commit addresses two specific edge-case probes identified during the merge review of PR #35:

  1. Probe P1: In create_session.sh and resume_session.sh, hardcoded AUTO_TRUST=1 unconditionally overwrote the documented environment switch MAM_AUTO_TRUST=0.
  2. Probe P2: In lib.sh::_mam_dialog_pick, hitting a dialog within its resend cooldown triggered sys.exit(1), preventing subsequent modal notices (e.g. codex update skip) on the same screen from being answered.

Both fixes, their regression test coverage (test_issue23_24_startup_path.py and test_issue24_resume_dialogs.py), and documentation updates in multi-agent-mux-create/SKILL.md were evaluated. All 18 targeted tests and git diff validation passed with zero regressions.


2. Detailed Verification Against Checklist Items

(1) Resolution of Codex Probes P1 & P2 and Side-Effect Analysis

  • P1: Environment Variable Inheritance (AUTO_TRUST="${MAM_AUTO_TRUST:-1}"):
    • Previously, create_session.sh and resume_session.sh set AUTO_TRUST=1 and subsequently exported MAM_AUTO_TRUST="$AUTO_TRUST", clobbering caller-provided MAM_AUTO_TRUST=0 when no CLI flag was supplied.
    • Initializing AUTO_TRUST="${MAM_AUTO_TRUST:-1}" allows MAM_AUTO_TRUST=0 in the environment to take effect naturally.
    • An explicit CLI flag (--auto-trust or --no-auto-trust) re-assigns AUTO_TRUST to 1 or 0, correctly asserting command-line precedence over environment variables.
    • Regression verified by test_r3b (resume) and test_c3 (create) across all combinations (env=0 alone, env=0 with --auto-trust, and env=1 with --no-auto-trust).
  • P2: Dialog Inspection Fallthrough via continue:
    • In lib.sh::_mam_dialog_pick, when a dialog matched on screen is within its cooldown window (0 <= now - last < cooldown), changing the behavior from sys.exit(1) to continue permits evaluation of subsequent dialog signatures in the adapter's list.
    • If a trust dialog was skipped via --no-auto-trust (recorded in _MAM_DIALOG_SENT), or if it was answered on the preceding frame and is now cooling, a co-located notice dialog (such as the codex update prompt) is properly evaluated and answered on subsequent iterations.
    • Verified by new test test_s6c (skipped trust dialog does not hide notice below it) and test_s5f (dialog inside cooldown does not block answering the next dialog).
  • Preservation of Cooldown Protection:
    • test_s5 and test_s5b continue to verify that an individual dialog cannot be resent while its cooldown is active, and can only be retried once the cooldown window expires.
    • Multi-dialog ordering and execution count remain deterministic: trust dialog answered first (Enter), followed by notice dialog (2), each sent exactly once (test_s5f).

(2) Environment Precedence & Value Semantics

  • In shell scripts (create_session.sh / resume_session.sh):
    • AUTO_TRUST="${MAM_AUTO_TRUST:-1}" defaults to 1 when unset or empty.
    • Any user-specified value (e.g. 0) is preserved and exported.
    • Command-line flags --auto-trust and --no-auto-trust overwrite AUTO_TRUST to 1 and 0 respectively, ensuring CLI options win over environment variables.
  • In Python (_mam_dialog_pick):
    • auto_trust = os.environ.get("MAM_DLG_TRUST", "1") != "0" cleanly maps string "0" to False, while any other non-"0" value defaults to True.
    • Behavior between shell scripts and Python dialog picker is fully aligned.
  • Documentation in multi-agent-mux-create/SKILL.md explicitly specifies MAM_AUTO_TRUST=0 and documents that explicit flags take precedence over the environment.

(3) Overall Merge Readiness

  • Commit 05b0ea4 reinforces the robustness and reliability of PR #35 without altering any public interfaces or state machine rules verified in Round 1.
  • Formatting and git diff checks (git diff f4ba205...HEAD --check) reported 0 whitespace or formatting issues.
  • Version bump to v4.7.2 remains scheduled for the orchestrator release commit.
  • No blockers or regressions detected.

3. Test Execution Summary

Test Suite / Target Result Duration Notes
test_issue23_24_startup_path.py (s6c, s5f, s5, s5b) 11 / 11 PASS 182s Probe P2 cooldown fallthrough & multi-dialog handling
test_issue24_resume_dialogs.py (r3b, c3, r3) 7 / 7 PASS 8s Probe P1 environment variable inheritance & CLI flag precedence
git diff f4ba205...HEAD --check 0 errors 0.05s Clean formatting and no whitespace errors

[VERDICT: PASS]