Commit Graph
385 Commits
Author SHA1 Message Date
Armin Ronacher d86654abb8 Release v0.99.1 2026-09-29 20:06:55 +02:00
Armin Ronacher 4b060d3a98 Release v0.99.0 2026-09-29 19:04:28 +02:00
Armin Ronacher 540e174c72 feat(coding-agent): Virtual models (#10035)
This adds experimental support for virtual models. A virtual model is a catalog entry that an extension registers with pi.registerVirtualModel(). It does not talk to a provider itself; for every request it picks a physical model and thinking level. The motivation is to make routing policies pluggable: plan on a strong model and implement on a cheap one, pick a model with a classifier, or move to a larger window when the context grows. Today this needs model switching by hand or hacks in prepareRequest.

The selection stays virtual: model_change records it, resume restores it, and each response records the physical model and thinking level that produced it. Router state can be stored on the session branch, so it follows /tree and forks and survives compaction. Context limits, compaction and image sizing use the physical model a request was routed to. examples/extensions/jev-router.ts shows a full router that uses the Jev classifier to pick Sol or Terra for planning and hands off to Luna after the first edit. docs/virtual-models.md describes the API.
2026-09-28 23:30:45 +02:00
Armin Ronacher ca7460d16b feat: build with TypeScript 7 and run sources with plain node
Replace the tsgo native preview with typescript@7.0.2 and port the check scripts to the TS 7 API. Target ES2024, drop useDefineForClassFields: false and unused decorator options, and enable verbatimModuleSyntax. Replace tsx with node plus the source resolver hook, passed to --import as a file URL.

closes #9965
2026-09-25 13:14:33 +02:00
David Brailovsky 002fc83852 feat: expose provider stream events to extensions (#9901)
Add onProviderStreamEvent through pi-ai and agent core, and surface
provider_stream_event to coding-agent extensions.

Closes #9784
2026-09-23 16:03:30 +02:00
Armin Ronacher f07218c4d4 Release v0.87.1 2026-09-22 21:28:02 +02:00
Armin Ronacher 16787ad5b2 Release v0.87.0 2026-09-21 18:31:52 +02:00
Armin Ronacher 13cbf77df2 Release v0.86.1 2026-09-20 13:04:11 +02:00
Armin Ronacher ecac0a9c4e Release v0.86.0 2026-09-20 01:00:41 +02:00
Armin Ronacher 9e05370b29 Mid conversation system messages (#9548)
This change makes system prompt text and tool changes part of the transcript rather than silently rewriting its starting conditions. This lets Pi record when instructions changed or tools became available, restore that state after resuming or navigating branches, and preserve cached prompt prefixes where the upstream supports it.
2026-09-16 15:54:07 +02:00
Armin Ronacher d981de1229 Release v0.85.1 2026-09-05 13:54:46 +02:00
Armin Ronacher 107d79f110 Release v0.85.0 2026-09-04 11:57:38 +02:00
Cristina Poncela Cubeiro 457ae8c79c feat(tui): alt mode scrollbar but prettier (#8801) 2026-09-04 00:05:47 +02:00
Armin Ronacher b79e4cc834 Release v0.84.4 2026-08-28 23:56:03 +02:00
Armin Ronacher 4e58f324fa Release v0.84.3 2026-08-24 12:50:48 +02:00
Vegard Stikbakke 8af7690c4f fix(coding-agent): skip trusted subagent prompts
closes #8261
2026-08-18 09:26:07 +02:00
Cristina Poncela Cubeiro 1d08508ef6 fix(extension-examples): use agent_settled instead of end (#8242) 2026-08-17 13:10:23 +02:00
David Brailovsky 914cf1472e Release v0.84.2 2026-08-14 12:00:00 +02:00
alexsavio d268454e9c fix(examples): accept array-form tools in the subagent example (#7598)
`parseFrontmatter` runs a real YAML parser, so `tools: [read, bash]`
arrives as an array while `tools: read, bash` arrives as a string. The
loader only handled the string form and called `.split(",")`, which
throws on the array form.

The throw escapes `loadAgentsFromDir` -- only `readdirSync` and
`readFileSync` are guarded -- so one agent file using the array form
broke discovery for every agent in that scope, not just itself.

Normalize both spellings in one helper, and type the frontmatter fields
as `unknown` so the string assumptions are explicit. The previous
`parseFrontmatter<Record<string, string>>` annotation asserted a shape
the YAML parser never guarantees, which is what hid the mismatch from
tsc while `AgentConfig.tools` was already typed `string[]`.
2026-08-14 09:59:42 +02:00
Dustin Spicuzza e3798ca91f fix(coding-agent): inherit subagent session config (#7897) 2026-08-11 11:12:34 +02:00
Armin Ronacher 53fa77ccd8 Release v0.84.1 2026-08-07 07:48:13 +02:00
Armin Ronacher a5f43bf8af Release v0.84.0 2026-08-06 12:32:57 +02:00
Vegard Stikbakke e741cb05ca fix(coding-agent): preserve extension auth endpoints
closes #7579
2026-08-04 12:37:02 +02:00
Mario Zechner fed6009cc9 fix(coding-agent): make model refresh cancellation caller-owned
Add generation-safe catalog publication, cancellable auth and storage operations, locally consistent credential mutations, and cache-first interactive model flows.
2026-08-04 00:03:52 +02:00
Cristina Poncela Cubeiro ab366ebe94 fix: custom-compaction through provider via new model runtime complete (#7325)
* fix: custom-compaction through provider via new model runtime complete

* Update CHANGELOG.md
2026-07-31 10:54:26 +02:00
Mario Zechner 32761383d2 fix(coding-agent): update Doom WAD download source 2026-07-31 10:03:41 +02:00
Armin Ronacher 845d6ff1f6 Release v0.83.0 2026-07-30 00:24:19 +02:00
Lucas Meijer f9a49869c2 feat(ai): expose pending stop reason while streaming (#7151)
* feat(ai): expose pending streaming stop reason

Closes #7142

* manual tidy up of human facing copy
2026-07-27 11:56:15 +02:00
Armin Ronacher b4f293684b Release v0.82.1 2026-07-25 14:37:11 +02:00
Alexey ZaytsevandMario Zechner 518855dd50 feat(coding-agent): expose output padding to custom renderers (#7045)
Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-07-25 08:29:34 +02:00
Armin Ronacher 083e616212 Release v0.82.0 2026-07-24 08:00:31 +02:00
Thomas MustierandArmin Ronacher 241431c69b fix(agent,ai): don't cache write compaction or branch summaries (#6618)
avoid cache writes for compaction and branch summaries

Co-authored-by: Armin Ronacher <armin.ronacher@active-4.com>
2026-07-23 23:03:23 +02:00
Mario Zechner 20be4b18d4 Release v0.81.1 2026-07-21 18:40:08 +02:00
Mario Zechner 9c480b6ad2 Release v0.81.0 2026-07-21 15:28:05 +02:00
Mario Zechner f8b74a4507 fix: complete extension usage accounting
closes #6509
2026-07-20 17:06:22 +02:00
Mario Zechner 58575888f5 docs(coding-agent): fix obsolete extension UI examples closes #6735 2026-07-17 09:36:59 +02:00
Armin Ronacher 8dc78834cd Release v0.80.10 2026-07-16 23:59:41 +02:00
Armin Ronacher 2d16f92973 Release v0.80.9 2026-07-16 19:17:57 +02:00
David Brailovsky 3524cd4c85 Merge remote-tracking branch 'origin/main' into add-kimi-deferred-tools 2026-07-16 17:30:50 +02:00
David Brailovsky fae7176cb9 Release v0.80.8 2026-07-16 16:35:16 +02:00
David Brailovsky f16b4e0cda add deferred tools support for kimi in openai-completions api 2026-07-16 12:26:56 +00:00
Mario Zechner 5e336cfa80 Merge origin/main into model runtime changes 2026-07-15 13:00:45 +02:00
Mario Zechner cd7cad4ee2 feat(coding-agent): merge origin/main into model runtime facade 2026-07-15 12:25:36 +02:00
Armin Ronacher 818d67457c Release v0.80.7 2026-07-14 18:36:46 +02:00
Mario Zechner 9993c96907 feat(coding-agent): replace model registry with model runtime
Move provider auth and OAuth flows onto pi-ai Models, compose models.json and extension overlays through ModelRuntime, and retain ModelRegistry as an extension compatibility facade.
2026-07-14 17:48:45 +02:00
Armin Ronacher 2b3fda9921 Release v0.80.6 2026-07-10 01:16:55 +02:00
Mario Zechner fbdd46389c feat(ai): add max thinking level 2026-07-09 22:30:53 +02:00
Armin Ronacher cc62baa442 Release v0.80.5 2026-07-09 21:04:06 +02:00
Armin Ronacher 912d0953f6 Release v0.80.4 2026-07-09 20:52:57 +02:00
Mario Zechner 1ffca0f2aa fix(coding-agent): align reload descriptions
closes #6395
2026-07-09 11:47:44 +02:00