Skip to content

WolfStack v25.1.22

Choose a tag to compare

@github-actions github-actions released this 30 Jun 07:45
· 932 commits to master since this release

v25.1.22: AI chatbot no longer fails with 'NetworkError' on slow local models

The chatbot's /api/ai/chat ran the agent's heavy multi-turn chat() (full
tools schema + 4096 max_tokens + up to 3 round-trips) as one silent POST.
On a slow local provider (LM Studio, Ollama, llama.cpp) that generation
outlasts a connection idle-timeout — reverse-proxy proxy_read_timeout,
nginx/Cloudflare 60s default, sometimes the browser — so the socket is
reset while the model is still generating. The user saw 'NetworkError when
attempting to fetch resource' even though LM Studio finished the response.
The short Test / System-Check 'Ask AI' calls (no tools) stayed under the
timeout, which is why only the chatbot broke.

Fix: stream /api/ai/chat as Server-Sent Events. Emit an immediate first
byte, a ': heartbeat' comment every 5s while chat() runs, then the final
answer as one 'data:' event. Continuous bytes keep every hop alive no
matter how slow the model is. Same anti-buffering headers as the existing
backup/restore SSE streams (Content-Encoding: identity for the Compress
middleware, X-Accel-Buffering: no for nginx); the cross-node proxy already
passes text/event-stream through unbuffered.

Frontend reads the stream, ignores heartbeats, uses the final payload, and
falls back to resp.json() by content-type so a new UI still works against
an older node. Drains trailing bytes if a proxy cuts the connection the
instant the body lands.


Verifying this release

Each binary is signed via cosign keyless OIDC (no key distribution — signing identity is the GitHub Actions workflow itself, anchored to the Sigstore Fulcio CA and the Rekor transparency log) and ships with a SLSA build provenance attestation.

Verify the cosign signature:

cosign verify-blob \
  --bundle wolfstack-x86_64.cosign.bundle \
  --certificate-identity-regexp 'https://github.com/wolfsoftwaresystemsltd/WolfStack/\.github/workflows/release\.yml@.*' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  wolfstack-x86_64

Verify the build provenance:

gh attestation verify wolfstack-x86_64 --repo wolfsoftwaresystemsltd/WolfStack

Verify the SHA-256 checksum:

sha256sum -c SHA256SUMS

Artifacts

  • wolfstack-x86_64 / wolfstack-aarch64 — static musl binaries (Linux x86_64 and ARM64 / Raspberry Pi 4+).
  • wolfstack-<arch>.cosign.bundle — cosign signature bundle (cert + signature + Rekor entry).
  • SHA256SUMS — checksums for both binaries.

For per-version history see CHANGELOG.md.