Files
multi-agent-mux/.agents/reports/planner-reviewer-claude-01/report-b3aa4b6f.md
T

5.0 KiB

🔍 Cross-Code Review — OpenCode Adapter Implementation, Fix Round 4 (Job b3aa4b6f)

  • Reviewer: planner-reviewer-claude-01
  • Target diff: cumulative working-tree diff, confirmed via git status --short/git diff --stat to match the brief exactly. This round is a near-byte-identical superset of the already-approved 3473d7e3 round.
  • Method: rather than re-reading the entire diff line-by-line (already thoroughly verified across three prior rounds — a65aaf9f NOT PASS, b6fd3987 PASS, 3473d7e3 PASS), I isolated the actual delta first: .agents/skills/lib_py/agents/adapters/opencode.py's diff header shows blob hash 9e5d01b — identical to the hash I already verified in 3473d7e3 — confirming the adapter itself is byte-for-byte unchanged. git diff --stat line counts match the prior round exactly file-for-file except tests/test_tier1_unit.py (+18 lines). I focused verification on that one real delta.

1. The Actual Delta — OPENCODE_PERMISSION Export Syntax Change (Positive)

create_session.sh/resume_session.sh changed from the parameter-expansion form I validated last round:

export OPENCODE_PERMISSION="${OPENCODE_PERMISSION:-{\"*\":\"allow\"}}"

to an explicit conditional with a plain single-quoted literal:

if [ -z "${OPENCODE_PERMISSION:-}" ]; then
  export OPENCODE_PERMISSION='{"*":"allow"}'
fi

I did not assume equivalence — reproduced this directly:

$ bash -c 'unset OPENCODE_PERMISSION; if [ -z "${OPENCODE_PERMISSION:-}" ]; then export OPENCODE_PERMISSION='"'"'{"*":"allow"}'"'"'; fi; printf "VALUE=[%s]\n" "$OPENCODE_PERMISSION"'
VALUE=[{"*":"allow"}]
$ python3 -c 'import json,os; print(json.loads(os.environ["OPENCODE_PERMISSION"]))'
{'*': 'allow'}

Clean, valid JSON — no regression from the fix already validated in 3473d7e3. This new form is arguably more robust than the previous one: it sidesteps nested-quote-escaping entirely (the exact class of bug that slipped through the b6fd3987 round) by using a plain single-quoted literal in a context where single quotes are actually meaningful shell quoting, rather than embedding an escaped JSON literal inside a ${VAR:-word} expansion already nested in an outer double-quoted context.

2. Expanded Test Coverage — Previously-Untested "Preset" Path Now Covered

The new test additions in tests/test_tier1_unit.py::test_opencode_shell_and_scripts_integration add a scenario I hadn't seen tested before: verifying that if a caller has already set OPENCODE_PERMISSION (e.g., to {"*":"deny"}), the script's if [ -z ... ] guard correctly leaves it untouched rather than clobbering it with the default:

res_c_preset = subprocess.run([...], env={**os.environ, "OPENCODE_PERMISSION": '{"*":"deny"}'}, ...)
assert json.loads(res_c_preset.stdout.strip()) == {"*": "deny"}

Both create_session.sh and resume_session.sh get this preset-path assertion alongside the unset-path assertion. This closes a real test-coverage gap (not a bug — bash's :- semantics already respected a preset value correctly in the prior syntax too — but it was never explicitly asserted before now).

3. Everything Else — Confirmed Unchanged From the Already-Verified 3473d7e3 Round

  • opencode.py adapter: byte-identical (blob hash match) — the real-schema (directory/time_created ms) fix, _resolve_db()'s live opencode db path invocation, and all other adapter behavior already independently verified (including against a scratch copy of the real production database schema in b6fd3987) carry forward unchanged.
  • reconcile.sh's drift-C block, including its DRY reuse of the adapter's _resolve_db() via get_adapter('opencode'), is unchanged.
  • All 29 lockstep wiring points (run_loop.sh, status.sh, lib.sh, registry.py, atomic_yaml.py, verify_session.py, workspace_uuid.py, 6 skill scripts, update_yaml_resumed.sh, orc_onboard.sh) are unchanged and were already verified across the prior two rounds.
  • Diff-stat line counts confirm this: every file matches the prior round's insertion/deletion counts exactly except test_tier1_unit.py.

4. Test Suite

Independently ran the full suite myself:

.venv/bin/python -m pytest tests/ -q
→ 447 passed in 761.60s (0:12:41), exit code 0

Same count as the prior round (the new preset-path checks are additional assertions inside an existing test function, not new test functions, so the total count is unchanged as expected). Zero failures, zero regressions.


5. Verdict

This round's only real change is a stylistic-but-meaningfully-more-robust rewrite of the OPENCODE_PERMISSION default-export logic (avoiding nested-quote fragility entirely) plus genuinely useful new test coverage for the preset/override-respecting path. Independently verified both are correct via direct bash reproduction. Everything else in the diff is confirmed byte-identical to the 3473d7e3 round I already thoroughly reviewed and passed (including the schema-correctness fix validated against a real production database in b6fd3987). Full suite green, 447/447, zero regressions.

[VERDICT: PASS]