Fixed
-
Fast-coding pool malformed tool_calls hang (fixes #124). Some providers returned
finish_reason: tool_callswithout atool_callsarray, causing pi and other OpenAI clients to wait forever. Router now normalizes such responses tofinish_reason: stopinsrc/core/router-daemon.js(normalizeToolCallsResponse) before forwarding, making the response spec-compliant even when upstream is quirky. Thanks @stgreenb. -
Docker mandatory update EACCES crash (fixes #109). Inside Docker the app lives at
/appand runs as non-rootfcm, sonpm i -galways hit EACCES on/usr/local/lib/node_modulesand showed "Mandatory update failed" then exited. AddedisRunningInDocker()insrc/core/updater.js(checks/.dockerenvand/appprefix) to skip mandatory startup updates in containers; rebuild the image to update. Thanks @karneaud.
Changed
- Closed older user feature requests with concise responses: #51 Nix module (PR welcome), #30 oh-my-opencode (wrapper externe, pas de duplication), #27 Claude Code integration (now via router
fcm). Only vava's own issues (75, 21, 18) remain open.
Tests
- 813/813 passing. Router now re-stringifies normalized JSON only when needed.