Skip to content

v0.0.31

Choose a tag to compare

@github-actions github-actions released this 02 Sep 23:14
· 26 commits to main since this release
5fdd79d

Chaos v0.0.31 — the front door was broken and the test suite was green

v0.0.30 passed 999 tests, clippy, fmt, four document checks and seven release
jobs. Nobody had run chaos connect or opened /qr on a real node. It was
found in the first minutes of real testing, and reported as "the QR creator and
the reader are not in this version and devices cannot connect to each other".

The bug

$ chaos connect --port 8080 --status
chaos: cannot resolve --port:8080: No such host is known. (os error 11001)

connect pushed every argument it did not recognise into the positional list, so
an unknown flag became the hostname. The route is positional —
chaos connect 192.168.1.20:8080 "your prompt" — so there was never a --port
to type, and the error named DNS instead of the flag. From outside, that is
indistinguishable from a feature that was never built.

Everything reported missing was present and working the whole time: /qr serves
363 KB, /scan 229 KB, chaos-qr prints a code in a bare terminal, and a client
gets a real answer from a node.

The check that would have caught it

scripts/smoke-the-surface.sh29 checks against the built binaries, and it
runs in CI:

  • every binary answers --version
  • every subcommand works or refuses clearly, including connect refusing an
    unknown option by name and scan declaring itself not built
  • chaos-qr prints a code
  • all eight node routes, with /favicon.ico asserted at 204 because that is
    deliberate
  • /qr and /scan proven to fetch nothing external, which is what proves
    the fonts are embedded rather than linked
  • /v1/chat/completions and /v1/embeddings answering with content
  • one machine asking another and getting an answer

A green unit-test suite could not have caught this. The defect was in argument
handling at the outermost layer, where nothing had ever looked.

Fixed

  • chaos connect refuses unknown options by name rather than resolving them
    as hostnames. This is the same defect E7 found in 43 of chaos-run's flags,
    which had survived in the front door because nothing tested it.
  • chaos-qr --version — ten of the eleven shipped binaries answered it and
    this one refused it as an unknown flag.
  • /v1/embeddings was documented as answering 501 in three places across two
    files, for weeks after it had been implemented on the dense path from a real
    hidden state. Corrected. The V4-Flash path is still refused by name,
    because its forward pass exposes no hidden state.

Everything v0.0.30 brought, unchanged

Quality at parity with llama.cpp across three models — Qwen3-4B -1.44%,
Qwen3-30B-A3B +0.37%, DeepSeek-V4-Flash +4.1%, each inside the other's error bar
— and 1.38x ahead on Qwen3-30B-A3B long-context generation. See the v0.0.30 notes
and CHANGELOG.md; SUPPORT.md says what is and is not supported, including that
macOS, the .deb, the AppImage and the arm64 tarball have never been executed by
anybody, and the Android app has never run on a phone.

Install

Windows: the Setup .exe. Linux: the tarball, the .deb or the AppImage. Android:
the .apk. macOS: the tarball, untested. Chaos distributes no model weights.