Developer tecnomanu has introduced a critical change to APX, an agent tooling framework, addressing a pervasive ambiguity in how model selections interact with external coding runtimes like Codex and Claude Code. The update establishes a hard boundary between the model requested by the user, the model passed to the runtime, and the model that actually executed the code. This shift aims to eliminate the misleading confidence provided by UI labels that do not guarantee downstream execution parameters.

Defining the Runtime Boundary

The core issue stemmed from APX's ability to delegate work to external CLIs that maintain their own configuration defaults. Previously, the model: inherit setting could be misinterpreted as a promise that external tools would adopt APX's selected model. The new documentation clarifies that an unpinned runtime defaults to its own configured engine, not APX's. To make this explicit, APX now enforces a strict precedence order: direct call parameters override runtime configuration, which overrides optional APX inheritance, which finally falls back to the CLI default. This hierarchy ensures that the origin of a model choice is inspectable rather than accidental.

Eliminating Silent Fallbacks

A significant technical adjustment involves the handling of model identifiers across different vocabularies. APX no longer treats model strings as interchangeable; it now splits provider, model, and effort information before passing data to runtime adapters. For instance, the Codex adapter accepts both model flags and reasoning effort settings, while the Claude Code adapter accepts only the model. If a user requests an Anthropic model via a Codex runtime, or asks a runtime that does not support model overrides to take one, the system now fails immediately. This explicit failure prevents the dangerous scenario where a silent fallback executes a different model than intended, preserving the integrity of the user's selection.

Auditing the Effective Model

To address the lack of universal reporting from external CLIs, APX now returns a detailed model record in results, including fields for requested, passed, effort, source, and effective models. When a model is pinned by APX, the 'effective' field reflects that pin; otherwise, it explicitly states 'runtime default (not reported by the CLI).' This plain language acknowledges the limits of APX's visibility into external processes. Additionally, session records now store the requested model and its source, ensuring that resumed sessions maintain context and that agent-to-agent replies follow the same resolution logic as direct calls.

Key Takeaways

  • APX enforces a strict precedence hierarchy: direct call > runtime config > APX inheritance > CLI default.
  • Incompatible model requests now fail explicitly rather than silently falling back to unintended runtimes.
  • Result objects now distinguish between 'requested' and 'effective' models to highlight reporting gaps.
  • Session records preserve model provenance to ensure consistency across resumed conversations.

The Bottom Line

APXโ€™s shift from silent inheritance to explicit provenance is a necessary correction for agent tooling. By forcing developers to confront the gap between selection and execution, it replaces convenient illusions with debuggable facts.