github esengine/DeepSeek-Reasonix v0.29.0
v0.29.0 — chunked parallel tool dispatch

latest releases: desktop-v1.11.1, v1.11.1, npm-v1.11.1-rc.1...
one month ago

Headline: tool dispatch is no longer strictly serial. When the model emits multiple parallelSafe-annotated tool calls in one turn, the loop races them together via Promise.allSettled; non-parallelSafe calls form serial barriers, so read-after-write order still holds. Tool yields and history append still land in declared order regardless of which call settles first.

The TUI's SubagentRow becomes SubagentLiveStack: 1 → rich card, 2..max → compact rows, > max → "+N more running…" fold.

Closes umbrella #325.

Tool dispatch

  • ToolDefinition.parallelSafe?: boolean — opt-in, default false. Built-in read-only filesystem, web, recall_memory, semantic_search, isolated child loops (run_skill, spawn_subagent), and in-memory job queries opt in. Mutating tools stay default. (#326)
  • Loop dispatch chunks consecutive parallelSafe calls and races them; unsafe calls form barriers. runOneToolCall extracts per-call lifecycle (PreToolUse + dispatch + PostToolUse). New env knobs: REASONIX_PARALLEL_MAX (default 3, hard max 16) and REASONIX_TOOL_DISPATCH=serial (escape hatch). (#327)

TUI

  • SubagentEvent carries a stable runId per spawn; useSubagent keeps an array of in-flight activities; SubagentLiveStack renders 1..max → compact rows + "+N more" fold. (#327)

Docs

  • docs/ARCHITECTURE.md Pillar 1 gains a "Parallel tool dispatch" section. (#328)

Install

npm i -g reasonix@0.29.0

Don't miss a new DeepSeek-Reasonix release

NewReleases is sending notifications on new releases.