← back to Exo Helper

verification/e2e-proof-TK11320.json

59 lines

{
  "ticket": "TK-11320",
  "intent": "Claude Code and Codex delegate a bounded task to a ready Exo model via the same stdio MCP implementation, without Ollama",
  "risk_tier": "R2",
  "timestamp": "2026-09-09T17:47:42.552873+00:00",
  "environment": "macstudio3; Exo localhost:52415; Claude Code 2.1.258; Codex 0.153.4; MCP SDK 1.29.0",
  "runtime_build_commit": "a75cf53106adfdd6f0f380774a6e731643cd3b10",
  "baseline": "3 live cluster nodes; zero active model instances. Cached Qwen3-VL-4B fits local M3 Ultra. Existing hosted providers remain primary.",
  "retained_instance": "cca7f90e-cddd-430f-8c65-fafb9c2ab642",
  "commands": [
    "npm test (9/9 passed)",
    "npm run verify (real MCP SDK clients)",
    "codex mcp add/get exo-helper",
    "claude mcp add/get exo-helper",
    "codex exec --ephemeral --ignore-user-config with isolated helper MCP config",
    "claude -p --strict-mcp-config --mcp-config verification/mcp-config.json with only helper tools allowed"
  ],
  "boundaries": [
    {
      "boundary": "Exo instance creation -> real text generation",
      "verdict": "PASS",
      "response_id": "46bd74e2-d01e-4fd1-a7be-78611645ad0a"
    },
    {
      "boundary": "SDK client -> stdio discovery -> Exo readiness -> inference -> text response",
      "verdict": "PASS",
      "evidence": "integration.json"
    },
    {
      "boundary": "Actual Codex CLI -> Exo helper -> local inference",
      "verdict": "PASS",
      "request_id": "00cd9a70-fd70-42bd-a083-e0516e2151a9",
      "response_id": "3f9abb4e-c17c-4587-aa02-1671705da566"
    },
    {
      "boundary": "Actual Claude Code CLI -> Exo helper -> local inference",
      "verdict": "PASS",
      "request_id": "a99d9529-023f-4bc4-ace2-1e6833b52acd",
      "response_id": "2afe0c0a-e2ff-4a86-ae8f-16e8e822a8f2"
    },
    {
      "boundary": "Both global registrations persisted; primary providers and policies retained",
      "verdict": "PASS",
      "evidence": "client-proof.json"
    }
  ],
  "negative_checks": "Oversized input, unloaded model, unreachable Exo, HTTP failure, model mismatch, timeout without retry, per-process concurrency, and non-loopback URL rejected. No automatic model load, provider fallback, or external tools.",
  "cleanup": "Test client processes exited. Cached model intentionally remains loaded. Private config backups retained under ignored verification/private. Raw test traces ignored. No scheduled jobs or extra listening service installed.",
  "rollback": "Remove only exo-helper with codex mcp remove exo-helper and claude mcp remove exo-helper -s user. Existing Exo and model files are retained.",
  "limitations": [
    "This model runs on the M3 Ultra alone; no distributed inference benchmark is claimed.",
    "Small-model answers require review; only arithmetic and bounded extraction validated.",
    "Current sessions may require reconnect/new session to discover the added server.",
    "Concurrency bound is per bridge process; Exo schedules work from separate coding clients.",
    "If model is unloaded later, helper reports MODEL_NOT_READY; it does not auto-start models."
  ],
  "verdict": "PASS"
}