Skip to main content

Module m0035_agent_owns_its_provider

Module m0035_agent_owns_its_provider 

Source
Expand description

Give every agent the provider it actually runs with, before the bundle stops deciding it (docs/specs/SPEC_AGENT_BUNDLE_FORMAT_V0_3_2026_10_05.md §3.3).

Until now a bound bundle’s non-empty provider won over the agent’s own (resolve_effective_provider_id). From this release the agent’s provider decides, so an agent whose two values differ would switch CLI. They differ for agents changed through agent.define updates, and for agents with no provider at all that m0021 gave a claude bundle. For each, this copies the bundle’s provider onto the agent, so every agent keeps its CLI.

The bundle rows are left as they are. Bundles live in the store every channel shares, definitions in each channel’s own, and channels migrate separately: a channel migrating later must still find the bundle’s value. Kept, the values are a “suggested for” hint, and an older build, which still prefers them, runs the same CLI as this one.

Same reach as m0021: local definitions with a memory_id (a definition known only from the global registry carries none, so the bundle never overrode it). Writes go through agent_def_update, which also updates the global registry’s copy, the one reads prefer. Idempotent: a second run finds nothing to change.

Structs§

M0035AgentOwnsItsProvider