v2026.10.3
·
174 commits
to main
since this release
Breaking Changes
Added
maxSkillExpansionsPerPromptsetting (default5) controls how many distinct explicitly invoked skills (/skill:a /skill:b ...or$a $b ...) one prompt may expand. Raise it insettings.jsonto compose more skills in one prompt; skill commands past the limit still stay literal and show theExpanded at most N skillswarning. Thanks to @trac3r00. (#2588)
Changed
Fixed
- Fixed sessions on a provider lane that owns compaction (Anthropic subscription) refusing every prompt with "Context remains above the compaction threshold" after a resume, until restart: a resume compaction requirement is now re-checked against the current context and model, and a committed manual
/compactclears it (#2589, #2488). - Re-using an already loaded skill on a later line of the same prompt (for example
$reviewon line 3 after the per-prompt skill cap was reached) no longer triggers the cap warning or stays as bare text: it keeps its[skill: review]marker where it was written. - Skills skipped by the per-prompt skill cap no longer reach the model as bare
$name//skill:nametext: they become[skill not loaded: name]where they were written, so the model knows it does not have them. One warning per prompt names the skipped skills and the cap, for exampleSkipped 2 skills (s6, s7): at most 5 skills load per prompt.Thanks to @trac3r00. - MCP tools no longer fail with
MCP server <name> is disabledonce a child or background session ends. Sessions in one process share their MCP connections, but each session now has its own binding to them: a session that quits releases only its own binding, and the shared servers stay up for every other session (for example, the parent of a finished task or memory child). Tools from a catalog that arrives late, or from alist_changedrefresh, also register in every live session, not just the newest one (#2514, #2524). Thanks to @Tygb99 for the report. - RPC hosts launched from a Bun or Node eval/print caller (
bun -e CODE,bun -eCODE,node -p CODE) no longer re-run that caller's code: the host launch drops eval/print code, input-type and interactive flags from the forwarded runtime options, including Bun's glued-eCODE/-pCODEforms. Thanks to @mastertyko. - A Chrome-backed
Bun.WebViewcreated from an eval cell no longer holds the cell until its timeout and leaves its Chrome running when that Chrome never attaches a session to the new view (seen on Windows with a freshly launched Chrome). The main-thread service now navigates each new view toabout:blankbefore answering its creation: a launch that has not attached within 20 seconds is closed, its Chrome retired unless another view still uses it, and the view launched once more on a fresh Chrome; if that launch stalls too,new Bun.WebView()fails withERR_WEBVIEW_NOT_READYnaming thecdp-target-attachphase. A new view therefore reportsabout:blankas its URL and acceptscdp()before the cell's firstnavigate(); page loads the cell starts are not bounded (#2353). - Reloading with the MCP builtin removed, or quitting while MCP servers are still connecting, now waits for that connect to settle and then shuts the servers down, instead of returning with them still running. The wait is bounded (15 s by default,
SENPI_MCP_DEFERRED_DISPOSE_TIMEOUT_MS); past it the servers are shut down anyway and a warning is logged.