Skip to content

Add Cline harness over its native ACP server (cline --acp) - #237

Open
jhonoryza wants to merge 4 commits into
zeronsh:mainfrom
jhonoryza:feat/cline-harness
Open

Add Cline harness over its native ACP server (cline --acp)#237
jhonoryza wants to merge 4 commits into
zeronsh:mainfrom
jhonoryza:feat/cline-harness

Conversation

@jhonoryza

@jhonoryza jhonoryza commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Closes #236

Summary

Adds Cline (open-source coding agent, npm cline, Apache-2.0) as a harness, driven over its native ACP servercline --acp — via a new AcpAgentSpec on the shared AcpHarness (same shape as Grok/Hermes/Pi). No new driver; no engine/sync/doc-crate changes.

  • HarnessId::Cline (proto, serde kebab-case → "cline", additive + wire-compatible)
  • cline_spec(): executable cline, args ["--acp"], env override CLINE_EXECUTABLE, TurnBoundary steering, reasoning ladder Minimal..XHigh mapped from the CLI's --thinking (degrades to agent default — no config option advertised), fallback "Cline default" model, 30s prompt stall bound
  • Engine registry slot + agent-account slug + UI surfaces (settings blurb, cli_name, brand icon cline-mark, picker + accounts icons) + ZERON_HARNESS=cline
  • Fixture test cline_spec_runs_the_same_fixture_turn (existing fake-ACP harness)
  • Docs: feasibility analysis + task breakdown + live-probe results (docs/research/cline-harness.md, docs/research/cline-harness-tasks.md)

Verified against the real CLI (3.0.60, live probe — details in the doc)

  • session/prompt settles deterministically with stopReason: "end_turn" (4.1s trivial turn)
  • First-class models catalog + plan/act modes on session/new; zeron's picker gets the real catalog
  • configOptions are provider + model only — approvals always arrive as session/request_permission and bridge to zeron's approval UI (deliberately NOT launching with --auto-approve true)
  • Cross-process session/load resume confirmed (replays prior conversation; mcpServers required)
  • No steering extension (_meta null) → turn-boundary steering, as spec'd
  • promptCapabilities.image: true → attachments map to image content blocks

Testing

  • cargo check --workspace clean
  • cargo test -p zeron-harness green (incl. new cline fixture test)
  • cargo test -p zeron-engine registry green
  • cargo clippy — no new warnings from this change (remaining warnings are pre-existing in untouched files)
  • Live end-to-end against the real cline --acp: handshake → session/new → session/prompt → cross-process session/load + follow-up turn

Known follow-up

  • cline installed via mise is only reachable through the login-shell PATH probe; consider adding mise bin dirs to the shared version-manager scan

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

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.

Add Cline as a coding agent harness (native ACP server, cline --acp)

1 participant