Commit Graph

1314 Commits

Author SHA1 Message Date
Mario Zechner 175a137d00 Fix missing spacer between assistant message and text editor
Initialize widgetContainer with default spacer during init() instead of
only when extension widgets change.

fixes #655
2026-01-12 14:26:22 +01:00
Mario Zechner 6730b4fa59 Add [Unreleased] section for next cycle 2026-01-12 01:00:23 +01:00
Mario Zechner 8ac130c729 Release v0.43.0 2026-01-12 00:59:39 +01:00
Mario Zechner 50cd054edb Rework /scoped-models command UX
- Renamed from /models to /scoped-models
- Changes are now session-only by default (Ctrl+S to persist to settings)
- Added search with fuzzy filtering
- Hotkeys: Enter toggle, Ctrl+A enable all, Ctrl+X clear all, Ctrl+P toggle provider
- Ctrl+C clears search (or exits if empty), Escape exits
- Enabled models shown at top of list
- No checkmarks when all models enabled (no scope)
- First toggle when unscoped clears all and selects that model
- Uses current session thinking level instead of settings default
- Reads from session state first (preserves session-only changes across /scoped-models invocations)

Builds on #626
2026-01-12 00:53:52 +01:00
Mario Zechner 4755da4bfb Remove minor rendering fix from changelog 2026-01-12 00:18:18 +01:00
Mario Zechner c16e21331a Preserve tree selection when returning from summary selector or abort 2026-01-12 00:15:12 +01:00
Mario Zechner a0311fd5b9 Return to summary selector when cancelling custom instructions editor 2026-01-12 00:12:36 +01:00
Mario Zechner 783aa0d6d0 Add changelog, update docs, fix handoff example for PR #642 2026-01-12 00:10:14 +01:00
Armin Ronacher 62caf219a1 Hook up custom summarization on branch switch 2026-01-12 00:09:33 +01:00
Mario Zechner 9d49b4d4ed Merge branch 'tmp-2025-01-11' - resume scope toggle with async loading (#620) 2026-01-12 00:00:28 +01:00
Mario Zechner 302404684f feat(coding-agent): add resume scope toggle with async loading
- /resume and --resume now toggle between Current Folder and All sessions with Tab
- SessionManager.list() and listAll() are now async with optional progress callback
- Shows loading progress (e.g. Loading 5/42) while scanning sessions
- SessionInfo.cwd field shows session working directory in All view
- Lazy loading: All sessions only loaded when user presses Tab

closes #619

Co-authored-by: Thomas Mustier <mustierthomas@gmail.com>
2026-01-12 00:00:03 +01:00
Mario Zechner c997305685 fix(coding-agent): footer git branch not updating after external branch switches
Git uses atomic writes (temp file + rename) which changes the inode.
fs.watch on a file stops working after the inode changes.
Now watches the directory containing HEAD and filters for HEAD changes.
2026-01-11 23:27:22 +01:00
Aliou Diallo b74a3658f3 fix(coding-agent): display extension loading errors to user 2026-01-11 23:24:06 +01:00
Mario Zechner df3f5f41c0 Rename /branch command to /fork
- RPC: branch -> fork, get_branch_messages -> get_fork_messages
- SDK: branch() -> fork(), getBranchMessages() -> getForkMessages()
- AgentSession: branch() -> fork(), getUserMessagesForBranching() -> getUserMessagesForForking()
- Extension events: session_before_branch -> session_before_fork, session_branch -> session_fork
- Settings: doubleEscapeAction 'branch' -> 'fork'

fixes #641
2026-01-11 23:12:31 +01:00
Patrick Kidger 92ee954195 docs(coding-agent) Fix install-from-source instructions 2026-01-11 22:59:30 +01:00
Thomas Mustier e8d91f2bd4 feat(coding-agent): add resume scope toggle
refactor(coding-agent): refine session listing helpers
2026-01-11 20:51:20 +00:00
Carlos Gutierrez 49acd8e648 Add /models command for enabling/disabling Ctrl+P model cycling
- New /models command with toggle UI for each available model
- Changes persist to enabledModels in settings.json
- Updates take effect immediately for Ctrl+P cycling
2026-01-11 19:36:36 +01:00
Ogulcan Celik e68058cc4f fix: custom footer extensions now see model changes 2026-01-11 21:28:18 +03:00
Mario Zechner f5e97427ce chore: add changelog entry for resume keybindings 2026-01-11 19:23:04 +01:00
Aos Dabbagh 23a4fd1159 fix: load keybindings before --resume session picker
The problem: I wanted to be able to select my session (either from
`/resume` or `--resume`) with different keybindings.

The issue: when running `pi --resume`, custom keybindings from
`~/.pi/agent/keybindings.json` were not being applied to the session
picker. This happened because `KeybindingsManager.create()` was only
called when `InteractiveMode` initialized, but the session picker runs
before that in `main.ts`.

The session picker uses `getEditorKeybindings()` for navigation
(selectUp/selectDown etc.), which returns the global default keybindings
if `setEditorKeybindings()` hasn't been called yet.

Fix: Call `KeybindingsManager.create()` inside the `--resume` block
before showing the session picker. This loads user keybindings and sets
them globally.

The current fix results in double-init of keybindings when entering
interactive mode which _should_ be harmless, since it's the same same
config loaded twice, but is minimal and only affects the `--resume`
path.

I considered passing keybindings from `main()` to `InteractiveMode` -
it's cleaner but requires API changes.

Also documented the `select*` keybindings in README.md.
2026-01-11 19:22:52 +01:00
Mario Zechner 6d495348c5 fix(tui): reset styles per line 2026-01-11 18:36:48 +01:00
Mario Zechner a20c6efe17 feat(coding-agent): add model_select extension hook
Fires when the model changes via /model command, model cycling (Ctrl+P),
or session restore. Includes source field and previousModel.

Add model-status.ts example extension demonstrating status bar updates.

closes #628
2026-01-11 18:12:46 +01:00
Marc Krenn a1696e338b docs(coding-agent): add PR link and author to CHANGELOG 2026-01-11 18:12:09 +01:00
Marc Krenn 943654cc93 docs(coding-agent): document model_select hook
Add CHANGELOG entry and extension documentation for the new model_select
event that fires on model changes via /model, Ctrl+P, or session restore.
2026-01-11 18:12:09 +01:00
Marc Krenn c41714662a feat(coding-agent): add model_select extension hook
Fires when model changes via setModel(), cycleModel(), or session restore.
Includes source field ("set" | "cycle" | "restore") and previous model.
2026-01-11 18:12:09 +01:00
Mario Zechner 5db7cc693b fix: Model selector fuzzy search matches id + provider
Restores original behavior from 3de8e075. Allows multi-token queries
like 'opus anthropic' to match Anthropic models.
2026-01-11 18:04:57 +01:00
Mario Zechner 3592f9b7c9 fix: Model selector fuzzy search matches provider + id
Allows queries like 'anthropic opus' to match Anthropic models.
Previously only matched against model ID, so 'anthropic' token failed.
2026-01-11 18:00:52 +01:00
Mario Zechner 9655907624 feat: Add skill slash commands and fuzzy matching for all commands
- Skills registered as /skill:name commands for quick access
- Toggle via /settings or skills.enableSkillCommands in settings.json
- Fuzzy matching for all slash command autocomplete (type /skbra for /skill:brave-search)
- Moved fuzzy module from coding-agent to tui package for reuse

Closes #630 by @Dwsy (reimplemented with fixes)
2026-01-11 17:56:11 +01:00
mom 9ddbafb03a fix(coding-agent): update test expectations after registerFlag -- prefix removal 2026-01-11 11:44:19 +00:00
mom 08aa7a7dad docs(coding-agent): add attribution for PR #625 2026-01-11 11:38:18 +00:00
Nico Bailon 271b49da3c feat: add ctx.ui.setWorkingMessage() extension API
Allows extensions to customize the streaming loader message.
Pass undefined to restore default.
2026-01-10 21:11:44 -08:00
Mario Zechner 016a24e9a1 Add [Unreleased] section for next cycle 2026-01-11 04:11:34 +01:00
Mario Zechner 31fe16f2e7 Release v0.42.5 2026-01-11 04:10:49 +01:00
Mario Zechner fa8076bb3d docs(coding-agent): add tui fixes to changelog 2026-01-11 04:07:03 +01:00
Mario Zechner 6db2d0770a Merge pull request #621 from kaofelix/fix-register-flag-docs
fix(coding-agent): remove -- from registerFlag calls
2026-01-11 03:19:29 +01:00
Mario Zechner 019ad0ec11 Fix /changelog adding 'What's New' to footer permanently
fixes #613
2026-01-11 02:23:04 +01:00
Kao Félix 6d60302646 fix(coding-agent): remove -- from registerFlag calls
This was causing the agent sometimes to pick up on the incorrect syntax when
asked to write extensions with flags
2026-01-11 02:21:15 +01:00
Mario Zechner 0d2731cf6b Remove built-in tool override warning, closes #615 2026-01-11 02:20:32 +01:00
Mario Zechner 2787638561 Remove built-in tool override warning, closes #615 2026-01-11 02:20:32 +01:00
Armin Ronacher 5cf0490383 Add support for /model autocomplete 2026-01-10 20:32:16 +01:00
Mario Zechner c95b132fcc Add [Unreleased] section for next cycle 2026-01-10 13:56:55 +01:00
Mario Zechner 345de59833 Release v0.42.4 2026-01-10 13:56:11 +01:00
Mario Zechner 7293d7cb82 fix(coding-agent): UTF-8 corruption in remote bash execution
Applied streaming TextDecoder fix to executeBashWithOperations(), matching
the fix in executeBash() from PR #433. Remote execution (SSH, containers)
was still using Buffer.toString() which corrupts multi-byte UTF-8 sequences
split across chunk boundaries.

fixes #608
2026-01-10 13:55:02 +01:00
Mario Zechner 79ed50e0db chore(coding-agent): add changelog for bash hint 2026-01-10 13:36:13 +01:00
Mario Zechner 52e2b4e780 Merge pull request #610 from tallshort/fix/expand-hint
fix(coding-agent): show '(ctrl+o to collapse)' hint for bash output when expanded
2026-01-10 13:34:30 +01:00
Mario Zechner 3743ebc03d Add [Unreleased] section for next cycle 2026-01-10 13:28:10 +01:00
Mario Zechner 2a04b0fb28 Release v0.42.3 2026-01-10 13:27:28 +01:00
Mario Zechner 6dcb64565a Prepare for alternative Codex harness certification 2026-01-10 13:22:10 +01:00
Jian Zhang 7a8ea9020f fix(coding-agent): show '(ctrl+o to collapse)' hint for bash output when expanded 2026-01-10 18:50:54 +08:00
Mario Zechner 11dd2f476b Add [Unreleased] section for next cycle 2026-01-10 01:43:32 +01:00