Skip to content

v2026.10.13

Choose a tag to compare

@github-actions github-actions released this 13 Oct 13:45
· 724 commits to main since this release

@code-yeongyu/senpi

Breaking Changes

Added

  • RPC clients now see scheduled goal continuations, their due time, and their resumption through the goal_continuation_scheduled, goal_continuation_timer_state, and goal_continuation_resumed extension events. The goal_continuation_fire_now extension request runs an armed continuation immediately through its normal eligibility checks; a timer held while the user types stays held (#3208).

Changed

  • The bundled Claude Agent SDK is updated to 0.3.296 (from 0.3.292), so the Anthropic subscription lane runs Claude Code 2.1.296 and the models it knows (#3258).

  • Tip history, changelog acknowledgments, and per-model reasoning/fast-mode memories now live in state.json, keeping automatically written bookkeeping out of version-controlled global settings. /reasoning, /efforts, and thinking cycles remember the model's level without changing the startup default; Ctrl+S in /thinking and the /settings thinking option still save it explicitly. Existing global keys migrate without overwriting saved state or changing project settings. Corrupt state no longer disables config, and no-value-change saves preserve config bytes. Restart older sessions during upgrades: their legacy bookkeeping writes can still trigger config reloads (#3213, requested by @devxoul).

Fixed

  • Busy multi-session RPC hosts now reclaim freed heap pages when their session count drops and their footprint is at least 2 GB, even while other children keep running. Drops during the trim interval stay pending until it expires, including when a new session replaces the closed one between checks. Busy-host collections wait at least a minute and at least 100 times the previous collection pause; host_trimmed reports sessions and pauseMs. This prevents long sessions with many concurrent children from retaining their peak memory footprint (#3240, #3221).

  • Per-run TPS/cache-hit notices now appear only in the TUI, preventing an extra info row after every agent run in RPC clients (#3237).

  • Open todo work now shows a quiet waiting: <sources> footer when a background child, monitor, eval cell, open question, running goal, pending continuation, or queued message will resume it. The todo_owed_reminder event and debug log name those sources. A stopped goal is no longer counted as waiting and keeps its own stop notice (#3232).

  • Help, version, model/tip listings, session export, and one-shot package/host/schedule commands no longer enable the startup compile cache, avoiding Bun 1.4.3's slower cold-cache write at exit. Interactive, RPC and prompt-processing sessions, schedule watchers, and multi-session RPC hosts retain caching. An externally supplied NODE_COMPILE_CACHE remains untouched (#3169).

  • Closing a todo task resets the two-continuation limit, so unattended work that makes progress can continue after its next early stop. After two automatic continuations close no task, the stop notice explains the limit and how to resume: reply, or close the work with /todo done or /todo drop (#3220).

Removed

@code-yeongyu/senpi-ai

Breaking Changes

Added

Changed

  • The advertised Claude Code fingerprint floor that Anthropic OAuth requests declare follows the bundled Claude Agent SDK to Claude Code 2.1.296 (#3258).
  • The bundled model catalog is refreshed from models.dev and the providers' model listings (cloudflare-ai-gateway, meta, opengateway, openrouter, vercel-ai-gateway) (#3248).

Fixed

  • Tool parameter schemas sent to OpenAI Chat Completions providers now always declare a root type: "object", including when a root anyOf/oneOf union cannot be merged into a single object schema. DeepSeek's official API (and gateways that forward to it, such as OpenGateway's DeepSeek route) rejected such requests with 400 Invalid schema ... got 'type: null' (#3245).

Removed

@code-yeongyu/senpi-agent-core

Breaking Changes

Added

Changed

Fixed

Removed

@code-yeongyu/senpi-codemode

Breaking Changes

Added

Changed

Fixed

  • Large JavaScript eval data cells no longer stall the shared RPC host on unnecessary import parsing. Cells without possible import syntax skip Babel, and the whole-AST walk runs only when a dynamic import is possible. The dynamic-import check stays linear on comment-heavy data; imports with comments or non-ASCII bindings still rewrite correctly (#3206).

Removed

@code-yeongyu/senpi-tui

Breaking Changes

Added

Changed

Fixed

Removed