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 on05b0ea4: all four, with identity sidecars, basef4ba205-> head05b0ea4, 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
5.4 KiB
5.4 KiB
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
- Loop ID:
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:
- Probe P1: In
create_session.shandresume_session.sh, hardcodedAUTO_TRUST=1unconditionally overwrote the documented environment switchMAM_AUTO_TRUST=0. - Probe P2: In
lib.sh::_mam_dialog_pick, hitting a dialog within its resend cooldown triggeredsys.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.shandresume_session.shsetAUTO_TRUST=1and subsequently exportedMAM_AUTO_TRUST="$AUTO_TRUST", clobbering caller-providedMAM_AUTO_TRUST=0when no CLI flag was supplied. - Initializing
AUTO_TRUST="${MAM_AUTO_TRUST:-1}"allowsMAM_AUTO_TRUST=0in the environment to take effect naturally. - An explicit CLI flag (
--auto-trustor--no-auto-trust) re-assignsAUTO_TRUSTto1or0, correctly asserting command-line precedence over environment variables. - Regression verified by
test_r3b(resume) andtest_c3(create) across all combinations (env=0 alone, env=0 with--auto-trust, and env=1 with--no-auto-trust).
- Previously,
- 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 fromsys.exit(1)tocontinuepermits 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) andtest_s5f(dialog inside cooldown does not block answering the next dialog).
- In
- Preservation of Cooldown Protection:
test_s5andtest_s5bcontinue 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 to1when unset or empty.- Any user-specified value (e.g.
0) is preserved and exported. - Command-line flags
--auto-trustand--no-auto-trustoverwriteAUTO_TRUSTto1and0respectively, 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"toFalse, while any other non-"0" value defaults toTrue.- Behavior between shell scripts and Python dialog picker is fully aligned.
- Documentation in
multi-agent-mux-create/SKILL.mdexplicitly specifiesMAM_AUTO_TRUST=0and documents that explicit flags take precedence over the environment.
(3) Overall Merge Readiness
- Commit
05b0ea4reinforces 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.2remains 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]