# What changed in @earendil-works/pi-coding-agent

> 100 changes in @earendil-works/pi-coding-agent 0.78 to 1 from its official release notes, upgrade guides and advisories: 25 breaking, 5 security, 14 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/@earendil-works/pi-coding-agent/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @earendil-works/pi-coding-agent 1

### Breaking changes

- The unsupported off thinking level is no longer offered. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Uses OpenAI Chat Completions at the Kimi coding endpoint; models.json base URL overrides must include /v1. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Pi's Node.js is now only a fallback on PATH, so bash tool shells use the user's node/npm. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Moved to the opencode.ai/inference endpoints; OpenCode Go also gains Google Generative AI support. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Malformed final JSON arguments now fail validation and show the model the raw arguments instead of silently running with partial fields. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- The models now expose only the off and high thinking levels, avoiding 400 errors at minimal. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- An abort requested while a run is starting now aborts the run once it starts. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The event also fires for idle runs started with `pi.sendMessage(..., { triggerTurn: true })`; handlers receive a user or custom event, and handlers limited to prompts must check `event.messageType === "user"`. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The event is now a union: user events carry `prompt` and `images`, while custom events carry the starting `message` and no `prompt`. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The unpublished experimental `./client` export was removed. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Returns false while a run is starting, including during `before_agent_start` handlers. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The package used by the unreleased experimental stack was removed and is no longer released. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The package used by the unreleased experimental stack was removed and is no longer released. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The package used by the unreleased experimental stack was removed and is no longer released. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The unpublished experimental `./experimental/plugin` export was removed. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- OAuth sign-in now fails with an issuer mismatch when an authorization response includes an `iss` parameter that cannot be checked because server metadata was not discovered. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- A `// @options:` line that is not the first script line now causes an error before execution instead of being silently ignored, preventing runs without the requested timeout. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Print mode now prints partial text, warns on stderr, and exits 1 when the final response is cut off at the model's output token limit. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The JSON output reports `resources: true` for servers offering resources instead of resource and resource-template counts. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- When a run is starting, the session counts as busy and `pi.sendMessage()` queues into that run instead of trying to start a second run. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Calls made while a run is starting now require `deliverAs`. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- MCP tool calls now handle structured content that is an array, null, or primitive; codemode types it as `unknown` when no output schema is declared. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The theme schema URL changed, and themes loaded at startup now receive the same schema validation as themes reloaded later. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The timeout now limits the whole sign-in, including requests to the authorization server, rather than only the wait for the browser. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Julia-1, Laya, Kev, lev, and OpenJev served by llama.cpp 0.6.0 or later run natively as classifiers rather than chat models. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)

### Security

- Models disabled by an organization owner are no longer listed. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)

### New APIs and options

- Choose automatic, GitHub gist, or Radius uploads for /share. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Tool namespaces can define aliases, which codemode namespace descriptions and `searchTools()` namespace matching recognize; MCP namespaces use the server name. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Pi lists only chat models available to the configured OpenRouter key, with that key's model limits and prices, and saves the list for offline use. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Setting `PI_CLIPBOARD_OSC52=1` sends copied text to the terminal after the local clipboard write, enabling copies to reach remote clients when Pi cannot detect the remote session. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Tool definitions can declare which other tools a call may reach, allowing the MCP extension to wait for needed servers and determine whether replacement tools can reach MCP tools. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Published schemas for settings, models, keybindings, and themes can be referenced from configuration files for editor validation and completion. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- agent_settled session, extension, and JSON events include aborted so integrations can distinguish a cancelled run from a finished one. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Claude Haiku 5.5 is available with adaptive thinking up to xhigh/max effort and prompt caching on Bedrock. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- OpenAI's GPT-6 Luna is available as a classifier model through the Decisions API. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Tool render context and tool_execution_end extension events include the recorded execution time of a final tool result. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- The codemode classification context accepts images for classifiers that support them. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Pi reports whether it is working, blocked on a dialog or login, done, or failed to terminals and dashboards that support OSC 7501. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Overrides detection of program status reporting with a value of 1 or 0. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Entries such as +codemode and -write adjust the default tool selection instead of replacing it. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)

### Performance

- Joining output items is no longer quadratic, preventing long process-blocking delays for scripts with many `text()` calls. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)

### Behavior and default changes

- K3, K3-256K, and Kimi For Coding accept tools added mid-conversation without invalidating the prompt cache. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Thinking blocks from earlier assistant messages produced by another model are dropped instead of being sent as plain text. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Changing the thinking level mid-session with an API key keeps the prompt cache. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Conversation serialization for compaction, branch summaries, and bug reports omits thinking blocks to avoid oversized summarization requests. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- When enabled, the setting uses only the terminal cursor instead of also drawing Pi's reverse-video cursor. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Reusable theme colors should be defined under `vars` when updating themes for the published schema. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The tool render context includes outputPad, which now also applies to ! command output, tool output, and summary blocks. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)

### Tooling

- Tool declarations expose input constraints as `@` tags on property comments, so scripts can see constraints without repeating them in descriptions. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Codemode tool rows show elapsed time while a script runs and total time when it finishes. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Codemode declarations spell out MCP result fields instead of referring to an undefined `CallToolResult<T>` type, and no longer include shared MCP types. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)

### Fixes and other changes

- Requests with images in an error tool result no longer fail with a 400; images are sent after the turn's tool results. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Retries now trigger for gateway upstream-stream forwarding errors and temporary service-unavailable errors. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Stopping a script or reaching its deadline no longer waits for a non-interruptible built-in to return on Bun. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Live workers are limited to two across sessions, with cancelled workers counted until they exit. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Calling done() on a custom overlay closes that overlay rather than the topmost overlay. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Adds a model for each provider that offers it and warns when the match is ambiguous. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Vertex requests no longer fail with an unsupported thinking-budget error, and the thinking level is honored on the Gemini API. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- When several providers offer a model match, Pi prefers the provider with credentials and otherwise reports the ambiguity. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Adds a model for each provider that offers it and warns when the match is ambiguous. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Uses a 500K context window instead of 272K. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Thinking no longer appears after the answer when a proxy sends reasoning and content in the same stream chunk. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Uses the Anthropic Messages API for MiniMax M2.7, fixing the unsupported protocol error. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Empty quoted arguments are preserved, so later positional arguments are not shifted and positional defaults can apply. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Fixed labels for numeric-string or null arguments in the TUI, session tree, and HTML exports. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Resume restores the session's active tools, with --tools +name/-name entries applied on top unless tool selection is explicit. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- Parsing no longer drops fields when a string contains an invalid Unicode escape. (1.3.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#130---2026-10-15)
- A symlinked `AGENTS.md` in a git worktree nested inside its main repository no longer prevents project context from loading. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- When Anthropic rejects strict tools due to grammar size, tool count, or union limits, Pi retries once with preferred tools non-strict. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- On Windows, Pi briefly retries reads or writes when a previous lock folder is still being deleted, rather than failing immediately with `EPERM`. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Codemode no longer fails with a broken bridge when Pi runs under `node --watch` on Node 24 or 26. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Tilde expansion now works in `!pattern`, `+path`, and `-path` entries for the extensions, skills, prompts, and themes settings. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Pi no longer lists resources while connecting, so servers with resources can register tools without waiting for resource enumeration. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Cancelled or timed-out MCP calls waiting for an OAuth refresh are no longer sent to the server after the refresh finishes. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The request timeout now applies only while waiting for response headers, preventing streams from being aborted mid-generation. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Negative placeholder prices from OpenRouter are treated as zero, avoiding extreme negative cost displays for router models. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- The timeout limits the entire sign-in, not only the wait for the browser. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Runs started with `pi.sendMessage(..., { triggerTurn: true })` no longer remove sections added by `before_agent_start` after the first tool call. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- A tool declaring an output schema resolves with its value on failure too, rather than rejecting every failed tool call. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- “The upstream provider returned an error” is now retried as a transient provider error. (1.2.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#120---2026-10-12)
- Login falls back to a free loopback port when port 53692 is reserved or in use. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Clipboard paste works in Termux, and failed copies include the Termux:API install hint. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Text outputs are separated with numbered markers, and console calls appear after other output in one block with one line per call. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Input is estimated at 3.5 characters per token instead of 4 when calculating output limits, reducing context-limit request failures. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Standalone binaries load .env, .env.local, and .env.development from the launch directory into Pi's environment. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Mistral responses ending with finish_reason: error are retried. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- The manager opens without waiting for all servers to connect and remains usable while servers are enabled, reconnected, or disabled. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Sign-ins can be cancelled with Esc at every step, session shutdown aborts a running sign-in, and authorization-server requests time out after 15 seconds. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Model headers now override the originator and User-Agent headers of Codex requests. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Images are no longer dropped as “could not be resized” on Node 24.19+ and 26.x because of Node messages on the image resize worker channel. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Bedrock OpenAI models now honor the configured thinking level instead of always using Bedrock's default reasoning effort. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Managed installs now keep only the new release and the release it updated from. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- The codemode description now marks searchTools(), describeTool(), and describeNamespace() as async, preventing models from serializing unawaited promises as {}. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Provider busy errors are retried rather than ending the turn. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Costs no longer undercount long prompts on models with prompt-length pricing tiers across the listed providers. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)
- Bash and PowerShell results retain Took after session reloads, and live results show recorded execution time instead of wall-clock steps. (1.1.0) — [release notes](https://github.com/earendil-works/pi/blob/8efd314fa3d3232ce197d8d7a6a5660530b9d83e/packages/coding-agent/CHANGELOG.md#110---2026-10-07)

## @earendil-works/pi-coding-agent 0.79

### Security

- Pi Agent: Pi loads project-local extensions without approval (0.79.0) — [security advisory](https://github.com/advisories/GHSA-MQXH-6GQ7-558M)

## @earendil-works/pi-coding-agent 0.78

### Security

- Pi Agent: Potential XSS in HTML session exports via Markdown URL sanitization bypass (0.78.1) — [security advisory](https://github.com/advisories/GHSA-7V5M-PR3Q-6453)
- Pi Agent: Predictable temporary extension install paths allow local privilege escalation on shared Linux hosts (0.78.1) — [security advisory](https://github.com/advisories/GHSA-JFGX-WXX8-MP94)
- Pi Agent: Race condition in Pi auth.json writes could expose stored credentials (0.78.1) — [security advisory](https://github.com/advisories/GHSA-R95R-RJ6R-C39X)
