{
  "notes": "EPISODE 6, 2026-10-27. Read state/schema/all 28 results. Seven accepted batches settled; 28/30 items used, none pending/failed, no current refusals/requester notes. Winner recipe landed. finish=true; no spawn/cancel/wake. Carry all results for final writing; two items unused.\n\nEVIDENCE PRIORITY: recipe-vibe/vibe; tagged integration-finalists/{gemini,kilo}; evidence-repair/{hermes,letta}; profiles-round2/opencode-v2 over V1. These override thinner original profiles/compare where they conflict. rank-finalists/compare is provisional rationale, not proof of missing features. Static research only; distinguish documented, source-inferred, conflicting, not found and proposed. Preserve version scope: Qwen moving docs/main are not a stable audit.\n\nFINAL RANKING (editorial judgment, not benchmark): 1 Mistral Vibe 3.0.3; 2 Gemini CLI 0.65.0; 3 Qwen Code 0.26.1; 4 Kilo CLI 7.8.18; 5 Pi 1.4.0. Priorities: finite unattended completion, containment, metering, tool limits, providers/login, delegation/maintenance. Every finalist needs a whole-process containment/supervision wrapper.\n\n1 Vibe: best integrated finite-run/outcome/export interface, tool/path controls, parallel children, compatible providers. No bundled OS boundary. Token/price stops are SOFT, correcting ep5/compare. Mistral browser setup uses plan access but stores an API key; renewal unproven. Sources recipe-vibe/vibe, profiles-round2/mistral-vibe; https://raw.githubusercontent.com/mistralai/mistral-vibe/v3.0.3/README.md .\n\n2 Gemini: bundled sandbox/admin policy, per-model usage including local child/utility roles. Google-only documented providers, no cost/spend cap, incomplete failure/remote-child usage; network defaults conflict. It is NOT the only OS-sandbox candidate. Source integration-finalists/gemini. 3 Qwen: headless/permissions, bwrap write/closed-network boundary, JSON/journals, concurrent agents and broad providers. Broad reads remain; complete child usage/cost unproven. Paid plans require API keys; historical free OAuth ended. Source profiles-round2/qwen-code.\n\n4 Kilo PROMOTED over ep5's Hermes: tagged audit confirms bwrap/Seatbelt tool-write/egress confinement, pattern permissions, JSON step usage, children, ChatGPT/Copilot login. Omit --auto for selective allows; it approves queued asks, not denies. Needs external deadline/isolation/child metering. Broad reads and host inference/plugins/MCP lifecycle remain; Windows unsupported. Source integration-finalists/kilo, especially invocation/confinement/metering. Compare's 'no sandbox/schema' is obsolete.\n\n5 Pi: print/JSON/RPC, tool filters, usage, broad native providers/subscriptions, optional parallel-child extension. No core permissions; example bash sandbox fails open and excludes file tools. JSON errors may exit 0. Source profiles-round2/pi. Hermes falls outside five: gateway client exit/interrupt can leave work alive; root tokens exclude children while cost includes them; auxiliary totals omit cache, root turns default unlimited; Docker misses host tools/integrations. Source evidence-repair/hermes. Its broad providers/delegation remain strengths.\n\nALTERNATES: Letta audit removes mandatory-cloud penalty, confirms local mode/providers/children, but no default CLI workspace/egress jail or complete child ledger. Goose/OpenCode/Cline/gptme remain alternatives; judge full profiles. Sensitivity: Gemini rises for Google-only/bundled-isolation priority; Qwen/Kilo for isolation plus multiple providers; Pi for existing external isolation and subscriptions. This is conditional judgment, not measured task performance.\n\nWINNER: pin mistral-vibe 3.0.3, Apache-2.0, published 2026-10-26T21:38:58Z. Use recipe-vibe/vibe templates/source map; its verification_plan is future testing, not executed. Four pillars follow; source IDs below resolve to original URLs.\n\nINVOKE: provision model/auth first; argv: vibe --prompt-file <absolute-task-file> --workdir <absolute-checkout> --agent accept-edits --output json --output-dir <fresh-absolute-output> --max-turns <N> --max-tokens <T> --max-price <D> --time-limit <S>. Limits are deployment parameters, not measured recommendations. Close stdin, capture stdout/stderr, validate resulting files. Prompt/output relative paths resolve before chdir. Avoid auto-approve and unreviewed --trust. Exits: 0 finished; 1 usage/config; 2 infrastructure; 3 unfinished limit/deadline/termination/length/refusal; 4 socket-aborted. Require fresh export plus OS outcome; parser errors, kill/OOM/storage failures may prevent export. Source IDs cli,lifecycle,export,exportpy.\n\nCONFINE (proposed): whole-process unprivileged container/VM, assigned checkout/private state writable, runtime/config read-only, resource/deadline supervision and deny-default egress with explicit inference route. Path rules are not OS containment. Experimental Unix agent-socket needs caller sandbox (protocolVersion=2, workspace/python, execute/readFile RPCs), rejects --workdir. Model/MCP/hooks stay host-side; server-declared tools bypass CLI filters. Not a bundled sandbox. Source IDs socket,socketcli,readme,paths.\n\nMETER: stdout JSON contains messages; output-dir/export.json schema_version=1 carries outcomes/usage. Root input/output/cached/total are per-run deltas; root cost_usd estimate and steps exclude children. Cache is a subset of input; total=input+output. Child subagents[] usage/cost are lifetime, steps per-run. Fresh run: root plus unique children once. Resume: add child increases only, not lifetime totals again. Missing/null is unknown; zero/missing prices and pricing_fallback weaken costs. Never add journal copies/cache twice. Token/price flags react after observed root usage exceeds limits; no combined child budget. Utility/retry/billing completeness unproven. Enforce allocation through provider/gateway and retain raw evidence. Source IDs report,baseline,childstats,exportpy,lifecycle.\n\nLIMIT TOOLS: untested minimal_config uses enabled_tools=[read_file,edit,write_file], outside_workdir=deny; disables shells, children, MCP/connectors, background work, telemetry/update checks and title inference. No auto-approve. Effective precedence admin > agent > CLI/runtime > env > trusted project > user: user config alone is not an immutable boundary. Bash allow prefixes are literal token-boundary prefixes, not globs; scripts/interpreters still need containment. Initially disable children; later cap max_subagents/max_concurrent_subagents and meter separately. Mistral browser login persists API key; unattended renewal not established. Source IDs schema,permissions,paths,agents,layers,login,persist,credential.\n\nREPORT COVERAGE: six questions for 18 profiled families: Aider, OpenCode, Gemini, OpenHands, Goose, Cline, Qwen, Kilo, Kimi Code, Vibe, Continue, Pi, Letta, ForgeCode, Hermes, gptme, ZCode, mini-SWE-agent. Distinguish OpenHands Canvas/SDK from old unmaintained CLI; no finite current-main CLI established. Separate stable/prerelease and GitHub/registry/product channels. OpenCode V2 npm=2.1.4 (2026-10-23), not GitHub V1; Letta npm=.34.25 (2026-10-26), GitHub=.34.24; Aider PyPI=.86.2 vs GitHub=.86.0; Continue npm=1.5.47 and explicitly unmaintained; ZCode product/source dates differ. Cite exact URLs/dates from profiles/audits. Old OpenHands pilot did not establish release year: earlier memory's 2026 is not evidence.\n\nSCREENING/GAPS: preserve discover/* entries: Nanocoder, Kode, Open Interpreter, community Grok, Grok Build, Plandex, SWE-agent, Trae, Freebuff, DeepSeek Harness, Octofriend, legacy Kimi, Roo. Unresearched criteria=not assessed; unclear headless=not found. Roo had CLI evidence; Grok projects differ; absent releases alone do not disqualify. Cite bounded Crush FSL/proprietary/source-unpublished exclusions. No exhaustive claim. Every final fact needs original page URL and result reference; expand source IDs, avoid summarizer near-quotes. Behavior, entitlement, renewal, full billing/isolation untested. Next step: report from 28 carried results.",
  "spawn": [],
  "read": [
    "recipe-vibe/vibe",
    "discover/angle-registries",
    "discover/angle-articles",
    "profile-pilot/aider",
    "profile-pilot/opencode",
    "profile-pilot/gemini-cli",
    "profile-pilot/openhands",
    "profiles-round2/goose",
    "profiles-round2/cline-cli",
    "profiles-round2/qwen-code",
    "profiles-round2/kilo-cli",
    "profiles-round2/kimi-code",
    "profiles-round2/mistral-vibe",
    "profiles-round2/continue-cli",
    "profiles-round2/pi",
    "profiles-round2/letta-code",
    "profiles-round2/forgecode",
    "profiles-round2/hermes-agent",
    "profiles-round2/gptme",
    "profiles-round2/zcode",
    "profiles-round2/mini-swe-agent",
    "profiles-round2/openhands-current",
    "profiles-round2/opencode-v2",
    "rank-finalists/compare",
    "integration-finalists/kilo",
    "integration-finalists/gemini",
    "evidence-repair/hermes",
    "evidence-repair/letta"
  ],
  "cancel": [],
  "finish": true
}
