Mario Zechner
350d17d1f3
Merge branch 'main' of https://github.com/badlogic/pi-mono
2026-03-29 21:09:04 +02:00
Mario Zechner
ef6af5ebbd
feat(ai,coding-agent): add faux provider and ModelRegistry factories
2026-03-29 21:08:50 +02:00
Mario Zechner
b5f425ad15
feat(agent,coding-agent): add prepareArguments hook for pre-validation argument preparation
...
Add AgentTool.prepareArguments and ToolDefinition.prepareArguments hook
that runs before schema validation in the agent loop. This lets tools
silently accept legacy argument shapes from resumed old sessions without
polluting the public schema.
The built-in edit tool uses this to fold legacy top-level oldText/newText
into edits[] when resuming sessions that predate the edits-only schema.
- AgentTool/ToolDefinition: typed prepareArguments returning Static<TParameters>
- agent-loop: prepareToolCallArguments() runs before validateToolArguments()
- edit tool: prepareEditArguments folds legacy fields, validateEditInput is strict
- Documented in extensions.md with edit-tool example
2026-03-29 21:06:22 +02:00
Mario Zechner
7e1dd8880c
fix(coding-agent): restore extension input source semantics
2026-03-29 19:28:04 +02:00
Duncan Ogilvie
1ee0d28d7b
fix(coding-agent): properly queue extension messages ( #2674 )
2026-03-29 19:23:40 +02:00
Mario Zechner
0f9db44aff
fix(coding-agent): avoid full redraw on large edit results closes #2664
2026-03-29 13:00:46 +02:00
Mario Zechner
7d4faa080d
fix: expose abort signal to extensions closes #2660
2026-03-28 22:25:06 +01:00
Mario Zechner
e773527b3a
fix(coding-agent): simplify edit tool input closes #2639
2026-03-28 22:10:34 +01:00
Mario Zechner
f456a7a4db
fix(coding-agent): restore compaction summary and dedupe edit errors
2026-03-27 04:00:21 +01:00
Mario Zechner
a0734bd162
fix(coding-agent): tighten skill discovery and edit diffs closes #2603
2026-03-27 03:48:28 +01:00
Mario Zechner
eeace79715
fix(coding-agent): preserve kept messages across repeated compaction closes #2608
2026-03-27 03:36:57 +01:00
Mario Zechner
161ad18287
fix(coding-agent): unify compaction UI events closes #2617
2026-03-27 03:14:24 +01:00
Mario Zechner
1ba899f6a6
fix(coding-agent): honor custom renderers for built-in tool overrides closes #2595
2026-03-27 03:10:13 +01:00
Mario Zechner
20a57e7599
feat(coding-agent): support multi-edit in edit tool
2026-03-27 02:21:09 +01:00
Mario Zechner
7a786d88aa
fix(coding-agent): resolve models.json auth per request closes #1835
2026-03-27 00:47:40 +01:00
Mario Zechner
7e94d36a44
fix(coding-agent): add follow-up docs, changelog, and precedence tests closes #2429
2026-03-26 00:28:30 +01:00
Sam
2b1fc90cd7
feat(coding-agent): Add sessionDir support in settings.json ( #2598 )
...
Users can now set sessionDir in global or project settings.json instead
of passing --session-dir on every invocation. CLI flag takes precedence,
then settings.json, then extension hooks.
Closes #2429
Co-authored-by: Sam Collins <81678+smcllns@users.noreply.github.com >
Co-authored-by: Mario Zechner <badlogicgames@gmail.com >
2026-03-26 00:03:36 +01:00
Mario Zechner
1dbe61b06f
test(coding-agent): use valid PNG fixture for read tool
2026-03-25 22:22:48 +01:00
Mario Zechner
a6cfcdac18
test(coding-agent): fix showLoadedResources mocks
2026-03-25 22:18:58 +01:00
Mario Zechner
0a395a149a
test(coding-agent): stabilize git update branch setup
2026-03-25 22:15:19 +01:00
Mario Zechner
ebe437081e
fix(coding-agent): emit session_shutdown in print mode closes #2576
2026-03-24 23:50:47 +01:00
Mario Zechner
d08ab9b9c1
fix(coding-agent): recompute interactive bash preview width closes #2569
2026-03-24 20:09:43 +01:00
Mario Zechner
13b771e591
fix(coding-agent): reduce git update fetch noise closes #2548
2026-03-24 03:23:00 +01:00
Mario Zechner
835296b1d7
fix(coding-agent): expose rpc context usage closes #2550
2026-03-24 03:08:51 +01:00
Mario Zechner
a8a58ff26b
fix(coding-agent): disambiguate duplicate slash commands, fixes #1061
2026-03-23 02:33:52 +01:00
Mario Zechner
4e5af01d73
fix(coding-agent): unify source provenance, closes #1734
2026-03-23 02:02:42 +01:00
Mario Zechner
883862a354
test(coding-agent): add AgentSession test harness with faux provider
...
Adds a reusable test harness for AgentSession runtime testing:
- Faux stream function with declarative response sequencing (text,
tool calls, thinking, errors, custom usage, delays)
- Token-level streaming with realistic delta events (3-5 char chunks)
- One-call session factory with real in-memory dependencies
- Event capture with type-filtered access
- 14 self-tests covering text, tool calls, errors, retry, streaming
deltas, thinking, event ordering, persistence
ref #2023
2026-03-23 02:02:34 +01:00
Mario Zechner
d501b9ca26
fix(coding-agent): attach source info to resources and commands, fixes #1734
2026-03-23 00:52:55 +01:00
Mario Zechner
a78882d8b8
fix(coding-agent): enforce safe auto-resized image limits closes #2055
2026-03-22 21:48:34 +01:00
Mario Zechner
f1fe49a641
fix(coding-agent): reserve stdout in print and json mode closes #2482
2026-03-22 21:21:29 +01:00
Mario Zechner
74073e5227
fix(coding-agent): skip no-op git package reinstalls
...
closes #2503
2026-03-22 19:19:47 +01:00
Mario Zechner
235b247f1f
fix(coding-agent): built-in tools work like extension tools
...
Export readToolDefinition / createReadToolDefinition and the equivalent built-in ToolDefinition APIs from @mariozechner/pi-coding-agent.
2026-03-22 04:20:38 +01:00
Mario Zechner
eda1082d4b
fix(coding-agent): update project npm packages
...
closes #2459
2026-03-20 19:36:06 +01:00
Mario Zechner
6c8ac01947
fix(coding-agent): respect agentDir for sdk session paths closes #2457
2026-03-20 12:12:18 +01:00
Mario Zechner
75fc6d088d
fix(coding-agent): keep suspend resume alive on fg closes #2454
2026-03-20 11:56:15 +01:00
简简简简
8705fbee54
fix(models): align minimax and zai defaults ( #2445 )
...
Update the coding-agent default model picks for ZAI, Cerebras,
and MiniMax so new sessions prefer the current model lineup.
Add the missing MiniMax-M2.1-highspeed direct provider entries
and normalize MiniMax Anthropic-compatible context limits so the
catalog matches the provider's supported model set.
2026-03-20 10:00:57 +01:00
Mario Zechner
e3fee7a511
fix(keybindings): migrate to namespaced ids closes #2391
2026-03-20 01:55:30 +01:00
Mario Zechner
74a46fc7ea
fix(coding-agent): queue file mutations across edit and write
...
closes #2327
2026-03-20 01:55:30 +01:00
Petr Baudis
8a0529ed9d
fix(coding-agent): resolve waitForRetry() race when auto-retry produces tool calls ( #2440 )
...
When auto-retry fires after a retryable error (e.g. overloaded_error) and the
retry response includes tool_use, session.prompt() returned prematurely because
_resolveRetry() was called on the first successful message_end — while the
agent loop was still executing tools via the fire-and-forget agent.continue().
This caused callers to observe isStreaming=true after prompt() returned, and
follow-up session.prompt() calls threw 'Agent is already processing'. The
tool execution results were silently lost.
Fix: move _resolveRetry() from the message_end handler to the agent_end
handler. The _retryAttempt counter reset stays on message_end (preventing
accumulation across LLM calls within a turn), but the promise that unblocks
waitForRetry() now only resolves when the full agent loop completes.
2026-03-20 00:33:17 +01:00
Mario Zechner
e0f85a3b5e
fix(coding-agent): avoid blocking footer branch refresh and isolate invalid extension provider registrations closes #2418 closes #2431
2026-03-19 21:40:55 +01:00
Duncan Ogilvie
25b185f398
fix(coding-agent): fix windows hanging when descendants inherit stdout/stderr handles ( #2389 )
2026-03-19 08:34:52 +01:00
Mario Zechner
ce095e2846
fix(coding-agent): make tests keybinding-agnostic
...
Reset global editor keybindings to defaults in beforeEach for
session-selector-rename and tree-selector tests. Pass
KeybindingsManager.inMemory() to SessionSelectorComponent in tests
to avoid reading user keybindings.json.
Closes #2360
2026-03-18 16:53:25 +01:00
Mario Zechner
f951d45000
fix(coding-agent): stop updating packages on startup closes #1963
2026-03-18 03:26:46 +01:00
Mario Zechner
2becbbdff3
fix(coding-agent): refresh active model after provider updates closes #2291
2026-03-18 01:12:11 +01:00
Mario Zechner
1a9185d3cb
feat(coding-agent): add --fork session flag closes #2290
2026-03-18 01:09:23 +01:00
Mario Zechner
9651e4114d
feat(coding-agent): expose local bash operations closes #2299
2026-03-18 00:41:57 +01:00
Mario Zechner
d914d1c199
fix(coding-agent): handle z.ai network_error closes #2313
2026-03-17 22:34:49 +01:00
Mario Zechner
bbd8392ef9
fix(coding-agent): merge piped stdin into initial prompt closes #2315
2026-03-17 22:25:35 +01:00
Aaron Soules
2d05e87281
fix(coding-agent): handle reftable footer branch detection ( #2300 )
...
* fix(coding-agent): handle reftable footer branch detection
- Fall back to git commands when HEAD contains refs/heads/.invalid
- Treat unresolved .invalid as detached instead of showing literal .invalid
- Watch reftable directory for branch change updates
- Resolve commonGitDir for worktree setups
fixes #2123
* fix(coding-agent): improve reftable branch detection and reduce false-positive rerenders
- Re-resolve branch on watcher events instead of invalidating cache;
only notify listeners when the branch string actually changed
- Add regression tests: regular repo fast path (no spawnSync), nested
cwd upward walk, unchanged-branch reftable churn suppression
2026-03-17 15:33:33 +01:00
Mario Zechner
7817e9b227
fix(coding-agent): make prompt snippets opt in closes #2285
2026-03-17 12:44:16 +01:00