Let a conversation use a model profile instead of the main model #11

Merged
jacensekai merged 1 commit from conversation-model into master 2026-10-28 10:20:36 -04:00
Owner

A picker in the chat header (shown once a profile exists) chooses the
main model or a profile for the conversation. The choice is stored in a
new conversations.model column, set when a conversation is created or
with PATCH /api/conversations/:id, and validated against the profiles;
GET /api/models lists the choices.

The agent loop resolves the conversation's endpoint on every iteration,
so a switch applies from the next request, and passes it to the context
functions so the window, output reserve and chars-per-token ratio are
the profile's. A removed profile falls back to the main model but the
name is kept, so restoring the profile restores the choice. Older
databases get the column on open.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

A picker in the chat header (shown once a profile exists) chooses the main model or a profile for the conversation. The choice is stored in a new conversations.model column, set when a conversation is created or with PATCH /api/conversations/:id, and validated against the profiles; GET /api/models lists the choices. The agent loop resolves the conversation's endpoint on every iteration, so a switch applies from the next request, and passes it to the context functions so the window, output reserve and chars-per-token ratio are the profile's. A removed profile falls back to the main model but the name is kept, so restoring the profile restores the choice. Older databases get the column on open. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Let a conversation use a model profile instead of the main model
Some checks failed
CI / Typecheck, build and test (pull_request) Failing after 12s
CI / End-to-end (Playwright) (pull_request) Successful in 1m2s
CI / Docker images and sandbox (pull_request) Failing after 11s
CI / Compose stack smoke test (pull_request) Failing after 6s
47585b4df8
A picker in the chat header (shown once a profile exists) chooses the
main model or a profile for the conversation. The choice is stored in a
new conversations.model column, set when a conversation is created or
with PATCH /api/conversations/:id, and validated against the profiles;
GET /api/models lists the choices.

The agent loop resolves the conversation's endpoint on every iteration,
so a switch applies from the next request, and passes it to the context
functions so the window, output reserve and chars-per-token ratio are
the profile's. A removed profile falls back to the main model but the
name is kept, so restoring the profile restores the choice. Older
databases get the column on open.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jacensekai/lumina!11
No description provided.