Skip to content

feat(harness): crush CLI harness — 3/4 column (RFC-006 Phase 5)#55

Merged
explosivebit merged 2 commits into
mainfrom
feat/harness-crush
Jun 3, 2026
Merged

feat(harness): crush CLI harness — 3/4 column (RFC-006 Phase 5)#55
explosivebit merged 2 commits into
mainfrom
feat/harness-crush

Conversation

@explosivebit

Copy link
Copy Markdown
Contributor

What

Fifth agentic harness — crush (charmbracelet), model-agnostic (Go binary).

Result (live on the board)

board.json now 26/33 scored. crush column on be_01_jwt_auth: codestral
7.08 · qwen-3-14b 6.75 · qwen3-coder-30b 6.25 · devstral FAILED.

Harness × model compatibility (the product) so far on the 4 coders:

harness scored note
aider 4/4 most tolerant
goose 3/4 codestral failed
crush 3/4 devstral failed
opencode 1/4 XML-tool-call pickiness

crush tolerates qwen3-coder-30b + codestral that opencode's openai provider
rejected — the harness engine, not just the model, drives compatibility.

How

  • Image: pinned crush v0.75.0 release binary (direct download).
  • _crush_invocation recipe: crush.json via config_files (openai-compat provider,
    api_key=$LITELLM_MASTER_KEY literal → key not in the file). CRUSH_GLOBAL_CONFIG= /workspace (a DIRECTORY) + CRUSH_GLOBAL_DATA=/tmp (session DB out of the patch).
  • stacks/crush/stack.yaml: crush run -q.

Verify

730 tests green; ruff + mypy --strict clean; 13/13 stack specs valid. Isolation-
smoked end-to-end.

Refs: rfc-006-stack-executor

🤖 Generated with Claude Code

explosivebit and others added 2 commits June 3, 2026 19:11
Fourth agentic harness (model-agnostic, charmbracelet/crush). Go binary; runs
the same open coder models via an openai-compat provider. Built + isolation-
smoked end-to-end (crush run → proxy → wrote a file in the sandbox).

- infra/docker/harness-crush: pinned crush v0.75.0 release binary (direct download).
- _crush_invocation recipe: crush.json via config_files (openai-compat provider,
  api_key=$LITELLM_MASTER_KEY literal → key never written to the file). Crush
  discovers config via CRUSH_GLOBAL_CONFIG=/workspace (a DIRECTORY) and writes its
  session DB to CRUSH_GLOBAL_DATA=/tmp (outside /workspace → out of the patch).
- stacks/crush/stack.yaml: command `crush run -q`, L1+L2.
- tests: crush recipe-proven; supported_harnesses={aider,goose,opencode,crush}.

ruff + mypy --strict clean; 13/13 stack specs valid.

Refs: rfc-006-stack-executor

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…oder 6.25)

--add-stack crush → board 26/33. crush handles 3/4 coders (devstral failed),
notably MORE than opencode (1/4) — crush's tool-handling tolerates qwen3-coder
and codestral that opencode's openai-provider rejected (XML tool calls). Real
harness×model compat so far: aider 4/4, goose 3/4, crush 3/4, opencode 1/4.

Refs: rfc-006-stack-executor

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@explosivebit explosivebit merged commit 2400fef into main Jun 3, 2026
3 checks passed
@explosivebit explosivebit deleted the feat/harness-crush branch June 3, 2026 16:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant