direct backend: add harness_config_dirs for seeding Claude/Codex local configs (REMOTE-2316) - #114
Draft
seemeroland wants to merge 1 commit into
Draft
direct backend: add harness_config_dirs for seeding Claude/Codex local configs (REMOTE-2316)#114seemeroland wants to merge 1 commit into
seemeroland wants to merge 1 commit into
Conversation
When a task uses the Claude Code or Codex harness, the direct backend
sets CLAUDE_CONFIG_DIR / CODEX_HOME to a per-task directory inside the
task workspace so concurrent tasks don't interfere with each other.
This means each task starts with an empty harness config directory and
local plugins/skills on the worker host are not available.
Add a new HarnessConfigDirs configuration option (harness_config_dirs
in YAML) to the direct backend that lets self-hosted worker operators
point at a host directory to seed from before each task runs:
backend:
direct:
harness_config_dirs:
claude: "/home/operator/.claude"
codex: "/home/operator/.codex"
The host directory is copied (not mounted) so each task gets an
isolated snapshot. Writes during the task do not affect the host dir
and are discarded on cleanup. If the source directory does not exist
the step is silently skipped so the config can be set up ahead of
an actual Claude Code install.
The README gets a new section documenting this feature alongside
the workarounds for the Docker and Kubernetes backends (volume mounts
and pod_template / custom sidecar, respectively) and a note on the
current state for Warp-managed cloud environments.
Addresses REMOTE-2316.
Co-Authored-By: Oz <oz-agent@warp.dev>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Addresses REMOTE-2316: when a task runs with the Claude Code or Codex harness on a self-hosted direct backend, local plugins/skills on the host are not available because the worker isolates each task into an empty harness config directory.
Changes
New
harness_config_dirsconfig option for the direct backend — operators can point at a host directory to seed into each task's isolated harness config directory before the task runs:The host directory is copied (not mounted), so each task gets an isolated snapshot and concurrent tasks don't interfere. Writes during a task are discarded on cleanup. If the source directory doesn't exist the step is silently skipped.
README documentation — a new "Claude Code harness: local plugins and settings" section documents:
harness_config_dirsfeature for the direct backendFiles changed
internal/config/config.go—HarnessConfigDirsfield onDirectConfiginternal/worker/direct.go—HarnessConfigDirsonDirectBackendConfig,seedHarnessConfigDir()implementation, call site inExecuteTaskmain.go— wireHarnessConfigDirsfrom config to backendinternal/worker/direct_test.go— 4 new test cases covering the seeding logicREADME.md— new section with per-backend workaround guidanceLabels
from-feedback-bot
Conversation: https://staging.warp.dev/conversation/3c455f9d-3d88-4000-8906-3aa7a8abe321
Run: https://oz.staging.warp.dev/runs/019f95f2-e472-737c-a531-c2542b8a5e0a
This PR was generated with Oz.