docs/design/full-turn-multimodal-routing.md
This implements Phase 1 of #6988 only: when the primary model is text-only, an explicitly agent-capable vision model may handle the complete image-bearing turn.
It does not add persistent route state, session recovery, durable visual summaries, stable image references, historical media cleanup, or later image reinspection.
Full-turn routing requires both image and agent capability:
{
"id": "vision-agent",
"capabilities": {
"vision": true,
"agent": true
}
}
Missing or false agent capability keeps the existing Vision Bridge transcription behavior.
The full-turn selector adds a trailing NUL marker to the existing model\0baseUrl representation. The chat layer removes that marker before model resolution. This keeps ordinary endpoint-qualified model selections on their existing behavior.
LLM-based automatic chat compression remains on the primary-model path. A full-turn route skips that compression because running primary-model compression while an image turn is owned by another provider would violate the exact-route guarantee. Existing local history microcompaction and image-payload slimming still apply, and request/cache copies retain only media modalities supported by their target model. An oversized full-turn request therefore fails on the selected model.
Phase 1 covers the interactive TUI and ACP. Non-interactive routing is intentionally unchanged until it has an equivalent turn-local lifecycle.