From 5f583547723ac86577f1f7e916fbfc9dc7272c6a Mon Sep 17 00:00:00 2001 From: Daniel Maddern Date: Sun, 16 Aug 2026 15:11:28 +0700 Subject: [PATCH] Fix opencode discovery for Spark and Windows --- .../resources/management/commands/seed_spark_resources.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/control_plane/resources/management/commands/seed_spark_resources.py b/control_plane/resources/management/commands/seed_spark_resources.py index 058fc25..1436b74 100644 --- a/control_plane/resources/management/commands/seed_spark_resources.py +++ b/control_plane/resources/management/commands/seed_spark_resources.py @@ -2,6 +2,7 @@ from __future__ import annotations import os import shutil +from pathlib import Path from django.core.management.base import BaseCommand @@ -15,7 +16,12 @@ class Command(BaseCommand): env_name = f"ARTIFEX_{model_key.upper()}_OPENCODE_COMMAND" if os.environ.get(env_name): return os.environ[env_name] - executable = shutil.which("opencode") or "opencode" + if os.environ.get("ARTIFEX_OPENCODE_COMMAND"): + return os.environ["ARTIFEX_OPENCODE_COMMAND"] + executable = shutil.which("opencode") + if executable is None: + default_user_install = Path.home() / ".opencode" / "bin" / "opencode" + executable = str(default_user_install) if default_user_install.exists() else "opencode" return f"{executable} run" def opencode_config(self, model_key: str) -> dict[str, object]: