Repository navigation
v0.1.3
Story Lantern 0.1.3
Problem. The lantern was hard wired to tell every story with deepreinforce-ai/Ornith-1.0-35B. The farm listing only asks for a chat model, so a Tiiny holding Qwen3-8B or Qwen3.8-27B instead got 404 "Ornith-1.0-35B" is not loaded on the first planning call, and the lamp turned that into "Goodnight" and went back to the prompt with no story. Two people hit it on 2026-09-16; reproduced on Jason's unit in five seconds.
Fix. The storyteller is chosen once per story from what the Tiiny is actually holding: Ornith when it is there, then Qwen3.8, Qwen3.6, Qwen3-30B, Qwen3.5, gpt-oss, GLM, then any other chat model; coder, embedding, reranker, OCR, ASR, TTS, image and music models are never chosen. Ornith is started only when it is installed and fits the free NPU units, because the device rolls a load back silently when it does not. When no storyteller can be had, the lamp shows a calm card ("The lantern needs a storyteller. Ask a grown-up to check the Tiiny.") instead of a goodnight, and the parent view says exactly what is missing and what the device is holding. A story that fails after a page has been read still ends with the goodnight, on purpose. The parent view now shows who told each story.
Tests. tests/fake_device_test.py 60 to 71 checks; new tests/storyteller_test.py, 16 tests, against a fake device that answers the four model routes and rolls an oversized load back the way the real one does. Real run on a Tiiny holding Qwen3-8B and Qwen3.8-27B with no Ornith: a three page story told by Qwen3.8-27B, audio on every page, plates skipped because Z-Image did not fit. Adversarially verified in two rounds; the parent view and the unreachable-device reason were fixed in the second.
Also in this release: the repo's version string is bumped to 0.1.3 (it had stayed at 0.1.0 through two farm releases), and the README no longer names Ornith as required.