fix(deps): update all non-major dependencies (patch) - #1967
Conversation
|
|
You do not have enough credits to review this pull request. Please purchase more credits to continue. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe PR bumps several npm dependency ranges in ChangesDependency version updates
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request updates the dependencies @oh-my-pi/pi-coding-agent and @oh-my-pi/pi-natives from version ^16.1.13 to ^16.1.15 in both package.json and bun.lock. There are no review comments, and I have no feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
53923d5 to
24dafd8
Compare
There was a problem hiding this comment.
Pull request overview
This Renovate-generated PR updates patch-level versions across the repo’s Python and Bun-managed tool dependencies, keeping the dotfiles/tooling environment current without changing application logic.
Changes:
- Bumped
ruffminimum version inpyproject.toml(>=0.15.18→>=0.15.19). - Updated several npm dependency ranges in
package.json(e.g.,@anthropic-ai/claude-code,@github/copilot,playwright-chromium, etc.). - Regenerated/updated
bun.lockto reflect the updated dependency ranges.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| pyproject.toml | Updates the minimum ruff version used for the Python tooling group. |
| package.json | Updates patch versions for multiple JS/CLI dependencies and platform optional deps. |
| bun.lock | Updates Bun lockfile entries to align with the dependency range updates. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by:
24dafd8 to
b5901a7
Compare
Pull request was closed
This PR contains the following updates:
^2.1.186→^2.1.191^2.1.186→^2.1.191^2.1.186→^2.1.191^2.1.186→^2.1.191^2.1.186→^2.1.191^2.1.186→^2.1.191^2.1.186→^2.1.191^2.1.186→^2.1.191^2.1.186→^2.1.191^1.0.63→^1.0.65^8.6.0→^8.6.1^16.1.13→^16.1.18^16.1.13→^16.1.18^0.7.30→^0.7.32^7.0.0-dev.20260623.1→^7.0.0-dev.20260624.1^0.11.0→^0.11.2^2026.6.9→^2026.6.10^1.61.0→^1.61.1>=0.15.18→>=0.15.19Release Notes
anthropics/claude-code (@anthropic-ai/claude-code)
v2.1.191Compare Source
/rewindsupport for resuming a conversation from before/clearwas run/voiceshowing a generic "not available" message when disabled by an organization's policy — it now explains the restriction/loginURL opening truncated in Windows Terminal when it wraps across linesclaude agentssending builtin slash commands like/usageto background sessions as prompt text instead of showing a hintclaude agentsjob rows showing full filesystem paths for pasted images instead of the[Image #N]placeholder"Bash,PowerShell") silently never firing/permissionsRecently-denied tab: approving a denial now persists on close instead of being silently discardedforceRemoteSettingsRefreshnow takes effect when set via MDM or file policy, and the fetch sendsCache-Control: no-cacheto prevent proxies from serving stale responsestools/list,prompts/list,resources/list) now retries transient network errors with short backoff/) to hint how to reach slash commandsv2.1.190Compare Source
v2.1.187Compare Source
sandbox.credentialssetting to block sandboxed commands from reading credential files and secret environment variables--model,/model, andANTHROPIC_MODEL, with a "restricted by your organization's settings" message when a restricted model is selected/model,/config, etc.) in fullscreen mode--resumefailing with "No conversation found" when the original-prun produced no model turns--json-schemaand workflowagent({schema})structured output: the model can no longer re-callStructuredOutputindefinitely after a successful call, and follow-up turns now reliably return structured outputCLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT)/updateover Remote Control hanging when a startup trust dialog would have shown/bg,/tui, or/update.git/worktrees/entries from killed agents are now cleaned up automaticallyclaude --helpnot listing the--bg/--backgroundflag/shareis uploading/install-github-app: GitHub Actions workflow setup is now optional — you can install just the GitHub App and skip the workflow/secret steps/btwwith ←/→ arrow navigation to step through earlier answers/pluginto surface plugins you haven't used recently so you can clean them upgithub/copilot-cli (@github/copilot)
v1.0.65Compare Source
copilot skillsubcommand (and a/skillalias for/skills) to list, add, and remove skills from a file, URL, or directoryv1.0.64Compare Source
CLI:) now return correct results in Issues and Pull requests search instead of being misread as invalid qualifiers by GitHubgen_ai.usage.cache_read.input_tokens,gen_ai.usage.cache_creation.input_tokens, andgen_ai.usage.reasoning.output_tokensper the GenAI semantic conventions spec (previously used incorrect underscore-separated names)gen_ai.request.reasoning.levelfor the configured reasoning effort--worktree [name](-w) flag (enable with/experimental) that creates or reuses a git worktree under<repo>.worktrees/and starts the session inside itdeferToolson MCP servers configured in custom agent frontmatter$()sub-expressions no longer trigger content-exclusion refusalsmcpcommands/security-reviewavailable to all users without --experimentalkaitranntt/ccs (@kaitranntt/ccs)
v8.6.1Compare Source
Bug Fixes
can1357/oh-my-pi (@oh-my-pi/pi-coding-agent)
v16.1.18Compare Source
Added
Changed
/extensions(the Extension Control Center) now opens as a fullscreen window on the terminal's alternate screen, matching/settings: it borrows the alt buffer for its lifetime (the transcript is untouched underneath) and uses the same modern chrome — a titled rounded frame, the sharedTabBarfor provider switching, and a divider/footer layout. The dashboard is now mouse-aware: the wheel scrolls the list (and the detail inspector, which gained its own scroll viewport), hovering highlights tabs and rows, and clicking selects a row or — when it is already selected — toggles it; clicking a provider tab switches to it. Empty enabled providers are unselectable while disabled providers stay selectable so their master switch can re-enable them.Fixed
omp installof legacy pi extensions failing withCannot find module '/$bunfs/root/packages/coding-agent/src/extensibility/typebox.js'on every releasedomp-<platform>-<arch>binary. Commitdc5c93462fremoved worker entrypoints fromscripts/ci-release-build-binaries.ts; the inline comment then claimed the legacy-shim and package-barrel entrypoints (typebox.ts,legacy-pi-{ai,coding-agent}-shim.ts,packages/{agent,natives,tui,utils}/...) were "still" passed tobun build --compile, but they had never been re-added. The release binaries shipped without those files in bunfs, solegacy-pi-compat.tsredirectedtypeboximports to a bunfs path that didn't exist.__resolveTypeBoxShimPathnow mirrors__validateLegacyPiPackageRootOverrides(#2168) by dropping the override when the shim file is missing, so a missing shim falls through to nativenode_modulesresolution instead of emitting a dead bunfs URL (#3414).@(scope)/pi-*and@sinclair/typeboximport failing to load on theomp-darwin-arm64release binary (and any otherompbuilt with Bun 1.3.14).__validateLegacyPiPackageRootOverridesand therewriteLegacyPiImportsemit path both depended on--compileextras being reachable as/$bunfs/root/...filesystem entries, but Bun 1.3.14 stopped exposing them through every API (fs.existsSync,Bun.file().exists(),Bun.resolveSync,await import()on the bunfs path or itsfile://URL all fail; only/$bunfs/root/<binary-name>itself answers).legacy-pi-compat.tsnow keeps a JS-heap reference to every bundled pi-* surface in a lazy-loaded siblinglegacy-pi-bundled-registry.tsand serves them through anomp-legacy-pi-bundled:virtual namespace whoseBun.plugin().onLoadreturns synthetic re-exports — no bunfs path ever leaves the module in compiled mode, and dev / source-link / installed-package modes keep the historicalfile://rewrite. The matching--compileextras inscripts/build-binary.ts, the sharedscripts/binary-entrypoints.tslist, and the deadBUNFS_PACKAGE_ROOT/bunfsPath/__computeBunfsPackageRoot/__joinBunfsPathhelpers are gone. (#3423)v16.1.17Compare Source
Fixed
MnemopiSessionState.retainMessagesstill stores the full multi-role window for episodic recall, but passes only user-authored turns asextractText, so assistant prose containingalways/neverno longer becomes durable userInstruction:memory. (#3372)Bun.write(dest, response)receives a streamingfetch()Response; tool assets now stream the response body to disk with the existing download abort signal and remove partial files on abort. (#3369)path.joinwas used unconditionally, producing Windows-style paths that POSIX shells can't resolve. The installer now usespath.posix.joinfor non-Windows platforms and normalizes script paths to forward slashes for POSIX shell alias blocks, soomp --aliasworks correctly in Git Bash and WSL.local://attachment-N.<ext>references while image paths keep the image attachment flow. (#3360)/plan,/goal,/mcp,/ssh) stored their text; all other built-in slash commands were silently skipped becauseexecuteBuiltinSlashCommandreturnedtruebeforeaddToHistorywas called. History is now centralized in the input controller after successful command dispatch. Commands that may carry secrets (/login <url>with OAuth callback params,/mcp add --token <token>) are excluded from history to prevent credential leakage (#3148)asktool's "Other (type your own)" free-text editor (prompt-styleHookEditorComponent) ignoring Ctrl+Q and Ctrl+Enter, so Windows Terminal users who learned theapp.message.followUpchord from the main editor (#1903 / fixed by #1905) got zero feedback on submit. The hook-style and main-editor surfaces honoredmatchesAppFollowUp; the prompt-style handler did not, leaving plain Enter as the sole submit path and Ctrl+Enter falling through to Editor as a newline (silently swallowed by WT).#handlePromptStyleInputnow checksmatchesAppFollowUpfirst — mirroring#handleHookStyleInput— and the hint readsenter or ctrl+q submitso the chord is discoverable. (#3353)/settings(or the Extensions/Agents dashboard) is open. The fullscreen overlay's close handler restored focus to the editor it had captured at open time, butExtensionUiControllerhad since swapped the editor out of the editor slot for the approval prompt — so on exit the visible prompt sat unreachable while keystrokes routed to the now-unmounted editor (no Enter/Up/Down/Esc response, only Ctrl+C escaped).SelectorControllernow restores focus to whatever currently owns the editor slot via afocusActiveEditorArea()helper, applied to settings, extensions dashboard, and agents dashboard close paths. (#3349)/settingscoercing enum/text values to display strings before handing them to the TUI list, preventing YAML numeric enum values from reaching native truncation (#3338).omp-darwin-arm64release binary (downloaded directly or via a Homebrew tap wrapper) because__computeBunfsPackageRootmis-handledimport.meta.dir = "//root/omp-darwin-arm64". Bun 1.3.14 reports<bunfs-root>/<binary-name>for the compiled entry'simport.meta.dir, but the pre-fix function joinedmetaDir + "packages"and produced/root/omp-darwin-arm64/packages— the binary basename was baked into every bunfs path, so the TypeBox/legacy-pi shims and every@oh-my-pi/pi-*package-root override failedexistsSyncvalidation andresolveCanonicalPiSpecifierfell through to a bunfsBun.resolveSyncthat also could not find the module. The function now detects the bunfs-root + binary-basename shape (path.basename(path.dirname(metaDir)) === "root") and strips the trailing binary segment by slicing the originalmetaDir; the production bunfs shim join path also preserves Bun's bunfs-native//root/B:\~BUN\rootprefix thatpath.joinwould otherwise collapse. (#3329)/v1/modelsmeta.n_ctx/meta.n_ctx_trainvalues, refresh selected models after lazy load, and bypass fresh-cache reuse so server restarts update context windows. (#3310)task.maxConcurrency: 0serializing subagent spawns instead of running them unbounded. The settings UI labels0as "Unlimited", but the session-scoped spawnSemaphoreclampedmaxviaMath.max(1, max), so the second subagent body in a batch always waited for the first to release the seat. The constructor now treatsmax <= 0(and any non-finite input) as unbounded viaNumber.POSITIVE_INFINITY, matching the evalparallel()/pipeline()worker-pool semantics (#3305).""and{}) totools/call; optional placeholders are now omitted while required fields and meaningful falsy values are preserved. (#3302)Tip:line rendering with hardcoded#b48cff/#​9ccfffpastels plus a manual\x1b[2mdim, so any light theme dropped the body to ~1.5:1 contrast (well under WCAG AA).renderWelcomeTipinpackages/coding-agent/src/modes/components/welcome.tsnow paints the label throughtheme.fg("customMessageLabel", …)and the body throughtheme.fg("muted", …)(no manual dim), so the line tracks the active theme and stays legible on light backgrounds. (#3337)omp usageand the/usagecommand duplicating provider-wide disclaimer notes (e.g. OpenCode Go's "OMP-observed spend only") once per account × limit window. Provider-level notes now render once above the per-account sections in the TUI, CLI, and ACP render paths, and identical per-limit notes are deduplicated in the TUI aggregate renderer. (#3268)? for keyboard shortcutsafter the?shortcut was deliberately removed (commitdcf482c). The tips section now points users at/hotkeysinstead. (#1614)defaultThinkingLevel: auto. Devin models advertisereasoning: truebut nothinking.efforts(Cascade selects effort by routing to sibling model ids, not a wire param), sogetSupportedEfforts(model)was empty;clampAutoThinkingEffortreturned the classifier-picked effort as-is, which then trippedrequireSupportedEffortinpi-ai/stream.tswithThinking effort low is not supported by devin/<id>. Supported efforts:(silently swallowed by the TUI).clampAutoThinkingEffortnow returnsundefinedwhen the model has no controllable effort surface, matchingclampThinkingLevelForModel; the auto-thinking turn hook also short-circuits the classifier call for these models. (#3356)omp tiny-models downloadexiting before its unref'd worker subprocess could install the runtime or download model weights. The tiny-model client now references the worker while requests are pending so standalone CLI downloads wait forDownloaded .../Failed ...completion. (#3291)installed_plugins.jsonand never in the runtime plugin tree, leaving slash commands and extensions unavailable afteromp plugin install name@marketplace. The runtime loader now also enumerates the project-scope plugins root (<projectAnchor>/.omp/plugins) so--scope projectinstalls surface alongside user-scope installs, with project entries shadowing same-named user entries (#3244).umansrequests with more than 10 live context images still sending every image despite the provider budget; outgoing provider contexts now drop the oldest images above the active provider cap while preserving text and newest images (#3230).snapcompact.compact()was called with nomaxFramesoverride, so it defaulted toMAX_FRAMES_DEFAULT = 80; the projection inAgentSessionchargesFRAME_TOKEN_ESTIMATE = 5024per frame block (the conservative high-res Anthropic ceiling), making 80 × 5024 ≈ 402k frame-token projections that always overflow a 200k budget.AgentSession.#computeSnapcompactMaxFramesnow sizes themaxFramescap from a shape-aware reserve —2 × geometry(shape).capacityworth of verbatim text-edge chars billed at the tiktoken cl100k 4-chars/token baseline (with a 1.15 multiplier for tokenizer drift), plus a 2k summary-template allowance — mirroring what#projectSnapcompactContextTokenswill charge once frames land. The shape comes from the samesnapcompact.resolveShape(model, settings)call the auto and manual paths pass intosnapcompact.compact(). The cap reserve applies only to the frame-cap math, not the skip decision: snapcompact is skipped outright only whenkept-recent + non-message ≥ ctxWindow − reserve(no headroom at all), so the frame-lesstext.length <= 2 * edgeCapshort-circuit inplanArchivecan still land a valid text-only archive when residual headroom is positive but below the cap reserve. The projection guard catches any actual frame-bearing archive that overflows. (#3247)usagesegment ignoring Codex subscription limits that carry ascope.tier(#2877).tool_call/tool_resultevents for hashlineeditcalls to exposeevent.input.pathfor single-file edits andevent.input.pathsfor every parsed target, so planning-mode gates can allow one markdown plan edit but still block multi-file hashline calls that cannot be represented by one path (#1678).evalagent()subagents continuing after a successfulyieldwhen a trailing empty assistantstoparrived after the executor's yield-triggered abort. The session'sagent_endmaintenance compared#assistantEndedWithSuccessfulYield(msg)against the trailing empty-stop message — not the prior yield-bearing one — so the empty-stop recovery path appended a retry reminder and scheduledagent.continue(), reviving the already-yielded child. The yield handler now sets a sticky#yieldTerminationPendingflag (cleared on the nextprompt()) that short-circuits empty-stop / unexpected-stop / compaction continuations for the rest of the run, so a successful yield is terminal regardless of trailing stops (#3389).400 vision is not supported. The snapcompact vision gate now also short-circuits whenevermodel.provider === "github-copilot"and the resolvedbaseUrlis not the canonical personal-Copilot host, protecting cached/stale Model specs that still advertise["text","image"]on a non-personal endpoint. (#3387)v16.1.16Compare Source
Breaking Changes
agent()helper parametersagent_type→agentandreturn_handle→handleacross every workflow runtime (Python, JavaScript, Ruby, Julia), so the names are identical in every language (no camelCase/snake_case split) and the agent-selection parameter matches thetasktool'sagent. The__agent__eval bridge wire protocol was renamed to match.evaltool to take a single cell per call ({ language, code, title?, timeout?, reset? }) instead of acellsarray. State still persists per language across separate eval calls, tool calls, andtasksubagents, so each call is one logical step that reuses everything earlier calls defined — the array only encouraged re-importing/re-declaring the same setup in every batch. The schema, field descriptions, examples, systemeval.md/workflowzhelper docs, and the[i/n]cell-counter (now hidden for single cells) were updated to match; the renderer, ACP start-text, copy-targets, and collab-web tool view still parse legacy multi-cell transcripts.Added
isolated,apply, andmergeoptions to evalagent()across every workflow runtime (Python, JavaScript, Ruby, Julia) soworkflowz-driven fan-outs can request the same copy-on-write worktree isolation thetasktool offers (strict opt-in viaisolated: true, matching thetasktool;apply: falsekeeps captured patches/branches without merging back;merge: falseforces patch mode). Extracted the task-isolation lifecycle intotask/isolation-runner.tsso the eval bridge andTaskToolshare one implementation (#3196)Changed
evaltool to accept a single logical step (code block) instead of an array of cellsevaltool documentation to emphasize incremental, single-step executionbashtool from usinglsorfind, requiring the use ofreadorfindtoolstodotool interface to accept a single operation directly instead of an array of opsevaltool overbash. The system-prompt tool policy,bash.md, andeval.mdnow treat loops, conditionals, heredocs, inline-e/-cscripts, multi-stage pipelines, and quote/JSON escaping as the signal to write anevalcell; bash's "compute a fact" carveout is narrowed to single short pipelines, andeval.mdnow actively claims that territory with runtime-templated examples (only enabled backends are advertised).evalan essential built-in tool (loadMode: "essential", added to the default essential tool set) so it stays active undertools.discoveryMode: "all"instead of being hidden behindsearch_tool_bm25.--resumesession picker fullscreen on the terminal's alternate screen, so the list scrolls with the mouse wheel and a row resumes its session on left click. Rows are hit-tested against the live scroll window, and the keybinding hint + bottom border are now pinned to the screen bottom instead of drifting up and down as the visible window changes height.Fixed
local://URLs decoding images as corrupted text (mojibake) instead of showing the imageomp --resumehanging instead of exiting when the startup session picker is cancelled (Esc) or there are no sessions to resume. Startup arms long-lived handles (theme/appearance listeners, settings save timer, model registry), so the cancel/empty paths' barereturnleft the event loop alive and the process stuck after the picker cleared the alternate screen. These paths now exit cleanly viaprocess.exit(0), matching the--version/--exportearly-exit convention. The in-session/resumepicker is unaffected — it keeps its own cancel handler that just closes the overlay./resumesession picker scrolling down after a session is deleted. The delete-confirmation dialog was mounted as a sibling below the picker's bottom border, briefly growing the picker past the terminal height; the TUI committed the picker's header rows into native scrollback to fit, and when the dialog closedwindowTopstayed pinned at the new commit boundary, leaving the header stranded above the viewport. The picker now hosts theSessionListin a single content slot and swaps the dialog INTO that slot (replacing theSessionList) while it is open, so the dialog only competes with theSessionList's rendered budget — not theSessionListAND the picker chrome — and the picker frame stays inside the viewport. (#3283)evaltool card not streaming a still-running cell's stdout: a long-running cell (e.g. atime.sleep()monitor loop) showed nothing until it returned or was interrupted, then dumped everything at once. The renderer draws cell output fromdetails.cells[i].output, which was only populated afterbackend.execute()resolved — live stdout streamed into the transient resultcontenttail (andrenderContext.output), which the per-cell render branch ignores. Streamed chunks now append to the active cell'soutput(a dedicated per-cell tail buffer, capped like the aggregate) as they arrive, so the card shows progress live; on completion the authoritative full output overwrites the live tail.log()/phase()/display()and status ops were unaffected because they already stream via the status channel.\x1b[27u, which the text-input submenu's raw\x1bcompare missed;handleInputOrEscapenow decodes Escape viamatchesKey, matching every other Escape-to-cancel path.evalgraph/plot visualization (Plots.jl, GraphRecipes, Makie, etc.) never rendering inline. Two bugs: (1) the runner'sbuild_mime_bundle/emit_errordispatchedshow/showable/showerrordirectly from the long-livedmain()loop, whose world age is frozen before any cell ran, so richshow(::IO, ::MIME"image/png", …)methods registered when a plotting package isusing-ed inside a cell were invisible —showfell back to the default struct repr (which itself threw on Julia 1.12, aborting the whole result). These calls now route throughBase.invokelatest, and thetext/plainprobe is guarded so a failing repr can no longer suppress the image MIME. (2) The default GR backend popped up a nativegksqtGUI window on each plot; the runner now defaultsGKSwstype=100(headless, overridable) so plots render only as inline PNGs, mirroring the Python runner'sMPLBACKEND=Aggdefault.bash/evaltool output duplicating its… (N earlier lines, showing 10 of M) (ctrl+o to expand)preview into native scrollback. The collapsed output is a sliding tail window fixed at 10 lines, so when the box outgrew the live viewport (a tall command/output under a still-live predecessor such as a parallel tool) its mutating tail scrolled above the commit window and the renderer re-committed a fresh snapshot every frame, stacking dozens of stale preview banners and chunks. The output preview is now clamped to the viewport tail (Math.min(10, previewWindowRows())) and measured in visual rows at the box's inner content width (via the newoutputBlockContentWidthhelper), so on short terminals the volatile tail shrinks to stay on-screen and is never committed. Fixes the duplication introduced when scroll-off commits were made loss-free./handofffrom executing while a response is streaming to avoid session corruption/handoffcold-missing the provider prompt cache. Handoff generation now builds its request through the same pipeline a live turn uses (convertMessagesToLlm+Agent.buildSideRequestContext+prepareSimpleStreamOptions, via the newgenerateHandoffFromContext), so it reuses the live system prompt, normalized tools, transformed/obfuscated message history, and — critically — a stablepromptCacheKeywith a unique sidesessionId. Previously the oneshot sent no cache-routing key and skipped thetransformContext/transformProviderContextand tool/message normalization the loop applies, so its prefix never matched what the turn populated and every handoff re-read the whole context uncached. Mirrors the cache-preserving path already used by/btwand/omfg./handoff(and the RPChandoffcommand) resetting the agent while a response was still streaming, which let the live turn keep emitting into the torn-down session. Manual handoff now refuses while a prompt is in flight (matching/forkand/move); the auto-handoff path is unaffected.exa.searchDelayMsdelay (default 1000ms) between Exa search requests. (#3271)askreturning(cancelled)or aborting the tool when Escape dismissedOther (type your own)custom input; it now returns to the option selector so the user can pick a listed answer instead. (#3269)/goalthreshold auto-compaction skipping real sessions through three paths: per-turn supersede/drop-useless pruning no longer deflates the threshold trigger below the last provider-billed context; active-goal text stops now attempt threshold maintenance before unexpected-stop retry continuations can return from post-turn handling; and emptytoolUsestops keep the existing cleanup pass that strips the orphan assistant from active context + session history before any compaction continuation. Active-goal compaction continuations now also resolve completed retry gates before returning, preventingisRetryingfrom staying stuck after a retry succeeds over the threshold. Addedagent_end maintenance routingandAuto-compaction threshold decisiondebug logs so future no-start reports identify the exact early-return branch and the billed/stored/resolved/post-maintenance token counts that fedshouldCompact. (#3174)/goalruns that never reachedagent_endbecause the model kept emitting tool calls inside one agent run. Threshold maintenance now runs between tool-call turns, compacts the live loop context in place, and suppresses queued continuations that would race the still-running goal loop. (#3174)Removed
append,tree, anddiffeval helper functions from Python, JavaScript, and Rubysort,uniq, andcountertext processing eval helpers from Python, JavaScript, and Rubyappend(path, content),tree(path, max_depth?, show_hidden?), anddiff(a, b)eval prelude helpers from every workflow runtime (Python, JavaScript, Ruby, Julia), along with their status renderers, icon entries, and tool/docsreferences. Usewrite/readfor file mutation andtool.<name>(...)for richer filesystem operations.sort(text, reverse?, unique?),uniq(text, count?), andcounter(items, limit?, reverse?)eval text helpers from the Python, JavaScript, and Ruby prelude surfaces (Julia never defined them), along with the JSHelperBundle/HelperOptionsmembers anddocsreferences. Sort/dedupe/count inline in cell code instead.v16.1.15Compare Source
Added
share.storesetting (blob"Encrypted Blob" |gist"GitHub Gist", defaultblob) controlling where/shareuploads the encrypted session blob — the share server (blob) or a secret GitHub gist with share-server fallback (gist).Changed
/shareto upload the encrypted session blob to the share server by default instead of a secret GitHub gist. Gist-hosted shares are fetched through the unauthenticated GitHub gist API from the viewer's browser, which GitHub rate-limits to 60 requests/hour per IP, so shared NATs and repeated reloads surfaced `FConfiguration
📅 Schedule: (in timezone UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate.