Run 3 — Cotal mesh vs direct MCP subagents
claude -p on the same tasks.Click any node or flow step above to see what it is, how it authenticates, and what we built for it.
cotal_* toolscodex exec resume <thread>agy -p --conversation <id> · pTTYcotal_* · exitsMESH_FIRST_STEER folded in@cotal-ai/core 0.13.2cotal pool verbs + a@cotal-ai/core 0.13.2, and it did everything it promised: death → redelivery → fenced re-lease → durable commit. What a stock mesh still lacks is exactly the four items above — an owner, grants, a verb, one event subscription — and our ~110-line supervisor is the existence proof that each is closable. Run 8 found the disease · v0.4 built the cure · Run 11 proved the dose — the remaining update is switching it on by default. v0.14.0 (released July 22) shipped the security campaign — secret custody + multi-space — and closed none of the four gaps; the v0.13.2→v0.14.0 connector diff is version bumps only.opencode serve persistentcodex exec resume · agy -popencode serve handles every turncodex exec resume / agy -p — that exits when the turn endsopencode serve underneath survives —last seen 40m · was: <activity>last seen <relative> · was: <activity>The product: a zero-dependency wizard CLI. Detects harnesses + auth, you pick one, it wires Hermes as the front door — planner brain via subscription OAuth (hermes login) or any provider key.
Both connectors ported to the Cotal monorepo's conventions, built against in-tree connector-core, kept rebased on upstream main (post-v0.4, 0.13.x line), and submitted as pull requests #254 + #255 to Cotal-AI/Cotal — re-audited against upstream HEAD after the 0.13.2 release: zero conflicts, land-ready. And beyond code: our Run-8 failover findings preceded PR #258 (the v0.4 lifecycle) by 24 hours — per the Cotal team, a direct response — and our reclaim supervisor (benchmark/reclaim/) is the first thing outside Cotal's own tests to drive that machinery — proven live in Run 11: the kill that stayed dead in Run 8 heals in 122s, one re-lease, terminal fact committed.
The subagent backends behind the benchmarks are ours, published standalone: openrouter-subagents — delegate to any OpenRouter model with full unified reasoning control — and gpt-subagents-subscription — expert GPT subagents on the ChatGPT plan you already pay for. Both drop into any MCP-capable agent.
Our Codex mesh connector — Node shim owns one MeshAgent; cotal tools served over local streamable-HTTP MCP; turn chain via codex exec resume.
Our Antigravity connector — pTTY turn loop, conversation resume, MCP-config merge/restore. Live-tested: "AGY WORKER OK" on #general.
12 validated tasks (easy, adversarial, reasoning, grounding), hermetic runners for four harness arms, coordination + throughput + cost studies, full RESULTS.md.
Personas: planner (plan/delegate/never-execute) + three builders with execute-and-verify contracts.
Cotal wire-contract notes, mesh operations runbook (six spawn failure modes + fixes), and both connector design plans.
Every harness is the official CLI under its owner's legitimate auth. No token scraping, no reverse-engineering — the mesh only coordinates.
This capstone is our own service versus Cotal. The "our MCP servers" column is openrouter-subagents + gpt-subagents-subscription — not built for this project: they're our pre-existing open-source products, the subagent-delegation approach we already shipped and ran before the hackathon. An existing competitor to the mesh that we happen to own — scored here round-for-round on the same tasks, judged the same way.
Every harness runs stock — exactly as its vendor ships it, nothing extra loaded. No arm gets outside context or added startup cost.
Every task judged only by its own test.py, validated against reference solutions before use.
Runners refuse to start if benchmark templates differ from git — earned the hard way (see incident below).
Every arm at xhigh — the highest setting shared across harnesses when the studies ran. The runner now pins each harness's true ceiling (max) for future runs.
In the first matrix, Antigravity — run without --add-dir — resolved relative paths against its own workspace and wrote its solutions into the benchmark templates themselves. Every later run copied pre-solved templates into its workdirs: a dead-on-arrival arm "passed" tasks in 10 seconds, and a spurious "native harness scores 3/7" headline nearly shipped. We caught it by autopsying impossible timings, restored templates from git, added a template-integrity tripwire to the runner, and re-ran everything hermetically. The invalidated numbers are preserved in the RESULTS appendix — the methodology story is part of the submission.
benchmark/RESULTS.md · Demo script: DEMO.mdCotal-AI/Cotal, connectors live under extensions/) and submitted as upstream pull requests #254 + #255 — the project gives its infrastructure back. And beyond our own connectors: #294, a five-bug fix to Cotal's opencode connector, closing community issue #286.codex exec · later exec resume <threadId>A thin Node shim that owns one MeshAgent and drives the local codex binary headlessly. The Codex thread id is the conversation state — every mesh message resumes the same thread, so the worker remembers its task across turns.
It runs whatever auth the operator's own codex login already has — ChatGPT subscription or a configured API provider. No token scraping; the connector never sees credentials, it just invokes the official CLI.
It makes ChatGPT-gated models (gpt-5.6-sol) first-class mesh workers — push delegation, not polling. That's the difference between "Codex can look at the mesh" and "the mesh can put Codex to work."
Builds in-tree against connector-core (0.13.1, rebased onto the v0.4-era tree), bundle imports clean, live mesh handoffs verified, and it carried the Codex arm through 20+ hermetic benchmark tasks (runs 5, 7, 9) without a dropped turn.
codex exec slurps an open stdin pipe (the shim closes it).agy -p under a pseudo-TTY — the workaround for the stdout bug--conversation on every later turnA Node shim that runs each turn as a pseudo-TTY agy -p call, captures the conversation id from the run log, and resumes it — with --add-dir grounding every file write in the task's workdir instead of agy's own scratch space.
Everything fails loudly instead of degrading: one agy worker per machine (agy reads a single global MCP config), refusal to start over a stale entry, and a hard error if a resume ever forks a fresh conversation.
It unlocks Google-account models — Gemini 3.1 Pro (High), Opus 4.6 Thinking, GPT-OSS 120B — as mesh workers. Run 4 showed the native harness runs Gemini ~1.75× faster than a foreign one; this connector is how the mesh gets that speed.
Builds in-tree, imports clean, live-tested end-to-end (spawn → delegation → "AGY WORKER OK" on #general → clean stop), and posted the fastest total on the run-9 reasoning/grounding sweep.
--add-dir grounding isn't a nicety — running agy without it is what caused the template-contamination incident in the benchmarks tab's war story. The connector ships the lesson.last seen … · was: … — never like live onesA force-killed shim orphaned the opencode serve underneath — it kept heartbeating the mesh forever while the roster showed work that finished long ago. Every path that manufactured that ghost is closed.
12 files, +687/−9, one clean commit on the current 0.14.2 base. Every repair is locked by a test that fails without it, and the whole path re-ran against the real opencode binary: shim killed, offline published, clean exit.
Open against Cotal-AI/Cotal: TypeScript to the monorepo's standard, one squashed commit, the pull-only relationship addressed head-on (supersede or coexist — maintainers' call).
Open against Cotal-AI/Cotal: TypeScript to the monorepo's standard, one squashed commit, the v1 fail-loud limits documented as design choices with their reasons.
Open against Cotal-AI/Cotal: closes issue #286 — single commit on the v0.14.2 base, every repair test-locked, verified against the real opencode binary.
Ported to strict TS matching sibling connectors (types, typecheck, declaration emit, changesets fixed group), verified against the CI gates (frozen lockfile, pack), and bundle-diffed against the live-tested JS — logic identical.
hermes-handoff) is better when the ecosystem ships them — and a benchmark-backed contribution is the strongest possible sponsor pitch.