Repository navigation
Manage each harness's default model and add it to Getting started - #141
Merged
Merged
Conversation
System gains a Default model section with one card per harness from GET /core/v1/harnesses: its read-only startup state (enabled, default; set in config.json and applied with parsar apply) and its deployment default model provider, or Not set. Set/Replace opens a form whose API key is required, never prefilled and dropped with the form; Clear asks for confirmation. Writes are never retried and are followed by a reread; Core's 400 message is shown beside the form.
The fixture serves /core/v1/harnesses and the model-provider routes as Core does: 404 while unset, 400 with Core's message and param for a missing key or mcode without limits, a list that reflects writes and an idempotent DELETE. It never keeps an API key.
The section help now says what Core confirmed: the default applies to Core-hosted Sessions and Sessions without an environment, after a provider in the request or on the Agent; self-hosted Sessions bring their own key. The zh-CN key label keeps the API term in English.
PRODUCT.md and the console surface note that System manages each harness's default model; DESIGN.md describes its cards, the set/replace form whose key is never shown, and Clear's confirmation.
The System row in docs/web/README.md and the deployment-configuration item of the admin backend requirements (en, zh-CN) now describe the /core/v1/harnesses routes the console uses, the write-only key and where the default applies.
apps/web/.shoot-click.mjs was a local screenshot helper marked for deletion before commit; nothing references it.
Both pages read one map of harness product names and one of provider protocol names from lib/harness-labels.ts instead of keeping copies.
A 503 credential_storage_unavailable on saving a default model now says Core has no credential encryption key and how to configure one, instead of an unconfirmed outcome, and triggers no reread. The fixture gains a credentials=none reset mode and the System acceptance test covers it.
Between sandboxes and the project key, the checklist asks for a default model: done once the default harness has a deployment default model provider, or, without a default harness, once any enabled harness has one; Unknown when the harness list cannot be read. Open System lands on the default harness's Set or Replace. A closed checklist stays closed. The demo fixture's default harness now has a default model, so a set-up deployment still reads You're set; the System tests start from a fresh install.
PRODUCT.md and DESIGN.md list the fourth Getting started step and its Open System action; docs/web/protocol-coverage.md records how the console uses the /core/v1/harnesses routes, and roadmap.md the new step and browser coverage.
SaladDay
force-pushed
the
codex/web-default-models
branch
from
September 25, 2026 22:58
63e4638 to
2f063aa
Compare
The fixture now answers as Core's handler does: its 404 texts, one body-shape message for wrong types, negative limits and int32 overflow, the JSON body gate with the route's 32 KiB limit, the 16384-byte key limit, and no param fields Core does not send.
The protocol is the one Core accepts for the harness, shown read-only and still sent. Limits above 2147483647 are refused in the form, and max output needs a context window at least as large, as Core requires. Field errors are linked with aria-describedby and the Base URL error sits outside its label. Save is the form's submit button, so Enter saves, guarded against a second submit. The dialog title follows the latest list after a reread. The Clear consequence names Sessions without an environment. Acceptance adds an unconfirmed 500 save (one PUT, one reread) and checks the key is not in the page after the form closes.
The Getting started step says Core-hosted Sessions and Sessions without an environment need a model provider, which apps may also pass per request or save on the Agent.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Manage each harness's default model from the System page, and add a "Set a default model" step to Getting started (phase 3 of the new-user install plan). The Core routes and shared-client methods merged in #140.
System page: Default model
listHarnesses).config.jsonand apply withparsar apply.credential_storage_unavailableshows a configuration error: installer-based installs configure the key automatically, and manual deployments setAGENTS_API_CREDENTIAL_KEY_FILE.lib/harness-labels.ts, shared by the Agent and System pages.Getting started: Set a default model
default: trueharness has a model provider; if none is marked default, any enabled harness counts.Tests
docs/web (for the backend session's review)
README.md:24protocol-coverage.md:115-116and:118-127(new Default models table)roadmap.md:19-21and:46Need help on this PR? Tag
@codesmithwith what you need. Autofix is disabled.