fix(opencode): tests drop XDG_DATA_HOME, status reads the adapter's db, the version probe runs in a home of its own (Issue #60, review 2)
- Review 8a485fa0 B1 / c9d06e85 / c4e96018 (blocking): the adapter now follows the caller's XDG_DATA_HOME for its own home, but the tests did not drop it: a sandbox that sets HOME resolved the runner's real data dir. XDG_DATA_HOME joins _agent_home_guard.DROPPED_VARS (dropped per test), and the session guard watches <XDG_DATA_HOME>/opencode when it is set. Checked with XDG_DATA_HOME set to a separate dir: the opencode modules pass and nothing is written there. - status.sh asks the adapter for the db (`debug paths`, XDG-aware) instead of a fixed ~/.local/share/opencode (8a485fa0 N1). - The opt-in test's `opencode --version` probe ran with the real HOME at import and appended to the real opencode log; it runs in a temporary home now (8a485fa0 N2). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VCgu9Fa9iT7TbJUSzdq4Ff
This commit is contained in:
1 parent
cb5f439cce
commit
0e05b1b677
3 files changed
+17
-31
No files matched your search
@@ -18,7 +18,7 @@ import tempfile
|
||||
|
||||
# The pane-inherited variables conftest._isolate_agent_homes drops for every
|
||||
# test, so HOME (which the tests set) governs, as it does in a plain shell.
|
||||
DROPPED_VARS = ("HOME_DIR", "CLAUDE_PROJECT_DIR", "CLAUDE_CONFIG_DIR", "CODEX_HOME", "LOCAL_BIN")
|
||||
DROPPED_VARS = ("HOME_DIR", "CLAUDE_PROJECT_DIR", "CLAUDE_CONFIG_DIR", "CODEX_HOME", "XDG_DATA_HOME", "LOCAL_BIN")
|
||||
# Read by the code under test but left alone, on purpose: HOME is where the
|
||||
# real herdr tests and the shim bootstrap find the server socket, and it is
|
||||
# what the suite's own tests set for an isolated home; XDG_CONFIG_HOME and
|
||||
@@ -45,7 +45,8 @@ def watch_dirs(ambient):
|
||||
for d in ("conversations", "cache", "brain", "annotations", "presence")]
|
||||
dirs += [("codex", os.path.join(codex, "sessions")),
|
||||
("grok", os.path.join(home, ".grok", "sessions")),
|
||||
("opencode", os.path.join(home, ".local", "share", "opencode")),
|
||||
("opencode", os.path.join(ambient.get("XDG_DATA_HOME") or os.path.join(home, ".local", "share"),
|
||||
"opencode")),
|
||||
("hermes", os.path.join(home, ".hermes"))]
|
||||
return dirs
|
||||
|
||||
|
||||
Reference in new issue
Block a user