The route a new session starts from was frozen into the gateway's composition entry, so switching models in a conversation reached only that conversation and every later session went back to the shipped default. The gateway now owns an `api-gateway` settings section: the entry is the base layer and the user document layers over it, so `session.selectModel` records an accepted switch as the default for the next session. The write is wholesale rather than a merge — switching to a model with no reasoning effort has to clear a stored one — and a storage failure is reported without undoing the switch, which already applies to its own session. `targetFor` now resolves its tiers on every read instead of seeding once: an explicit selection, else the session's own logged request header, else the live default. That is what keeps a session that has run a turn deriving its route from its log forever after, while a session still blank — New Session reuses one rather than minting another — starts from a default saved after it was created.
todo/ — todo / planning capability family
English | 中文
The model-facing todo capability. It is a single product package because one agent session owns the list; there is no replaceable provider seam.
| Package | Role | ctx key |
|---|---|---|
tool-todo/ |
Stores and exposes the session's todo list. | (registers on ctx.tools) |
The child README owns the tool, persistence, and rendering contract.