Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,6 @@ Provider bootstrap, Runtime images and Harness adapters must agree on these name

Historical Runtime and project-version upgrades are not supported. Do not ship retired installer conversion implementations; preserve rejection guards under the [installer lifecycle contract](deploy/install/README.md#versions-and-the-lock). Preserve older installations, Runtime files, provider resources and Session history; install the current release separately. Startup never verifies and rebinds historical allocations or accepts node deployments without a valid specification. Keep the original Core responsible for unresolved resources; see the [installation version policy](docs/getting-started/operations.md#installation-version-policy). Use this release's template builder for new E2B templates. Ordinary current-version database initialization uses the migration runner.

The dormant Pi adapter keeps its `parsar` provider slug because the separate Parsar product pins model selections to that identity. This is a product boundary exception for the name guard, like the skill-upload integration.

Build the MiniMax companion from this revision's pinned patched native sources.

## Branding
Expand Down
29 changes: 7 additions & 22 deletions apps/daemon/internal/agent/binpath/binpath.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Package binpath resolves which executable each agent adapter should
// probe and spawn.
//
// By default every engine is looked up by bare name on PATH ("claude",
// By default every engine is looked up by bare name on PATH ("codex",
// "codex", ...). That breaks in images where PATH is not under our
// control: e2b's base image, for instance, ships its own
// /usr/local/bin entries that can shadow the ones we install, and a
Expand All @@ -13,8 +13,8 @@
// The env overrides below let an image or operator pin an absolute path
// instead. They are read in ONE place so the version probe
// (CheckCLIAvailable) and the run-time spawn (sessionConfig) can never
// disagree: a probe that succeeds against /custom/claude while the run
// spawns PATH's `claude` would advertise a capability the daemon cannot
// disagree: a probe that succeeds against /custom/codex while the run
// spawns PATH's `codex` would advertise a capability the daemon cannot
// actually honour.
package binpath

Expand All @@ -26,20 +26,14 @@ import (
// Env var names for the per-engine executable overrides. Empty or unset
// means "look up the default name on PATH".
const (
EnvClaudeCode = "OAC_RUNTIME_CLAUDE_BIN"
EnvCodex = "OAC_RUNTIME_CODEX_BIN"
EnvPi = "OAC_RUNTIME_PI_BIN"
EnvOpenCode = "OAC_RUNTIME_OPENCODE_BIN"
EnvMCode = "OAC_RUNTIME_MCODE_BIN"
EnvCodex = "OAC_RUNTIME_CODEX_BIN"
EnvMCode = "OAC_RUNTIME_MCODE_BIN"
)

// Default executable names, used when the matching env var is unset.
const (
DefaultClaudeCode = "claude"
DefaultCodex = "codex"
DefaultPi = "pi"
DefaultOpenCode = "opencode"
DefaultMCode = "mcode"
DefaultCodex = "codex"
DefaultMCode = "mcode"
)

// resolve returns the trimmed env override when set, else fallback.
Expand All @@ -50,17 +44,8 @@ func resolve(envVar, fallback string) string {
return fallback
}

// ClaudeCode returns the claude executable to probe and spawn.
func ClaudeCode() string { return resolve(EnvClaudeCode, DefaultClaudeCode) }

// Codex returns the codex executable to probe and spawn.
func Codex() string { return resolve(EnvCodex, DefaultCodex) }

// Pi returns the pi executable to probe and spawn.
func Pi() string { return resolve(EnvPi, DefaultPi) }

// OpenCode returns the opencode executable to probe and spawn.
func OpenCode() string { return resolve(EnvOpenCode, DefaultOpenCode) }

// MCode returns the mcode executable to probe and spawn.
func MCode() string { return resolve(EnvMCode, DefaultMCode) }
3 changes: 0 additions & 3 deletions apps/daemon/internal/agent/binpath/binpath_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,8 @@ func TestResolvers(t *testing.T) {
override string
wantPinned string
}{
{name: "claude", envVar: EnvClaudeCode, fallback: DefaultClaudeCode, resolve: ClaudeCode, override: " /opt/agents/claude ", wantPinned: "/opt/agents/claude"},
{name: "codex", envVar: EnvCodex, fallback: DefaultCodex, resolve: Codex, override: " /opt/agents/codex ", wantPinned: "/opt/agents/codex"},
{name: "mcode", envVar: EnvMCode, fallback: DefaultMCode, resolve: MCode, override: " /opt/agents/mcode ", wantPinned: "/opt/agents/mcode"},
{name: "pi", envVar: EnvPi, fallback: DefaultPi, resolve: Pi, override: " /opt/agents/pi ", wantPinned: "/opt/agents/pi"},
{name: "opencode", envVar: EnvOpenCode, fallback: DefaultOpenCode, resolve: OpenCode, override: " /opt/agents/opencode ", wantPinned: "/opt/agents/opencode"},
}

for _, tt := range tests {
Expand Down
239 changes: 0 additions & 239 deletions apps/daemon/internal/agent/claudecode/ask.go

This file was deleted.

Loading
Loading