Skip to content

The model selects the harness; the operator owns the model - #402

Merged
czpython merged 1 commit into
mainfrom
commonzenpython/model-selects-harness
Sep 2, 2026
Merged

The model selects the harness; the operator owns the model#402
czpython merged 1 commit into
mainfrom
commonzenpython/model-selects-harness

Conversation

@czpython

@czpython czpython commented Sep 2, 2026

Copy link
Copy Markdown
Owner

The model selects the harness, and the operator owns the model.

  • Dispatch resolves the login first (ProviderLogin.lookup, which also reads a selected row fresh), then get_harness_for_login(login): the first registered harness that accepts it. run_agent takes the model and the login id and resolves the same way; harnesses receive the login they render.
  • One default model: user_settings.default_model (provider/model) replaces the per-harness harnesses.model. PATCH /api/settings sets it after get_harness_for_model accepts it. Harness rows keep effort, timeout, and fast mode.
  • Agent loses model and effort. An agent runs the operator's default model (UserSettings.get_default_model) with its harness's effort; the per-agent overrides in Settings are how one agent differs. timeout stays declarable. The bundled apps and the proof app drop the declarations.
  • Settings UI: the default model moves to General (grouped by harness); the harness cards lose their model select; agent rows inherit "default · model".
  • Migration c9d1e3f5a7b2: adds user_settings.default_model (seeded from the claude row), drops harnesses.model.
  • Docs: the agent example and the concepts table.

🤖 Generated with Claude Code

@czpython
czpython force-pushed the commonzenpython/provider-catalogs branch 4 times, most recently from c718acc to 64a51cd Compare September 2, 2026 17:29
Base automatically changed from commonzenpython/provider-catalogs to main September 2, 2026 17:33
@czpython
czpython force-pushed the commonzenpython/model-selects-harness branch from 52ac8b8 to 19d2077 Compare September 2, 2026 17:35
@mintlify

mintlify Bot commented Sep 2, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
druks 🟢 Ready View Preview Sep 2, 2026, 5:36 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

Dispatch resolves the login first and picks the first registered harness
that accepts it (get_harness_for_login); run_agent takes the model and
the login id and resolves the same way, and harnesses receive the login
they render. One default model lives on user_settings.default_model and
replaces the per-harness harnesses.model; PATCH /api/settings sets it.
Agent loses its model and effort declarations — an agent runs the
operator's default model with its harness's effort, and the per-agent
overrides in Settings are how one agent differs. timeout stays
declarable.

Settings UI: the default model moves to General; the harness cards lose
their model select. Migration c9d1e3f5a7b2 seeds user_settings.default_model
from the claude row and drops harnesses.model.
@czpython
czpython force-pushed the commonzenpython/model-selects-harness branch from 16e8cef to e6db58a Compare September 2, 2026 18:01
@czpython
czpython merged commit bcb43b9 into main Sep 2, 2026
3 checks passed
@czpython
czpython deleted the commonzenpython/model-selects-harness branch September 2, 2026 19:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant