Repository navigation
WolfStack v25.1.22
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.