Skip to content

v4.3.0: a stop reaches the engine, error frames, warm new chats

Latest

Choose a tag to compare

@nibor1896 nibor1896 released this 22 Oct 10:30
· 8 commits to main since this release
3c19c99

A stop during a long prompt now reaches the engine, a failure in the middle of an answer shows its reason, and Flash-Next starts a new chat warm when its system prompt is the same. With crow-nest v0.15.0, measured on the Linux box: a new chat prefills 27 ids in 188 ms instead of about 6,800 in about 8.8 s, and a stop frees the engine at the next 2,048-token chunk. The Windows packages followed the same day; on Windows Crow keeps the crow-nest engine v0.13.2 (Known limitations).

Added

  • Flash-Next starts a new chat warm when its head is the same (2026-10-22, owner decision). manifests/stack.json point flash-next sets CROW_PREFIX_ANCHOR=1, crow-nest's head anchor (crow-nest docs/architecture.md 7.17): the engine keeps the state at the first user turn, so a new chat with the same system prompt and tools rolls back onto it instead of prefilling everything. Live on the Linux box: the new chat prefilled 27 ids in 188 ms instead of about 6,800 in about 8.8 s. Needs crow-nest v0.15.0 or later; an older serve (v0.14.0) logs that it reads no such variable and runs as before. tools/check_stack.py 12 of 12, tools/check_operating_point.py 10 of 10.
  • Linux assets for 4.2.0 (2026-10-22). The v4.2.0 release carries CrowSetup-linux-x64 (5,382,480 B, sha256 61712f57…) and crow-4.2.0-linux-x64.tar.gz (60,394,008 B, sha256 d8aad794…), the first Linux assets since v3.1.0. Built on the Linux box from the v4.2.0 tree: sd-server by SD_RELEASE=1 tools/build-sd-server.sh (stable-diffusion.cpp 2f88688, CUDA 13.3), the package by tools/pack-release.sh (44 files, no NVIDIA file, privacy gate clean), the installer by installer/build.sh (--selftest 12 checks OK, privacy gate clean). It installs crow-nest engine v0.14.0 (crow-nest-engine-0.14.0-linux-x64.tar.gz, attached to crow-nest's v0.14.0 release); Windows keeps the v0.13.2 pin. docs/user-guide/install.md downloads it instead of building it.

Fixed

  • A local serve's failure after its first byte reaches the turn (2026-10-22, 9e7358d). When crow-nest refuses a VRAM allocation inside a request after its 200 head, it sends one error frame and [DONE]. stream_reply read that frame for remote endpoints only (#216), so the round ended on [DONE] with the frame skipped and its reason never shown. The local server's frame now raises HTTP <code> mid-stream from <model>: <reason> like a remote one, in both shapes: the object crow-nest sends since its error-object fix (crow-nest b4231f4) and the bare string of an older serve. The judge kept only the status of a bare-string refusal; it keeps the reason now. 5 cases in TheLocalErrorFrameIsReadTests, 4 of them red on the old code; the whole suite 3,251 OK (146 skipped). Not checked live: no allocation failure was provoked against a running serve.
  • A stop during a long prompt reaches the engine (2026-10-22, c635b32). While serve prefills it writes nothing, so the reader thread sits in a read and the stop's resp.close() waited for its lock: measured on Linux against a server that sent the SSE head and then nothing, the close returned after 11.0 s and the server never saw the client leave. serve went on prefilling the whole prompt while the next request waited. The stop now shuts the socket down first (_hang_up): the close returns at once and the server sees the FIN at 1.0 s. crow-nest 2593c4a ends its prefill at the next chunk boundary on that FIN and keeps the state there, so the next request resumes instead of starting over. Linux only on the engine side; on Windows the read timeout still ends the read. New case AStopHangsUpDuringASilentPrefillTests, red on the old code; test_the_read_timeout_is_what_bounds_an_aborted_reader now asserts the immediate abort on Linux. Whole suite 3,247 OK (146 skipped). Not checked in the window.
  • The Linux release packer no longer refuses the engine API URL (2026-10-22). tools/pack-release.sh refused the 4.2.0 package on cli/crow_core.py's ENGINE_RELEASES_API (https://api.github.com/repos/<owner>/crow-nest/..., added with #367): the public-namespace context in tools/repack-release.py named github.com/<owner> but not the REST API's github.com/repos/<owner>. It does now; the new case in tools/test_repack_release.py is red without the change, 50 tests OK with it.

Measured

  • CrowSetup-linux-x64 installs and runs Flash-Next end to end (2026-10-22, robin's live check on the Linux box, RTX 5090). Downloaded from the v4.2.0 release with curl like a new user, run with its window, point flash-next, default install root. The Flash-Next files already under <root>/models (copied from the Windows install) were verified by sha256 and not downloaded again; Crow 4.2.0, crow-nest engine v0.14.0, NVRTC and whisper-small were fetched. Crow then served from <root>/bin/serve (sha256 d1e3ac42…, the one in the engine package's MANIFEST.json): a multi-step coding task with tool calls ran to the end, its 9 unittest cases passed, and every number in its report reproduced on a re-run.

Known limitations

  • Windows keeps the crow-nest engine v0.13.2 (2026-10-22): CrowSetup.exe and Settings → About install the v0.13.2 pin of manifests/stack.json, which reads no CROW_PREFIX_ANCHOR and runs as before, so the warm new chat is Linux only for now. The Windows packages were attached on 2026-10-22, and the release has been marked latest since then.
  • Setup gives no feedback in two places (2026-10-22, the same live check). After the refusal of an install root that held other files, Retry did nothing until Pause and Resume; and while the Crow step prepared the venv and whisper-small, the window showed no progress. Neither event reaches setup/setup.log, which only records state-file errors (#338).
  • Settings → About offers no engine update on Linux, as before: the updater asks for crow-nest-engine-<v>-linux-x64.zip, crow-nest packs .tar.gz (crow-nest CHANGELOG, v0.13.2).

Install / upgrade

Windows, CrowSetup (installs Crow 4.3.0 and crow-nest engine v0.13.2; assets added 2026-10-22)

irm https://github.com/nibor1896/Crow/releases/latest/download/CrowSetup.exe -OutFile CrowSetup.exe; .\CrowSetup.exe

Windows, script

irm https://raw.githubusercontent.com/nibor1896/Crow/main/install.ps1 | iex

Linux, one window (Crow, the crow-nest engine v0.15.0 and the operating points you pick; needs gtk3, webkit2gtk-4.1, python-gobject)

curl -fLO https://github.com/nibor1896/Crow/releases/download/v4.3.0/CrowSetup-linux-x64 && chmod +x CrowSetup-linux-x64 && ./CrowSetup-linux-x64

Linux, from a checkout

git fetch --tags && git checkout v4.3.0 && bash install.sh

Issues

None: every item names its commit.