Files
multi-agent-mux/.agents/reports/reviewer-grok-01/report-93408cd8.md
T
GodopuandClaude Fable 5.1 c3e6a7e96d release(v4.7.3): bump framework and eight skills to 4.7.3 in lockstep; archive PR #37 merge-side reviews
Issue #36: delegated prompts travel by file, a delegation that fails ends
the loop with rc 1. VERSIONS.md carries the entry; the merge-side reports
(round 1 @59be1c8 and round 2 @708262a with identity sidecars, base
59be1c8 -> head 708262a, evidence review-tree) are archived under
.agents/reports/<session>/.

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

45 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🔍 Review Report — Job 93408cd8 (PR #37 @ `59be1c8`)
- **Reviewer**: `reviewer-grok-01` · 2026-09-24
- **검증 경로**: `/var/folders/q_/68sxgw3j073dgjg8wl9s08vw0000gn/T/mam-review/loop-20260924T080014Z-2b3df0/1`
- **identity**: base `1debc7d` head `59be1c8` tree `a009c90` (일치)
- **본 체크아웃**: `main` `1debc7d` 유지
`git diff --check` 클린. 6커밋.
## NOT PASS
### N1. S9 가 macOS 에서 실패한다
`tests/test_issue36_prompt_transport.py:602` 가 stderr 에 리터럴 `File too large` 를 요구한다. 이 호스트(Darwin)에서 `ulimit -f 1` 로 `delegate_job_safe` 쓰기가 실패하면 rc 는 1 이고 stderr 는 이식 가능한 문장뿐이다:
`delegate_job_safe: cannot write the prompt file under …/.mam`
bash 가 libc 문구 `File too large` 를 찍지 않아 단언이 깨진다. 같은 스위트는 **1 failed, 99 passed, 1 skipped** (`s1b` 는 `linux_only`).
**대안**: 잔여 파일 없음과 `cannot write the prompt file` 은 모든 플랫폼에서 단언하고, `File too large` 는 Linux 에서만 보거나 빼라. 제품 경로(`run_loop.sh` 의 `rm -f` + stderr)는 이미 그 계약이다.
## 그 외 (N1 만 막음)
**(1) 전달.** 러너 `_run_cmd` 는 `--prompt-file` 만 (`runner.py:485`). 래퍼는 파일이면 그 경로를 registry 에 넘기고, 그 전에 읽는다 (`multi-agent-mux-delegate-job:188-199`). `cli.py` / `registry.py` 는 `--prompt` 와 `--prompt-file` 상호 배타. `lib.sh` 제출 두 곳과 `delegate_job_safe` 가 `--prompt` 를 파일로 바꾼다. 옛 셸 러너의 `--prompt` 호출은 모두 `delegate_job_safe` 를 탄다. 문서의 `--prompt` 예시는 하위 호환. 임시 파일은 제어 루트 `.mam/prompt-*`, 래퍼 반환 후 삭제. 셸 쓰기 실패는 `rm -f`.
**(2) 실패.** OSError → rc 126, 재시도도 같은 처리, 등록 실패면 `None` → 루프 rc 1. 재심·중재 **미등록** 은 rc 1. 순응 잡은 미등록뿐 아니라 `wait_for_job` 실패도 rc 1 (`runner.py:1393-1395`). 코드가 안 고쳐진 채 다음 라운드로 가면 안 되므로 강화가 맞다. 로그 문장이 wait 실패에도 “Failed to register” 인 것은 비차단.
**(3) diff 상한.** `diff_collect.sh` 주석: 증거만 자르고 전달은 파일. 잘린 diff 의 diff-only 원격 거부는 `runner.py:1204` 그대로.
**(4) create.** 주입문은 brief 절대경로만. `delegate_publish_cmd` 와 `--expect-dispatch-token` 유지. S8(100·130500) 통과.
**(5) 테스트.** 140KB 는 실제 wrapper/registry subprocess. S1b(E2BIG)는 Linux 전용 — macOS 는 커널 상한이 없어 skip 이 맞다. 경로는 파일을 검증한다. S8/S9 는 mock 이 아님.
**(6)–(8).** `--prompt` 짧은 문자열은 그대로. 4.7.3 bump 는 오케스트레이터 예정.
## 테스트
검증 경로, `AGENT_PYTHON_BIN` = 컨트롤 `.venv`, basetemp `/tmp`:
`test_issue36_prompt_transport.py` + `test_issue23_24_startup_path.py` + `test_loop_cli.py`
**1 failed, 99 passed, 1 skipped in 237.33s.**
[VERDICT: NOT PASS]