Skip to content

DAG runner is skipping the "Implement" node when model is opus[1m] #1610

@johngnip

Description

@johngnip

Provider inference bug in Archon itself.

Root Cause
The implement-tasks node specifies model: opus[1m] (Opus with extended thinking). But the Codex provider's compatibility check in registry.ts only rejects exact matches for 'opus', 'sonnet', 'haiku' — it doesn't recognize opus[1m] as a Claude model.

So when inferProviderFromModel() runs, Codex claims compatibility first, the node gets routed to Codex instead of Claude, and Codex completes in ~3 seconds with empty output. The rest of the DAG continues against zero changes.

Evidence from DB logs
implement-tasks | node_started | {"provider":"codex"} ← WRONG, should be "claude"
implement-tasks | node_completed | {"duration_ms":2832, "node_output":""} ← empty
The fix
In /Users/jgnip/github/Archon/packages/providers/src/registry.ts (lines 126-130), the Codex isModelCompatible check needs to handle extended model syntax:

// Current (broken): only rejects exact 'opus', 'sonnet', 'haiku'
!claudeAliases.includes(model)

// Should also reject: 'opus[1m]', 'sonnet[500k]', etc.
!claudeAliases.some(alias => model.startsWith(alias))
This is an Archon framework bug,

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions