Commit graph

3751 commits

Author SHA1 Message Date
Alexey Zaytsev
2eaffb1caa feat(coding-agent): upgrade Mermaid terminal rendering 2026-09-18 23:20:37 -03:00
Christian Klotz
59eb4c393c
fix(coding-agent): clarify copy shortcut description (#9745)
Fixes #9660
2026-09-18 14:12:14 +01:00
David Brailovsky
1e39862f67 fix(coding-agent): detect llama.cpp chat-template thinking
Inspect loaded models through /props and configure boolean thinking levels for templates supporting enable_thinking.

Fixes #9528
2026-09-18 14:54:17 +02:00
Mario Zechner
cf33309117 Merge remote-tracking branch 'origin/main' 2026-09-18 13:39:36 +02:00
Mario Zechner
0801601621 feat(durable): move Pico into dedicated package 2026-09-18 13:39:09 +02:00
Vegard Stikbakke
8bdcd4498a fix(coding-agent): compact oversized trailing tool results
Fall back to the latest safe assistant boundary when trailing tool results exceed the retained-token budget, allowing older history to compact before the next provider request.

Closes #9740
2026-09-18 13:38:30 +02:00
Mario Zechner
eed5263cdd Merge remote-tracking branch 'origin/main' into HEAD 2026-09-18 12:33:14 +02:00
Mario Zechner
cf8d5fac30 feat(agent): add Pico storage foundation 2026-09-18 12:32:00 +02:00
Ramiz Wachtler
fe219d7f8d
feat(coding-agent): format bash tool durations to support hours, minutes, seconds (#9742) 2026-09-18 12:25:15 +02:00
David Brailovsky
13784598d2 fix(coding-agent): suppress repeated Anthropic thinking drop notices
Fixes #9391
2026-09-18 09:58:42 +02:00
Ramiz Wachtler
46c9de402b
feat(coding-agent): add event handler unsubscribe (#9630) 2026-09-17 21:44:26 +02:00
Armin Ronacher
16292398af fix(coding-agent): send forced system prompts without recording them
Remove SystemMessage.replace. A prompt forced from before_agent_start is a rendering
of the current prompt for the run, not conversation state: persisting it as a
replacing system message wrote the full prompt and tool list on every change,
lost the structured sections while forced, and disabled mid-conversation system
messages for the rest of the session once a replacement existed.

The transcript now always records section patches. AgentSession wraps
transformContext and, when a forced prompt is active, collapses the system
messages into one head carrying the forced text and the current tools. Providers
receive the same request as before; nothing is persisted and the projection ends
with the run.

The evals harness validated the without_docs variant from the transcript, which
relied on the persisted replacement. Its transform extension now records the
prompt it forced and validates that instead.
2026-09-17 20:02:23 +02:00
David Brailovsky
7811394112 docs(coding-agent): update changelog 2026-09-17 17:51:25 +00:00
David Brailovsky
a8b3dd1998 fix(coding-agent): fail signal-terminated shell commands
Map signal termination to conventional nonzero exit codes and reject null exit codes from custom shell operations while preserving partial output.

fixes #9577
2026-09-17 17:01:48 +02:00
David Brailovsky
4658534986 fix(coding-agent): shorten Anthropic thinking drop notices 2026-09-17 16:38:56 +02:00
Mario Zechner
7e19507681 feat(coding-agent): add experimental micro agent 2026-09-17 16:33:03 +02:00
Mario Zechner
0e19ac1161 Merge remote-tracking branch 'origin/main' into pico 2026-09-17 16:31:25 +02:00
Mario Zechner
729d5cb74d docs(agent): finalize Pico5 specification set 2026-09-17 14:57:03 +02:00
Christian Klotz
42cd371ba4
feat(coding-agent): add TUI context footer eval (#9705) 2026-09-17 13:21:31 +01:00
Armin Ronacher
e4c75a7322 fix(coding-agent): replace the system prompt when a handler forces it
Add SystemMessage.replace: replaying a system message with the flag discards the
accumulated prompt content, sections, and tools before applying it, and providers
collapse the transcript into one leading system message whenever a later message
replaces it.

A forced prompt from before_agent_start is opaque, so it is persisted as a replace
message holding the text in content with no sections (the agent loop fills in the
full tool set). Leaving force mode persists another replace message with the
structured sections. Previously the forced prompt became a preamble section patch,
so models with native mid-conversation system messages kept the original prompt
as their leading system prompt and received the forced one as a later update.
2026-09-16 23:35:01 +02:00
Christian Klotz
509ee2bd0b
fix(coding-agent): fail closed on user bash hook errors (#9662)
* fix(coding-agent): fail closed on user bash hook errors

Prevent failed execution-routing hooks from falling back to the local shell.

Fixes #9068

* fix(coding-agent): validate user bash hook results

* docs(coding-agent): clarify user bash result semantics

* docs(coding-agent): streamline user bash semantics

* fix(coding-agent): strengthen user bash regressions

* docs(coding-agent): clarify user bash breaking change
2026-09-16 17:21:17 +01:00
Mario Zechner
fde6d778f8 fix(coding-agent): toggle summary entries on click 2026-09-16 18:08:06 +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
metaist
9b791a4cc1
fix(coding-agent): avoid transcript scans for exact session IDs (#9601)
Fixes #9440
2026-09-16 11:15:16 +02:00
David Brailovsky
b03a367a4f feat(coding-agent): allow configuring Anthropic fallback models
Allow models.json overrides to replace or disable server-side fallback metadata.

Fixes #9294
2026-09-16 10:50:24 +02:00
Armin Ronacher
60e7e76bd7 fix(coding-agent): surface clipboard backend failures
closes #9618
2026-09-16 01:29:52 +02:00
Armin Ronacher
3349e1db18 fix(coding-agent): reject unverified local clipboard writes
fixes #9618
2026-09-16 00:08:02 +02:00
Christian Klotz
4c2d91339a
fix(coding-agent): export extension event hook types (#9642)
* fix(coding-agent): export extension event hook types

Fixes #9511

* fix(ai): stabilize Bedrock cache cost regression

* fix(ai): honor Bedrock profile pricing in cache test
2026-09-15 22:47:59 +01:00
Vegard Stikbakke
d92eb8d4b1 feat(ai): enable Fireworks Messages deferred tool loading 2026-09-10 21:18:35 +02:00
Vegard Stikbakke
46bde88a1c feat(coding-agent): support per-model compaction token budgets
Closes #8133
2026-09-10 08:37:20 +02:00
Christian Klotz
f3564a1d41
docs: validate documentation navigation and reachability (#9380)
* feat: use docs manifest for documentation evals

* feat: support nested documentation navigation

* docs(coding-agent): validate documentation reachability

* docs(coding-agent): remove catalog schema version
2026-09-09 17:34:42 +02:00
David Brailovsky
acaa253cc8 fix(coding-agent): validate extension tool parameter schemas
Reject malformed extension tools during registration instead of allowing them to break provider request serialization.

Fixes #9300
2026-09-09 12:15:18 +02:00
David Brailovsky
c37b0e03b5 fix: cap agent retry backoff
Add a configurable 60-second default cap for assistant and summarization retry delays across coding-agent and the agent harness.

Fixes #8826
2026-09-09 11:54:56 +02:00
David Brailovsky
6160683a4a fix(coding-agent): await queue operations in concurrent tests
Account for asynchronous input handlers before asserting queued message state.
2026-09-08 17:30:54 +02:00
David Brailovsky
faa9863cb8 fix(coding-agent): run input handlers for queued messages
Apply input extension transforms and handling to direct steering and follow-up messages while preserving their input source.

Fixes #8718
2026-09-08 17:18:37 +02:00
Armin Ronacher
4a6ed01945
fix(coding-agent): update runtime dependencies (#9341) 2026-09-08 16:04:35 +02:00
Vegard Stikbakke
f53ac11351 fix(coding-agent): collapse empty fullscreen footers
closes #8919
2026-09-08 14:16:18 +02:00
Christian Klotz
9211da1723
feat: add implementation-backed documentation evals (#9280)
* feat: add implementation-backed documentation evals

Generate one model-backed audit per cataloged documentation page and validate the catalog deterministically. Support terminating custom audit tools through the Pi eval harness.

* feat: inline documentation audit schema

* docs: document focused documentation eval command

* feat: simplify documentation audit setup
2026-09-07 20:21:39 +01:00
Vegard Stikbakke
c1d4c80111 fix(coding-agent): embed all session status spinners in the editor border 2026-09-07 15:31:00 +02:00
Ramiz Wachtler
aa23e784c6
fix(coding-agent): update repository links to "earendil-works/pi" (#9278)
- update repository links in prompts, docs, and code to use `earendil-works/pi` instead of `earendil-works/pi-mono`
2026-09-07 14:09:39 +02:00
Vegard Stikbakke
47acd8e6cf fix(coding-agent): preserve active operation UI during tree navigation
Follow-up to e687434a6.

Recheck compaction state after navigation dialogs and response cancellation before replacing status indicators or escape handlers. Document navigation conflicts and add regression coverage.
2026-09-07 12:59:20 +02:00
Ramiz Wachtler
1f78cea7ad
fix(coding-agent): allow extensions to stream from custom providers (#9272)
- fixes #8964
2026-09-07 12:16:12 +02:00
yaogangqiang
e687434a60
fix(coding-agent): reject tree navigation during compaction (#9179)
Fixes #9178
2026-09-07 10:32:10 +02:00
Armin Ronacher
9767ba275f fix(coding-agent): select Radius models after catalog discovery 2026-09-06 00:30:17 +02:00
Armin Ronacher
fcff255b00 feat(coding-agent): prefer strict sampling for built-in tools by default 2026-09-05 23:54:20 +02:00
Armin Ronacher
caf6dfe731
feat(tui): Simplify clipboard handling (#9163)
Replace the external clipboard dependency with small macOS, Windows,
and X11 helpers and integrate them into coding-agent.

Run native clipboard operations on worker threads and make command
fallbacks asynchronous. Preserve incremental X11 transfers, legacy text
encodings, native image formats, and existing Wayland and platform tools.

Include native prebuilds with ARM64 page alignment, packaging updates,
and regression coverage.
2026-09-05 23:52:32 +02:00
Armin Ronacher
da840b6216 Add [Unreleased] section for next cycle 2026-09-05 13:54:52 +02:00
Armin Ronacher
d981de1229 Release v0.85.1 2026-09-05 13:54:46 +02:00
Armin Ronacher
cce6553987 docs(tui): document Alt-wheel scrolling in unreleased changelogs 2026-09-05 13:40:22 +02:00
Armin Ronacher
082f7577c2 fix(coding-agent): make footer debounce tests deterministic 2026-09-05 13:40:16 +02:00