Commit Graph

441 Commits

Author SHA1 Message Date
Mario Zechner ba10b60b51 fix(coding-agent): add entry renderers for session entries 2026-07-01 11:30:26 +02:00
Mario Zechner 9be55bc773 fix(coding-agent): apply output padding to user messages
closes #6168
2026-06-30 11:55:40 +02:00
Alexey Zaytsev 6564d94717 feat(coding-agent): add configurable assistant output padding
Closes #6168
2026-06-30 11:44:34 +02:00
Mario Zechner 5d499272a8 fix(coding-agent): stabilize interactive status indicators
Closes #6026
2026-06-29 16:53:39 +02:00
Armin Ronacher 5a073885b5 feat(coding-agent): add external editor setting
Closes #6122
2026-06-27 23:57:46 +02:00
haoqixu c5440162b8 fix(coding-agent): show resources before messages when resuming session 2026-06-24 20:41:34 +08:00
Mario Zechner 7fedc3324e Merge pull request #5999 from haoqixu/fix-5996
fix(coding-agent): normalize session names
2026-06-23 15:15:52 +02:00
haoqixu 7c1ef87756 fix(coding-agent): normalize session names 2026-06-23 19:14:02 +08:00
Mario Zechner abbd911693 Merge main into model-registry 2026-06-22 14:00:18 +02:00
Armin Ronacher 2417adb46a fix(coding-agent): preserve startup extension UI
closes #5943
2026-06-21 23:19:34 +02:00
Armin Ronacher d93b92baca fix(coding-agent): show changelog URL in update notice 2026-06-20 22:23:25 +02:00
Armin Ronacher 7d08c81a09 fix(coding-agent): avoid empty compaction summaries
closes #4811
2026-06-18 22:17:57 +02:00
Armin Ronacher aae62dfa87 feat(coding-agent): make bare update self-only 2026-06-18 18:09:03 +02:00
Armin Ronacher d0b46764b1 feat(coding-agent): add automatic theme mode (#5874) 2026-06-18 17:13:47 +02:00
Vegard Stikbakke 008c76f955 feat(coding-agent): export project config dir name 2026-06-18 10:27:11 +02:00
Armin Ronacher 6d5ede31c8 fix(coding-agent): match provider-first model searches 2026-06-17 17:16:39 +02:00
Armin Ronacher ba0ec61563 fix(coding-agent): restore terminal on SIGTERM
closes #5724
2026-06-15 00:47:35 +02:00
Vegard Stikbakke f0989800cb feat: detect first-run terminal theme (#5385) 2026-06-14 07:14:42 +02:00
Armin Ronacher b4bff7f0d0 fix(coding-agent): avoid project trust prompt for update (#5674) 2026-06-12 23:37:16 +02:00
Mario Zechner 8a0903ebf2 feat(ai): compat entrypoint, core-only root barrel (phase 5)
The root barrel is now core-only and side-effect free: types,
createModels/createProvider, auth substrate, lazyStream/lazyApi, faux,
utils. Generated catalogs, api-registry, env-api-keys, images, global
stream functions, and per-API lazy wrappers leave the root.

New @earendil-works/pi-ai/compat preserves the old surface verbatim as
a strict superset of the root: api-dispatch stream/complete with env
key injection, the builtin registration side effect (skip-if-present so
it cannot clobber earlier overrides), deprecated getModel/getModels/
getProviders aliases of the new getBuiltin* reads in providers/all,
lazy api wrappers + setBedrockProviderModule, and image generation.
Compat dies with the coding-agent ModelManager migration.

Packaging: exports map gains ./compat, ./providers/*, ./api/*;
sideEffects array lists only the effectful modules.

Old-global imports across agent/coding-agent/examples and pi-ai tests
switch to /compat (path-only; compat is a superset). The coding-agent
extension loader resolves the pi-ai ROOT specifier to compat, so
existing user extensions using the old global API keep working at
runtime until compat is removed. vitest configs alias /compat to src;
browser smoke imports old globals from /compat.
2026-06-10 21:17:12 +02:00
Mario Zechner b7e721cb38 feat(tui): support autocomplete trigger characters
closes #4703
2026-06-09 14:15:39 +02:00
Armin Ronacher 5cb4f597f7 feat(ui): Improved project approval settings 2026-06-09 13:25:54 +02:00
Mario Zechner e4907b3b09 fix(tui): restore prompt draft after history browsing
closes #5494
2026-06-09 13:06:13 +02:00
Mario Zechner db3f9953ee feat(coding-agent): expose project trust to extensions
closes #5523
2026-06-09 13:03:59 +02:00
Armin Ronacher 20b78eafb4 fix(coding-agent): fix changelog links
Fixes #5516
2026-06-08 20:31:20 +02:00
Mario Zechner 718215bd95 feat(coding-agent): add extension project trust decisions 2026-06-08 12:59:08 +02:00
Mario Zechner 38f18be447 fix(coding-agent): persist implicit project trust on reload 2026-06-08 10:08:01 +02:00
Mario Zechner 89a92207f1 feat(coding-agent): add project trust gating 2026-06-05 10:51:43 +02:00
Sviatoslav Abakumov e9a9322199 fix(coding-agent): add a space between the skill and user messages 2026-06-03 22:42:38 +04:00
Mario Zechner e56521e323 Add extension mode context 2026-06-01 18:32:03 +02:00
Mario Zechner cfefc30cf1 Merge pull request #5195 from yzhg1983/private/fix-startup-input-queue
fix(coding-agent): buffer early input before prompt loop
2026-05-30 01:15:45 +02:00
Mario Zechner 778f519b23 Remove leading spaces from resume session hint 2026-05-29 23:30:02 +02:00
Michael Yu edd1212200 fix(coding-agent): buffer early input before prompt loop 2026-05-29 23:03:03 +08:00
Michael Yu 17e9e87576 feat(coding-agent): print resume hint on interactive exit 2026-05-29 15:56:42 +08:00
Armin Ronacher 4b4641c6b0 fix(coding-agent): scope custom session dir lookups 2026-05-28 23:25:33 +02:00
Mario Zechner b64f3f5eae fix(coding-agent): run extension cleanup and restore terminal on signal exits
Signal-triggered shutdown (SIGTERM/SIGHUP) now emits session_shutdown
before any terminal writes, and SIGHUP no longer hard-exits, so extension
resources (e.g. sockets) are released and the terminal is restored even
when the terminal is gone. A genuinely dead terminal still exits without
hot-spinning via the EIO error path.

closes #5080
2026-05-28 23:19:27 +02:00
Vegard Stikbakke c554364c2a feat(ai): refactor device code login for copilot 2026-05-22 08:54:18 +02:00
Armin Ronacher 849f9d9c5a fix(coding-agent): configure HTTP idle timeout (#4759) 2026-05-20 12:45:00 +02:00
Armin Ronacher ae9450dc51 chore(ts): use source import extensions 2026-05-20 00:04:03 +02:00
Mario Zechner 06c6c324d7 chore: enforce erasable TypeScript syntax 2026-05-19 23:15:39 +02:00
Mario Zechner b944827623 fix(agent): stop tool preflight after extension abort
closes #4276
2026-05-19 13:10:03 +02:00
Armin Ronacher f4f0ac7ada feat(coding-agent): show update notes (#4724) 2026-05-19 12:08:13 +02:00
Armin Ronacher a294cdafd9 fix(coding-agent): unblock Windows external editor
closes #4612
2026-05-18 09:49:24 +02:00
Mario Zechner 43d3cdd48a fix(coding-agent): use configured model scope cycle hint closes #4508 2026-05-17 00:03:03 +02:00
Mario Zechner 7ddc7dd1ec fix(coding-agent): space interactive errors
closes #4510
2026-05-15 01:10:56 +02:00
Mario Zechner 5998b57958 Merge pull request #4426 from ofa1/fix/restore-tty-on-uncaught-exception
fix(coding-agent): restore terminal on uncaught exception
2026-05-12 23:48:28 +02:00
Mario Zechner d62c416cfd fix(coding-agent): allow tool expansion during extension confirms
closes #4429
2026-05-12 23:34:57 +02:00
Omair Ahmed 9d84e28692 fix(coding-agent): restore terminal on uncaught exception
When an uncaught exception fires in interactive mode, the process dies with
stdin still in raw mode and the cursor hidden, leaving the user with a
"borked" terminal that needs `stty sane && reset` to recover. The most
common trigger is an extension's async ChildProcess `exit` callback that
throws (e.g. from accessing a stale ctx after session replacement), but
this affects any uncaught throw from anywhere in pi.

Add an uncaughtException handler in registerSignalHandlers that calls
ui.stop() before exiting, mirroring the existing emergencyTerminalExit
pattern. The handler is registered with prependListener and tracked in
signalCleanupHandlers, so it is removed on graceful shutdown the same way
the other handlers are.

Unlike emergencyTerminalExit (used for SIGHUP / dead-terminal EIO), the
terminal is still alive on uncaughtException, so we run the normal
ui.stop() to restore cooked mode, the cursor, bracketed paste mode, and
Kitty / modifyOtherKeys sequences.
2026-05-11 16:27:27 -04:00
Mario Zechner 91bacac739 fix(coding-agent): show Option key on macOS
closes #4289
2026-05-08 15:48:20 +02:00
Mario Zechner defd7038ab fix(coding-agent): hyperlink update changelog closes #4280 2026-05-08 15:06:57 +02:00