Commit graph

3101 commits

Author SHA1 Message Date
Vegard Stikbakke
2b00dade7c Revert "fix(coding-agent): abort stuck context hooks"
Some checks are pending
CI / build-check-test (push) Waiting to run
This reverts commit 6757561546.
2026-07-07 07:14:27 +02:00
Mat
244f1deaf1
feat(coding-agent): add before_provider_headers extension hook (#6350)
Some checks are pending
CI / build-check-test (push) Waiting to run
* feat(coding-agent): add before_provider_headers extension hook

Extensions can already rewrite the request payload through before_provider_request, but there is no way to adjust the outgoing HTTP
headers of a provider call. This hook fills that gap for cases like request tracing, session correlation, or tenant routing.

Handlers mutate the headers map in place - a null value deletes a header - and the return value is ignored, so a handler cannot accidentally drop auth or attribution headers by
forgetting to spread.

* docs(coding-agent): document before_provider_headers extension hook

Add the before_provider_headers section and lifecycle-diagram entry to
extensions.md; drop the now-superseded proposal file.
2026-07-06 22:35:56 +02:00
Victor Araújo
b3dff19a04
feat(coding-agent): add InlineExtension type for named inline extension factories (#6267)
* feat(coding-agent): add InlineExtension type for named inline extension factories

* test(coding-agent): update utilities and add regression test for InlineExtension
2026-07-06 20:59:37 +02:00
Armin Ronacher
c8ada4e76e
Improve project-local pi config (#6309)
* feat(coding-agent): improve config resource overrides

* fix(coding-agent): simplify config resource overrides
2026-07-06 20:50:30 +02:00
Armin Ronacher
8c0ccd14b3
fix(ai,agent,coding-agent): normalize null message content at ingestion boundaries (#6343)
The Message types require content to always be present, but untyped JS
extension tools, hand-built histories, and old or hand-edited session
files can violate that contract, crashing rendering, compaction, and
provider request conversion with 'content is not iterable'.

Normalize null/missing content to an empty array at the ingestion
boundaries instead of guarding every consumer:

- transformMessages (choke point before every provider request)
- createToolResultMessage in the agent loop
- session entry loading (message and custom_message entries)
- extension custom messages (sendCustomMessage, before_agent_start)
- message_end extension replacements

fixes #6259, fixes #6276
2026-07-06 20:47:08 +02:00
Vegard Stikbakke
6efc09b7eb fix(coding-agent): clear label timestamp cache on new sessions
Some checks are pending
CI / build-check-test (push) Waiting to run
closes #6354
2026-07-06 15:31:32 +02:00
Armin Ronacher
478301342b test: use quiet dot reporters and show output only for failing tests
Switch vitest packages (ai, agent, coding-agent) to the dot reporter
with silent: passed-only so passing tests stay quiet while failing
tests still print their console output and full diffs. Add the
github-actions reporter on CI for inline annotations. Switch the tui
node:test runner to the dot reporter as well.
2026-07-05 23:17:17 +02:00
Armin Ronacher
75ac0cb0e6 fix(coding-agent): stabilize auto-compaction threshold test 2026-07-05 23:14:10 +02:00
Armin Ronacher
604ac652d0 fix: CI 2026-07-05 22:45:18 +02:00
Armin Ronacher
035ea9c856 fix: remove redundant record guards 2026-07-05 18:55:09 +02:00
Armin Ronacher
a1b336d73e fix(coding-agent): allow extra edit replacement fields 2026-07-04 01:52:17 +02:00
Vegard Stikbakke
83cbfc6521 fix(coding-agent): remove Vercel AI Gateway attribution 2026-07-03 15:14:01 +02:00
Raj
4a9c962b59
fix(coding-agent): add pnpm self-update prune hint (#6279)
Adds a pnpm-specific self-update recovery hint when pi update fails during self-update.
Fixes #6215.
2026-07-03 12:58:35 +02:00
Vegard Stikbakke
ca09b2b1a8 fix(coding-agent): skip unauthenticated default model
closes #6231
2026-07-02 10:48:11 +02:00
Vegard Stikbakke
6757561546 fix(coding-agent): abort stuck context hooks
closes #6234
2026-07-02 10:02:32 +02:00
Vegard Stikbakke
ec857fece5 fix(coding-agent): set executionMode: sequential on question example tool
The question extension tool blocks on ctx.ui.custom() but omitted
executionMode, so multiple question calls in one assistant turn ran
under the default parallel mode and raced on the editor slot. Only the
last question rendered; earlier calls hung pending forever.

Set executionMode: "sequential" so the agent loop serializes the
batch. Wrappers already propagate the field to the core.

closes #6189
2026-07-02 09:01:15 +02:00
Vegard Stikbakke
f8bec25f34 fix(coding-agent): surface auth storage save failures
closes #6223
2026-07-01 21:24:26 +02:00
Vegard Stikbakke
f58c115626 fix(coding-agent): serialize split-turn compaction summaries
Some checks are pending
CI / build-check-test (push) Waiting to run
closes #5536
2026-07-01 15:37:00 +02:00
Mario Zechner
ba10b60b51 fix(coding-agent): add entry renderers for session entries 2026-07-01 11:30:26 +02:00
Vegard Stikbakke
040f0a5197 feat(coding-agent): expose model resolution helpers
closes #6201
2026-07-01 10:22:35 +02:00
Vegard Stikbakke
85b7c24741 fix(coding-agent): reject non-positive bash timeouts 2026-07-01 09:03:00 +02:00
Vegard Stikbakke
cbcf4e04c3 fix(coding-agent): reject oversized bash timeouts
closes #6181
2026-07-01 08:49:31 +02:00
Mario Zechner
dd87c02cbf Add [Unreleased] section for next cycle
Some checks are pending
CI / build-check-test (push) Waiting to run
2026-06-30 22:29:44 +02:00
Mario Zechner
a23abe4a69 Release v0.80.3 2026-06-30 22:29:41 +02:00
Mario Zechner
f98a154d87 docs: audit changelog entries 2026-06-30 22:24:42 +02:00
Mario Zechner
fd6659dd5d fix(coding-agent): preserve run prompt during tool refresh
Some checks are pending
CI / build-check-test (push) Waiting to run
closes #6162
2026-06-30 14:08:48 +02:00
Mat
e547bb9f41
fix(coding-agent): refresh session state before next turn 2026-06-30 13:56:04 +02:00
Mario Zechner
9be55bc773 fix(coding-agent): apply output padding to user messages
closes #6168
2026-06-30 11:55:40 +02:00
Alexey Zaytsev
6564d94717
feat(coding-agent): add configurable assistant output padding
Closes #6168
2026-06-30 11:44:34 +02:00
Mario Zechner
2117b61c6b fix(coding-agent): handle undici mid-stream client errors
closes #6133
2026-06-30 11:44:14 +02:00
Alexey Zaytsev
726a9c526c fix(coding-agent): emit session name changes to extensions 2026-06-30 00:40:15 -05:00
Mario Zechner
927e98068c fix(coding-agent): fix compaction event regression test
Some checks are pending
CI / build-check-test (push) Waiting to run
2026-06-29 17:12:19 +02:00
Mario Zechner
5d499272a8 fix(coding-agent): stabilize interactive status indicators
Closes #6026
2026-06-29 16:53:39 +02:00
Mario Zechner
a8c692c712
Merge pull request #6074 from yzhg1983/private/pre-prompt-compaction-no-continue
fix(coding-agent): avoid pre-prompt compaction continue
2026-06-28 17:49:12 +02:00
Mario Zechner
234c2ad54c
Merge pull request #6078 from geraschenko/rpc-get-entries-tree
feat(coding-agent): add get_entries and get_tree RPC commands
2026-06-28 17:46:26 +02:00
Armin Ronacher
5a073885b5 feat(coding-agent): add external editor setting
Some checks are pending
CI / build-check-test (push) Waiting to run
Closes #6122
2026-06-27 23:57:46 +02:00
Armin Ronacher
f2e9d75388 fix(coding-agent): preserve backslash escapes in user messages
Some checks are pending
CI / build-check-test (push) Waiting to run
closes #6105
2026-06-27 19:24:14 +02:00
Armin Ronacher
622eca7608 feat(coding-agent): add installer lock generation
Some checks are pending
CI / build-check-test (push) Waiting to run
2026-06-26 14:45:15 +02:00
Cristina Poncela Cubeiro
87ad8243cb
feat(experimental): pi orchestrator 2026-06-26 13:46:22 +02:00
Cristina Poncela Cubeiro
0760bbae9b fix: lockfile drift 2026-06-26 13:30:29 +02:00
Cristina Poncela Cubeiro
988990f1c2 fix: lockfile drift 2026-06-26 13:12:43 +02:00
Cristina Poncela Cubeiro
122527b22a fix: rpc-entry and bun support 2026-06-26 10:01:16 +02:00
Anton Geraschenko
7ba1b6bfef feat(coding-agent): add get_entries and get_tree RPC commands
Adds two read-only RPC commands exposing existing SessionManager reads:

- get_entries: all session entries in append order, with optional since-entry-id cursor (strictly-after semantics, error on unknown id), plus current leafId.
- get_tree: getTree() roots plus current leafId.

Since sessions are append-only trees with stable entry ids, an entry id is a durable cursor: external orchestrators can use these commands to catch up after a restart without losing pre-compaction history, and can observe branch structure (/tree jumps, abandoned branches) that get_messages hides.
2026-06-25 09:38:35 -07:00
Mario Zechner
1d48616328 Fix examples, update to latest undici for vuln fix 2026-06-25 16:01:07 +02:00
Michael Yu
73581ea995 fix(coding-agent): avoid pre-prompt compaction continue 2026-06-25 21:43:03 +08:00
Mario Zechner
0d145e895c fix(coding-agent): shorten invalid session error
Follow-up to #6002
2026-06-25 15:20:08 +02:00
Mario Zechner
774288587f fix(coding-agent): update OpenAI default model 2026-06-25 15:18:18 +02:00
Mario Zechner
543710f643 fix(coding-agent): reject invalid session files
closes #6002
2026-06-25 15:16:18 +02:00
Mario Zechner
f14b3594c1 fix(coding-agent): show length stop errors
closes #4290
2026-06-25 14:50:14 +02:00
Armin Ronacher
e454f50b48 fix(coding-agent): allow session id for no-session runs
closes #6070
2026-06-25 14:44:44 +02:00