diff --git a/shared/homepage/docs.html b/shared/homepage/docs.html index 450f5b0..1f8d811 100644 --- a/shared/homepage/docs.html +++ b/shared/homepage/docs.html @@ -90,14 +90,14 @@

frank-zealot — the fast utility model

frank-dragoon — deep reasoning

diff --git a/shared/homepage/services.json b/shared/homepage/services.json index 5f061da..96a8f59 100644 --- a/shared/homepage/services.json +++ b/shared/homepage/services.json @@ -295,13 +295,13 @@ "model": { "unit": "zealot", "role": "Frank's utility model", - "hf": "https://huggingface.co/HauhauCS/Qwen3.5-9B-Uncensored-HauhauCS-Aggressive", + "hf": "https://huggingface.co/prism-ml/Ternary-Bonsai-2-27B-gguf", "tagline": "HONOR GUIDE ME!", "sfx": [ "zealot-honor.ogg" ], "equiv": "Equivalent to last year's frontier level (2025).", - "spec": "Qwen3.5-9B-Uncensored (Q6_K) on an NVIDIA RTX 3090 — ~95 tokens/s; 200k-token context, two submissions at a time; sees images.", + "spec": "Ternary-Bonsai-2-27B (PQ2_0 ternary weights) on an NVIDIA RTX 3090 — ~77 tokens/s; 200k-token context, two submissions at a time; sees images.", "inputs": [ "text", "image" @@ -314,7 +314,7 @@ ] }, "supervision": "Requires tight human supervision.", - "warn": "Uncensored model: output can include adult content, content that describes harmful, hateful, or illegal acts, content concerning “sensitive offensive cybersecurity topics”, and other output that may carry severe legal risk. Take this warning seriously — don’t ruin this server for everybody.", + "warn": "Base-alignment (censored) model: refusals are possible on sensitive topics, and any model can still be steered into risky output. Take this warning seriously — don’t ruin this server for everybody.", "compaction": "If your agent harness lets you set a compaction model, set this one: a compaction job on the bigger models blocks them for far longer." }, "url": "", diff --git a/tests/homepage_config.bats b/tests/homepage_config.bats index ac8df88..c554fa3 100644 --- a/tests/homepage_config.bats +++ b/tests/homepage_config.bats @@ -105,8 +105,10 @@ for s in fleet: assert [s["name"] for s in fleet] == ["frank-zealot", "frank-dragoon", "frank-archon"], \ "card render order must be zealot, dragoon, archon: " + str([s["name"] for s in fleet]) w = {s["name"]: s["model"].get("warn", "") for s in fleet} -assert w["frank-zealot"] == w["frank-dragoon"] != "", "the legal warnings must be the common uncensored text" -assert "legal risk" in w["frank-zealot"].lower() and "everybody" in w["frank-zealot"].lower() +assert "legal risk" in w["frank-dragoon"].lower() and "everybody" in w["frank-dragoon"].lower(), \ + "the abliterated endpoint must carry the common legal warning" +assert "censored" in w["frank-zealot"].lower() and "uncensored" not in w["frank-zealot"].lower(), \ + "zealot ships the censored base since 2026-10-17: its card warning must not claim uncensored output" archon = next(s for s in fleet if s["name"] == "frank-archon") assert "permission" in archon["model"], "archon card needs the ask-Frank permission callout" PY