Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VCgu9Fa9iT7TbJUSzdq4Ff
4.4 KiB
4.4 KiB
PR #62 Code Review Report — Round 2 (1d7b7da..6a37c00)
- Job ID:
fe8fd3b9 - Reviewer:
agy(herdr:reviewer-agy-01) - Branch:
fix/issue-60-linux - Base .. Head:
1d7b7dab58a10fe86fd747b7290d47674ca93230..6a37c0019baa31ee28b32a086e57b4c8239413c4(9 commits; Round 2 delta:6a37c00) - Verification Worktree:
/var/folders/q_/68sxgw3j073dgjg8wl9s08vw0000gn/T/mam-review/loop-20261019T015801Z-05463c/1
1. Executive Summary
Commit 6a37c00 resolves all blocking and non-blocking findings from Round 1 (6a4e385):
- macOS SQLite persistent WAL in
wal_homefixture (tests/test_issue60_linux_fixes.py:155-162):- After
_wal_writer(db, ws).close()checkpoints the committed WAL rows intoopencode.db,make("clean")removesopencode.db-walandopencode.db-shmif present (which Apple's systemlibsqlite3.dylibkeeps on disk due toSQLITE_FCNTL_PERSIST_WAL=1). - All 20
(query × state)combinations intest_a_query_reads_right_and_leaves_the_sidecars_alonenow pass on macOS.
- After
- Quoted example required in
input_placeholder_pattern(.agents/skills/lib_py/agents/adapters/opencode.py:76-79):- Pattern updated to
r'Ask anything(?:…|\.\.\.) "[^"]*"?'so a bareAsk anything…orAsk anything...typed by a user is preserved as draft input (test_typed_text_is_read_as_typed), while the 2.x home screen placeholder (both full and narrow-truncated) is stripped.
- Pattern updated to
- Executable check for
~/.opencode/bin/opencodeinauth_ok()(.agents/skills/lib_py/agents/adapters/opencode.py:321-323):auth_ok()now checksos.path.isfile(local) and os.access(local, os.X_OK)for<home>/.opencode/bin/opencode(test_a_home_install_that_cannot_run_is_not_enough).
- Read-only
_ro_connectinstatus.shandreconcile.sh(.agents/skills/multi-agent-mux-status/scripts/status.sh:115-117, 316-318,.agents/skills/multi-agent-mux-monitor/scripts/reconcile.sh:953-955):- Both scripts now open
opencode.dbvia_ro_connect(odb)instead of rawsqlite3.connect(odb), pinned bytest_status_and_reconcile_open_the_database_read_only.
- Both scripts now open
2. Verification of Cumulative Changes (1d7b7da..6a37c00)
| Area | Verification Result |
|---|---|
_ro_connect (opencode.py:13-36) |
Verified all 3 branches (wal and shm -> mode=ro, not wal -> mode=ro&immutable=1, wal and not shm -> temp copy + .backup(:memory:)) across all 5 adapter queries and 4 DB states (clean, leftover, walonly, writer) on macOS Python 3.9.6 / Apple SQLite 3.51.0. Sidecars are neither created nor deleted. |
_DB_PATHS cache (opencode.py:40, 145-166) |
Process-local cache keyed by (bin_path, HOME, XDG_DATA_HOME) caches successful debug paths lookups and does not cache failures. |
input_placeholder_pattern (opencode.py:75-79, base.py:212-217, input_region.py:80-81) |
Matches `Ask anything(?:… |
auth_ok & auth-ok CLI (opencode.py:319-323, __main__.py:120-127, create_session.sh:146-151) |
Verifies shutil.which("opencode") or executable <home>/.opencode/bin/opencode without running opencode --version. |
status.sh, reconcile.sh, stop_session.sh |
status.sh and reconcile.sh use _ro_connect(odb); stop_session.sh logs unconfirmed /exit delivery accurately without altering exit codes or kill-chain behavior. |
3. Test Execution Summary
Executed in /var/folders/q_/68sxgw3j073dgjg8wl9s08vw0000gn/T/mam-review/loop-20261019T015801Z-05463c/1 with isolated HOME, external --basetemp, PYTHONDONTWRITEBYTECODE=1, and -p no:cacheprovider:
tests/test_issue60_linux_fixes.py: 52 passedtests/test_issue60_opencode_v2.py: 15 passedtests/test_a4_adapter_contract.py: 33 passedtests/test_issue50_dispatch.py: 49 passedtests/test_issue55_agent_homes.py: 11 passedtests/test_tier2_component.py: 42 passed- Total:
202 passed in 377.34s - Post-check: Verification worktree is clean (
git status -sempty,git diff --checkclean, no.mamdirectory), and no strayopencodetest processes remain.
4. Findings
No blocking or non-blocking issues remaining. PR #62 (fix/issue-60-linux, 1d7b7da..6a37c00) is ready to merge.
[VERDICT: PASS]