v0.0.22
Chaos v0.0.22
The desktop app opened onto its own launch screen, and now it does not. The
command line became a first-class tier: one chaos command, a node you can start
and stop over SSH, and a way to use another machine's node.
WHAT WAS BROKEN
The installed v0.0.21 opened with the mode dial painted underneath the running
application -- the chat transcript, its composer, SEND, CLEAR, the four rail
buttons and STOP all floating on top of it. Nine controls on screen at open; zero
now. WM_PAINT stopped at the launch screen, but the controls are real windows
and painting cannot cover them.
THE MODE IS ASKED ONCE
First launch shows the dial and remembers your answer. Later launches go straight
in. Escape still returns to the dial -- and now it asks first, because leaving a
mode unloads the model and clears the conversation, and one keystroke should not
do that silently. CHAOS is no longer a menu entry: the badge at the bottom of the
rail shows your mode and is the way to that page.
Upgrading from an older version? Your settings file has no mode_chosen key, so
you will be asked the mode exactly once more, and then remembered.
ONE COMMAND
chaos pull qwen3-4b fetch a model
chaos run qwen3-4b "hello" answer a prompt
chaos start qwen3-4b a node in the background, with a log
chaos status what it is doing -- no curl needed
chaos stop end it
chaos connect 192.168.1.20:8080 "hello" use another machine's node
chaos config the settings every tier reads
chaos completions bash and zsh, fish, powershell
Every old binary name still works and means the same thing: chaos run is
chaos-run, arguments untouched. Nothing written against the old names has to
change.
The app and the command line now read the same settings file, so a node started
from a terminal uses the port, key, cache and threads you chose in the window.
chaos-serve --help now lists two endpoints it always had: POST /v1/completions
and POST /v1/embeddings.
FIXED
- A streamed answer that stops early now says so and exits non-zero, instead of
looking like a short answer. - The embedded fonts (Cinzel, IBM Plex Mono, UnifrakturMaguntia, all OFL 1.1) are
now attributed in NOTICE and in every page that carries them. - No telemetry, stated in the README and SECURITY.md. Chaos sends nothing
anywhere; Cargo.lock holds 22 packages and all 22 are crates in this repository. chaos-qr, which draws a node's route as a scannable code in a bare terminal,
now actually ships. It was in no packaging list at all.
CORRECTED, HONESTLY
- Qwen3-30B-A3B is no longer described as "proven". It runs, and it needs
--force, because its architecture fails one of eight reference prompts -- a
demonstrated near-tie, but the rule is that the diff passes. - The headline "31 tok/s on Qwen2-0.5B" was the best of three runs. It is 28 now,
as a median.
MEASURED
- Against llama.cpp on a dense model, hand-tuned both sides: llama.cpp is 1.30x
ahead on prefill and 1.30x ahead on generation, and the whole gap is the FFN. - A 17 GiB model's always-read weights load in 0.38 s. Tokenization is 0.036% of
prefill. Neither is worth optimising. - 14 GPU tests run and pass on an RTX 3050 via Vulkan -- the first time that suite
has actually executed rather than skipping. - Nothing detects a corrupt model: 4 KiB of zeros in the weights loads, exits 0
and answers fluently and wrongly. There is no checksum. Known, written down.
942 tests, 0 failed.