feat(harness): crush CLI harness — 3/4 column (RFC-006 Phase 5)#55
Merged
Conversation
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>
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.
What
Fifth agentic harness — crush (charmbracelet), model-agnostic (Go binary).
Result (live on the board)
board.jsonnow 26/33 scored. crush column onbe_01_jwt_auth: codestral7.08 · qwen-3-14b 6.75 · qwen3-coder-30b 6.25 · devstral FAILED.
Harness × model compatibility (the product) so far on the 4 coders:
crush tolerates qwen3-coder-30b + codestral that opencode's openai provider
rejected — the harness engine, not just the model, drives compatibility.
How
_crush_invocationrecipe: crush.json via config_files (openai-compat provider,api_key=$LITELLM_MASTER_KEYliteral → 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