Commit graph

5699 commits

Author SHA1 Message Date
Cristina Poncela Cubeiro
080932e53c
fix(package-manager): use semver.gt for version comparison (#8239) 2026-08-17 12:44:38 +02:00
Cristina Poncela Cubeiro
d3e3bbc011
fix: llama.cpp allow network for model discovery (#8238) 2026-08-17 12:36:17 +02:00
Cristina Poncela Cubeiro
a1bc0ec790
fix: llama.cpp guidance as no default (#8236) 2026-08-17 12:15:56 +02:00
Armin Ronacher
374e56e553 fix(tui): avoid duplicate VS Code right-click paste
closes #8186
2026-08-17 11:40:38 +02:00
Cristina Poncela Cubeiro
955a543b31
fix: expose sleeping llama.cpp models (#8235) 2026-08-17 11:40:11 +02:00
Vegard Stikbakke
c7c763f5c4 fix(coding-agent): clarify truncated recovery failure
closes #8130
2026-08-17 11:03:07 +02:00
Poison
86d001d36b
fix(ai): expose low thinking level for DeepSeek V4 Flash on opencode/opencode-go (#8181)
DEEPSEEK_V4_FLASH_THINKING_LEVEL_MAP (which enables the low effort level)
was only applied to deepseek/deepseek-v4-flash, so the same model served
through opencode and opencode-go only offered off/high/max. models.dev
reports reasoning_options effort values of low/high/max for these
providers, and the live opencode-go API accepts reasoning_effort=low
(verified against https://opencode.ai/zen/go/v1).

Apply the flash map to every deepseek-v4-flash variant on the deepseek,
opencode, and opencode-go providers. qwen-token-plan is left unchanged
since its gateway support for the low effort level is not verified.
2026-08-17 10:41:39 +02:00
Cristina Poncela Cubeiro
f47faf459f
fix: register flag type mismatch (#8123) 2026-08-17 09:42:51 +02:00
Cristina Poncela Cubeiro
8c2529daeb
fix: dont load root mds as skills in settings (#8012)
* fix: dont load root mds as skills in settings

* changelogololol

---------

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-08-17 09:37:37 +02:00
Cristina Poncela Cubeiro
ca21c16861
fix: single edit input (#8011)
* fix: single edit input

* changelog go brrrr
2026-08-17 09:36:17 +02:00
Vegard Stikbakke
58302d34e7 feat(coding-agent): support compaction routing sessions 2026-08-17 07:34:52 +02:00
Vegard Stikbakke
47bf47f11f docs(coding-agent): clarify compaction paths 2026-08-17 07:10:50 +02:00
Cristina Poncela Cubeiro
d3ab2af969
fix: track kimi cached tokens (#8119)
* fix: track kimi cached tokens

* changelog
2026-08-16 17:48:06 +02:00
Milosz Jankiewicz
70e878d4cf
feat(ai): route xAI models through Responses and default to Grok 4.6 (#8124)
* feat(ai): route xAI models through Responses and default to Grok 4.6

Send built-in xAI catalog models through the Responses API with
store: false and include reasoning.encrypted_content so encrypted
reasoning is requested and replayed, including future models.dev
additions. Thinking levels come from models.dev reasoning_options
(grok-4.6 exposes xhigh); models without verified options
(grok-build-0.1) keep reasoning always on and never send unsupported
"none"/"minimal" efforts. Narrow the xAI provider to the Responses API,
send pi's runtime User-Agent on xAI requests for provider-side
attribution, and make Grok 4.6 the default xAI model.

* fix(ai): drop duplicate xAI encrypted-reasoning tests

Azure already covers the shared replay path; keep the xAI-specific include-without-effort case next to the existing request tests.

---------

Co-authored-by: Jaaneek <Jaaneek@users.noreply.github.com>
2026-08-16 17:47:38 +02:00
Vegard Stikbakke
086c32e745 fix(ai): retry Copilot GET /models once on 429 during login
The login-time policy updates can drain the Copilot API rate-limit
bucket, in which case the follow-up GET /models is rejected with 429
(observed response: retry-after: 2, body 'too many requests') and login
aborts. Honor Retry-After and retry once instead of failing (#8121).
2026-08-15 07:33:05 +02:00
Vegard Stikbakke
d5278eaac3 fix(ai): enable Copilot model policies sequentially during login
Batching policy POSTs at concurrency 4 still bursts 30 requests during
login, which trips the Copilot API rate limiter and makes the following
GET /models fail with 429, aborting login (#8121). Send the policy
updates one at a time instead.
2026-08-15 07:24:34 +02:00
github-actions[bot]
b1efcf7d7c chore: approve contributors from issue #8124 2026-08-14 13:46:34 +00:00
Mario Zechner
e429d90b80 fix(coding-agent): update Z.AI Coding Plan defaults
closes #8096
2026-08-14 13:07:48 +02:00
Armin Ronacher
c36552212e agents: Adjust rules for changelog entries 2026-08-14 12:45:26 +02:00
David Brailovsky
0e0021fbbe Add [Unreleased] section for next cycle 2026-08-14 12:00:04 +02:00
David Brailovsky
914cf1472e Release v0.84.2 2026-08-14 12:00:00 +02:00
David Brailovsky
9b4adc823f docs: audit changelogs since v0.84.1 2026-08-14 09:50:22 +00:00
David Brailovsky
d10c974b94 docs: audit changelogs since v0.84.1 2026-08-14 11:47:05 +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
github-actions[bot]
48bd3f424d chore: approve contributors from issue #8092 2026-08-14 09:41:22 +00: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
5093641a56 fix(ai): preserve Google length stops with tool calls
closes #8059
2026-08-14 11:25:40 +02:00
github-actions[bot]
c5b7cd2a33 chore: approve contributors from issue #8063 2026-08-14 09:20:04 +00:00
github-actions[bot]
f3c406a9b2 chore: approve contributors from issue #8018 2026-08-14 08:51:32 +00:00
github-actions[bot]
0589435e7d chore: approve contributors from issue #8007 2026-08-14 08:49:18 +00:00
Mario Zechner
e14afc648e fix(coding-agent): collapse fallback tool output closes #7979 2026-08-14 10:22:36 +02:00
Mario Zechner
83aed2ba58 fix(tui): handle generic SGR mouse releases
closes #7963
2026-08-14 10:11:15 +02:00
Mario Zechner
6633618350 fix(coding-agent): update vulnerable nanoid dependency 2026-08-14 10:09:35 +02:00
github-actions[bot]
721e2768ee chore: approve contributors from issue #7973 2026-08-14 08:03:33 +00: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
David Brailovsky
5f7195c51e fix(coding-agent): update Cloudflare compat test model 2026-08-14 09:32:24 +02:00
David Brailovsky
9d2ec7ffab fix(ai): use pi user agent for Kimi Coding requests 2026-08-13 22:26:38 +02:00
Vegard Stikbakke
6f707eb360 fix(coding-agent): show managed-tool startup status in TUI 2026-08-13 15:54:34 +02:00
Vegard Stikbakke
46bb9a2c3b docs(coding-agent): clarify Windows paths in settings 2026-08-13 09:54:58 +02:00
Armin Ronacher
7d8c11d37f fix(coding-agent): share concurrent model catalog refreshes 2026-08-13 09:43:36 +02:00
Mario Zechner
581d75a89c docs(coding-agent): document model catalog refresh 2026-08-13 00:53:22 +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
541045ae0e fix(coding-agent): preserve extension tools with defaults 2026-08-12 15:42:55 +02:00
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
Vegard Stikbakke
6d520c58d0 chore(docs): fix ascii alignment in compaction docs 2026-08-12 14:56:26 +02:00
David Brailovsky
2e4d239594 fix(tui): give focused fullscreen overlays wheel and viewport keys
Skip TuiAltScreen viewport consume for wheel and alt-screen scroll
keys when a visible overlay has focus. Transcript search still owns
those events so the transcript can move while the find box is open.

fixes #7894
2026-08-12 10:02:32 +02:00
Armin Ronacher
534bcbffb7 fix(tui): handle LaTeX control spaces across line endings 2026-08-11 23:19:24 +02:00
Michael Renner
2a9b4ebc68
docs: document terminal-specific fullscreen mouse behavior (#7965)
* docs(coding-agent): document iTerm2 fullscreen scroll workaround

* docs(coding-agent): document Ghostty fullscreen link behavior
2026-08-11 16:57:05 +02:00