Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VCgu9Fa9iT7TbJUSzdq4Ff
3.2 KiB
Issue #60, review 3 (head 0e05b1b)
Scope and identity. Reviewed base 74333f87d0c02888c2b5b281e912d97e74348c01 through head 0e05b1b6777ceb837066454ac688e04a0f5d14a0 in the assigned review-only worktree. Its HEAD/tree matched the brief and git status --short was empty. No code or branch changes were made.
Review result. The second-round isolation defect is addressed: tests/_agent_home_guard.py:21 now drops inherited XDG_DATA_HOME for each test, and :48-49 snapshots the OpenCode directory under the ambient XDG root so data written there is still detected. tests/test_issue60_opencode_v2.py:297-304 probes --version with a temporary HOME and TMPDIR; the opt-in real 2.x contract test also uses its own temporary home and standalone API processes (:311-352). I ran that contract test here; it passed, with no service operation or model prompt. The worktree had no changes after testing, and process inspection showed only the pre-existing user opencode serve --service process (PID 86524), which was left untouched.
The status change preserves the prior yes/MISSING/no behavior while resolving the database through the adapter and querying session_v2: .agents/skills/multi-agent-mux-status/scripts/status.sh:105-121. The same branch exists in both embedded status paths. This avoids the stale fixed ~/.local/share lookup and does not change status formatting or exit handling. Adapter path resolution at .agents/skills/lib_py/agents/adapters/opencode.py:90-123 applies caller XDG data only to the caller's own home, runs debug paths with the requested home, and falls back to that home/XDG-derived 2.x database path.
No blocking defect found in the cumulative change. The prior data-safety and purge concerns remain covered: focused tests exercise parent/child deletion, legacy rows retained by migrated databases, preservation of unrelated sessions, and residual reporting after a failed delete. discover selects top-level session_v2 rows and verifies child sessions independently. The fake CLI and real 2.x opt-in test both cover the expected v2 contract. Search of active skills found no remaining OpenCode assumptions on db path, FROM session, or an OpenCode --agent option; only explanatory comments and generic delegation syntax matched.
Validation. On macOS / Python 3.9.6, ran the related suite in the review worktree with a temporary HOME/TMPDIR, XDG variables unset, requested environment scrubbed, PYTHONDONTWRITEBYTECODE=1, -p no:cacheprovider, and an external temporary basetemp:
tests/test_issue60_opencode_v2.py tests/test_a4_adapter_contract.py tests/test_issue31_purge_residual.py tests/test_issue55_agent_homes.py tests/test_issue42_skill_blocks.py tests/test_issue10_13_purge.py tests/test_tier2_component.py::test_comp_opencode_create_and_reconcile_and_stop
Result: 187 passed, 1 skipped (118.14s). Also ran git diff --check over base..head and bash -n on the modified status, reconcile, create, and resume shell scripts; both passed. The full suite and Linux runtime were not rerun in this reviewer turn; the brief records the orchestrator's full-suite result (1949 passed, 56 skipped). No Linux-specific failure was observed, but this review's runtime validation was macOS-only.
[VERDICT: PASS]