Skip to content

(bug) The runner's /health endpoint doesn't list codex as a harness #5693

Description

@mmabrouk

When I ask the runner what it can do, it reports three harnesses and Codex is not one of them — even though Codex runs work on the same deployment.

Steps to reproduce

  1. Self-host the OSS stack at v0.108.0 (ghcr.io/agenta-ai/agenta-runner:v0.108.0).

  2. Call the runner's health endpoint from inside the stack:

    curl http://runner:8765/health
    
  3. Response:

    {
      "status": "ok",
      "runner": "0.1.0",
      "protocol": 1,
      "engines": ["sandbox-agent"],
      "harnesses": ["pi_core", "claude", "pi_agenta"]
    }

Expected codex to appear in harnesses. Instead only the three older harnesses are listed.

Codex genuinely is a harness on this version: it has its own curated model catalog (gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.5, gpt-5.2), the self-host docs give it its own setup section with CODEX_HOME, and Codex runs execute normally once the login is mounted. The health payload under-reports what the runner supports.

Investigation

HARNESS_KINDS in services/runner/src/version.ts is a hardcoded list:

export const HARNESS_KINDS = ["pi_core", "claude", "pi_agenta"] as const;

It was not extended when Codex became a harness of its own. Its only consumer is the health payload (harnesses: HARNESS_KINDS), so nothing is gated on it and Codex runs are unaffected — the runner maps codex to its ACP agent through a separate path in run-plan.ts.

Impact

Low — no run is blocked. Two ways it bites:

  • Anything deciding what is available from this payload concludes Codex is unsupported.
  • It is actively misleading while debugging. Setting up the Codex mount, the endpoint says Codex is not there, which reads as "the image doesn't have Codex" and sends you looking in the wrong place.

Environment

  • Agenta OSS v0.108.0, self-hosted, released GHCR images

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions