llm: complete the Protoss rename on the wire — served ids frank-archon/dragoon/zealot

The 2026-10-08 rename moved the harness model ids and the homepage cards;
the served aliases on the wire stayed frank-primary/frank-large/
frank-secondary. This closes the gap: the alias each endpoint announces is
now the family name, while the services, units, scripts, env files and
runbooks keep the old names (container identity stays stable).

- scripts/frank-secondary.env ALIAS, scripts/frank-large.env
  HALOGEN_MODEL_ID, scripts/frank-primary.env FRANK_PRIMARY_SERVED_NAME
  (+ the two serve-script defaults/gate messages)
- seams re-pinned: frank_secondary/frank_large/frank_primary unit bats
- fleet harnesses retargeted: bench-probe, deep-probe, calib-push,
  fleet-probes-swift15, autoresearch(+measure), bench-threads-batch-http,
  bench-decode
- shared/homepage/docs.html: api-id annotations and the "switchover will
  rename the ids" footnote removed — the page's names are now the ids;
  opencode/Pi/curl examples send frank-zealot
- dankclaw/hermes/config.yaml.example: frank-large -> frank-dragoon and the
  live 262144 context (Hermes routes by served id; see Hermes.md)

Consumers with live state re-keyed out-of-band in the same window:
OpenWebUI (model row, access_grant, openai.api_configs model_ids) and the
Hermes config.yaml.
This commit is contained in:
Frank
2026-10-09 16:47:19 -07:00
parent 65dec6a80e
commit 7c77326c33
19 changed files with 58 additions and 47 deletions
+15 -17
View File
@@ -70,8 +70,7 @@
conversations are saved to your account, so history follows you between devices.</p>
<img src="img/openwebui-chat.png" alt="Open WebUI chat screen with a question and the AI's answer">
<p>Below the text box, the model box on the right chooses which model answers you.
Family accounts get <code>frank-zealot</code> — the fleet's fast all-rounder
(Open&nbsp;WebUI lists models by their API id; this one is <code>frank-secondary</code>),
Family accounts get <code>frank-zealot</code> — the fleet's fast all-rounder,
which also sees images: drag a photo or screenshot straight into the chat box.
Frank's account can additionally reach the bigger models.</p>
<img src="img/openwebui-model-picker.png" alt="The Open WebUI welcome screen with the family model selected in the model box">
@@ -85,11 +84,11 @@
The homepage "Model Information" panel shows whether each one is up right now —
and plays the unit's voice if you click its quoted line.</p>
<p class="foot-note">Naming: the Open&nbsp;WebUI picker and the raw API show the
endpoint <em>api ids</em> in brackets below. The Protoss names are the family
names; a future switchover will rename the ids to match.</p>
<p class="foot-note">Naming: the Open&nbsp;WebUI picker and the raw API show
exactly the Protoss names used on this page (renamed 2026-10-09). The name you
read here is the name you type into a config file.</p>
<h2>frank-zealot — the fast utility model <em>(api id: frank-secondary)</em></h2>
<h2>frank-zealot — the fast utility model</h2>
<ul>
<li><strong>Model:</strong> <a href="https://huggingface.co/HauhauCS/Qwen3.5-9B-Uncensored-HauhauCS-Aggressive" target="_blank" rel="noopener">Qwen3.5-9B-Uncensored</a> (Q6_K) on the RTX&nbsp;3090 — roughly 95 tokens per second.</li>
<li><strong>Equivalent:</strong> last year's frontier level (2025).</li>
@@ -101,7 +100,7 @@
<li><strong>Warning:</strong> <details class="key-warn"><summary>&#9888; uncensored model</summary><div class="warn-body">Uncensored model: output can include adult content, content that describes harmful, hateful, or illegal acts, content concerning &ldquo;sensitive offensive cybersecurity topics&rdquo;, and other output that may carry severe legal risk. Take this warning seriously &mdash; don&rsquo;t ruin this server for everybody.</div></details></li>
</ul>
<h2>frank-dragoon — deep reasoning <em>(api id: frank-large)</em></h2>
<h2>frank-dragoon — deep reasoning</h2>
<ul>
<li><strong>Model:</strong> <a href="https://huggingface.co/Quat3rnion/halogen-swift1.5-qwen3.8-flash-next-v2-abliterated" target="_blank" rel="noopener">Qwen3.8-Flash-Next v2 Swift1.5 abliterated</a> (halogen flash-server, ~62&nbsp;GiB) on the Strix Halo iGPU — an abliterated (censorship-removed) edition that thinks before answering.</li>
<li><strong>Equivalent:</strong> Claude Sonnet 5 / OpenAI-Luna (Summer 2026 frontier intelligence).</li>
@@ -111,7 +110,7 @@
<li><strong>Supervision:</strong> safe for autonomous, low-supervision use.</li>
<li><strong>Warning:</strong> <details class="key-warn"><summary>&#9888; uncensored model</summary><div class="warn-body">Uncensored model: output can include adult content, content that describes harmful, hateful, or illegal acts, content concerning &ldquo;sensitive offensive cybersecurity topics&rdquo;, and other output that may carry severe legal risk. Take this warning seriously &mdash; don&rsquo;t ruin this server for everybody.</div></details></li>
<h2>frank-archon — the big one <em>(api id: frank-primary)</em></h2>
<h2>frank-archon — the big one</h2>
<ul>
<li><strong>Model:</strong> our own build — a GPTQ-w4 quant of <a href="https://huggingface.co/frank8465/Swift-1.5-Qwen3.8-Flash-Next-GPTQ-W4A8-Radiance-AMD-R9700" target="_blank" rel="noopener">Swift1.5-Qwen3.8-Flash-Next</a>, quantized and tuned in-house (radiance, ~114&nbsp;GiB) on twin AMD R9700s with more than 200&nbsp;GB of system RAM — the biggest brain on the network and the fastest runtime.</li>
<li><strong>Equivalent:</strong> Claude Opus 4.8 / OpenAI-Terra (Summer 2026 frontier intelligence).</li>
@@ -123,9 +122,8 @@
<p class="foot-note">Which one to pick? Small utility work, autocomplete, RAG,
programming, and personal agents: <code>frank-dragoon</code>. Software
engineering, sysadmin, and instruction tasks: <code>frank-archon</code> (ask
Frank first). The ids in brackets are what the Open&nbsp;WebUI picker and the
raw API show today; the Protoss names are the family names, and the switchover
will rename the ids to match.</p>
Frank first). Every name on this page is the id the Open&nbsp;WebUI picker and
the raw API answer to.</p>
</section>
<section id="api-access">
@@ -154,14 +152,14 @@
<h2>Step 2 — the three details every tool asks for</h2>
<ul>
<li><strong>Base URL:</strong> <code>https://ai.franksdank.cloud/api/v1</code></li>
<li><strong>Model:</strong> <code>frank-secondary</code> — this is <code>frank-zealot</code>, the family utility model (the API uses the id, not the family name)</li>
<li><strong>Model:</strong> <code>frank-zealot</code> — the family utility model (this is the id the API expects)</li>
<li><strong>API key:</strong> the <code>sk-…</code> from step 1 — sent as the header <code>Authorization: Bearer sk-…</code></li>
</ul>
<p>Proof that it works, from any terminal (replace the key):</p>
<pre><code>curl https://ai.franksdank.cloud/api/v1/chat/completions \
-H "Authorization: Bearer PASTE-YOUR-KEY" \
-H "Content-Type: application/json" \
-d '{"model": "frank-secondary", "messages": [{"role": "user", "content": "Hello!"}]}'</code></pre>
-d '{"model": "frank-zealot", "messages": [{"role": "user", "content": "Hello!"}]}'</code></pre>
<h2>Step 3a — Opencode</h2>
<p>Install once (<code>npm install -g opencode-ai</code>), then create the file
@@ -177,13 +175,13 @@
"apiKey": "PASTE-YOUR-KEY"
},
"models": {
"frank-secondary": { "name": "frank-secondary" }
"frank-zealot": { "name": "frank-zealot" }
}
}
}
}</code></pre>
<p>Start <code>opencode</code> and pick the model with <code>/model</code> —
it appears as <code>frank/frank-secondary</code>.</p>
it appears as <code>frank/frank-zealot</code>.</p>
<h2>Step 3b — Pi</h2>
<p>Create the file <code>~/.pi/agent/models.json</code> with:</p>
@@ -194,12 +192,12 @@
"api": "openai-completions",
"apiKey": "PASTE-YOUR-KEY",
"models": [
{ "id": "frank-secondary" }
{ "id": "frank-zealot" }
]
}
}
}</code></pre>
<p>Then start Pi with <code>pi --model frank/frank-secondary</code>.</p>
<p>Then start Pi with <code>pi --model frank/frank-zealot</code>.</p>
<p class="foot-note">The key works only for the family AI — it is not your
Authentik password, and losing it costs nothing beyond asking Frank to rotate it.