Skip to content

v4.9.4 — Tool-call protocol fix

Choose a tag to compare

@shivadeore111-design shivadeore111-design released this 24 May 06:49
· 23 commits to main since this release

Hotfix for tool-call protocol orphans.

Fixed

  • Provider 400 "No tool output found for function call " — When the tool-loop surface decision or abort signal interrupted a multi-call batch, the assistant message's tool_call_ids could be left without matching tool result messages. The next provider call (this turn or a resumed history) returned 400. Both guards now fill synthetic blocked-tool-result messages with a uniform shape ({ ok: false, blocked: true, reason, message }) so the LLM sees a consistent signal regardless of which guard fired.
  • New assertNoUnansweredToolCalls() preflight at the single provider call boundary (AidenAgent.callProvider). Throws loud if any future guard leaves orphans. Safety net for upcoming v4.10 work.

Known follow-ups for v4.10

  • Hooks subprocess runner + MCP install healthCheck still use the pre-v4.9.2 spawn pattern.
  • Typing-suggestion cursor misalignment in REPL input area (carried from v4.9.0).