Skip to content

Release v6.2.0#84

Merged
code-crusher merged 5 commits into
mainfrom
release/v6.2.0
May 21, 2026
Merged

Release v6.2.0#84
code-crusher merged 5 commits into
mainfrom
release/v6.2.0

Conversation

@code-crusher

Copy link
Copy Markdown
Member

[v6.2.0] - 2026-05-21

Added

  • Tool call result pairing safety net: New backfillMissingToolResults function in OpenAI format transform that backfills placeholder tool messages for unanswered parallel tool calls, preventing provider rejections when tool_call/tool_result pairs are mismatched
  • Tool call result pairing module: Pure functions (reconcileAssistantToolUses, toolUseIdsRequiringResults, allToolResultsCollected) to keep assistant tool_calls and tool_results paired 1:1, with comprehensive unit test coverage
  • Task.ts reconciliation: Gating API requests until every tool_call in the assistant message has its matching tool_result collected, preventing partial result sets from being sent to providers

Changed

  • AssistantMessageParser performance: Avoided O(n²) string slicing in the streaming hot loop by deferring content updates to end-of-chunk; added 20KB max extract length threshold for large accumulated arguments during streaming
  • presentAssistantMessage optimization: Replaced deep clone with shallow copy for streaming content blocks to reduce overhead during large file streaming
  • FileWriteTool partial display: Truncated large file content during streaming preview (5KB limit) to prevent IPC bottlenecks and UI freezing
  • Model list cleanup: Removed deprecated axon-code-2-pro and axon-code-2-pro-high model entries from provider configurations

Fixed

  • ReasoningBlock arrow icon rotation styling
  • OutOfCreditsBanner border-radius styling consistency

…anup

- Add tool_call/tool_result pairing safety net in OpenAI format transform
  to backfill placeholder tool messages for unanswered parallel tool_calls
- Add toolCallResultPairing module to reconcile streamed vs finalized
  tool uses and gate API requests until all tool results collected
- Improve AssistantMessageParser performance by avoiding O(n²) string
  slicing in the streaming hot loop
- Optimize presentAssistantMessage with shallow copy instead of deep clone
- Truncate large file content in fileWriteTool partial display to prevent
  IPC bottlenecks
- Remove deprecated axon-code-2-pro and axon-code-2-pro-high model entries
- Fix ReasoningBlock arrow icon rotation styling
- Update OutOfCreditsBanner border-radius styling
@matterai-app

matterai-app Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor

Context

This PR marks the release of v6.2.0, focusing on critical performance optimizations for large-scale streaming, UI/UX refinements for task management, and robust handling of OpenAI-compatible API specifications.

Implementation

Summary By MatterAI MatterAI logo

🔄 What Changed

This release introduces $O(n^2)$ performance optimizations in the AssistantMessageParser by deferring string slicing and skipping expensive regex on large chunks (>20KB). It implements a strict 1:1 reconciliation logic between tool_calls and tool_results to ensure compliance with OpenAI-compatible providers. Additionally, it adds an OutOfCreditsBanner for credit management, refactors the Todo List UI using lucide-react, and introduces the axon-2-5-mini free model.

🔍 Impact of the Change

Users will experience significantly smoother UI performance when streaming large file writes or long reasoning blocks. The extension is now more resilient to API rejections caused by "orphan tool calls." The credit exhaustion flow is streamlined, allowing users to switch to free models seamlessly without losing task context.

📁 Total Files Changed

Click to Expand
File ChangeLog
Parser Optimization src/core/assistant-message/AssistantMessageParser.ts Optimized streaming by deferring slicing and limiting regex on large chunks.
Tool Reconciliation src/core/task/Task.ts Added logic to reconcile streamed tool calls with finalized executable blocks.
Credit UI webview-ui/src/components/kilocode/chat/OutOfCreditsBanner.tsx New component to handle credit exhaustion and model switching.
Todo Refactor webview-ui/src/components/chat/TodoListDisplay.tsx Refactored Todo UI with better status icons and styling.
Model Registry src/api/providers/kilocode-models.ts Added axon-2-5-mini and updated model metadata.
UI Performance src/core/tools/fileWriteTool.ts Truncated large content previews during streaming to prevent IPC bottlenecks.
State Safety src/core/task/toolCallResultPairing.ts New helper for ensuring 1:1 tool call/result pairing.

🧪 Test Added/Recommended

Added

  • src/core/task/__tests__/toolCallResultPairing.spec.ts: Validates reconciliation of streamed vs finalized tool calls and result collection gating.
  • src/api/transform/__tests__/openai-format.spec.ts: Tests the safety net for backfilling missing tool results in OpenAI payloads.

Recommended

  • Performance benchmark tests for AssistantMessageParser with 100KB+ chunks to verify $O(n)$ scaling.
  • Integration tests for the OutOfCreditsBanner model-switching logic across different API providers.

🔒 Security Vulnerabilities

  • N/A: No direct security vulnerabilities detected. Input validation for file_path and rooignore checks remain intact.

Screenshots

before after
Legacy Todo List New Lucide-based Todo UI
Generic Error Out of Credits Banner

How to Test

  1. Performance: Stream a large file write (e.g., >50KB) and observe UI responsiveness.
  2. Credits: Simulate a 402 error or 98%+ usage to trigger the OutOfCreditsBanner.
  3. Tool Pairing: Interrupt a parallel tool call turn and ensure the next request includes backfilled empty results for compliance.

Get in Touch

Axon Code Discord: @matterai-dev

@MatterAIOrg MatterAIOrg deleted a comment from matterai-app Bot May 21, 2026
@code-crusher code-crusher merged commit 9d06021 into main May 21, 2026
4 of 13 checks passed
@code-crusher code-crusher deleted the release/v6.2.0 branch May 21, 2026 12:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant