Commit Graph
3529 Commits
Author SHA1 Message Date
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élixandGitHub 6cf5098f6b Fix Ctrl+Alt key matching in tmux (#2989) 2026-04-14 20:36:08 +02:00
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
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
MatandGitHub dcb1f422c4 feat(coding-agent): accept inline extension factories in main() (#3099) 2026-04-14 20:26:07 +02:00
Aliou DialloandGitHub 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 DialloandGitHub 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 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 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 YlisiurunenandGitHub f829f80885 fix(ai): support service tier in codex responses (#2996) 2026-04-13 11:04:11 +02:00
Sviatoslav AbakumovandGitHub 4dda448a3f fix(tui): preserve column of cursor before it entered a paste marker (#3092) 2026-04-13 11:03:18 +02:00
Sviatoslav AbakumovandGitHub 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
xu0o0andGitHub 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 DialloandGitHub 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
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 AabandGitHub 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
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
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 HarrisonandGitHub 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 PappandGitHub 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 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 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
Mario Zechner 70fb83fcff docs(coding-agent): update unreleased changelog 2026-04-08 18:51:54 +02:00
Mario Zechner 96916f2cad fix(coding-agent): warn on Anthropic subscription auth 2026-04-08 18:46:40 +02:00
Mario Zechner d0a4baf8a1 Add to gitignore 2026-04-08 18:15:36 +02:00