You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Adapter upgrades from the provider-CLI deep-dives #451
From the round-21 CLI doc-mines (full details in memory):
KIMI: KIMI_MODEL_THINKING_EFFORT env var forces effort on the wire (bypasses declared support_efforts), and KIMI_MODEL_NAME + KIMI_MODEL_API_KEY carry a whole per-spawn model — the config.toml flip hack in electron/kimi.js is obsolete (see Kimi reasoning effort races concurrent kimi turns (global config.toml flip window) #181). Also: print-mode steer means kimi -p children can legitimately outlive their first answer; treat long-lived -p processes as normal in the watchdog, or scope KIMI_CODE_HOME with print_background_mode=exit for bounded turns.
CODEX: exec --json has NO permission events — forwarding Codex permission prompts requires migrating the adapter to codex app-server stdio (also gives turn/steer with expectedTurnId, structured review, model discovery, version-pinned codegen). Note exec defaults to read-only; pass --sandbox workspace-write --ask-for-approval never for determinism. New worktrees are untrusted projects to Codex: pre-seed [projects.].trust_level or project config is skipped.
OPENCODE: skip stdout parsing entirely — spawn opencode serve per worktree, consume GET /event SSE, drive prompts via POST /session/:id/prompt_async, answer permissions via POST permissions/:permissionID, inject config/MCP via OPENCODE_CONFIG_CONTENT + OPENCODE_PERMISSION env vars. Set OPENCODE_CLIENT=solenta and OPENCODE_DISABLE_CLAUDE_CODE=true to avoid cross-agent config bleed.
Round 20 adapter notes from Claude Code 2.1.216–2.1.234:
Todo tools removed from Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and newer (2.1.233). Planboard live steps that scrape TodoWrite will go dark on current models unless CLAUDE_CODE_ENABLE_TODO_TOOLS=1. Prefer the provider's plan/goal events, or our own planboard, not TodoWrite.
SendMessage permission-classifier (2.1.222) — peer messages are now a permission-worthy action inside Claude. Mirror that when we forward peer_send from a bypass-permissions thread.
Nested subagent depth default flipped twice (1 → 3 in 2.1.219, back toward 1 in 2.1.217). Do not depend on a default; set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH explicitly if we care.
Round 28 intel on status detection: cmux (Ghostty-based macOS terminal for agents) gets reliable per-agent state by installing hooks into the agents themselves (cmux hooks setup detects installed agents and wires their hook systems to report working/waiting/done/error). This is the same pattern Solenta adapters use where providers expose hooks, and the ecosystem now expects it: agterm, herdr, and Orca (hook-based endpoint discovery for its dashboard) all do hook-driven status. Where a provider has no hooks, the fallbacks in the wild are PTY-output heuristics (fragile) and transcript-file watching (agent-console reads providers' own transcript files to find and resume sessions started elsewhere, no tmux needed). Adapter matrix should record which status channel each provider supports: native protocol events > hooks > transcript watching > PTY heuristics.
Round-21 items checked against the installed CLIs (kimi 0.39.1, codex 0.159.2, opencode 1.17.12) on 2026-10-18. Status:
Kimi
Done on branch coder/adapter-upgrades-from-the-provider-cli-d-3b8344 (not merged yet): effort now goes through KIMI_MODEL_THINKING_EFFORT on the child env. The config.toml flip is deleted. The env is set before resolveSpawn, so ssh/WSL runs get effort too; the flip never reached them. The env skips kimi's support_efforts check, so it is only set when honouredEfforts(entry, model) lists the level.
Not adopted: KIMI_MODEL_NAME. It requires KIMI_MODEL_API_KEY, and OAuth logins don't have one.
No change needed: worktree trust. Codex 0.159.2 already gives a git worktree the trust of its main checkout (probed with app-server config/read).
OpenCode
Done on the same branch: thread and workflow turns set OPENCODE_CLIENT=solenta. Side benefit: opencode only registers its question tool for app/cli/desktop clients, and a headless run can't answer it.
Not adopted: OPENCODE_DISABLE_CLAUDE_CODE. It also stops opencode reading the project's CLAUDE.md, which would strip instructions from repos that have no AGENTS.md.
Still open: moving to opencode serve + SSE + permission forwarding. Offered as a separate thread suggestion.
Electron suite with CODER_* env stripped: 4732 pass, 0 fail, 0 cancelled.
Activity
currentbits commentedon Aug 18, 2026
Round 20 adapter notes from Claude Code 2.1.216–2.1.234:
CLAUDE_CODE_ENABLE_TODO_TOOLS=1. Prefer the provider's plan/goal events, or our own planboard, not TodoWrite.CLAUDE_CODE_PROJECT_DIR_NAME(2.1.234) — set this when we isolate config dirs (Named provider instances: work/personal accounts, isolated config dirs, OpenRouter #453).SendMessagepermission-classifier (2.1.222) — peer messages are now a permission-worthy action inside Claude. Mirror that when we forwardpeer_sendfrom a bypass-permissions thread.CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTHexplicitly if we care.currentbits commentedon Aug 18, 2026
Round 21 Grok Build adapter notes (through 1.0.3, 12 Aug):
currentbits commentedon Aug 18, 2026
Round 28 intel on status detection: cmux (Ghostty-based macOS terminal for agents) gets reliable per-agent state by installing hooks into the agents themselves (
cmux hooks setupdetects installed agents and wires their hook systems to report working/waiting/done/error). This is the same pattern Solenta adapters use where providers expose hooks, and the ecosystem now expects it: agterm, herdr, and Orca (hook-based endpoint discovery for its dashboard) all do hook-driven status. Where a provider has no hooks, the fallbacks in the wild are PTY-output heuristics (fragile) and transcript-file watching (agent-console reads providers' own transcript files to find and resume sessions started elsewhere, no tmux needed). Adapter matrix should record which status channel each provider supports: native protocol events > hooks > transcript watching > PTY heuristics.currentbits commentedon Oct 18, 2026
Round-21 items checked against the installed CLIs (kimi 0.39.1, codex 0.159.2, opencode 1.17.12) on 2026-10-18. Status:
Kimi
coder/adapter-upgrades-from-the-provider-cli-d-3b8344(not merged yet): effort now goes throughKIMI_MODEL_THINKING_EFFORTon the child env. The config.toml flip is deleted. The env is set beforeresolveSpawn, so ssh/WSL runs get effort too; the flip never reached them. The env skips kimi'ssupport_effortscheck, so it is only set whenhonouredEfforts(entry, model)lists the level.KIMI_MODEL_NAME. It requiresKIMI_MODEL_API_KEY, and OAuth logins don't have one.-pchildren (steer mode). Kimi background subagents unsupported: turns killed at settle or silently stall #175 / Track kimi background subagents and keep the stall sweep off them (#175) #1572.Codex
--sandbox(Codex threads run in a read-only sandbox; Solenta never passes --sandbox #170).config/read).OpenCode
OPENCODE_CLIENT=solenta. Side benefit: opencode only registers itsquestiontool for app/cli/desktop clients, and a headlessruncan't answer it.OPENCODE_DISABLE_CLAUDE_CODE. It also stops opencode reading the project'sCLAUDE.md, which would strip instructions from repos that have noAGENTS.md.opencode serve+ SSE + permission forwarding. Offered as a separate thread suggestion.Electron suite with CODER_* env stripped: 4732 pass, 0 fail, 0 cancelled.
Pass kimi effort via env and name the opencode client (#451) (#1671)
currentbits commentedon Oct 18, 2026
Landed from Solenta thread "Adapter upgrades from the provider-CLI deep-dives" (PR #1671). Closed on merge.
Pass kimi effort via env and name the opencode client (#451)
Publish repos with no origin, and run interactive OpenCode turns on o…