From 276d98b5c5bbd53a5b9d82d4edcdc2aa3a1f34b6 Mon Sep 17 00:00:00 2001 From: Nick Sweeting Date: Mon, 22 Jun 2026 00:01:24 -0700 Subject: [PATCH] Use shared opencode plugin release --- archivebox/tests/test_opencode_agent.py | 31 ++++++++++++++----------- pyproject.toml | 2 +- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/archivebox/tests/test_opencode_agent.py b/archivebox/tests/test_opencode_agent.py index 8cc613b9..885bc2f2 100644 --- a/archivebox/tests/test_opencode_agent.py +++ b/archivebox/tests/test_opencode_agent.py @@ -5,8 +5,8 @@ from pathlib import Path from types import SimpleNamespace from urllib.parse import quote -import psutil import pytest +import requests from archivebox.tests.conftest import ADMIN_TEST_HOST, run_archivebox_cmd @@ -54,7 +54,6 @@ def opencode_archive_config(initialized_archive): { "ABXPKG_INSTALL_TIMEOUT": "900", "ABXPKG_MIN_RELEASE_AGE": "0", - "ABX_RUNTIME": "archivebox", "ARCHIVEBOX_ALLOW_NO_UNIX_SOCKETS": "true", "OPENCODE_ENABLED": "True", "OPENCODE_HOST": "127.0.0.1", @@ -225,20 +224,24 @@ def test_opencode_proxy_sse_response_is_unbuffered(admin_client, live_opencode): assert response.headers["Cache-Control"] == "no-store" -def test_opencode_starts_with_data_dir_cwd_and_isolated_state(live_opencode): - process = psutil.Process(live_opencode.process.pid) - env = process.environ() +def test_opencode_starts_with_isolated_state(live_opencode): workdir = str(live_opencode.config.data_dir.resolve()) + state_dir = live_opencode.config.state_dir - assert Path(process.cwd()).resolve() == live_opencode.config.data_dir.resolve() - assert env["BROWSER"] == "false" - assert env["HOME"] == str(live_opencode.config.state_dir / "home") - assert env["XDG_CONFIG_HOME"] == str(live_opencode.config.state_dir / "config") - assert env["XDG_DATA_HOME"] == str(live_opencode.config.state_dir / "data") - assert env["XDG_STATE_HOME"] == str(live_opencode.config.state_dir / "state") - assert env["XDG_CACHE_HOME"] == str(live_opencode.config.state_dir / "cache") - assert env["OPENCODE_DISABLE_PROJECT_CONFIG"] == "true" - assert env["GIT_CEILING_DIRECTORIES"] == workdir + project = requests.get( + f"{live_opencode.settings['origin']}/project/current", + params={"directory": workdir}, + timeout=live_opencode.settings["timeout"], + ) + project.raise_for_status() + + assert Path(live_opencode.settings["workdir"]).resolve() == Path(workdir) + assert Path(str(project.json()["worktree"])).resolve() == Path(workdir) + assert live_opencode.process.poll() is None + assert (state_dir / "data" / "opencode" / "opencode.db").is_file() + assert (state_dir / "SKILL.md").is_file() + assert (state_dir / "config" / "opencode" / "skills" / "archivebox" / "SKILL.md").resolve() == state_dir / "SKILL.md" + assert not (live_opencode.config.data_dir / ".git" / "not-a-git").exists() def test_opencode_state_dir_is_separate_from_workdir(tmp_path): diff --git a/pyproject.toml b/pyproject.toml index 9a536440..e5351bc0 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -80,7 +80,7 @@ dependencies = [ ### Binary/Package Management "abxbus==2.5.10", # EventBus API "abxpkg>=1.11.229", # for: detecting, versioning, and installing binaries via apt/brew/pip/npm - "abx-plugins>=1.11.240", # shared ArchiveBox plugin package with Chrome/Puppeteer dependency wiring + "abx-plugins>=1.11.241", # shared ArchiveBox plugin package with Chrome/Puppeteer dependency wiring "abx-dl>=1.11.230", # shared ArchiveBox downloader package with blocking install preflight ### UUID7 backport for Python <3.14 "uuid7>=0.1.0; python_version < '3.14'", # provides the uuid_extensions module on Python 3.13