Household docs: rewrite the family guide, and make the model cards tell the truth
Three atomic commits.
1. docs(homepage): the household guide, rewritten for people who did not build it
shared/homepage/docs.html was a wall of data-URI screenshots with a section per
app written from the operator's point of view. Rebuilt as a task-first guide: start here → pick what you want to do → open the door, then one section per
door with the exact address, the exact button to press, and the failure the
household actually hits (the family password typed into Jellyfin; a file app
pointed at the public door).
14 screenshots, all captured logged in as a standard (non-admin) user, not
as Frank. They ship as files (img/onboarding/*.webp, 14 × ≤100 KB, converted
to WebP) instead of data URIs: the page went from ~30 KB of inline base64 to
23 KB of prose, and the images now cache separately.
Zero-JS rule kept: the only script on the page is the pre-existing bare-mode toggle.
style.css gains only the rules the new markup needs (h3, figure, figcaption, table, .toc, .kicker) plus their bare-mode counterparts.
Verified headlessly before commit: 14/14 images resolve, no dead anchors, all
15 external hosts are vhosts that actually exist in dankclaw/Caddyfile, and ?bare=1 still strips to bare HTML.
Facts corrected while rewriting (each re-checked against the live service, not
against the old page): the front door is https://www.franksdank.cloud (the apex
308s there — there is no dank. host); Audiobookshelf's app URL is …/audiobookshelf (root is a redirect onto ROUTER_BASE_PATH); the standard
user's Open WebUI account sees all three models and opens on frank-dragoon
(read from /api/models as that user, not assumed); a WebDAV mount works only on
the house network (PROPFIND http://192.168.0.235:3923/ answers 207, the same
verb through the public door answers the guard's challenge page); Audiobookshelf's
iOS client is a limited-seat TestFlight beta, Android is the normal Play release.
2. fix(homepage): the model cards speak the live shape
shared/homepage/services.json is the family's only description of the fleet, and
three of its numbers had drifted from scripts/*.env:
Card
Was
Now
Authority
frank-archon
three submissions at a time
four
FRANK_ARCHON_MAX_SEQS=4 (1bb6399)
frank-zealot
262k-token context
200k-token conversations
CTX_SIZE=602112 / PARALLEL=3 = 200,704 a slot, and llama.cpp 400s over it
frank-zealot
"Base-alignment (censored) model: refusals are possible"
not an env fact; frank-dragoon is the interactive one
frank-zealot
~167 tokens/s
(dropped)
a measurement for a shape nobody is comparing — vault law says drop it
This commit deletes one assertion (tests/homepage_config.bats: zealot's card
warning "must not claim uncensored output", added when the censored base was live
on 2026-10-17). The LoRA landed after that, so the pin now enforces a false claim
on a safety-relevant field: it would keep telling the household that this endpoint
refuses dangerous requests when it does not. The general invariant stays and still
fires — any card whose spec says uncensored/abliterated MUST carry the legal
warning (homepage_config.bats:100-104). Revert this commit if you disagree; it
is self-contained.
3. docs(vault): the four-slot contract, and two pages that contradicted themselves
LLM/frank-archon.md said "Capacity contract 2 conversations × 200,000" in its
intro while its own shape table read MAX_SEQS=4. Intro now matches the env.
AGENTS.md carried --max-num-seqs 2 and a 44,928 MiB host pool; live is 4 and
49,152.
LLM/dankclaw-iommu-translation-off.md re-transcribed frank-dragoon's boot
ledger (including a pool figure that was already superseded the same day) and
carried a present-tense "No NPU endpoint is deployed" that the XDNA2 embedding
lane falsified on 2026-10-19. Both replaced by a link to [[frank-dragoon]],
which owns those numbers.
Architecture/Deployment Flow.md had a sentence broken by an earlier link
removal ("is retired () and has no deploy handler").
Census run for this commit: every tunable in the three scripts/<svc>.env files
against its endpoint page (only hits were truncated-sha and absolute-path forms
the pages intentionally elide), live /health + /v1/models on all three
endpoints, check-okf.py → 125 pages, 0 violations, 0 duplicate titles, 0 pages
unlinked from an index.
cwd: /home/blank/.omp/wt/wt-20261030-163847-6d1fc1f · session: 01a18f2e-18b1-7573-bcd5-ac99636f8bcb
(work performed in the deploy worktree /tmp/wt-deploy, branched off origin/main@5030f83)
# Household docs: rewrite the family guide, and make the model cards tell the truth
Three atomic commits.
## 1. `docs(homepage)`: the household guide, rewritten for people who did not build it
`shared/homepage/docs.html` was a wall of data-URI screenshots with a section per
app written from the operator's point of view. Rebuilt as a task-first guide:
*start here → pick what you want to do → open the door*, then one section per
door with the exact address, the exact button to press, and the failure the
household actually hits (the family password typed into Jellyfin; a file app
pointed at the public door).
- **14 screenshots, all captured logged in as a standard (non-admin) user**, not
as Frank. They ship as files (`img/onboarding/*.webp`, 14 × ≤100 KB, converted
to WebP) instead of data URIs: the page went from ~30 KB of inline base64 to
23 KB of prose, and the images now cache separately.
- Zero-JS rule kept: the only script on the page is the pre-existing bare-mode toggle.
- `style.css` gains only the rules the new markup needs (`h3`, `figure`,
`figcaption`, `table`, `.toc`, `.kicker`) plus their bare-mode counterparts.
- Verified headlessly before commit: 14/14 images resolve, no dead anchors, all
15 external hosts are vhosts that actually exist in `dankclaw/Caddyfile`, and
`?bare=1` still strips to bare HTML.
Facts corrected while rewriting (each re-checked against the live service, not
against the old page): the front door is `https://www.franksdank.cloud` (the apex
308s there — there is no `dank.` host); Audiobookshelf's app URL is
`…/audiobookshelf` (root is a redirect onto `ROUTER_BASE_PATH`); the standard
user's Open WebUI account sees **all three** models and opens on `frank-dragoon`
(read from `/api/models` as that user, not assumed); a WebDAV mount works only on
the house network (`PROPFIND http://192.168.0.235:3923/` answers `207`, the same
verb through the public door answers the guard's challenge page); Audiobookshelf's
iOS client is a limited-seat TestFlight beta, Android is the normal Play release.
## 2. `fix(homepage)`: the model cards speak the live shape
`shared/homepage/services.json` is the family's only description of the fleet, and
three of its numbers had drifted from `scripts/*.env`:
| Card | Was | Now | Authority |
|---|---|---|---|
| `frank-archon` | three submissions at a time | four | `FRANK_ARCHON_MAX_SEQS=4` (`1bb6399`) |
| `frank-zealot` | 262k-token context | 200k-token conversations | `CTX_SIZE=602112 / PARALLEL=3` = 200,704 a slot, and llama.cpp 400s over it |
| `frank-zealot` | "Base-alignment (censored) model: refusals are possible" | uncensored, adapter named | `LORA_FILE=…/Ternary-Bonsai-2-9B-Uncensored-LoRA.gguf`, `LORA_SCALE=1` |
| `frank-archon` | "strongest and fastest" | strongest | not an env fact; `frank-dragoon` is the interactive one |
| `frank-zealot` | ~167 tokens/s | (dropped) | a measurement for a shape nobody is comparing — vault law says drop it |
**This commit deletes one assertion** (`tests/homepage_config.bats`: zealot's card
warning "must not claim uncensored output", added when the censored base was live
on 2026-10-17). The LoRA landed after that, so the pin now enforces a false claim
on a safety-relevant field: it would keep telling the household that this endpoint
refuses dangerous requests when it does not. The general invariant stays and still
fires — any card whose spec says uncensored/abliterated MUST carry the legal
warning (`homepage_config.bats:100-104`). Revert this commit if you disagree; it
is self-contained.
## 3. `docs(vault)`: the four-slot contract, and two pages that contradicted themselves
- `LLM/frank-archon.md` said "Capacity contract 2 conversations × 200,000" in its
intro while its own shape table read `MAX_SEQS=4`. Intro now matches the env.
- `AGENTS.md` carried `--max-num-seqs 2` and a 44,928 MiB host pool; live is 4 and
49,152.
- `LLM/dankclaw-iommu-translation-off.md` re-transcribed frank-dragoon's boot
ledger (including a pool figure that was already superseded the same day) and
carried a present-tense "No NPU endpoint is deployed" that the XDNA2 embedding
lane falsified on 2026-10-19. Both replaced by a link to `[[frank-dragoon]]`,
which owns those numbers.
- `Architecture/Deployment Flow.md` had a sentence broken by an earlier link
removal ("is retired () and has no deploy handler").
Census run for this commit: every tunable in the three `scripts/<svc>.env` files
against its endpoint page (only hits were truncated-sha and absolute-path forms
the pages intentionally elide), live `/health` + `/v1/models` on all three
endpoints, `check-okf.py` → 125 pages, 0 violations, 0 duplicate titles, 0 pages
unlinked from an index.
---
cwd: /home/blank/.omp/wt/wt-20261030-163847-6d1fc1f · session: 01a18f2e-18b1-7573-bcd5-ac99636f8bcb
(work performed in the deploy worktree `/tmp/wt-deploy`, branched off `origin/main@5030f83`)
Task-first instead of app-first: start here, pick what you want to do, open the
door. Every door gets its exact address, the button to press, and the failure the
household actually hits.
Screenshots are files now (img/onboarding/*.webp, 14 of them, all captured logged
in as a standard user) instead of inline data URIs: the page is 23 KB of prose
instead of 30 KB of base64, and the images cache on their own. Zero-JS kept.
Facts re-checked against the live services rather than against the old page: the
front door is www.franksdank.cloud (the apex 308s there); the standard user's
Open WebUI account sees all three models and opens on frank-dragoon (read from
/api/models as that user); WebDAV answers only on the house network (207 on
192.168.0.235:3923, a guard challenge through the public door); Audiobookshelf
iOS is a limited-seat TestFlight beta, Android is the Play release.
Three numbers on the family-facing model cards had drifted from scripts/*.env:
archon said three submissions where FRANK_ARCHON_MAX_SEQS=4 (1bb6399), zealot
said 262k context where the contract is 200,704 a slot (CTX_SIZE 602112 / PARALLEL
3, and llama.cpp 400s over the slot rather than truncating), and zealot's warning
still promised censored-base refusals after the Uncensored-LoRA went into the load
line (LORA_FILE set, LORA_SCALE=1). archon's role dropped an unverifiable
"fastest"; zealot's card dropped a tokens/s figure nobody is comparing.
Deletes the assertion that zealot's warning must not claim uncensored output. It
was written 2026-10-17, when the censored base was live; the adapter landed after
it, so the pin now enforces a false safety claim on the one surface the household
reads. The general invariant survives and still fires: a card whose spec says
uncensored or abliterated must carry the legal warning (same seam, lines 100-104).
frank-archon.md's intro promised 2 conversations while its own shape table said
MAX_SEQS=4; AGENTS.md carried --max-num-seqs 2 and a 44,928 MiB host pool against
a live 4 and 49,152. Both now quote the env.
dankclaw-iommu-translation-off.md re-transcribed frank-dragoon's boot ledger,
including a pool figure that was superseded the same day, and asserted in the
present tense that no NPU endpoint is deployed - falsified by the XDNA2 embedding
lane on 2026-10-19. Both facts now belong to [[frank-dragoon]] alone.
Deployment Flow.md had a sentence broken by an earlier link removal.
Census: every tunable in the three scripts/<svc>.env against its endpoint page
(only truncated-sha and elided-path forms, which the pages omit on purpose), live
/health + /v1/models on all three endpoints, check-okf.py clean at 125 pages, no
duplicate titles, no page unlinked from an index.
dank
merged commit e1bf1d6e80 into main2026-11-03 04:08:09 -08:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Household docs: rewrite the family guide, and make the model cards tell the truth
Three atomic commits.
1.
docs(homepage): the household guide, rewritten for people who did not build itshared/homepage/docs.htmlwas a wall of data-URI screenshots with a section perapp written from the operator's point of view. Rebuilt as a task-first guide:
start here → pick what you want to do → open the door, then one section per
door with the exact address, the exact button to press, and the failure the
household actually hits (the family password typed into Jellyfin; a file app
pointed at the public door).
as Frank. They ship as files (
img/onboarding/*.webp, 14 × ≤100 KB, convertedto WebP) instead of data URIs: the page went from ~30 KB of inline base64 to
23 KB of prose, and the images now cache separately.
style.cssgains only the rules the new markup needs (h3,figure,figcaption,table,.toc,.kicker) plus their bare-mode counterparts.15 external hosts are vhosts that actually exist in
dankclaw/Caddyfile, and?bare=1still strips to bare HTML.Facts corrected while rewriting (each re-checked against the live service, not
against the old page): the front door is
https://www.franksdank.cloud(the apex308s there — there is no
dank.host); Audiobookshelf's app URL is…/audiobookshelf(root is a redirect ontoROUTER_BASE_PATH); the standarduser's Open WebUI account sees all three models and opens on
frank-dragoon(read from
/api/modelsas that user, not assumed); a WebDAV mount works only onthe house network (
PROPFIND http://192.168.0.235:3923/answers207, the sameverb through the public door answers the guard's challenge page); Audiobookshelf's
iOS client is a limited-seat TestFlight beta, Android is the normal Play release.
2.
fix(homepage): the model cards speak the live shapeshared/homepage/services.jsonis the family's only description of the fleet, andthree of its numbers had drifted from
scripts/*.env:frank-archonFRANK_ARCHON_MAX_SEQS=4(1bb6399)frank-zealotCTX_SIZE=602112 / PARALLEL=3= 200,704 a slot, and llama.cpp 400s over itfrank-zealotLORA_FILE=…/Ternary-Bonsai-2-9B-Uncensored-LoRA.gguf,LORA_SCALE=1frank-archonfrank-dragoonis the interactive onefrank-zealotThis commit deletes one assertion (
tests/homepage_config.bats: zealot's cardwarning "must not claim uncensored output", added when the censored base was live
on 2026-10-17). The LoRA landed after that, so the pin now enforces a false claim
on a safety-relevant field: it would keep telling the household that this endpoint
refuses dangerous requests when it does not. The general invariant stays and still
fires — any card whose spec says uncensored/abliterated MUST carry the legal
warning (
homepage_config.bats:100-104). Revert this commit if you disagree; itis self-contained.
3.
docs(vault): the four-slot contract, and two pages that contradicted themselvesLLM/frank-archon.mdsaid "Capacity contract 2 conversations × 200,000" in itsintro while its own shape table read
MAX_SEQS=4. Intro now matches the env.AGENTS.mdcarried--max-num-seqs 2and a 44,928 MiB host pool; live is 4 and49,152.
LLM/dankclaw-iommu-translation-off.mdre-transcribed frank-dragoon's bootledger (including a pool figure that was already superseded the same day) and
carried a present-tense "No NPU endpoint is deployed" that the XDNA2 embedding
lane falsified on 2026-10-19. Both replaced by a link to
[[frank-dragoon]],which owns those numbers.
Architecture/Deployment Flow.mdhad a sentence broken by an earlier linkremoval ("is retired () and has no deploy handler").
Census run for this commit: every tunable in the three
scripts/<svc>.envfilesagainst its endpoint page (only hits were truncated-sha and absolute-path forms
the pages intentionally elide), live
/health+/v1/modelson all threeendpoints,
check-okf.py→ 125 pages, 0 violations, 0 duplicate titles, 0 pagesunlinked from an index.
cwd: /home/blank/.omp/wt/wt-20261030-163847-6d1fc1f · session: 01a18f2e-18b1-7573-bcd5-ac99636f8bcb
(work performed in the deploy worktree
/tmp/wt-deploy, branched offorigin/main@5030f83)