Commit Graph

77 Commits

Author SHA1 Message Date
Armin Ronacher
a98e087e5d fix(coding-agent): harden git package install paths 2026-06-02 18:20:35 +02:00
Armin Ronacher
15f1dea8df fix(coding-agent): disable managed extension peer resolution
closes #4907
2026-05-23 14:15:00 +02:00
Armin Ronacher
c85dbb1620 fix(coding-agent): reconcile pinned git update refs
closes #4869
2026-05-23 00:16:07 +02:00
Armin Ronacher
c100620bf4 fix(coding-agent): Clean up Path Handling (#4873) 2026-05-22 11:25:15 +02:00
Mario Zechner
bf56a86e1e fix(coding-agent): reconcile git package refs
closes #4870
2026-05-22 11:13:26 +02:00
Armin Ronacher
9fdc54b6f0 fix(package-manager): ignore managed npm folders in cloud sync
closes #4763
2026-05-20 11:40:46 +02:00
Armin Ronacher
ae9450dc51 chore(ts): use source import extensions 2026-05-20 00:04:03 +02:00
Mario Zechner
64150668b8 fix(coding-agent): use cross-spawn for Windows shims
closes #4665
2026-05-18 11:30:41 +02:00
Armin Ronacher
6b872be2b9 fix(coding-agent): spawn Windows npm shims directly
closes #4623
2026-05-18 00:21:37 +02:00
Armin Ronacher
6f931797ca fix(coding-agent): install npm packages in managed root closes #4587 2026-05-17 20:48:00 +02:00
Armin Ronacher
27a193070d fix(coding-agent): resolve pnpm global packages
Fixes #4501
2026-05-17 00:09:11 +02:00
Aliou Diallo
0f95975103 fix(coding-agent): preserve .agents provenance in skill metadata
fixes #3978
2026-05-06 09:40:37 +02:00
Armin Ronacher
ade08de14c fix(coding-agent): repair self-update detection
Fixes #3942
Fixes #3980
Fixes #3922
2026-05-01 18:08:02 +02:00
George Hilliard
0dd11898ad fix(coding-agent): redo Bun package manager node_modules handling (#3998)
* Revert "fix(coding-agent): use alternate logic to find Bun's node_modules (#3861)"

This reverts commit c241c6d6d0.  The logic
is faulty: the original strategy of looking for node_modules by asking
the package manager is not incorrect even on bun. Instead, it should
learn a different method of asking the package manager for node_modules
when the *package manager* is bun, not the *runtime*.

* feat(coding-agent): detect bun as package manager and use alternate root query

When `"npmCommand": ["bun"]` is configured in settings.json, pi fails to
start because it invokes `bun root -g`, which doesn't exist:

    error: Failed to run bun root -g: error: Script not found "root"

Add a (simple) check for Bun being used as package manager, and instead
build the relative path starting from Bun's bin directory.
2026-04-30 12:27:50 +02:00
George Hilliard
c241c6d6d0 fix(coding-agent): use alternate logic to find Bun's node_modules (#3861)
When `"npmCommand": ["bun"]` is configured in settings.json, pi fails to
start because it invokes `bun root -g`, which doesn't exist:

    error: Failed to run bun root -g: error: Script not found "root"

Add a check for the Bun runtime using the logic already used elsewhere,
and build the relative path starting from Bun's bin directory.
2026-04-28 08:28:37 +02:00
mdsjip
cbe421f877 fix(coding-agent): work around Bun empty process.env inside sandbox (#3807)
Bun bug oven-sh/bun#27802 causes process.env to be empty when running inside a Linux sandbox (Landlock/seccomp).
This breaks npm resolution because PATH is missing, crashing pi on startup with:

  Failed to run npm root -g: Executable not found in $PATH: "npm"

Add getSandboxEnv() to read /proc/self/environ as a fallback on Linux when process.env has zero keys.
Pass this env to all spawn calls in package-manager.ts.
Also fix runCommandSync error handling: check result.error in addition to result.status, and include result.error?.message in the error text so spawn failures (e.g. ENOENT) produce useful diagnostics instead of "null".

Fixes #3806
2026-04-27 18:34:20 +02:00
Aliou Diallo
10425abb87 fix(coding-agent): dedupe symlinked resources (#3818)
* fix(coding-agent): dedupe symlinked resources

Fixes #3767

* refactor(coding-agent): extract canonicalizePath util for symlink resolution
2026-04-27 18:33:10 +02:00
Mario Zechner
7bd9f6500d fix(coding-agent): avoid cmd.exe for git installs on windows closes #3642 2026-04-24 13:56:10 +02:00
Mario Zechner
8700ac1f0e fix(coding-agent): support custom npmCommand for git deps
closes #3604
2026-04-23 22:32:32 +02:00
Mario Zechner
e4f7fe7bb7 feat(coding-agent): batch package updates
closes #2980
2026-04-20 22:56:26 +02:00
Mario Zechner
b73212616d fix(coding-agent): skip redundant npm package updates
closes #3000
2026-04-20 19:12:52 +02:00
Ramiz Wachtler
2b45243817 fix(coding-agent): avoid duplicate symlinked skills in pi config (#3417)
- dedupe resolved skill entries by canonical path (realpathSync) with raw-path fallback matching loadSkills()

- preserve precedence by applying skill dedupe after resource precedence sorting (first winner retained)

- add tests to verify expected behavior

- closes #3405
2026-04-20 13:23:00 +02:00
Neon
182d4ceea3 fix manifest glob expansion and add regression test (#3350) 2026-04-18 13:16:39 +02:00
Mario Zechner
3cea63cf29 fix(coding-agent): resolve captured commands on close closes #3027 2026-04-17 16:45:05 +02:00
Mario Zechner
ef1fcfcec2 fix(coding-agent): omit devDependencies when installing packages (fixes #3009) 2026-04-17 01:21:31 +02:00
Aliou Diallo
2d3ed0cfa7 fix(coding-agent): use npm view for update checks on non-default registries (#3164)
Previously, getLatestNpmVersion() hardcoded a fetch to
registry.npmjs.org, which 404s for packages on alternate
registries (private, Verdaccio, GitHub Packages, etc.).
The error was silently swallowed, so users never saw update
notifications for these packages.

Replace the direct fetch with
via the existing runCommandCapture helper. This uses the same
registry resolution as npm install (reads .npmrc config chain),
respects the npmCommand setting, and runs with this.cwd for
correct .npmrc lookup.
2026-04-14 20:20:14 +02:00
Aliou Diallo
71e4436932 fix(coding-agent): handle git/npm extension paths in CLI resolution (#2845) 2026-04-05 18:42:14 +02:00
Mario Zechner
a7acef92a7 fix(coding-agent): resource collision precedence, user/project skills override package skills
Sort resolved resources by precedence rank (project settings > project auto >
user settings > user auto > package) so first-wins collision logic produces
correct results. Also reorder CLI paths to prepend instead of append.

fixes #2781
2026-04-04 21:28:38 +02:00
Mario Zechner
9f9277ccdd refactor(coding-agent): replace AgentSessionRuntimeHost with closure-based AgentSessionRuntime
- Replace AgentSessionRuntimeHost and bootstrap abstractions with AgentSessionRuntime
- Runtime creation is now closure-based via CreateAgentSessionRuntimeFactory
- Factory closes over process-global fixed inputs, recreates cwd-bound services per effective cwd
- Session config (model, thinking, tools, scoped models) re-resolved per target cwd
- CLI resource paths resolved once at startup as absolute paths
- Swap lifecycle: teardown old, create next, apply next (hard fail on creation error)
- Unified diagnostics model (info/warning/error) for args, services, session resolution, resources
- No logging or process exits inside creation/parsing logic
- Removed session_directory support
- Removed session_switch and session_fork extension events (use session_start with reason)
- Moved package/config CLI to package-manager-cli.ts
- Fixed theme init for --resume session picker
- Fixed flaky reftable footer test (content-based polling)
- Fixed silent drop of unknown single-dash CLI flags
- Added error diagnostics for missing explicit CLI resource paths
- Updated SDK docs, examples, plans, exports, tests, changelog

fixes #2753
2026-04-03 20:14:12 +02: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
13b771e591 fix(coding-agent): reduce git update fetch noise closes #2548 2026-03-24 03:23:00 +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
eda1082d4b fix(coding-agent): update project npm packages
closes #2459
2026-03-20 19:36:06 +01:00
Mario Zechner
f951d45000 fix(coding-agent): stop updating packages on startup closes #1963 2026-03-18 03:26:46 +01:00
badlogic
4f81c3c28d fix(coding-agent,tui): stabilize windows shell/path handling
fixes #1775

fixes #1769
2026-03-14 05:36:21 +01:00
Mario Zechner
7ddaf150d6 fix(coding-agent): support configurable npm wrapper command closes #2072 2026-03-14 04:38:01 +01:00
Mario Zechner
e80692bcb6 fix(coding-agent): keep ~/.agents skills user-scoped\n\ncloses #1915 2026-03-07 12:21:54 +01:00
Matteo Collina
757d36a41b fix(coding-agent): add offline startup mode and network timeouts (#1631) 2026-02-25 19:44:49 +01:00
Mario Zechner
f0379384fe feat(coding-agent): prioritize project resources over global 2026-02-24 23:50:55 +01:00
Mario Zechner
39cbf47e42 feat(coding-agent): discover skills in .agents paths by default 2026-02-20 00:15:53 +01:00
Mario Zechner
88ac5ca1d9 fix(coding-agent): treat dot-prefixed extension paths as local 2026-02-08 23:52:23 +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
6b0f1fefdb fix(coding-agent): centralize package source normalization and local path parsing fixes #1304 2026-02-06 00:20:52 +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
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
Mario Zechner
1fe73ad423 Revert "fix(coding-agent): handle npm on Windows with shell fallback fixes #1220"
This reverts commit 895b85636a.
2026-02-04 02:22:37 +01:00
Mario Zechner
895b85636a fix(coding-agent): handle npm on Windows with shell fallback fixes #1220 2026-02-04 02:21:06 +01:00
badlogic
ffb647cece fix(coding-agent): use shell execution for spawn on Windows
fixes #1220
2026-02-04 02:15:22 +01:00
Mario Zechner
8a7a761deb fix(coding-agent): resolve npm.cmd on Windows
closes #1220
2026-02-03 17:04:22 +01:00