Commit graph

1139 commits

Author SHA1 Message Date
Mario Zechner
0199abfd11 fix(binary): preload Bedrock provider module for Bun bundle
refs #1814
2026-03-04 20:47:41 +01:00
Mario Zechner
c0d706bf32 fix(extensions): alias pi-ai oauth subpath in jiti loader 2026-03-04 20:31:57 +01:00
Mario Zechner
e0754fdbb3 fix(ai,coding-agent): make pi-ai browser-safe and move OAuth runtime exports
- add browser smoke bundling check to root check + pre-commit

- lazy-load Bedrock provider registration to avoid browser graph traversal

- remove top-level OAuth runtime exports from @mariozechner/pi-ai

- add @mariozechner/pi-ai/oauth subpath export and update coding-agent imports

- move proxy dispatcher init to coding-agent CLI (Node-only)

- document Bedrock/OAuth browser limitations

closes #1814
2026-03-04 20:21:25 +01:00
Mario Zechner
e64cd15c25 fix(coding-agent): preserve session thinking for scoped model cycling
closes #1789
2026-03-04 19:51:55 +01:00
Mario Zechner
4cb1a56b53 fix(tui,coding-agent): add OSC 133 user message markers support closes #1805 2026-03-04 18:33:22 +01:00
Cody Bontecou
f710c2705d
feat: add branchSummary.skipPrompt setting to skip summarization prompt (#1792)
When enabled, /tree navigation skips the 'Summarize branch?' prompt and
defaults to no summary, reducing friction for users who never want branch
summaries.

Closes #1791
2026-03-04 17:54:36 +01:00
waldner
b4f9986d23
fix(coding-agent): detect GNU screen TERM values and downgrade to 256color (#1809)
GNU screen does not support truecolor escape sequences. When pi emits
truecolor SGR sequences (e.g. \x1b[38;2;102;102;102m for the dim color
#666666), screen misparses the semicolon-separated parameters as
individual SGR codes. The RGB value 102;102;102 maps directly to
SGR 102 (bright green background), which then bleeds into every
subsequent \x1b[2K line-erase, producing a bright green background
on most info/status messages.

detectColorMode() now returns '256color' for any TERM value that is
'screen', starts with 'screen-' (e.g. screen-256color), or starts
with 'screen.' (e.g. screen.xterm-256color). The existing COLORTERM
check at the top of the function already handles the opt-in case for
users who have configured screen's truecolor passthrough.
2026-03-04 17:50:39 +01:00
Sviatoslav Abakumov
5c61d6bc92
fix(coding-agent): queue messages during branch summarization (#1803)
Messages submitted while a branch summary was being generated were
processed immediately instead of being queued. This happened because
isCompacting only checked compaction abort controllers, not the branch
summary abort controller.

Include _branchSummaryAbortController in the isCompacting getter so all
existing guards (message queueing, reload blocking) also apply during
branch summarization.
2026-03-04 08:55:30 +01:00
Matteo Collina
d35935200f
fix(coding-agent): avoid compaction reasoning for non-reasoning models (#1793) 2026-03-04 08:53:33 +01:00
Zhou Rui
d4084a7ad6
fix(coding-agent): propagate focus in extension editor for cursor positioning (#1784) 2026-03-03 21:58:45 +01:00
Mario Zechner
6b4b920425 fix(coding-agent): stop overflow auto-compaction cascades
fixes #1319
2026-03-03 17:19:42 +01:00
Mario Zechner
42579dd923 feat(ai,coding-agent): add OpenCode Go provider support closes #1757 2026-03-03 16:02:29 +01:00
Mario Zechner
1912f0336b fix(coding-agent): allow model-level baseUrl override in models.json closes #1777 2026-03-03 15:46:58 +01:00
Mario Zechner
7bd4c45d81 fix(ai,coding-agent): update antigravity gemini 3.1 models and headers
fixes #1761
2026-03-03 14:54:43 +01:00
Jozsef Lazar
be66fe65bc
fix(coding-agent): strip all control characters from session display text (#1747) 2026-03-03 14:30:45 +01:00
Aarni Koskela
993d916e56
perf(coding-agent): cache ModelsConfig validator (#1772) 2026-03-03 14:24:02 +01:00
Scott
6f4bd814b8
fix(coding-agent): allow provider-scoped custom model ids (#1759) 2026-03-03 14:20:49 +01:00
Mario Zechner
8903299074 fix(coding-agent): close retry wait race across queued events (from #1726) 2026-03-02 23:20:16 +01:00
Mario Zechner
7b7b967aef merge: PR #1719 for local testing 2026-03-02 22:54:58 +01:00
Mario Zechner
8d4a49487a fix(coding-agent): add tool promptGuidelines support fixes #1720 2026-03-02 22:50:08 +01:00
Mario Zechner
bc2fa8d6d0 fix(coding-agent): support dynamic tool registration and tool prompt snippets closes #1720 2026-03-02 22:32:07 +01:00
Mario Zechner
dfc779faab fix(coding-agent): serialize session event handling to preserve message order (fixes #1717) 2026-03-02 20:48:22 +01:00
Aljosa Asanovic
b97310474b
fix(coding-agent): remove extra spacer before streaming tool blocks 2026-03-02 10:22:51 -05:00
Aljosa Asanovic
480d6bc62d
fix(coding-agent): allow suppressing custom tool transcript blocks 2026-03-02 10:22:41 -05:00
Duncan Ogilvie
cec8c7888b
fix(coding-agent): use alt+v for image pasting on Windows (#1682) 2026-02-27 22:51:16 +01:00
Mario Zechner
2f64df1e52 fix(coding-agent): prevent duplicate session headers when forking from pre-assistant entry
createBranchedSession() wrote the file and set flushed=true even when the
branched path had no assistant message. The next _persist() call saw no
assistant, reset flushed=false, and the subsequent flush appended all
in-memory entries to the already-populated file, duplicating the header
and entries.

Fix: defer file creation when the branched path has no assistant message,
matching the newSession() contract. _persist() creates the file on the
first assistant response.

closes #1672
2026-02-27 22:18:26 +01:00
Mario Zechner
3dcb3c1c77 Merge branch 'pr-1669-fixes'
# Conflicts:
#	package-lock.json
#	packages/ai/CHANGELOG.md
#	packages/coding-agent/CHANGELOG.md
2026-02-27 21:04:00 +01:00
Mario Zechner
2f55890452 fix(coding-agent,ai): finalize provider unregister lifecycle and dependency security updates fixes #1669 2026-02-27 21:00:25 +01:00
Aliou Diallo
0b4dea466d
fix(coding-agent): ignore SIGINT while process is suspended (#1668)
Add a no-op SIGINT handler before sending SIGTSTP in handleCtrlZ().
Remove it on SIGCONT. Prevents Ctrl+C from killing the backgrounded
process.
2026-02-27 13:51:45 +01:00
Mario Zechner
4939434997 fix(coding-agent): handle typebox alias path separators on windows 2026-02-26 00:28:23 +01:00
Mario Zechner
3db5715de4 fix(coding-agent): harden fd/rg bootstrap on windows
fixes #1348
2026-02-26 00:19:43 +01:00
Matteo Collina
757d36a41b
fix(coding-agent): add offline startup mode and network timeouts (#1631) 2026-02-25 19:44:49 +01:00
Mario Zechner
f0379384fe feat(coding-agent): prioritize project resources over global 2026-02-24 23:50:55 +01:00
Mario Zechner
0c61dd5873 fix(coding-agent): incremental highlight for streaming write tool calls 2026-02-23 01:52:30 +01:00
Duncan Ogilvie
f1a2092bcf
Do not create empty .pi folder unconditionally (#1588) 2026-02-23 00:59:10 +01:00
Fero
6137de9ce7
fix(coding-agent): sync extension theme changes to session settings (#1483) 2026-02-23 00:57:36 +01:00
Mario Zechner
7364696ae6 fix(coding-agent): prefer provider/model split over gateway model id matching
When resolving --model zai/glm-5, the resolver now correctly interprets
'zai' as the provider and 'glm-5' as the model id, rather than matching
a vercel-ai-gateway model whose id is literally 'zai/glm-5'.

If the provider/model split fails to find a match, falls back to raw id
matching to still support OpenRouter-style ids like 'openai/gpt-4o:extended'.
2026-02-22 14:40:36 +01:00
Mario Zechner
39cbf47e42 feat(coding-agent): discover skills in .agents paths by default 2026-02-20 00:15:53 +01:00
Aliou Diallo
975de88eb1 feat(coding-agent): flush registerProvider immediately after bindCore, add unregisterProvider 2026-02-18 10:59:51 +01:00
Mario Zechner
2977c14917 refactor(coding-agent): move auth storage to backend abstraction 2026-02-17 19:57:21 +01:00
Mario Zechner
de2736bad0 refactor(coding-agent): improve settings storage semantics and error handling 2026-02-17 00:08:32 +01:00
Mario Zechner
a26a9cfabd feat: add configurable transport and codex websocket session caching 2026-02-13 23:41:49 +01:00
Mario Zechner
0adce69b3b fix(coding-agent): tighten git source parsing and local path normalization (fixes #1426) 2026-02-12 21:28:06 +01:00
Mario Zechner
ce2ba29333 fix(coding-agent): clear extension terminal input listeners on reset
closes #1293
2026-02-12 20:45:33 +01:00
Sam Fold
30fd99bd82 feat: add terminal input hook for extensions 2026-02-12 20:45:33 +01:00
Sumeet Agarwal
ff5148e7cc
feat(extensions): forward message and tool execution events to extensions (#1375)
The extension system currently only forwards agent_start, agent_end,
turn_start, and turn_end events. This means extensions cannot access
streaming text (token-by-token), message lifecycle, or tool execution
progress — all of which are available to internal subscribers.

This adds forwarding for the remaining 6 agent event types:
- message_start, message_update, message_end
- tool_execution_start, tool_execution_update, tool_execution_end

These follow the exact same pattern as the existing forwarded events:
new interfaces in types.ts, exports in index.ts, and else-if blocks
in _emitExtensionEvent(). The new types are included in ExtensionEvent
and automatically flow through RunnerEmitEvent (they're not in the
exclusion list).

This enables extensions to build real-time UIs, streaming WebSocket
bridges, and other integrations that need fine-grained event access.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-02-12 20:30:46 +01:00
Mario Zechner
4793f7c92d fix(coding-agent): make resolveCliModel sync, update docs and changelog 2026-02-12 19:04:51 +01:00
Armin Ronacher
56342258e1 fix(coding-agent): honor --model selection, thinking, and --api-key 2026-02-12 18:58:45 +01:00
Mario Zechner
7eb969ddb1 fix(coding-agent): show unknown context usage after compaction, fix multi-compaction boundary
After compaction, context token count is unknown until the next LLM
response. Instead of showing stale pre-compaction values or heuristic
estimates, the footer now shows ?/200k.

ContextUsage.tokens and ContextUsage.percent are now number | null
(breaking change). Removed usageTokens, trailingTokens, lastUsageIndex
from ContextUsage (internal details).

Also fixed _checkCompaction() using .find() (first compaction) instead
of getLatestCompactionEntry() (latest), which caused incorrect overflow
detection with multiple compactions.

Closes #1382
2026-02-12 18:35:09 +01:00
PriNova
7ddb7c67a8
fix(coding-agent): correct Termux package name for fd (#1433)
The fd package is named 'fd' in Termux, not 'fd-find'.

fixes termux package name
2026-02-12 17:26:55 +01:00