Commit Graph

3532 Commits

Author SHA1 Message Date
Mario Zechner
be6ac02238 docs: audit unreleased changelog entries 2026-04-14 23:40:29 +02:00
github-actions[bot]
73641c0298 chore: approve contributor lucasmeijer 2026-04-14 21:24:41 +00:00
Mario Zechner
018b40c30c fix: align OpenAI cache affinity and use uuidv7 session ids 2026-04-14 23:20:13 +02:00
Mario Zechner
d62d22173a chore: replace OSS weekend with permanent contribution gate 2026-04-14 23:16:11 +02:00
Mario Zechner
8f66938c80 docs(tui): add changelog entry for PR 2989 2026-04-14 21:00:12 +02:00
Mario Zechner
5ed4600350 fix(tui): resolve rebase typo closes #2979 2026-04-14 20:41:28 +02:00
Mario Zechner
ddb8454c87 fix(tui): complete super key helper support closes #2979 2026-04-14 20:40:34 +02:00
Kao Félix
6cf5098f6b Fix Ctrl+Alt key matching in tmux (#2989) 2026-04-14 20:36:08 +02:00
nathyong
462b3d21e3 fix(coding-agent): do not inject bunfs script path into subagent prompts (#3002)
The presence of `process.argv[1]` in the current invocation does not
imply that the current `pi` process is being invoked as a script.
Specifically, in the case of a bun compiled binary, `process.argv[1]`
will be the virtual path `/$bunfs/root/pi`, which is not a real file on
the filesystem.  This causes the subagent extension to inject this path
into the child `pi` invocation, which is interpreted as part of the
prompt, which confuses the subagent.

This change uses the script only if it is not a bunfs virtual script

Co-authored-by: nathyong <nathyong@noreply.github.com>
2026-04-14 20:33:05 +02:00
Aliou Diallo
ec4d413fc9 fix(coding-agent): custom models for built-in providers and list-models error surfacing (#3072)
* fix(coding-agent): surface models.json load errors on stderr in --list-models

When models.json has validation errors, --list-models silently
discarded custom models and overrides without any user-visible
feedback. Now prints the error to stderr via chalk.yellow warning
before listing available models.

* fix(coding-agent): allow custom models for built-in providers in models.json

Built-in providers (openrouter, anthropic, etc.) already have api and
baseUrl on every model, and auth comes from env vars / auth storage.
Relax validation so custom models under built-in providers don't need
redundant baseUrl, apiKey, or api fields. Inherit them from the first
built-in model for that provider.

fixes #2921

---------

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-04-14 20:32:18 +02:00
Mat
dcb1f422c4 feat(coding-agent): accept inline extension factories in main() (#3099) 2026-04-14 20:26:07 +02:00
Aliou Diallo
2d3ed0cfa7 fix(coding-agent): use npm view for update checks on non-default registries (#3164)
Previously, getLatestNpmVersion() hardcoded a fetch to
registry.npmjs.org, which 404s for packages on alternate
registries (private, Verdaccio, GitHub Packages, etc.).
The error was silently swallowed, so users never saw update
notifications for these packages.

Replace the direct fetch with
via the existing runCommandCapture helper. This uses the same
registry resolution as npm install (reads .npmrc config chain),
respects the npmCommand setting, and runs with this.cwd for
correct .npmrc lookup.
2026-04-14 20:20:14 +02:00
Aliou Diallo
ac37d4d439 feat(coding-agent): support multiple --append-system-prompt flags (#3171) 2026-04-14 20:19:11 +02:00
github-actions[bot]
6722144b92 chore: approve contributor jay-aye-see-kay 2026-04-14 18:03:18 +00:00
github-actions[bot]
d5261644d3 chore: approve contributor wirjo 2026-04-14 18:00:06 +00:00
Armin Ronacher
e2b40dfc81 fix(ai): strip partialJson from responses tool calls
Mutate persisted tool-call blocks in place on function_call completion,
remove partialJson, and emit the same reference on toolcall_end.
Add regression coverage for persisted block cleanup and event identity.

fixes #3078
2026-04-14 18:56:53 +02:00
Armin Ronacher
64a0a74d37 fix(coding-agent): stop bordered loader on dispose
fixes #3093
2026-04-14 16:48:54 +02:00
Mario Zechner
efc58fed70 Add [Unreleased] section for next cycle 2026-04-14 00:32:10 +02:00
Mario Zechner
5326452452 Release v0.67.1 2026-04-14 00:31:22 +02:00
Mario Zechner
0fa95393c4 fix(coding-agent): correct changelog heading for startup notes 2026-04-14 00:30:29 +02:00
Mario Zechner
852efe9596 Add [Unreleased] section for next cycle 2026-04-14 00:23:18 +02:00
Mario Zechner
023cd4afda Release v0.67.0 2026-04-14 00:22:27 +02:00
Mario Zechner
7371c30c0a feat(coding-agent): add install telemetry ping controls 2026-04-14 00:21:13 +02:00
Mario Zechner
31eaef590e docs: audit unreleased changelog entries 2026-04-13 23:42:31 +02:00
Mario Zechner
6828603a6b chore: fix npm audit vulnerabilities 2026-04-13 23:28:38 +02:00
Mario Zechner
50ce1b0fb3 docs: enable OSS weekend 2026-04-13 22:59:01 +02:00
Markus Ylisiurunen
f829f80885 fix(ai): support service tier in codex responses (#2996) 2026-04-13 11:04:11 +02:00
Sviatoslav Abakumov
4dda448a3f fix(tui): preserve column of cursor before it entered a paste marker (#3092) 2026-04-13 11:03:18 +02:00
Sviatoslav Abakumov
3166dae728 fix(coding-agent): flush queued messages after tree navigation (#3091)
Messages sent during branch summarization are added to the compaction
queue but never flushed when summarization ends. The user sees the
message in the steering queue and has to manually dequeue and resend it.

The fix is to flush the compaction queue after successful tree
navigation, matching the existing behavior of auto-compaction and
`/compact`. If the user jumps to a user message, the queued message is
sent as a prompt, and the jumped-to text is placed in the editor.
2026-04-13 11:03:01 +02:00
xu0o0
6fefa6fbab fix(web-ui): ignore key events during IME composition (#2982)
* fix(web-ui): ignore key events during IME composition

* fix(web-ui): ignore key events during IME composition in ModelSelector
2026-04-13 10:58:44 +02:00
Aliou Diallo
41377ee8ec fix(tui): sync test awaits with throttled render pipeline (#3076)
Tests assumed renders complete synchronously after requestRender() +
nextTick + flush(), but commit 6f5f37f8 changed requestRender() to
schedule via setTimeout with a 16ms minimum interval. Tests reading
viewport state before doRender() runs saw stale data.

Add VirtualTerminal.waitForRender() helper that waits for the throttled
render to settle (nextTick + 20ms + xterm flush), and replace all
terminal.flush() calls after render-triggering actions with it.

Fixes 8 failing tests across overlay-short-content, tui-render, and
markdown test suites.
2026-04-13 10:57:48 +02:00
github-actions[bot]
fb6ccbeaa1 chore: approve contributor pmateusz 2026-04-13 08:41:19 +00:00
github-actions[bot]
ddb1a407bd chore: approve contributor Mic92 2026-04-13 08:38:18 +00:00
github-actions[bot]
c779c14e91 chore: approve contributor dyyz1993 2026-04-11 15:06:38 +00:00
github-actions[bot]
b3f2c34759 chore: approve contributor sudosubin 2026-04-11 15:05:32 +00:00
github-actions[bot]
b98478560a chore: approve contributor bjesuiter 2026-04-11 14:56:49 +00:00
Mario Zechner
3b7448d156 fix(tui): replace spread-into-push in Container.render() to prevent stack overflow, closes #2651 2026-04-09 03:33:09 +02:00
Aadish Verma
4f7fc9de7e fix: bump antigravity User-Agent header version (#2901)
resolves #2815

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-04-09 03:10:05 +02:00
Zeremonienmeister Berber Aab
f05f4e8a5f Add all OpenRouter provider routing fields to OpenRouterRouting (#2904)
The OpenRouterRouting interface only had only and order, but the runtime
passes the entire object as-is to the OpenRouter API's provider field.
This means all other fields worked at runtime but had no TypeScript
type-checking, no autocomplete, and no config validation.

This adds all fields from the OpenRouter provider selection API
(https://openrouter.ai/docs/guides/routing/provider-selection):
allow_fallbacks, require_parameters, data_collection, zdr,
enforce_distillable_text, ignore, quantizations, sort, max_price,
preferred_min_throughput, preferred_max_latency.

Also fixes the models.md documentation which had an invalid fallbacks
field in the example (not part of the OpenRouter API), replaces it with
a comprehensive example showing all available fields, and clarifies that
openRouterRouting is sent as-is in the provider field.
2026-04-09 03:08:45 +02:00
Aadish Verma
ee2483cd34 fix: update google provider to handle gemma 4 thinking levels and route between MINIMAL and HIGH (#2903)
resolves #2812

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-04-09 03:08:00 +02:00
Jason
b48d802930 fix(ai): correct thinking budget for 2.5-flash-lite models (#2861)
The 2.5-flash-lite model was incorrectly matching the 2.5-flash
case, setting minimal budget to 128. Per Google's docs, flash-lite's
minimum thinking budget is 512, not 128. This caused the error:

  The thinking budget 128 is invalid. Please choose a value between
  512 and 24576.

Add a dedicated 2.5-flash-lite case before the 2.5-flash case so
the more specific match takes priority.

Fixes #2838

Co-authored-by: JasonOA888 <JasonOA888@users.noreply.github.com>
2026-04-09 03:03:45 +02:00
Mario Zechner
61015830ed feat(coding-agent): set PI_CODING_AGENT=true env var at startup
closes #2868
2026-04-09 03:03:19 +02:00
Paul Harrison
82ecc1300f Update sandbox extension configuration instructions (#2915)
The current sandbox extension instructions state the glob configuration file must exist at `~/.pi/agent/sandbox.json` whereas it actually must exist at  `~/.pi/agent/extensions/sandbox.json` to be picked up.
2026-04-09 02:39:50 +02:00
Lajos Papp
75c72d888d fix: include announcement image asset into binaries (#2961) 2026-04-09 02:27:06 +02:00
Mario Zechner
2cf2a8528e Add [Unreleased] section for next cycle 2026-04-09 01:01:16 +02:00
Mario Zechner
f3780d7004 Release v0.66.1 2026-04-09 01:00:19 +02:00
Mario Zechner
cca5a3a1a4 fix(coding-agent): hide Earendil startup notice 2026-04-09 00:53:19 +02:00
Mario Zechner
a99aee3360 Add [Unreleased] section for next cycle 2026-04-08 18:57:08 +02:00
Mario Zechner
918cc09dd6 Release v0.66.0 2026-04-08 18:56:20 +02:00
Mario Zechner
da6e9ea473 chore(ai): update generated model catalog 2026-04-08 18:54:56 +02:00