NVMAI 3.5
NVMAI 3.5
Production-readiness release: full-codebase audit fixes, the complete test-suite green-up, and benchmark tooling.
- Tool-call loop. Responses API streaming announces every tool call (previously only the first) with unique item IDs and matching
function_call_arguments.done/output_item.doneevents;function_callinput items require acall_id;store: trueis rejected as unsupported. - Decode-service IPC. The Mac app's response router uses per-request signaling (fixing a lost-update race and a shared-semaphore wakeup hazard) and only sends a cancel when the consumer actually cancels.
- Defaults aligned. Chat-completions temperature default
0.6 -> 0.2andtop_kdefault20 -> 64, matching the documented/app defaults; the launchers'nothinkchoice now actually disables reasoning. - Robustness. Prompt-cache snapshot ceiling corrected to 4 GiB; the CLI-strip heuristic drops empty assistant turns and matches reminder tags case-insensitively; installer manifest/receipt writes are fsync-durable and verified against the format's 16 KB alignment contract; expert-pread bookkeeping uses a single lock; shader NaN guards in softmax and decode attention; dead code removed.
- Test suite green. All 658 tests / 120 suites pass. Fixes include:
ServerCoordinatoradmits up toqueueLimit; the HTTP handler cancels an active generation on a client I/O error; the trusted-receipt policy is strict; the detokenizer recognizes ByteLevel byte tokens and never emitsU+FFFD;PromptSubmissionPolicydefers to the editor for.returnnewline mode. - Tooling.
benchmark/combos.shkills only its own servers, records failed runs explicitly, no longer edits the user's global OpenCode config, and gains aLIMIT=Nfastest-first shortcut;tools/responses_bridge.pyannounces output items before streaming and mapsmax_output_tokens: 0to "no cap".
See the wiki changelog.