Commit graph

1089 commits

Author SHA1 Message Date
Mario Zechner
88ac5ca1d9 fix(coding-agent): treat dot-prefixed extension paths as local 2026-02-08 23:52:23 +01:00
Mario Zechner
5b36cacaf3 feat(coding-agent): add -ne, -ns, -np aliases for --no-extensions, --no-skills, --no-prompt-templates 2026-02-08 23:02:01 +01:00
Mario Zechner
afb7e5ed4c feat(coding-agent): show tool input schema in /export HTML
Include tool parameter names, types, descriptions in a collapsible
section under each tool in the export HTML. Also adds parameters to
pi.getAllTools() return value.

closes #1407, closes #1416
2026-02-08 22:58:46 +01:00
Mario Zechner
a6cd254471 fix(coding-agent): ensure rg is downloaded at startup alongside fd
rg was only downloaded lazily when the grep tool was invoked, but the
LLM often uses rg directly via the bash tool. Ensure both fd and rg
are downloaded at startup so they are available in PATH for all tools.

fixes #1348
2026-02-08 22:56:28 +01:00
Mario Zechner
82caf064e0 fix(coding-agent): use tar instead of unzip for .zip extraction on Windows
Windows does not ship with unzip, causing fd/rg download to fail on
first run in PowerShell. Use tar (bsdtar, available on Windows 10+)
for both .tar.gz and .zip extraction. Also adds proper error checking
on the extraction result.

fixes #1348
2026-02-08 15:53:17 +01:00
Mario Zechner
e1b56c1d28 feat(coding-agent): add ctx.reload and reload-runtime example closes #1371 2026-02-08 15:34:47 +01:00
Kao Félix
6a3d6fe944
feat(tui, coding-agent): add pasteToEditor to ExtensionUIContext (#1351)
Add pasteToEditor(text) method that pastes text into the editor via
bracketed paste sequences, triggering paste handling (including collapse
for large content). Unlike setEditorText which directly replaces content,
pasteToEditor routes through handleInput on the active editor component.

- Add pasteToEditor to ExtensionUIContext interface
- Add handleInput to EditorComponent interface (was missing, all
  concrete implementations already had it)
- Implement in interactive mode via bracketed paste sequence
- Add fallback in RPC mode (delegates to setEditorText)
- Document in extensions.md
2026-02-07 15:55:08 +01:00
Sviatoslav Abakumov
828c40cf68
Fix the issue of aborting retries when an extension customizes the editor (#1364)
* fix(coding-agent): update test model from opus-4-5 to opus-4-6

* fix(coding-agent): delegate onEscape/onCtrlD/onPasteImage to defaultEditor

When an extension provides a custom editor via setEditorComponent(),
onEscape, onCtrlD, and onPasteImage were copied by value from
defaultEditor. Later, when retry/compaction/branch-summary temporarily
swapped defaultEditor.onEscape to an abort handler, the custom editor
still held the stale reference, so pressing Escape during retry did
nothing.

Use closures that delegate to defaultEditor at call time, matching the
pattern from f1b1d54 which fixed the same issue for onExtensionShortcut.
2026-02-07 15:50:01 +01:00
Sviatoslav Abakumov
3cf5e23c0d
fix(coding-agent): propagate autocomplete to custom editors (#1372)
setupAutocomplete only sets the provider on defaultEditor. When an
extension customizes the editor via setEditorComponent during
session_start, the custom editor is created before setupAutocomplete
runs, so it never receives the autocomplete provider. This breaks forced
file suggestions, slash commands, and all other completions.

Set the provider on the active editor too when it differs from the
default, covering initial load, reload, and settings changes.
2026-02-07 15:48:18 +01:00
Fero
f9161c4d4e
fix(coding-agent): add package subcommand help and friendly errors (#1347)
* fix(coding-agent): add package subcommand help and friendly errors

* refactor(coding-agent): simplify package command parsing and dispatch

* fix(coding-agent): add plain git URL examples to install help
2026-02-07 03:30:28 +01:00
Mario Zechner
310da43042 fix(coding-agent): refresh temporary git extension caches on cache hits 2026-02-06 22:01:49 +01:00
Mario Zechner
92fdb53c10 fix(coding-agent): run extension shutdown via clean TUI shutdown path 2026-02-06 21:37:35 +01:00
Mario Zechner
76a6a74517 feat(coding-agent): merge custom models with built-ins by id 2026-02-06 19:15:26 +01:00
Mario Zechner
ddd5a65c7e fix(coding-agent): handle compromised auth lock without crashing
closes #1322
2026-02-06 19:15:26 +01:00
Mario Zechner
2f1ab3641f fix(coding-agent): document modelOverrides and harden override merging fixes #1062 2026-02-06 18:54:29 +01:00
Charles Cooper
2cd55b2d35 feat(coding-agent): support per-model overrides in models.json
Add modelOverrides field to provider config that allows customizing
individual built-in models without replacing the entire provider.

Example:
  {
    "providers": {
      "openrouter": {
        "modelOverrides": {
          "anthropic/claude-sonnet-4": {
            "compat": { "openRouterRouting": { "only": ["amazon-bedrock"] } }
          }
        }
      }
    }
  }

Overrides are deep-merged with built-in model definitions. Supports:
- name, reasoning, input, contextWindow, maxTokens
- Partial cost overrides (e.g. only change input cost)
- headers (merged with existing)
- compat settings (merged with existing)

Works alongside baseUrl overrides on the same provider.

closes #1062
2026-02-06 18:54:29 +01:00
Mario Zechner
fe6f4d3a9d fix(coding-agent): respect quietStartup on /reload while keeping diagnostics (fixes #1336) 2026-02-06 18:30:53 +01:00
Mario Zechner
b170341b14 Closes #1328, initialize auto completion list at a later point in time 2026-02-06 13:16:39 +01:00
Mario Zechner
6822691a81 fix(coding-agent): tighten session_before emit typing and test env filtering 2026-02-06 11:59:25 +01:00
Mario Zechner
2668326e05 fix(coding-agent): chain tool_result extension patches
fixes #1280
2026-02-06 11:49:08 +01:00
Mario Zechner
b050c582a1 fix(agent,coding-agent): resume queued messages after auto-compaction 2026-02-06 11:36:19 +01:00
Mario Zechner
703ee26625 refactor(coding-agent): narrow ExtensionRunner emit event type 2026-02-06 11:23:24 +01:00
Mario Zechner
4c91c803ff fix(coding-agent): remove extra spacer before tool executions 2026-02-06 01:11:50 +01:00
Mario Zechner
6b0f1fefdb fix(coding-agent): centralize package source normalization and local path parsing fixes #1304 2026-02-06 00:20:52 +01:00
Mario Zechner
8792ee2a66 fix(coding-agent): add /quit autocomplete and remove /exit fixes #1303 2026-02-06 00:16:56 +01:00
Mario Zechner
5f5cd080b9 fix(coding-agent): respect package.json pi.extensions manifest in settings extensions paths
collectAutoExtensionEntries now checks if the directory itself has a
package.json with pi.extensions (or index.ts) before scanning children.
This fixes duplicate extension loading when a manifest-aware directory
is specified directly in settings.json extensions array.

Fixes #1274
2026-02-05 22:32:12 +01:00
Mario Zechner
712d0c6ada fix(ai,coding-agent): fix Bedrock Opus 4.6 model IDs, cache pricing, and add EU profile
- Remove :0 suffix from Opus 4.6 Bedrock model IDs (not valid for this model)
- Fix us/eu Opus 4.6 cache pricing (0.5/6.25 instead of 1.5/18.75)
- Add missing eu.anthropic.claude-opus-4-6-v1 inference profile
- Fix coding-agent default Bedrock model ID to match catalog
2026-02-05 22:21:22 +01:00
Mario Zechner
f33844fe37 fix(coding-agent): handle git @ref parsing edge cases and pinned update tests refs #1299 2026-02-05 21:56:57 +01:00
Mario Zechner
61fe132946 fix(coding-agent): stabilize pinned git parsing and model default test 2026-02-05 21:43:27 +01:00
Mario Zechner
5a30e16305 fix(coding-agent): fallback parse git URLs for unknown hosts 2026-02-05 21:40:36 +01:00
Mario Zechner
028fff13ab feat(coding-agent): update default models to Opus 4.6 and GPT-5.3 Codex
- anthropic: claude-opus-4-5 → claude-opus-4-6
- openai-codex: gpt-5.2-codex → gpt-5.3-codex
- amazon-bedrock: us.anthropic.claude-opus-4-20250514-v1:0 → us.anthropic.claude-opus-4-6-v1:0
- vercel-ai-gateway: anthropic/claude-opus-4.5 → anthropic/claude-opus-4-6
- opencode: claude-opus-4-5 → claude-opus-4-6
2026-02-05 21:19:46 +01:00
Mario Zechner
f89b49baeb fix(coding-agent): respect ignore files in skill loader 2026-02-05 20:24:15 +01:00
Mario Zechner
1614e95eca fix(coding-agent): guard malformed tool args in renderers (fixes #1259) 2026-02-05 18:34:24 +01:00
Mario Zechner
6c741cbd46
Merge pull request #1285 from ferologics/exit-early
fix(coding-agent): exit early for help/version/export/list-models (fixes #1277)
2026-02-05 17:42:08 +01:00
ferologics
5c41e5d0cd fix(coding-agent): exit early for help/version/export/list-models (fixes #1277) 2026-02-05 17:18:10 +01:00
Mario Zechner
6c6d937b2d
Merge pull request #1287 from markusn/feature/ssh-git-packages
feat(coding-agent): add SSH URL support for git packages
2026-02-05 17:09:28 +01:00
Markus Ekholm
fba9a8aece
feat(coding-agent): add SSH URL support for git packages
Use hosted-git-info library for robust parsing of SSH URLs (git@host:path
and ssh://) in addition to HTTPS. SSH and HTTPS URLs for the same repo
are now properly deduplicated.
2026-02-05 16:48:10 +01:00
haoqixu
0684e29a73 feat(coding-agent): display name of selected model in modelSelectors 2026-02-05 16:41:54 +08:00
Mario Zechner
2f18057ac2
Merge branch 'main' into fix/export-ansi-indentation 2026-02-05 03:13:32 +01:00
Aliou Diallo
b315abf998 fix(coding-agent): forward images through steer/followUp during streaming
prompt() computed currentImages but never passed them to _queueSteer()
or _queueFollowUp() in the streaming branch. Both methods only accepted
text and built content as [{ type: 'text', text }], dropping images.

- _queueSteer/_queueFollowUp now accept optional ImageContent[]
- streaming branch in prompt() passes currentImages through
- public steer()/followUp() accept and forward optional images
- RPC types, handler, and client updated for steer/follow_up images
- rpc.md: document images on steer/follow_up, fix ImageContent examples
2026-02-05 02:37:42 +01:00
Aliou Diallo
dc5a0b582d fix(coding-agent): preserve indentation in ANSI-rendered HTML export
HTML div elements collapse whitespace by default, stripping leading
spaces from ANSI-rendered tool output (e.g. JSON code blocks).
Added white-space: pre-wrap to .ansi-line class.
2026-02-05 02:10:05 +01:00
Mario Zechner
9cf5758b68 feat(coding-agent): support shell commands and env vars in auth.json API keys
API keys in auth.json now support the same resolution as models.json:
- Shell command: "\!command" executes and uses stdout (cached)
- Environment variable: uses the value of the named variable
- Literal value: used directly

Extracted shared resolveConfigValue() to new resolve-config-value.ts module.
2026-02-04 23:02:00 +01:00
Gurpartap Singh
864bdb5c1d Respect expand state for custom messages 2026-02-04 21:29:13 +05:30
Mario Zechner
d0679dcfc0 fix(coding-agent): ignore unknown skill frontmatter fields 2026-02-04 14:20:24 +01:00
Mario Zechner
fcfbc82ec2 fix(coding-agent): reload global settings fixes #1241 2026-02-04 14:14:52 +01:00
Vaclav Synacek
f97ce5ada1 better bash detection on unix - also try PATH 2026-02-04 13:52:58 +01:00
Juan Ibiapina
b80762966a
feat(coding-agent): add resume as configurable keybinding action (#1249)
feat(coding-agent): add resume as configurable keybinding action

Allow users to bind a key to open the session resume selector, matching the pattern of newSession, tree, and fork actions.
2026-02-04 13:43:51 +01:00
Mario Zechner
b5be54b8ef fix(coding-agent): persist user message after fork
When hasAssistant guard returns early, set flushed=false so
the next persist (after assistant arrives) writes all entries
including the user message.
2026-02-04 13:35:45 +01:00
Mario Zechner
13ac63c3cd fix(coding-agent): fork writes to new session file, not parent (fixes #1242)
- Store previousSessionFile before creating branched session
- Update sessionFile after writing new branch file
- Pass parentSession when forking from first message
- Add --local to git config in tests to prevent repo escape
2026-02-04 13:22:43 +01:00
Mario Zechner
b1c2c95f23 fix(coding-agent): normalize local package removal paths (fixes #1243) 2026-02-04 12:56:00 +01:00