Commit graph

2677 commits

Author SHA1 Message Date
Armin Ronacher
e0b5d27af2
chore(deps): replace cli-highlight (#4468) 2026-05-13 12:19:45 +02:00
Armin Ronacher
2829146dde
chore(deps): Kill small dependencies (#4467) 2026-05-13 10:44:56 +02:00
Mario Zechner
6ff6dc6278
Merge pull request #4383 from maximilianzuern/docs/fixToolConfig
fix(coding-agent) docs: update tool configuration API in SDK docs
2026-05-13 00:16:50 +02:00
Mario Zechner
2b895e20cd
Merge pull request #4391 from yzhg1983/fix/sdk-example-session-dispose
fix(coding-agent): dispose SDK example sessions
2026-05-12 23:50:08 +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
Armin Ronacher
64882c6a51
chore(deps): remove unused dependencies (#4453) 2026-05-12 23:35:41 +02:00
Mario Zechner
24e370fde5 Merge remote-tracking branch 'origin/main' 2026-05-12 23:35:17 +02:00
Mario Zechner
d62c416cfd fix(coding-agent): allow tool expansion during extension confirms
closes #4429
2026-05-12 23:34:57 +02:00
Mario Zechner
5ac874c849 fix(coding-agent): retry Anthropic message_stop stream endings
closes #4433
2026-05-12 23:25:15 +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
Armin Ronacher
3d9e14d748 fix(compaction): clamp summary output tokens
Some checks are pending
CI / build-check-test (push) Waiting to run
Fixes #4390.
2026-05-11 16:36:27 +02:00
Michael Yu
d68011dab1 fix(coding-agent): dispose SDK example sessions 2026-05-11 13:26:08 +08:00
Maximilian
68deecfb4f minor fix in body 2026-05-11 00:45:30 +02:00
Maximilian
74739567b9 fix tool config in SDK docs 2026-05-11 00:32:19 +02:00
Maximilian
df72d5eefe fix inconsistency in README 2026-05-11 00:16:46 +02:00
Maximilian
4eadc8fd3e fix tool config in example in SDK README.md 2026-05-10 23:34:28 +02:00
Maximilian
c3ce1d33d4 fix tool config in example in sdk.ts 2026-05-10 23:32:15 +02:00
Mario Zechner
f8d0fa67dc fix(coding-agent): share theme across package scopes
closes #4333
2026-05-10 18:13:16 +02:00
Armin Ronacher
76131673d3 docs(coding-agent): update theme schema URLs 2026-05-09 23:03:58 +02:00
Mario Zechner
7adb8e7634 feat(ai): add Together AI provider
Some checks are pending
CI / build-check-test (push) Waiting to run
2026-05-08 16:44:18 +02:00
Mario Zechner
91bacac739 fix(coding-agent): show Option key on macOS
closes #4289
2026-05-08 15:48:20 +02:00
Mario Zechner
c889ff40e3
Merge pull request #4282 from PriNova/tw/fix-docs
docs(coding-agent): fix termux-open chooser flag
2026-05-08 15:32:25 +02:00
Mario Zechner
dfb9ffa9ee
Merge pull request #4299 from aliou/fix/resource-location-in-config-tui
fix(coding-agent): preserve .agents provenance in skill metadata
2026-05-08 15:32:01 +02:00
Mario Zechner
defd7038ab fix(coding-agent): hyperlink update changelog closes #4280 2026-05-08 15:06:57 +02:00
Armin Ronacher
3421726e86 fix(coding-agent): disambiguate resource paths 2026-05-08 00:16:28 +02:00
PriNova
323abaea06
docs(coding-agent): fix termux-open chooser flag 2026-05-07 23:32:31 +02:00
Armin Ronacher
dacb7eaa90 fix(coding-agent): detect renamed npm self updates 2026-05-07 20:59:49 +02:00
Armin Ronacher
f4fc04cd75 doc: Update readmes 2026-05-07 20:02:19 +02:00
Mario Zechner
b38bd49be1 Add [Unreleased] section for next cycle 2026-05-07 18:02:17 +02:00
Mario Zechner
1eee081e29 Release v0.74.0 2026-05-07 17:15:00 +02:00
Mario Zechner
551385e409 chore: migrate packages to earendil works scope 2026-05-07 17:13:48 +02:00
Mario Zechner
147f815802 Add [Unreleased] section for next cycle 2026-05-07 16:45:27 +02:00
Mario Zechner
781152fc24 Release v0.73.1 2026-05-07 16:44:28 +02:00
Mario Zechner
7fa924b77b docs: audit unreleased changelog entries 2026-05-07 16:43:26 +02:00
Mario Zechner
e5b809e705 update changelog 2026-05-07 16:32:29 +02:00
Armin Ronacher
5e1e4c3c88 feat(coding-agent): support renamed self-update package 2026-05-07 16:11:18 +02:00
Mario Zechner
3e5ad67e0f chore: migrate pi packages to earendil works scope 2026-05-07 15:59:42 +02:00
Pooya Parsa
50993d743d
chore(coding-agent): switch back from fork to upstream jiti 2.7 (#4244)
Some checks are pending
CI / build-check-test (push) Waiting to run
2026-05-07 01:04:51 +02:00
Aliou Diallo
88619669e2
fix(coding-agent): strip skill wrapper XML from HTML export user messages (#4234)
Some checks are pending
CI / build-check-test (push) Waiting to run
Skill slash commands store a structural <skill>...</skill> wrapper in raw
user messages. The TUI uses parseSkillBlock() to split this into separate
SkillInvocationMessageComponent and UserMessageComponent siblings, but the
HTML export renderer passed the full raw text through markdown, causing
broken/dangling XML tags to appear in exported HTML.

Add parseSkillBlock() to the export template and render skill-invocation
and user-message as separate sibling blocks:
- Sidebar tree shows skill name + user prompt separately
- Content area shows a clickable skill-invocation block (collapsed by
  default, markdown content on expand) followed by the user message
- Copy-link button preserved on the wrapper element
- Toggle tools (O key) expands/collapses skill invocations alongside
  compaction and tool output blocks
2026-05-06 18:06:37 +02:00
Aliou Diallo
0f95975103 fix(coding-agent): preserve .agents provenance in skill metadata
fixes #3978
2026-05-06 09:40:37 +02:00
Mario Zechner
060c10b8ff fix(coding-agent): skip X11-only native addon for /copy on Linux
The @mariozechner/clipboard native addon uses clipboard-rs, which is
X11-only and does not retain selection ownership after set_text resolves.
On Wayland-only compositors (Hyprland, Niri, ...) /copy reported success
without populating the clipboard. Skip the native addon on Linux and let
wl-copy/xclip/xsel handle text writes; they properly daemonize.

closes #4177
2026-05-05 14:47:51 +02:00
Mario Zechner
755da309dd fix(coding-agent): keep pending tool renders after thinking toggle
closes #4167
2026-05-05 13:18:04 +02:00
Armin Ronacher
b5755fd27d
feat(oauth): support interactive login selection (#4190) 2026-05-05 13:16:56 +02:00
Julien Chaumond
bb25a3944c
feat(coding-agent): allow comments and trailing commas in models.json (#4162)
Some checks are pending
CI / build-check-test (push) Waiting to run
* feat(coding-agent): allow comments and trailing commas in models.json

Run user-supplied models.json through a small `stripJsonComments` helper
before JSON.parse so users can annotate their config and leave trailing
commas without breaking the loader.

Co-Authored-By: julien-agent <Agents+cyolo@huggingface.co>

* fix(coding-agent): strip comments before trailing commas in models.json

The single-pass regex couldn't see a trailing comma when a `//` comment sat
between the comma and its closer. Split into two passes: strip comments
first, then strip trailing commas on the cleaned input.

Co-Authored-By: julien-agent <Agents+cyolo@huggingface.co>

---------

Co-authored-by: julien-agent <Agents+cyolo@huggingface.co>
2026-05-04 22:44:35 +02:00
Mario Zechner
bac2df36b9 fix(coding-agent): handle frontmatter prompts in print mode
closes #4163
2026-05-04 22:37:38 +02:00
Armin Ronacher
3c9c54d51b Add [Unreleased] section for next cycle 2026-05-04 20:33:08 +02:00
Armin Ronacher
dbcb473d6f Release v0.73.0 2026-05-04 20:32:03 +02:00
Armin Ronacher
299dc70abe docs(changelog): audit unreleased entries 2026-05-04 20:27:27 +02:00
Armin Ronacher
6b18cdbac1
fix(coding-agent): stream bash output incrementally (#4165)
Some checks are pending
CI / build-check-test (push) Waiting to run
fixes #4145
2026-05-04 19:06:07 +02:00
Armin Ronacher
756b774935 fix(coding-agent): exit on lost terminal
Fixes #4144.
2026-05-04 12:07:16 +02:00