Skip to content

fix(deps): update @earendil-works packages to ^0.84.0 - #56

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/@earendil-works-packages
Open

fix(deps): update @earendil-works packages to ^0.84.0#56
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/@earendil-works-packages

Conversation

@renovate

@renovate renovate Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@earendil-works/pi-agent-core (source) ^0.80.0^0.84.0 age confidence
@earendil-works/pi-ai (source) ^0.80.0^0.84.0 age confidence
@earendil-works/pi-coding-agent (source) ^0.80.0^0.84.0 age confidence

Release Notes

earendil-works/pi (@​earendil-works/pi-agent-core)

v0.84.4

Compare Source

Breaking Changes
  • Changed prepareNextTurn and prepareNextTurnWithContext to run only after shouldStopAfterTurn and queued-message checks determine that the agent loop will start another assistant turn. They no longer run after final or terminating turns; move end-of-run work to agent_end handling (#​6879).
Fixed
  • Fixed Windows NodeExecutionEnv aborts crashing when taskkill.exe is unavailable on PATH (#​6596).
Removed
  • Removed the withdrawn manual-drive configuration, action inspection methods, action outcomes, and snapshot action field from AgentHarness.

v0.84.3

Compare Source

Fixed
  • Fixed single-object edit tool inputs failing validation by accepting them as one-edit arrays (#​7835).
  • Fixed root Markdown files such as README.md and AGENTS.md in skill directories being reported as broken skills unless they declare valid skill frontmatter (#​7805).

v0.84.2

Compare Source

Fixed
  • Fixed streamProxy() dropping finalized tool-call metadata such as OpenAI Responses namespaces (#​7709).

v0.84.1

Compare Source

Added
  • Added BeforeToolCallResult.terminate so blocked tool calls can participate in the existing batch early-termination rule (#​7715 by @​muyiyr).
Fixed
  • Fixed Agent.reset() clearing transcript and runtime state during active runs; it now rejects until the agent is idle (#​7717 by @​wesleyzhangwq).

v0.84.0

Compare Source

Breaking Changes
  • Replaced the legacy harness session model with the v4 lane-based Session, SessionStorage, and SessionRepo APIs, including durable operation records, global facts, shared sequence numbers, and tree-scoped lane views.
  • Promoted the v2 session and AgentHarness API from the experimental entrypoint to the default package export and removed the experimental subpaths.
  • Removed the legacy JSONL and in-memory repository APIs. Use the v4 JsonlSessionRepo or InMemorySessionRepo, both implementing the new SessionRepo contract.
  • Added the required FileSystem.renameFile() operation to harness execution environments for atomic JSONL publication; custom file-system implementations must provide same-filesystem replacement semantics (#​7707 by @​davidbrai).
Added
  • Added typed AI-request and harness telemetry schemas, their combined schema tuple, callback helpers, and a generated schema reference.
  • Added bounded Session.findEntriesOnBranch() and findEntryOnBranch() queries with explicit traversal, filtering, ordering, and limit options.
  • Added a compile-complete AgentHarness v2 scaffold; unfinished operation paths reject with HarnessNotImplemented while durable execution is implemented.
  • Added JsonlSessionRepo, a v4 append-only JSONL session repository with metadata validation and shared storage semantics (#​7611 by @​davidbrai).
  • Added indexed Session.findOpenOperations() recovery queries and RecordQuery.operationKind filtering (#​7646).
  • Added AgentOptions.shouldStopAfterTurn for gracefully stopping after a completed turn before queued messages or another model call are processed. See Agent Options (#​7367 by @​acmerfight).
  • Added proxy forwarding for arbitrary OpenAI-compatible samplingParams (#​7568 by @​mrexodia).
Fixed
  • Fixed Windows path handling for NodeExecutionEnv file basenames, recursive skill loading, and prompt template names.
  • Fixed JsonlSessionRepo enforcing session IDs globally across working directories; IDs are now unique within each working directory.
  • Fixed JSONL session forks and torn-tail repairs to publish atomically, avoiding partially written or corrupted sessions after interrupted writes (#​7707 by @​davidbrai).

v0.83.0

Compare Source

v0.82.1

Compare Source

v0.82.0

Compare Source

Breaking Changes
  • Replaced AgentHarness's ExecutionEnv dependency and context-free AgentTool inputs with application-defined toolContext values and context-aware AgentHarnessTool definitions.
Added
  • Added context-aware read, write, edit, and bash harness tools backed by ExecutionEnv, including async bash execution preparation.
Changed
  • Aligned harness tool path handling, edit serialization, shell output capture, explicit non-inherited environments, and cross-platform process cleanup with coding-agent behavior.
Fixed
  • Fixed compaction and branch-summary requests to use fresh routing session IDs with prompt caching disabled where supported (#​6618 by @​tmustier).

v0.81.1

Compare Source

Added
  • Added retry policy support and lifecycle events for compaction and branch-summary operations in AgentHarness (#​6901 by @​davidbrai).
Fixed
  • Restored the Agent streamFn option and host-configurable fallback for omitted agent-loop stream functions without reintroducing a pi-ai/compat dependency (#​6915).

v0.81.0

Compare Source

Breaking Changes
  • Changed SessionStorage to use getPathToRootOrCompaction(), require session name and statistics methods, support cursor-based entry reads, and store retained compaction tails as self-contained checkpoints (#​6594 by @​cristinaponcela).
  • Moved the uuidv7 export to @earendil-works/pi-ai (#​6834 by @​xl0).
  • Replaced the optional Agent streamFn fallback with a required streamFunction and made low-level loop stream functions required, preventing @earendil-works/pi-ai/compat and all built-in providers from entering selective-provider bundles (#​6851).
Added
  • Added usage metadata to tool results, compaction entries, and branch summaries in the agent harness (#​6671 by @​davidbrai).
earendil-works/pi (@​earendil-works/pi-ai)

v0.84.4

Compare Source

Added
  • Added the experimental vision-capable deepseek-v4-flash-vision-exp model to the DeepSeek catalog.
Fixed
  • Fixed OpenAI-compatible Chat Completions ignoring an explicitly requested toolChoice when no tools are defined.
  • Fixed thinking signature serialization to run once after the signature is complete (#​8671).
  • Fixed fragmented Mistral tool calls splitting when continuation chunks omit the tool-call ID (#​8387).
  • Fixed OpenAI-compatible reasoning replay to merge consecutive streamed text and summary reasoning_details deltas.
  • Fixed the Cloudflare AI Gateway catalog to include supported workers-ai/* passthrough models omitted by models.dev.
  • Fixed OpenRouter reasoning controls by deriving off support and available effort levels from OpenRouter's model metadata, preventing reasoning-mandatory models from receiving effort: "none" (#​8614 by @​davidbrai).

v0.84.3

Compare Source

Breaking Changes
  • Renamed GoogleThinkingLevel to GoogleApiThinkingLevel and added ResolvedGoogleThinkingLevel for normalized adapter levels.
Added
  • Added provider-neutral toolChoice support to simple stream requests.
  • Added automatic Anthropic server-side refusal fallback for supported first-party models, including returned-model usage pricing (#​8017).
  • Added configurable OpenAI-compatible thinking-token budget fields for vLLM, Qwen/SGLang, and llama.cpp servers (#​8275 by @​bnsd55).
  • Added China-specific ZAI Coding Plan models, including GLM-4.6V vision support, and API-equivalent usage cost estimates for models with published PAYG prices (#​8220).
  • Added deepseek-v4-pro-0813 to the Qwen Token Plan Individual catalog (#​8194).
Changed
  • Changed built-in xAI models to use the Responses API with encrypted reasoning replay and made Grok 4.6 the default xAI model (#​8124 by @​Jaaneek).
  • Changed the Anthropic, Azure OpenAI, Google Generative AI, Google Vertex, Mistral, OpenAI Chat Completions, and OpenAI Responses adapters to send Pi's default User-Agent unless overridden (#​8305).
Fixed
  • Fixed OpenAI-compatible Chat Completions reasoning replay to preserve and resend assistant-level reasoning_details (reasoning.text, reasoning.summary, and reasoning.encrypted) verbatim and in order (#​7994).
  • Fixed Anthropic server-side fallback responses being priced with the requested model instead of the returned fallback model (#​8285).
  • Fixed GitHub Copilot login triggering model-policy rate limits by limiting policy updates, retrying model discovery once, and honoring server retry delays (#​7850).
  • Fixed Amazon Bedrock dropping and failing to replay opaque redacted reasoning from non-Anthropic models (#​8314 by @​seiji).
  • Fixed Z.AI Coding Plan models deriving incomplete reasoning-effort metadata, including missing GLM-5.3 low, high, and max levels (#​8336).
  • Fixed DeepSeek V4 Flash on OpenCode and OpenCode Go omitting its supported low thinking level (#​8181 by @​tianshuang).
  • Fixed Azure OpenAI Responses ignoring toolChoice in provider-specific stream requests.
  • Fixed Amazon Bedrock after_provider_response/onResponse to forward the raw response headers instead of only the synthesized request id header (#​8234).
  • Fixed Kimi OpenAI-compatible usage reporting so top-level cached_tokens count as cache reads instead of normal input tokens (#​8075).
  • Fixed Google Generative AI and Vertex AI custom models ignoring thinkingLevelMap, which dropped extended thinking controls (#​8135).
  • Fixed Xiaomi model catalog generation retaining shut-down MiMo V2 model names after models.dev marked them deprecated (#​8187).
  • Fixed OpenRouter reasoning controls by deriving off support and available effort levels from OpenRouter's model metadata, preventing reasoning-mandatory models from receiving effort: "none" (#​8454).

v0.84.2

Compare Source

Added
  • Added createGatewayBindingFetch() for routing Cloudflare AI Gateway requests through a Workers AI binding without an API token (#​7901 by @​Maximo-Guk).
  • Added AssistantMessage.endTurn to preserve OpenAI Codex's terminal end_turn signal for diagnostics (#​7766).
Changed
  • Changed Kimi Coding requests to use pi's runtime User-Agent header.
  • Automatically converted supported strict tool schemas to provider-compatible closed objects with required nullable optional fields while preserving original tool definitions, and treated null values for optional non-nullable tool arguments as omitted.
  • Changed OpenAI Responses deferred tool loading to prefer message-anchored additional_tools where supported while retaining tool-search and top-level fallbacks (#​7709).
  • Replaced the Mistral SDK transport with a native Chat Completions HTTP stream, eliminating its generated client and schema runtime overhead.
Fixed
  • Fixed GitHub Copilot login triggering API rate limits while enabling model policies by limiting concurrent policy updates (#​6187).
  • Fixed GitHub Copilot login still triggering API rate limits by updating only account models with unconfigured policies and honoring server retry delays (#​7850).
  • Fixed upstream request buffer limit failures to trigger automatic assistant retries.
  • Fixed OpenAI Responses function and custom tool calls to preserve namespaces during streaming, proxying, and replay (#​7709).
  • Fixed built-in and custom DeepSeek API models to send output limits through the supported max_tokens field.
  • Fixed Google Generative AI and Vertex AI responses with tool calls incorrectly treating output-limit or provider-error stops as normal tool use (#​8059).
  • Fixed Amazon Bedrock replay rejecting tool arguments that contain empty object keys while preserving all valid nested values (#​7882 by @​muyiyr).
  • Fixed DeepSeek compatibility detection for base URLs whose hostname contains uppercase letters (#​7933 by @​yearth).

v0.84.1

Compare Source

Added
  • Added Qwen Token Plan Individual as a built-in provider with its documented subscription model catalog and the shared international QWEN_TOKEN_PLAN_API_KEY (#​7659 by @​arasovic).

v0.84.0

Compare Source

Breaking Changes
  • Renamed the exported ModelsStreamTransforms interface to ModelsRequestTransforms because its header transformation now applies to all authenticated provider requests.

  • Required dynamic model providers to accept a concrete RefreshModelsContext.signal; Models.refresh() remains unbounded when callers omit its optional signal.

  • Required provider login, API-key check/resolution, and OAuth refresh implementations to accept a concrete abort signal; public auth and credential operations remain unbounded when callers omit their optional signal.

  • Replaced raw RefreshModelsContext.store access with the read-only context.stored snapshot and generation-checked context.publish() transaction.

    createProvider({ fetchModels }): no catalog-publication migration is required. Before and after, return the fetched list; createProvider() restores stored models and publishes and persists refreshed models itself. signal is now guaranteed to be present.

    // Before
    const beforeProvider = createProvider({
      // ...
      fetchModels: async ({ signal }) => {
        const response = await fetch(catalogUrl, { signal });
        return parseModels(await response.json());
      },
    });
    
    // After: unchanged
    const afterProvider = createProvider({
      // ...
      fetchModels: async ({ signal }) => {
        const response = await fetch(catalogUrl, { signal });
        return parseModels(await response.json());
      },
    });

    Handwritten Provider.refreshModels(): replace direct store access and pre-publication mutation with generation-guarded publications.

    // Before
    refreshModels: async (context) => {
      const stored = await context.store.read();
      if (stored) currentModels = stored.models;
      if (!context.allowNetwork) return;
    
      const refreshed = await fetchModels(context.signal);
      currentModels = refreshed;
      await context.store.write({ models: refreshed, checkedAt: Date.now() });
    },
    
    // After
    refreshModels: async (context) => {
      if (context.stored) {
        const restored = context.stored.models;
        if (!(await context.publish({
          update: () => { currentModels = restored; },
        }))) return;
      }
      if (!context.allowNetwork) return;
    
      const refreshed = await fetchModels(context.signal);
      if (context.signal.aborted) return;
      await context.publish({
        persist: { models: refreshed, checkedAt: Date.now() },
        update: () => { currentModels = refreshed; },
      });
    },

    In publish(), omit persist to leave storage unchanged, pass a ModelsStoreEntry to write it, or pass persist: null to delete it. Omit update for metadata-only persistence; omit persist for an ephemeral in-memory publication.

Added
  • Added optional OAuthAuth.isSubscription metadata for distinguishing subscription-backed authentication from generic OAuth sign-in.
  • Added explicit TelemetryContext propagation across stream, deferred, and image request options using the vendor-neutral @earendil-works/pi-telemetry contract.
  • Added deferred provider request contracts, durable response handles, authenticated fetch/cancel dispatch, and faux-provider support for pending, ready, failed, and cancelled responses (#​7339 by @​davidbrai).
  • Added Baseten as a built-in OpenAI-compatible provider with models.dev catalog generation and native chat_template_args reasoning controls.
  • Added arbitrary OpenAI-compatible sampling parameters through Model.samplingParams and StreamOptions.samplingParams, including per-request overrides (#​7568 by @​mrexodia).
  • Added opt-in vLLM thinking_token_budget support for OpenAI-compatible models, reserving output tokens for the final answer (#​7638 by @​bnsd55).
  • Added OpenAICompletionsCompat.supportsFinishReason for providers that omit streamed finish_reason values, inferring normal and tool-use stops when the stream ends.
  • Added structured Amazon Bedrock failure diagnostics with HTTP status, modeled error code, and AWS request id when available (#​7286 by @​brianstanley).
Changed
  • Added optional cancellation to ModelsStore reads, writes, and deletions; catalog orchestration binds these waits to the provider refresh signal.
Fixed
  • Fixed GitHub Copilot Grok 4.5 requests to use the supported Responses API (#​7560).
  • Bounded OAuth token refreshes so stalled requests release the credential-store lock (#​7508).
  • Fixed tool argument validation to preserve values that already match an anyOf/oneOf union arm before attempting coercion, avoiding nullable unions converting null to another primitive value (#​7328).
  • Fixed cancellation of model catalog refreshes so callers stop waiting even when a custom provider ignores its abort signal (#​7027).
  • Fixed auth resolution, availability checks, OAuth refreshes, provider login, and in-memory credential queue waits to honor caller cancellation.
  • Fixed newer provider refreshes being blocked by or overwritten by an older stalled generation, including persisted catalog publication.
  • Updated GPT-5.6 Terra and Luna pricing across OpenAI and passthrough model catalogs.
  • Fixed Fireworks Kimi K3 models to use the OpenAI-compatible API with native reasoning-effort levels and deferred tools (#​7199, #​7230 by @​XBeg9).
  • Fixed Fireworks GLM 5.2 models sending the unsupported prompt_cache_retention field when long cache retention is enabled, and enabled session affinity for automatic prompt caching (#​7676).
  • Updated Groq's Qwen reasoning override for the replacement qwen/qwen3.6-27b model.
  • Fixed the OpenCode Go provider display name.
  • Fixed provider error normalization treating arrays and class instances as structured response bodies instead of preserving their original errors (#​7205 by @​erikogenvik).
  • Fixed Anthropic streams dropping text or thinking included in the initial content-block event (#​7358 by @​davidbrai).
  • Fixed Google history conversion dropping signed empty text and thinking blocks required for replay (#​7362 by @​jingtao-wisdomgraph).
  • Fixed OpenAI Codex cached WebSocket sessions being shared across different account credentials (#​7364).
  • Fixed transient Google Generative AI and Vertex AI provider errors bypassing automatic retries (#​7471 by @​vish-pr).
  • Fixed Gemini 3 tool call ids being discarded during history conversion, breaking signed multi-turn replay (#​7494 by @​muyiyr).
  • Fixed OpenAI Responses incomplete reasons so only max_output_tokens is treated as a length stop, and exposed bounded recovery detection for responses truncated below their intended output limit (#​7540 by @​davidbrai).
  • Restored GitHub Copilot models returned through account-specific policy responses (#​7672 by @​muyiyr).
  • Replaced the retired Qwen Token Plan qwen3.8-max-preview model with qwen3.8-max (#​7670 by @​QuintinShaw).

v0.83.0

Compare Source

Breaking Changes
  • Upgraded the exported TypeBox dependency to 1.3.7, removing deprecated APIs including Type.Base, Type.Awaited, Type.Promise, Type.AsyncIterator, Type.Iterator, Type.Options, and Value.Mutate, while fixing compiled validation of nullable array tool arguments. Consumers using removed APIs must migrate to supported TypeBox APIs (#​7243 by @​petrroll).
Added
  • Added per-request fetch injection for supported text and image provider transports; Google adapters reject non-global implementations rather than silently bypassing them.
  • Added Claude Opus 5 support for the GitHub Copilot provider, routing through the Anthropic Messages API with adaptive thinking, 1M context, and the Copilot minimal thinking-level override (#​7158 by @​jay-aye-see-kay).
  • Added the "pending" stop reason for partial streaming messages. See Stop Reasons (#​7151 by @​lucasmeijer).
  • Added AssistantMessage.rawStopReason and populated it across Google, Anthropic, Amazon Bedrock, Mistral, and OpenAI streams; unmapped terminal reasons now surface as provider errors instead of successful stops (#​7272).
  • Added manual redirect URL and authorization-code entry to OpenRouter OAuth login for remote and headless environments (#​7114 by @​rgarcia).
  • Added AuthResolutionOverrides.minOAuthValidityMs so callers can require and refresh OAuth credentials with a minimum remaining validity (#​7168).
Changed
  • Changed stored OAuth credentials to refresh when less than five minutes of validity remain instead of waiting until expiration (#​7168).
Fixed
  • Fixed Qwen Token Plan reasoning models to send their service-specific thinking controls and supported reasoning-effort levels (#​6951, #​6998).
  • Fixed Z.AI providers and compatible custom endpoints to send output limits through max_tokens, which those endpoints honor (#​7174 by @​HyeokjaeLee).
  • Fixed explicitly configured Amazon Bedrock profiles being overridden by ambient AWS access keys (#​7176 by @​christianbasch).
  • Fixed malformed OpenAI-compatible tool-call deltas with both a valid function payload and an empty custom object discarding the function arguments (#​7288 by @​sunnyyoung).

v0.82.1

Compare Source

Added
  • Added ModelsStoreEntry.etag so persisted provider catalogs can carry the remote ETag validator for conditional refreshes.
  • Added ANTHROPIC_AUTH_TOKEN bearer authentication for Anthropic-compatible gateways (#​5871)
  • Added Claude Opus 5 support for Anthropic and Amazon Bedrock with adaptive thinking, inference profiles, prompt caching, and preserved AWS validation messages (#​7081 by @​unexge, #​7083 by @​davidbrai).
Changed
  • Changed Radius OAuth device authorization, token exchange, and refresh requests to use the configured gateway directly.
  • Changed ModelsError messages to append the underlying cause, so auth failures such as OAuth refresh failed for openai-codex report the provider response instead of a bare wrapper message.

v0.82.0

Compare Source

Breaking Changes
  • Replaced getBuiltinModelDataUrl(provider) with getBuiltinModelDataGeneratedAt() so built-in catalog freshness uses its recorded generation time instead of installation-dependent file metadata (#​7016 by @​davidbrai).
Added
  • Added Kimi Code subscription OAuth login for the kimi-coding provider, with device authorization, token refresh, and OAuth host overrides (#​6935 by @​zaycruz).
  • Added OpenRouter OAuth PKCE login that mints a user-controlled API key for chat and image providers (#​6927 by @​rsaryev).
  • Added Tool.constrainedSampling with strict JSON Schema (prefer/require) and OpenAI Lark/regex grammar variants, enforcing provider-side constrained tool sampling across OpenAI, Anthropic, Amazon Bedrock, Google Gemini, and Mistral. See Constrained Sampling for Tools.
  • Added supportsGrammarTools and supportsStrictTools compatibility flags, expanded supportsStrictMode to Responses and Bedrock models, and generated model capability metadata to gate constrained sampling.
Changed
  • Changed generated model catalogs to expose only provider-verified reasoning effort levels from models.dev (#​6928 by @​davidbrai).
Fixed
  • Fixed OpenAI Codex cached WebSocket continuations after grammar tool calls to send only the real tool-result delta.
  • Fixed constrained tool sampling across Google, Amazon Bedrock, Mistral, and Azure OpenAI Responses adapters, including model-aware strict-tool capabilities, grammar configuration validation, and malformed grammar-call replay errors.
  • Fixed cacheRetention: "none" to disable implicit prompt-cache writes for supported OpenAI models and session-based caching for OpenAI Codex (#​6618 by @​tmustier).
  • Fixed DNS lookup failures such as getaddrinfo, ENOTFOUND, and EAI_AGAIN to trigger automatic assistant retries (#​6946 by @​christianklotz).
  • Fixed OpenAI Codex WebSocket sessions to retry once without a missing previous-response continuation after previous_response_not_found errors (#​6955 by @​davidbrai).
  • Fixed OpenAI and Anthropic provider retry waits to honor abort signals and configured delay limits (#​6980 by @​petrroll).
  • Fixed OpenRouter Anthropic cache breakpoints to advance through tool results and enabled cache control for ~anthropic/*-latest aliases (#​6941 by @​mteam88).

v0.81.1

Compare Source

Added
  • Added retryAssistantCall() for bounded retries of transient assistant failures with lifecycle callbacks and abort handling (#​6901 by @​davidbrai).
Fixed
  • Fixed Kimi K3 models from Moonshot AI and Moonshot AI China to use the OpenAI thinking format and expose reasoning effort support.

v0.81.0

Compare Source

Added
  • Added Qwen Token Plan and Qwen Token Plan China as built-in providers with regional endpoints, API-key authentication, and generated model catalogs (#​6858 by @​QuintinShaw).
  • Added contentText for extracting joined text from message content (#​6840 by @​xl0).
  • Added a shared uuidv7 utility for time-ordered identifiers (#​6834 by @​xl0).
  • Added optional usage metadata to tool result messages (#​6671 by @​davidbrai).
Changed
  • Changed generated model catalogs to keep TypeScript model shapes separate from ignored JSON model values, reducing generated source churn (#​6765 by @​mitsuhiko).
  • Changed model generation to validate ignored provider data before compilation; npm run build refreshes model data as before, while npm run build:offline reuses existing data without network access.
Fixed
  • Fixed stored API-key credentials to apply their provider-scoped env values during auth resolution, including Amazon Bedrock profiles (#​6864 by @​cristinaponcela).
  • Fixed OpenAI-compatible cross-provider replay to preserve unique tool call IDs when multiple calls share a provider call ID (#​6854 by @​cristinaponcela).
  • Fixed Kimi K3 to expose its supported low, high, and max thinking levels, and normalized the k2p7 alias to the canonical kimi-for-coding model.
  • Fixed the OpenCode Go provider to support models routed through the OpenAI Responses API.
  • Fixed the pi-ai executable path to match npm registry metadata, avoiding repeated consumer lockfile changes (#​6812 by @​jmfederico).
  • Fixed sessionless OpenAI Codex WebSocket requests to use UUIDv7 request IDs, enabling models that reject UUIDv4 IDs (#​6834 by @​xl0).
  • Fixed GitHub Copilot long-context pricing tiers in generated model metadata (#​6668).
  • Fixed Kimi Coding subscription models to report API-equivalent implied costs when models.dev reports zero pricing.
  • Fixed OpenAI Responses early stream endings to be classified as retryable provider errors (#​6727).
  • Fixed GPT-5.6 Codex models to default to the 272K context window, avoiding automatic long-context pricing (#​6853 by @​aadishv).
earendil-works/pi (@​earendil-works/pi-coding-agent)

v0.84.4

Compare Source

New Features
  • Terminal capability overrides — Override detected terminal hyperlink, image, and truecolor support. See Capability Overrides.
  • Extension UI prompt events — Integrations can distinguish active agent work from time spent waiting for ctx.ui prompts. See Extension UI prompt events.
  • RPC queue clearing — Retrieve and clear queued steering and follow-up messages with clear_queue. See RPC clear_queue.
  • Fullscreen selection copy controls — Disable automatic selection copying in fullscreen mode and use Ctrl+X to copy the active selection. See UI & Display.
  • DeepSeek V4 Flash Vision (experimental) — Use the vision-capable model through the built-in DeepSeek provider. See API Keys.
Added
  • Added supportsMidConvoEffort to custom Anthropic Messages model compatibility settings.
  • Added transcript notices for Anthropic thinking blocks dropped during provider recovery when cache miss notices are enabled.
  • Added ui_prompt_start and ui_prompt_end extension events so host integrations can distinguish active agent work from waiting on user-facing ctx.ui prompts (#​8355 by @​cristinaponcela).
  • Added detectSupportedImageMimeTypeFromFile() to the public library exports (#​8600 by @​xl0).
  • Added inherited experimental vision-capable deepseek-v4-flash-vision-exp model support.
  • Added transcript usage notices for compaction and branch summaries when cache miss notices are enabled.
  • Added RPC clear_queue to retrieve and remove queued steering and follow-up messages (#​8432).
  • Added environment variables and advanced settings for overriding auto-detected terminal hyperlink, image, and truecolor capabilities (#​8665).
  • Added fullscreenCopyOnSelect to disable automatic fullscreen selection copy; when disabled, Ctrl+X copies the active text selection before falling back to the last assistant message, while /tree still copies the selected message (#​7720).
Changed
  • Changed fullscreen transcript search arrows to underline on hover and capitalized the search placeholder.
  • Changed selectors in /thinking, /model, /scoped-models, /trust, per-model thinking settings, and theme settings to keep active options marked while browsing. /scoped-models now uses consistent per-item toggles and strikes through unavailable models (#​8900).
Fixed
  • Fixed toggling thinking visibility clearing partial output from running Bash tools (#​8611).
  • Fixed Windows shell aborts crashing Pi when taskkill.exe is unavailable on PATH (#​6596).
  • Fixed resumed sessions corrupting the next appended entry when their JSONL file lacks a trailing newline (#​8345).
  • Fixed extension messages sent with triggerTurn: false while the agent is running being inserted between a tool call and its result, which made providers that validate message order reject the replayed history. They are now appended once the turn's tool results are in (#​8537).
  • Fixed compaction and branch summaries forcing toolChoice: "none" (#​8649, #​8638).
  • Fixed large tool results crossing the auto-compaction threshold being sent to the provider before compaction. Pi now compacts between tool execution and the next assistant response in the same run, and restores interactive progress when that run resumes (#​6879).
  • Fixed Google Vertex requests failing with HttpsProxyAgent is not a constructor when the bundled Node.js runtime uses an HTTP(S) proxy (#​8610).
  • Fixed saving a default model from a non-empty model scope so it remains available in that scope.
  • Fixed inherited @ file autocomplete ranking to prefer direct and shallower matches over similarly ranked nested paths (#​8669).
  • Fixed inherited OpenAI-compatible streams serializing thinking signatures repeatedly during streaming (#​8671).
  • Fixed inherited main-screen rendering crashing when image-heavy output exceeded V8's string length limit (#​8028).
  • Fixed inherited fullscreen double-click word selection splitting paths and kebab-case tokens on / and - (#​8676).
  • Fixed inherited Cloudflare AI Gateway catalogs omitting supported workers-ai/* passthrough models.
  • Fixed inherited OpenAI-compatible reasoning replay to merge consecutive streamed text and summary reasoning_details deltas.
  • Fixed inherited OpenRouter reasoning controls so reasoning-mandatory models do not receive effort: "none" (#​8614 by @​davidbrai).
  • Fixed inherited OpenAI-compatible Chat Completions ignoring an explicitly requested toolChoice when no tools are defined.
  • Fixed inherited fragmented Mistral tool calls splitting when continuation chunks omit the tool-call ID (#​8387).

v0.84.3

Compare Source

New Features
  • PowerShell tool — Use optional native PowerShell command execution on Windows. See PowerShell Tool.
  • Safer managed updates — Stage, verify, and atomically activate updates for installer-managed installations. See Install and Manage.
  • Model and thinking controls — Select thinking levels with /thinking, search defaults, keep selections session-scoped, and persist them explicitly with Ctrl+S. See Models and Thinking.
Breaking Changes
  • Renamed the inherited GoogleThinkingLevel type to GoogleApiThinkingLevel and added ResolvedGoogleThinkingLevel for normalized adapter levels.
Added
  • Added an optional powershell tool for Windows, configurable through defaultTools and the SDK. See PowerShell Tool.
  • Added a /thinking selector and searchable default choices to the model and thinking selectors; Ctrl+S saves the selected model as the global default. See Models and Thinking.
  • Added optional routing session IDs to exported compaction summary helpers so callers can preserve provider routing without enabling prompt cache writes.
  • Added

usage notices for compaction and branch summaries when cache miss notices are enabled.

  • Added session_compact_failed extension events so compaction failures and aborts expose their reason, retry state, source, and error message to handlers (#​8175).
  • Added inherited provider-neutral toolChoice support to simple stream requests.
  • Added inherited automatic Anthropic server-side refusal fallback for supported first-party models, including returned-model usage pricing (#​8017).
  • Added inherited configurable OpenAI-compatible thinking-token budget fields for vLLM, Qwen/SGLang, and llama.cpp servers. See OpenAI Compatibility (#​8275 by @​bnsd55).
  • Added inherited China-specific ZAI Coding Plan models, including GLM-4.6V vision support and API-equivalent usage cost estimates (#​8220).
  • Added inherited deepseek-v4-pro-0813 support to the Qwen Token Plan Individual catalog (#​8194).
Changed
  • Changed experimental installer-managed installations so pi update stages, verifies, and atomically activates the selected release in place. See Install and Manage.
  • Changed inherited built-in xAI models to use the Responses API with encrypted reasoning replay and made Grok 4.6 the default xAI model (#​8124 by @​Jaaneek).
  • Changed inherited Anthropic, Azure OpenAI, Google, Mistral, and OpenAI adapters to send Pi's default User-Agent unless overridden (#​8305).
  • Changed Windows and WSL keybinding defaults to avoid terminal-reserved shortcuts for image paste, model cycling, editor undo, fullscreen transcript navigation and search, and message queueing (#​8372).
  • Changed Bun release archives to ship the native clipboard binary only inside the wrapper package, removing a duplicate platform package from each archive.
  • Changed package resource glob expansion to use Node.js's built-in implementation with deterministic visible-path matching, reducing the installed runtime dependency tree.
  • Changed the bundled Node.js runtime to load jiti only when importing an extension and Babel only when uncached source needs transformation, reducing CLI startup time and bundle size.
  • Changed syntax highlighting to initialize only twenty common languages eagerly and defer the remaining grammars until after the initial TUI render, reducing CLI startup time.
  • Changed the Node.js CLI and RPC entrypoints to load a bundled runtime, reducing startup filesystem reads while keeping the public library and legacy module paths on the modular runtime for normal dependency identity.
  • Changed session sharing to render clickable terminal links, display only the canonical Radius artifact URL, and include the current system prompt and active tool definitions in Radius session shares.
Fixed
  • Fixed failed extension factories leaving event subscriptions, provider registrations, and default flag state active (#​8424 by @​acmerfight).
  • Fixed models.json typings omitting the documented OpenAI-compatible compat.supportsFinishReason provider and model override (#​8487 by @​petrroll).
  • Fixed /model and /thinking selections being persisted globally unless explicitly saved with Ctrl+S (#​5263).
  • Fixed JSON and RPC toolcall_start events omitting the tool call id and name (#​7953 by @​christianklotz).
  • Fixed extensions failing to load when the Node.js CLI runs as a single-executable application (#​8237).
  • Fixed nested Markdown skills inside .agents/skills/ grouping directories not being discovered.
  • Fixed compaction and branch summarization requests exposing tools to providers.
  • Fixed single-object edit tool inputs failing validation by accepting them as one-edit arrays in both coding-agent and harness edit tools (#​7835).
  • Fixed root Markdown files such as README.md and AGENTS.md in skill directories being reported as broken skills unless they declare valid skill frontmatter (#​7805).
  • Fixed the default Cerebras model referencing an unavailable Z.AI model.
  • Fixed inherited OpenAI-compatible Chat Completions reasoning replay to preserve and resend assistant-level reasoning_details verbatim and in order (#​7994).
  • Fixed inherited Anthropic server-side fallback responses being priced with the requested model instead of the returned fallback model (#​8285).
  • Fixed inherited GitHub Copilot login triggering model-policy rate limits by limiting policy updates, retrying model discovery once, and honoring server retry delays (#​7850).
  • Fixed inherited Amazon Bedrock dropping and failing to replay opaque redacted reasoning from non-Anthropic models (#​8314 by @​seiji).
  • Fixed inherited Z.AI Coding Plan models deriving incomplete reasoning-effort metadata, including missing GLM-5.3 low, high, and max levels (#​8336).
  • Fixed inherited DeepSeek V4 Flash on OpenCode and OpenCode Go omitting its supported low thinking level (#​8181 by @​tianshuang).
  • Fixed inherited Azure OpenAI Responses ignoring toolChoice in provider-specific stream requests.
  • Fixed inherited Am

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot enabled auto-merge (squash) July 24, 2026 18:56
@renovate
renovate Bot force-pushed the renovate/@earendil-works-packages branch from 95fd95d to 6ce5aae Compare July 27, 2026 06:42
@renovate renovate Bot changed the title fix(deps): update @earendil-works packages to ^0.81.0 fix(deps): update @earendil-works packages to ^0.82.0 Jul 27, 2026
@renovate
renovate Bot force-pushed the renovate/@earendil-works-packages branch 8 times, most recently from e18d2b8 to 8e21b4c Compare August 2, 2026 01:40
@renovate renovate Bot changed the title fix(deps): update @earendil-works packages to ^0.82.0 fix(deps): update @earendil-works packages to ^0.83.0 Aug 2, 2026
@renovate
renovate Bot force-pushed the renovate/@earendil-works-packages branch 8 times, most recently from 9741c10 to 501f1c1 Compare August 9, 2026 13:28
@renovate renovate Bot changed the title fix(deps): update @earendil-works packages to ^0.83.0 fix(deps): update @earendil-works packages to ^0.84.0 Aug 9, 2026
@renovate
renovate Bot force-pushed the renovate/@earendil-works-packages branch 4 times, most recently from 4cbae74 to c426052 Compare August 21, 2026 06:34
@renovate
renovate Bot force-pushed the renovate/@earendil-works-packages branch from c426052 to 35fbdea Compare August 25, 2026 23:01
@renovate
renovate Bot force-pushed the renovate/@earendil-works-packages branch from 35fbdea to 82b25a2 Compare August 31, 2026 02:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants