Commit graph

1928 commits

Author SHA1 Message Date
Armin Ronacher
4d9aa837c2 feat(coding-agent): add configurable default tools 2026-08-12 15:27:01 +02:00
Cristina Poncela Cubeiro
47b5119d09
fix: trigger turn false should not start turn (#8022) 2026-08-12 15:16:05 +02:00
Armin Ronacher
7915cdac64 feat(ai): add strict tool schema conversion 2026-08-11 12:06:33 +02:00
Duncan Ogilvie
b987ead358
feat(agent): expose expandPromptTemplates in sendUserMessage (#7857) 2026-08-11 11:14:28 +02:00
Armin Ronacher
00121ed999
feat(tui): add fullscreen transcript search (#7913)
Search rendered primary scroll-view content with configurable navigation and theme-aware highlighting. Preserve manual scrolling and buffer fragmented mouse input during search.
2026-08-11 10:59:28 +02:00
distributedlock
3dd4623eee
Fix prompt formatting for current working directory (#7887) 2026-08-10 19:18:05 +02:00
Armin Ronacher
e47b8e37a6 feat(ai): use additional_tools for deferred tools
closes #7709
2026-08-07 23:05:23 +02:00
Armin Ronacher
ac4ac9eaf6 feat(coding-agent): configure fullscreen exit output 2026-08-07 18:30:28 +02:00
Armin Ronacher
666d8972ff fix(coding-agent): preserve TUI wrapper routing (closes #7731) 2026-08-07 00:40:44 +02:00
Armin Ronacher
7cb2a51c05 fix(coding-agent): reduce automatic theme detection delay 2026-08-07 00:22:00 +02:00
Armin Ronacher
4e64de6950 fix(coding-agent): soften PI environment guideline
Attempt to address #7128 without closing the issue.
2026-08-06 22:50:27 +02:00
Armin Ronacher
c96bfaccd0 fix(coding-agent): support Windows fullscreen right-click paste 2026-08-06 22:39:40 +02:00
Christian Klotz
6fb2d766ae
feat(coding-agent): add configurable Harness factory (#7686)
* feat(coding-agent): add Harness construction factory

* feat(coding-agent): configure Harness construction factory

* feat(coding-agent): expose Harness JSONL session file

* fix(agent): remove redundant bash environment test
2026-08-06 21:05:46 +03:00
Armin Ronacher
a261366bde feat(coding-agent): add auth preflight
closes #7152
2026-08-06 19:43:52 +02:00
Mehmet Aras
c03d78bdce
feat(ai): add Qwen Token Plan Individual provider (#7659) 2026-08-06 17:18:02 +02:00
Christian Klotz
9ab91fb93e
feat(coding-agent): expose tool prompt contributions (#7671) 2026-08-06 17:17:13 +02:00
muyiyr
1eb988cfe8
feat(agent): allow blocked tool calls to terminate (#7715)
Closes #5998
2026-08-06 17:14:48 +02:00
Christian Klotz
6189e53b33
fix: replace session summaries with durable metadata (#7708) 2026-08-06 13:09:02 +03:00
Armin Ronacher
b0bd0ff9d5 fix(coding-agent): only label known subscriptions in footer 2026-08-06 07:47:35 +02:00
Armin Ronacher
5446cd7545 feat(coding-agent): rename UI mode to TUI mode 2026-08-05 22:56:58 +02:00
Ted
6ca423447f
event bus leak fix (#7656) 2026-08-05 22:23:44 +02:00
Armin Ronacher
d4eaf052b2 fix(coding-agent): support path globs on Windows 2026-08-05 21:57:18 +02:00
Armin Ronacher
16ad96ae89 feat(tui): add configurable prompt history actions 2026-08-05 21:34:21 +02:00
m3
8ecf8a9883
feat(coding-agent): support AGENTS.override.md (#7681) 2026-08-05 21:24:31 +02:00
Armin Ronacher
3852cb2b81 fix(coding-agent): send prompts queued during compaction 2026-08-05 21:20:44 +02:00
Armin Ronacher
9524d3a580 fix(coding-agent): normalize Windows shell drive paths
Refs #7547
2026-08-05 20:42:05 +02:00
Armin Ronacher
4d68d93551 fix(coding-agent): shorten file lock retry delays 2026-08-05 16:16:58 +02:00
Armin Ronacher
2c79ce4532 fix(coding-agent): avoid custom store lock convoys 2026-08-05 16:16:58 +02:00
Armin Ronacher
7cf90c1d18 fix(coding-agent): avoid model store read lock contention 2026-08-05 11:30:43 +02:00
Cristina Poncela Cubeiro
845bb970f3
fix: build error on request info (#7645) 2026-08-05 09:56:43 +02:00
Alexey Zaytsev
66534fbdc7
feat(coding-agent): render Mermaid diagrams (#7624) 2026-08-05 09:43:24 +02:00
Petr Houška
46b53b995b
fix: retry transient management HTTP requests (#7632)
Retry idempotent coding-agent management requests for transient transport and HTTP failures while keeping one overall timeout budget across attempts.

Keep install telemetry single-shot because retrying it has no user-facing impact and could duplicate a side-effecting report.
2026-08-05 09:38:28 +02:00
Armin Ronacher
fc4a3d99bc fix(coding-agent): honor output padding for errors 2026-08-04 22:00:27 +02:00
Vegard Stikbakke
97f0ccdd96 fix(coding-agent): recursively merge nested settings, closes #7572 2026-08-04 13:04:02 +02:00
Mario Zechner
686f193e51 fix(ai): separate deferred request options 2026-08-04 12:45:00 +02:00
Vegard Stikbakke
e741cb05ca fix(coding-agent): preserve extension auth endpoints
closes #7579
2026-08-04 12:37:02 +02:00
David Brailovsky
382aa641cc
DRAFT: add openai background mode responses (#7339)
* initial attempt at implementing openai background responses api

* feat(ai): align deferred responses with harness spec

* fix: reject deferred messages in protocol v1
2026-08-04 11:27:47 +02:00
Vegard Stikbakke
ab5f8d88ee fix(coding-agent): retain heterogeneous auth model types
closes #6768
2026-08-04 11:05:27 +02:00
Vegard Stikbakke
18d65de623 fix(coding-agent): preserve Copilot summary endpoint
closes #6768
2026-08-04 11:00:30 +02:00
muyiyr
f27aaf66c0
docs(coding-agent): document streamSimple hook contract (#7576)
closes #7372
2026-08-04 08:44:41 +02:00
Petr Houška
523b5a4917
fix(coding-agent): normalize find root results (#7569)
Relativize absolute find results with path.relative() instead of slicing
at searchPath.length + 1. path.resolve() keeps the trailing separator for
root paths (POSIX / and Windows bare drive roots like I:\), so the slice
dropped the first character of the first path segment. Preserve directory
markers using platform-aware separators so Windows paths do not gain "//"
and valid POSIX backslashes remain unchanged.

This also avoids treating sibling paths with a shared prefix as children.
Relative results returned by custom glob operations now pass through
unchanged instead of being resolved against process.cwd(), which produced
invalid paths whenever cwd differed from the search path.

Fixes #6104
2026-08-04 00:05:48 +02:00
Duncan Ogilvie
25a2c8dcfe
Add support for generic sampling parameters (#7568) 2026-08-04 00:05:29 +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
Duncan Ogilvie
b06dc76fd7
fix(coding-agent): reinstall dependencies if git clean fails (#7570)
On Windows some files might be held open causing `git clean` to error.
This would leave the extension in a broken state and fail next startup.
2026-08-04 00:02:49 +02:00
Armin Ronacher
3d264e85b4 fix(coding-agent): avoid terminal query leak on fullscreen exit 2026-08-03 19:18:39 +02:00
Armin Ronacher
c72728bc1a fix(coding-agent): remove obsolete --alt shortcut 2026-08-03 19:00:35 +02:00
muyiyr
da66636cc4
fix(coding-agent): discover sessions through symlinked directories (#7552)
fixes #7497
2026-08-03 18:34:12 +02:00
Christian Klotz
a4475344fb
fix(coding-agent): make JSON streaming output linear (#7394)
Fixes #7290

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-08-03 18:33:22 +02:00
David Brailovsky
32850ef7c5
fix(coding-agent): resume after context-limited length stops (#7540)
* fix(coding-agent): resume after context-limited length stops

Treat length stops as context overflow when prompt usage is within 1% of
Pi's configured context window. Include cache-write tokens in that usage
and allow non-zero output because OpenAI may emit reasoning tokens before
returning an incomplete response.

After compaction, remove any retryable error or truncated-length assistant
message restored from persisted session history so the interrupted agent
turn can continue.

This is specifically for handling this case for openai models:
https://developers.openai.com/api/docs/guides/reasoning

> If the generated tokens reach the context window limit or the max_output_tokens value you’ve set, you’ll receive a response with a status of incomplete and incomplete_details with reason set to max_output_tokens. This might occur before any visible output tokens are produced, meaning you could incur costs for input and reasoning tokens without receiving a visible response.

This detection currently assumes the reported prompt usage is within 1% of
the context window configured in Pi. Its reliability therefore depends on
Pi's model contextWindow metadata matching the provider's effective limit.

Maybe we should consider treating OpenAI incomplete responses as requiring compaction
regardless of the local context-window estimate?

fixes #7020

* fix(coding-agent): recover truncated responses after compaction

Classify length stops by comparing provider-reported output usage with the model's intended output limit. Compact and retry once when generation ends below that limit, avoiding unreliable context-window estimates while preserving genuine max-output stops.

Normalize OpenAI Responses incomplete reasons so only max_output_tokens is treated as a length stop. Preserve qualified provider reasons for diagnostics, surface other reasons as errors, and use neutral truncation wording in the TUI.
2026-08-03 18:07:53 +02:00
David Brailovsky
e56893f4cd
fix(coding-agent): prevent auto-compaction race during manual compaction (#7370)
* fix(coding-agent): preserve agent events during compaction

Manual compaction already waits for the active agent run to settle, and summary generation does not emit Agent events. Keep the agent subscription connected so unexpected concurrent events are not dropped, and remove the obsolete reconnect helper.

closes #7253
2026-08-03 18:00:21 +02:00