Commit graph

772 commits

Author SHA1 Message Date
Armin Ronacher
460191cfcf feat(coding-agent): include context in Radius session shares 2026-08-23 20:45:14 +02:00
Armin Ronacher
cec3a91c02 feat(coding-agent): defer uncommon syntax grammars 2026-08-22 22:50:12 +02:00
Armin Ronacher
f4585b8bec fix(coding-agent): simplify session sharing links 2026-08-21 18:33:27 +02:00
Cristina Poncela Cubeiro
77f2d1235e chore(interactive-mode): get rid of theme, only share via radius if logged in 2026-08-21 16:47:08 +02:00
Cristina Poncela Cubeiro
686f3487f5
feat(interactive-mode): share via radius artifacts under experimental (#8443) 2026-08-21 16:05:01 +02:00
Cristina Poncela Cubeiro
cffe4d776c fix(settings-selector): nit ordering in default t.l. per model 2026-08-20 14:42:47 +02:00
Cristina Poncela Cubeiro
768184923a fix(settings-selector): nit spacing 2026-08-20 14:28:33 +02:00
Cristina Poncela Cubeiro
1d3503fb9b
feat(settings-selector): show default, make default searchable for model and thinking (#8399) 2026-08-20 13:55:27 +02:00
Cristina Poncela Cubeiro
5b3caaf4cb chore(settings-selector): get rid of default thinking in settings, ctrl + S is enough 2026-08-20 13:35:21 +02:00
Cristina Poncela Cubeiro
5133c9284f chore(settings-selector): get rid of --default and global model
ctrl+s is enough, there goes my joy
2026-08-20 13:30:47 +02:00
Cristina Poncela Cubeiro
496185f6e4 feat(coding-agent): /thinking command 2026-08-19 18:54:52 +02:00
Cristina Poncela Cubeiro
9c8070fbe4 feat(settings-selector): ctrl + s persists /model 2026-08-19 18:41:53 +02:00
Cristina Poncela Cubeiro
f0a2880f29 fix(settings-selector): revert token estimate removal 2026-08-19 18:26:36 +02:00
Cristina Poncela Cubeiro
a669db3c33 fix(settings-selector): show modelid [provider] like /model 2026-08-19 18:25:14 +02:00
Cristina Poncela Cubeiro
ee29aa118b feat(settings-selector): make default model and thinking level searchable 2026-08-19 17:43:21 +02:00
Cristina Poncela Cubeiro
98767a25d2 fix(settings-selector): remove token estimates 2026-08-19 17:29:02 +02:00
Cristina Poncela Cubeiro
2ff8ba6223
fix(coding-agent): keep model and thinking level changes session scoped (#8356)
* fix(coding-agent): keep model and thinking level changes session scoped

* fix(coding-agent): persist requested default thinking level

* feat: --default arg to persist

* fix

* fix(coding-agent): keep model and thinking level changes session scoped

* fix: make default thinking level per model show list of models

* cleanup export
2026-08-19 16:48:29 +02:00
Armin Ronacher
1355cd36e0 fix(coding-agent): normalize UTF-8 BOMs in text inputs
closes #8337
2026-08-19 14:11:02 +02:00
Vegard Stikbakke
678f0af30d fix(coding-agent): show startup diagnostics in TUI
fixes #7829
2026-08-19 13:07:57 +02:00
Christian Klotz
830a0a59e9
fix(coding-agent): expose tool metadata at stream start (#7953)
* fix(coding-agent): expose tool metadata at stream start

* fix(coding-agent): centralize message update serialization
2026-08-19 12:24:30 +02:00
Vegard Stikbakke
836aee6d38 feat(coding-agent): show compaction usage notices 2026-08-18 13:27:00 +02:00
Cristina Poncela Cubeiro
a1bc0ec790
fix: llama.cpp guidance as no default (#8236) 2026-08-17 12:15:56 +02:00
Panoplos
4caa3c440b
fix(tui): route selection copy through the host clipboard (#8110)
TuiAltScreen.copySelectionToClipboard() wrote a bare OSC 52 sequence and
flashed "Copied!" unconditionally. Terminals that ignore OSC 52 clipboard
writes (macOS Terminal.app, VTE terminals, tmux without OSC 52 passthrough)
left the system clipboard untouched while the toast reported success.

Add an injectable copySelection option to TuiAltScreenOptions (an async
handler returning whether the copy succeeded) and use it when provided,
falling back to the existing OSC 52 write otherwise. The coding agent now
injects its native clipboard implementation (clipboard addon + pbcopy /
wl-copy / xclip / xsel), so selection copy reaches the real clipboard and
the toast only fires on verified success, with "Copy failed" otherwise.

Closes #7761

Co-authored-by: 富永 誠 <makoto@credify.one>
2026-08-14 11:46:46 +02:00
Anders Bech Mellson
ab0dc51fcf
fix(coding-agent): use APP_NAME in user-facing messages (#8067)
APP_NAME is derived from piConfig.name so a rebranded distribution shows
its own name, and roughly 90 call sites already use it. Twelve
user-facing strings hardcoded "pi" instead, so those messages named the
upstream binary regardless of piConfig.name:

- the trust project folder prompt
- "Restart pi for this to take effect." after a saved trust decision
- the "Start without extensions" hint on an extension load failure
- the invalid session file error
- the executable location in the self-update-unavailable notice
- the three auth command usage strings and the unknown auth command
  error, which are printed next to `${APP_NAME} --help` in main.ts and
  so contradicted it
- "is configured outside pi." in the provider setup dialog
- the uncaughtException line

Output is unchanged for pi itself: piConfig has no name, so APP_NAME
falls back to "pi".
2026-08-14 11:26:20 +02:00
Mario Zechner
e14afc648e fix(coding-agent): collapse fallback tool output closes #7979 2026-08-14 10:22:36 +02:00
Vegard Stikbakke
6f707eb360 fix(coding-agent): show managed-tool startup status in TUI 2026-08-13 15:54:34 +02:00
Armin Ronacher
7d8c11d37f fix(coding-agent): share concurrent model catalog refreshes 2026-08-13 09:43:36 +02:00
Christian Klotz
c93ea6ccf0
fix(coding-agent): preserve usage in streaming events (#7982)
Fixes #7911
2026-08-13 00:32:26 +03:00
Ramiz Wachtler
9795d60230
feat(coding-agent): add per-run theme selection (#7722)
- add `--use-theme` for fixed and terminal-aware theme pairs
- keep invocation state non-persistent until an explicit selection
- preserve active themes across previews, reloads, and HTML exports
2026-08-12 16:25:38 +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
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
c96bfaccd0 fix(coding-agent): support Windows fullscreen right-click paste 2026-08-06 22:39:40 +02: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
Armin Ronacher
16ad96ae89 feat(tui): add configurable prompt history actions 2026-08-05 21:34:21 +02:00
Alexey Zaytsev
66534fbdc7
feat(coding-agent): render Mermaid diagrams (#7624) 2026-08-05 09:43:24 +02:00
Armin Ronacher
fc4a3d99bc fix(coding-agent): honor output padding for errors 2026-08-04 22:00:27 +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
Armin Ronacher
3d264e85b4 fix(coding-agent): avoid terminal query leak on fullscreen exit 2026-08-03 19:18:39 +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
Armin Ronacher
b103937d3c
feat(coding-agent): switch UI modes at runtime (#7555) 2026-08-03 17:32:48 +02:00
Armin Ronacher
ebf33c0c22 fix(coding-agent): flash fullscreen copy confirmation 2026-08-03 12:00:39 +02:00
Vegard Stikbakke
a077fff0b2 fix(coding-agent): identify failed model catalogs 2026-08-03 08:43:30 +02:00
Mario Zechner
b70c0f5b4e
Revert "feat(tui): add switchable terminal renderers (#7440)" (#7473)
This reverts commit 1fdf21621d.
2026-08-02 09:21:45 +02:00
Armin Ronacher
1fdf21621d
feat(tui): add switchable terminal renderers (#7440)
Allow coding-agent UI modes to switch at runtime while preserving terminal, focus, input, and renderer state.
2026-08-02 09:21:17 +02:00
Armin Ronacher
b3ed27b3fe feat(coding-agent): add scrollbar thumb theme color 2026-07-31 17:41:40 +02:00
Armin Ronacher
6129a353b1 feat(tui): add configurable fullscreen scrollbars 2026-07-31 17:17:02 +02:00