docs(openwebui): re-key the model rows at swap time; default model is frank-archon #146

Merged
dank merged 1 commits from docs/openwebui-model-rows-default into main 2026-11-04 13:08:52 -08:00
Owner

OpenWebUI model rows re-keyed; default model is frank-archon

Two asks: refresh the picker descriptions, and make frank-archon the model a
member lands on. Both are live webui.db state (never repo state), so this PR is
the documentation half plus the law that keeps the live half honest.

Applied on the live service (2026-11-04)

  • Descriptions rewritten from the env files, which are the authority:
    frank-dragoon said halogen 0.16.2 (live 0.18.20); frank-zealot said
    build 10777 / 3×262,144 / "MTP off" (live build 12118 / 3 × 200,704 /
    SPEC_TYPE=draft-mtp armed
    ).
  • params.context.length had been swapped between the two rows — the real
    defect, not cosmetics. frank-zealot advertised 262,144 while llama.cpp
    refuses any prompt past its 200,704 slot, so OpenWebUI would let a long zealot
    chat ride the endpoint's 400 instead of compacting; frank-dragoon advertised
    200,704 against a 262,144 ceiling and gave up 61k tokens of window for nothing.
    Now 200,000 / 262,144 / 200,704, matching FRANK_ARCHON_MAX_MODEL_LEN,
    HALOGEN_CTX, and CTX_SIZE/PARALLEL.
  • ui.default_models = "frank-archon" (a comma-separated string in the config
    table). Verified in a clean managed browser with localStorage empty:
    Selected model: frank-archon, and the picker renders all three new
    descriptions with no trace of 0.16.2 / 10777.

Written through the API, not raw sqlite: POST /api/v1/configs/import for the
config key and POST /api/v1/models/model/update with the full ModelForm
(meta/params replace rather than merge, so the rows were read, patched and
sent back whole — meta.capabilities survived intact).

Docs

  • Dankclaw/OpenWebUI.md gains Default model, descriptions, and the admin API
    door
    : the ui.default_models resolution rule (the browser's stored pick
    beats it), the two admin doors, and three traps measured on the way in —
    get_human_user answers 403 "A human session is required." to an API key
    on /api/v1/auths/ (not a dead key: the mutation routes take the key), and
    /api/v1/models/ with a trailing slash falls through to the SPA and answers
    200 text/html.
  • History entry for the drift, ending in the law: a model swap is not finished
    until that endpoint's model row is re-keyed too — no deployer step touches
    webui.db.
  • AGENTS.md Model Swaps procedure gains that final step, which is where an
    agent actually reads it at swap time.

Not touched

shared/homepage/services.json describes frank-dragoon as "200k-token
conversations, two at a time" — understated against the 262,144 ceiling (the
other two cards match their endpoints). Left alone: the homepage is a separate
surface with its own homepage_config.bats expectations. Say the word and I will
re-cut that card.


cwd: /home/blank/.omp/wt/wt-20261104-104444-6d1fc1f · session: 01a1a7eb-c584-72d3-9d7e-c02d981cd662

# OpenWebUI model rows re-keyed; default model is `frank-archon` Two asks: refresh the picker descriptions, and make `frank-archon` the model a member lands on. Both are live `webui.db` state (never repo state), so this PR is the documentation half plus the law that keeps the live half honest. ## Applied on the live service (2026-11-04) - **Descriptions** rewritten from the env files, which are the authority: `frank-dragoon` said halogen **0.16.2** (live **0.18.20**); `frank-zealot` said **build 10777 / 3×262,144 / "MTP off"** (live **build 12118 / 3 × 200,704 / `SPEC_TYPE=draft-mtp` armed**). - **`params.context.length` had been swapped** between the two rows — the real defect, not cosmetics. `frank-zealot` advertised 262,144 while llama.cpp refuses any prompt past its 200,704 slot, so OpenWebUI would let a long zealot chat ride the endpoint's 400 instead of compacting; `frank-dragoon` advertised 200,704 against a 262,144 ceiling and gave up 61k tokens of window for nothing. Now 200,000 / 262,144 / 200,704, matching `FRANK_ARCHON_MAX_MODEL_LEN`, `HALOGEN_CTX`, and `CTX_SIZE/PARALLEL`. - **`ui.default_models = "frank-archon"`** (a comma-separated string in the config table). Verified in a clean managed browser with `localStorage` empty: `Selected model: frank-archon`, and the picker renders all three new descriptions with no trace of `0.16.2` / `10777`. Written through the API, not raw sqlite: `POST /api/v1/configs/import` for the config key and `POST /api/v1/models/model/update` with the full `ModelForm` (`meta`/`params` replace rather than merge, so the rows were read, patched and sent back whole — `meta.capabilities` survived intact). ## Docs - `Dankclaw/OpenWebUI.md` gains **Default model, descriptions, and the admin API door**: the `ui.default_models` resolution rule (the browser's stored pick beats it), the two admin doors, and three traps measured on the way in — `get_human_user` answers **403 "A human session is required."** to an API key on `/api/v1/auths/` (not a dead key: the mutation routes take the key), and `/api/v1/models/` with a trailing slash falls through to the SPA and answers `200 text/html`. - History entry for the drift, ending in the law: **a model swap is not finished until that endpoint's `model` row is re-keyed too — no deployer step touches `webui.db`.** - `AGENTS.md` *Model Swaps* procedure gains that final step, which is where an agent actually reads it at swap time. ## Not touched `shared/homepage/services.json` describes `frank-dragoon` as "200k-token conversations, two at a time" — understated against the 262,144 ceiling (the other two cards match their endpoints). Left alone: the homepage is a separate surface with its own `homepage_config.bats` expectations. Say the word and I will re-cut that card. --- cwd: /home/blank/.omp/wt/wt-20261104-104444-6d1fc1f · session: 01a1a7eb-c584-72d3-9d7e-c02d981cd662
dank added 1 commit 2026-11-04 13:07:06 -08:00
The picker's decoration rows carried two payload-swap drifts: frank-dragoon
still named halogen 0.16.2 (live 0.18.20) and frank-zealot build 10777 /
3x262,144 / MTP off (live build 12118 / 3x200,704 / draft-mtp armed). Worse,
their params.context.length values had swapped, so OpenWebUI advertised more
window than the zealot slot grants and gave up 61k tokens on dragoon. Live
rows re-keyed through the admin API and ui.default_models set to
frank-archon; the swap procedure in AGENTS.md now names the re-key step.
dank merged commit fee8121d47 into main 2026-11-04 13:08:52 -08:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dank/serverAppConfigs#146