mirror of
https://github.com/stablyai/orca.git
synced 2026-09-29 00:02:56 +00:00
`structuredAgentSessionOptionCatalog` runs on the client, over a result a host of any version published — both `use-structured-agent-session.ts` and mobile's `use-mobile-structured-agent-options.ts` hand it straight off the `agentSession.options` wire. It mapped `result.models` through unchanged, so an empty list reached the snapshot, which correctly returns `[]` for an empty catalog, and the model pill and effort pill both vanished. On `origin/main` that was unreachable: this function unconditionally pushed `current.model`, so the list was never empty. Withholding unofficial ids removed that push, so the exposure is this PR's. Flooring only the host-side readers closes it for new hosts; a new client paired with an older host still hits it, which is the divergence `docs/reference/remote-wire-compatibility.md` covers when a host changes what it publishes. The floor uses `seed.models`, the catalog the client already passes in, so it holds for Claude and any future structured agent rather than one provider. The reader-side floors stay as defence in depth.