Files
multi-agent-mux/.agents/reports/planner-reviewer-codex-01/report-81cd4006.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.2 KiB

PR #35 델타 리뷰 — 두 탐침 지적 해소

  • Job: 81cd4006; reviewer: planner-reviewer-codex-01
  • Loop: loop-20260923T220355Z-76dd1d
  • Base: f4ba205c9f755d817e2206c7a9cb390a3e61fd2f
  • Head: 05b0ea4762de3fad013e8986d45db21c4e6aa465
  • Tree: 8f5e8b0402017d2cc809364e60400c4c25b922f3
  • 검증 경로: /var/folders/q_/68sxgw3j073dgjg8wl9s08vw0000gn/T/mam-review/loop-20260923T220355Z-76dd1d/1

두 기존 지적이 해결되었다. 이번 델타에서 추가 병합 차단 결함을 발견하지 않았다. 브리프에 명시된 4.7.2 버전 락스텝 변경은 오케스트레이터의 후속 작업으로 남는다.

P1: 환경변수 자동 신뢰 거부가 create/resume에서 보존됨

근거: .agents/skills/multi-agent-mux-create/scripts/create_session.sh:72, :87, :88, :96; .agents/skills/multi-agent-mux-resume/scripts/resume_session.sh:33, :42, :43, :57.

초기값이 AUTO_TRUST="${MAM_AUTO_TRUST:-1}"로 바뀌어 환경의 0을 보존한다. 이후 명시적 플래그가 값을 덮어쓰므로 문서에 추가된 우선순위와 일치한다. 실제 create/resume 스크립트를 샌드박스의 mock herdr와 실행하는 C3/R3b 회귀가 다음 여섯 사례를 검증했다.

환경값 명시 플래그 create/resume 핸들러에 전달되는 값
0 없음 0
0 --auto-trust 1
1 --no-auto-trust 0

추가로 두 스크립트에서 추출한 초기화·인자 처리 코드와 실제 _mam_dialog_pick 함수를 연결하여, 미설정·빈 문자열·0·1·false·2를 각각 검사했다(총 12사례). 미설정/빈 문자열은 1로 기본화되며, 정확히 0일 때만 신뢰 창을 건너뛴다. false와 2는 그대로 전달되고 자동 신뢰가 켜진다. 이는 핸들러의 기존 != "0" 규칙과 일치하며 일반적인 boolean 문자열 파서로 바뀐 것은 아니다.

역검증: 별도 임시 샌드박스에서 해당 스크립트의 초기화 한 줄만 AUTO_TRUST=1로 되돌린 뒤, C3/R3b의 환경값 0, 플래그 없음 사례를 호출했다. create와 resume 모두 새 회귀의 assertion이 실패했다. 수정된 HEAD에서는 같은 사례가 통과했다. 기존 P1 지적을 해소한다.

P2: 쿨다운 중인 신뢰 창이 뒤의 안내를 가리지 않음

근거: .agents/skills/lib.sh:2953 및 :2958. 쿨다운에 걸린 항목에서 검색 전체를 끝내던 sys.exit(1)이 다음 항목을 검사하는 continue로 바뀌었다. 항목별 쿨다운 판정과 전송 기록은 유지된다.

재현 화면은 신뢰 문구와 업데이트 안내를 함께 포함한다.

Do you trust the contents of this directory?
 > 1. Yes, continue
Update available
 1. Update now
 2. Skip
 3. Skip until next version

S6c는 MAM_AUTO_TRUST=0, 쿨다운 30초, 핸들러 실행 3회 조건에서 신뢰 키 없이 2만 한 번 전송됨을 검증했다. S5f는 자동 신뢰가 켜진 상태와 쿨다운 60초에서 Enter, 2가 이 순서로 각각 한 번 전송됨을 검증했다. 둘 다 통과했다. 기존 S5/S5b를 포함한 선택 테스트도 통과하여, 쿨다운 중 재전송 억제와 만료 후 재시도 동작이 보존됨을 확인했다.

역검증: 임시 사본에서 이 continue만 이전 sys.exit(1)로 되돌렸다. S6c는 실제 전송 키가 []여서 실패했고, S5f는 실제 전송 키가 [Enter]뿐이어서 실패했다. 즉 새 테스트는 안내 전송 누락을 실제로 검출한다. 기존 P2 지적을 해소한다.

검증 결과와 범위

검증 트리의 HEAD/tree가 브리프와 일치하고 작업 트리가 깨끗함을 확인했다. git diff f4ba205...HEAD의 6개 파일을 검토했다. 제품 코드·소스 워크트리·실제 에이전트 세션은 수정하지 않았으며, 역검증 변경은 /tmp/mam-81cd-revert-*의 테스트 사본에만 적용했다.

실행한 선택 테스트:

tests/test_issue23_24_startup_path.py
tests/test_issue24_resume_dialogs.py
-k 's5 or s6 or environment_form or no_auto_trust_reaches'
  • 결과: 20 passed, 61 deselected in 191.05s.
  • 브리프의 Python 인터프리터를 AGENT_PYTHON_BIN과 실행 경로에 함께 지정했다. PYTHONDONTWRITEBYTECODE=1, -p no:cacheprovider, 검증 경로 밖의 고유 --basetemp=/tmp/mam-review-81cd4006.*를 사용했다.
  • 수정 역검증 4건 모두 새 회귀 assertion이 예상대로 실패했다: 신뢰 거부+안내, 신뢰 수락+안내, create 환경값, resume 환경값.
  • 환경값 경계 검사 12건 통과.
  • git diff --check f4ba205 HEAD, 변경된 셸 파일 3개의 개별 bash -n, 변경된 Python 테스트 파일 2개의 AST 구문 검사 통과.

직전 f4ba205 리뷰에서 기록한 247건 통과는 이전 트리의 결과다. 이번 트리에서 247건 전체를 재실행했다고 주장하지 않으며, 이번 검증은 두 정정과 관련 회귀에 집중했다. 델타는 교차 서버 스코프, dispatch 증거, 롤백 구현을 변경하지 않는다. 새 회귀는 샌드박스의 mock herdr/화면 문자열을 사용하므로 실제 CLI 화면 수용 시험을 새로 수행했다는 의미도 아니다.

단순 수정으로 두 지적이 닫혔으므로 재설계 에스컬레이션은 필요하지 않다.

[VERDICT: PASS]