releases.shpreview

v1.28.0

  • Core: Fix file write/replace tools freezing the event loop — diff computation (build_diff_blocks) is now offloaded to a thread via asyncio.to_thread, preventing the UI from hanging when editing large files
  • Shell: Fix _watch_root_wire_hub silently dying on handler exceptions — the watcher now catches and logs exceptions (matching the pattern in wire/server.py) and handles QueueShutDown gracefully, preventing approval flow from silently breaking mid-session
  • Core: Skip O(n²) diff computation for huge files (>10 000 lines) — files above the threshold now show a summary block instead of computing a full diff, and unchanged files short-circuit immediately
  • Wire: Add is_summary field to DiffDisplayBlock (Wire 1.8) — marks diff blocks that contain a line-count summary instead of actual diff content, allowing clients to render them appropriately
  • Web: Render large-file diff summaries — when a diff block is marked is_summary, the web UI shows a compact "File too large for inline diff" notice with line counts instead of attempting to compute a diff
  • Auth: Fix OAuth users getting "incorrect API KEY" when running skills or after idle — 401 errors now show a clear "please /login" message instead of the raw API error; the ACP layer correctly triggers re-login flow for VS Code extension users
  • Web: Fix session title generation always failing for OAuth users — the title generator now uses OAuth tokens and refreshes them before calling the model
  • Core: Add timeout protection for Agent tool and HTTP requests — all aiohttp sessions now default to 120 s total / 60 s read timeout; the Agent tool gains an optional timeout parameter (foreground default 10 min, background default 15 min); background agent tasks are marked timed_out on expiry with proper notification semantics
  • Grep: Fix tool hanging and becoming uninterruptible — replaced blocking ripgrepy.run() with async subprocess execution; the tool now responds to Ctrl-C immediately and has a 20-second timeout with partial result return
  • Grep: Add token efficiency improvements — default head_limit of 250 with offset pagination, --hidden search with VCS directory exclusion, files_with_matches sorted by modification time, relative path output, and --max-columns 500 for non-content modes
  • Grep: line_number (-n) now defaults to true in content mode — line numbers are included by default so the model can reference precise code locations
  • Grep: count_matches mode now includes a summary in the message — e.g. "Found 30 total occurrences across 10 files."
  • ACP: Fix ValueError: list.index(x): x not in list crash when ACP is launched via kimi-code or kimi-cli entry-points (e.g. JetBrains AI Assistant)
  • Core: Fix OpenAI-compatible APIs (e.g. One API) returning 400 errors in multi-turn conversations when the server returns reasoning_content by default — reasoning_effort is now auto-set to "medium" when history contains thinking content and reasoning_key is configured
  • Shell: Add /theme command and dark/light theme support — users with light terminal backgrounds can now switch to a light color palette via /theme light or theme = "light" in config.toml; diff highlights, task browser, prompt UI, and MCP status colors all adapt to the selected theme
  • Core: Fix context overflow before compaction — tool result tokens are now estimated and included in the auto-compaction trigger check, preventing "exceeded model token limit" errors when large tool outputs push the context beyond the model limit between API calls
  • Core: Add hooks system (Beta) — configure [[hooks]] in config.toml to run custom shell commands at 13 lifecycle events including PreToolUse, PostToolUse, SessionStart, Stop, etc.; supports regex matching, timeout handling, and blocking operations via exit code 2
  • Shell: Add /hooks command — list all configured hooks with event counts
  • Wire: Add HookTriggered and HookResolved event types (Wire 1.7) — notify clients when hooks start and finish executing, including event type, target, action (allow/block), and duration
  • Wire: Add HookRequest and HookResponse message types — allow wire clients to subscribe to hook events and provide their own handling logic with allow/block decisions
  • CLI: --skills-dir now supports multiple directories and overrides default discovery — when specified, the directories replace user/project skills discovery (repeatable flag)
  • Shell: Fix notification messages leaking into session replay and export — background task notification tags (<notification>, <task-notification>) are now filtered out when resuming a session (/sessions) and when exporting (/export) or importing (/import) conversation history
  • Web: The "Open" button in the workspace header now remembers the last-used application — clicking "Open" directly opens with the previous choice, while the dropdown arrow lets you pick a different app
  • Web: Fix archived sessions count badge showing only the loaded page size — the badge now displays "100+" when more archived sessions exist beyond the first page
  • Shell: Fix pasted text placeholders not expanded in modal answers — clipboard content pasted into approval or question panels is now correctly interpolated before being sent to the model
  • Vis: Add --network / -n flag — launch the visualizer on all network interfaces with auto-detected LAN IP display, matching kimi web behavior
  • Vis: Add /vis slash command — switch from the interactive shell to the tracing visualizer in one step, mirroring the existing /web command
  • Vis: Improve session list performance — async backend scanning, request concurrency limiting, and infinite-scroll pagination prevent browser freezes on large session stores
  • Vis: Add 7 missing wire event types — SteerInput, MCPLoadingBegin/End, Notification, PlanDisplay, ToolCallRequest, and QuestionRequest now display with proper colors and summaries
  • Vis: Show token and cache details in StatusUpdate — each status update now displays context token count, max tokens, input token breakdown with cache hit rate, and MCP connection status
  • Vis: Show structured tool call summaries — ReadFile, Shell, Glob, Grep, Agent, and other tool calls display file paths, commands, or patterns inline instead of just the function name
  • Vis: Add System Prompt card in Context Messages — the _system_prompt entry is rendered as a dedicated blue card showing estimated token count and expandable full content
  • Vis: Show cache hit rate in session header — the stats bar now displays overall cache efficiency (e.g., 89% cache) alongside token counts
  • Vis: Highlight slow operations — time deltas exceeding 10 s appear in amber and those exceeding 60 s in red, making performance bottlenecks immediately visible
  • Vis: Prefer human-readable message field in ToolResult summaries — results now show descriptive text like "Command executed successfully" instead of raw output
  • Vis: Show approval rejection feedback — ApprovalResponse summaries include the user's correction text when a tool call is rejected

Fetched June 4, 2026