mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
fix(coding-agent): only report packages as up to date when pi update checked them (#11711)
## Problem #11707 prints `Packages are already up to date` whenever no package changed. In two cases that claim is false. **1. npm left the old version installed.** Extension updates install `@latest` or the configured range. If npm resolves stale registry metadata, it reinstalls the old version and exits 0. The existing check warns, then the summary contradicts it: ``` Updating npm:foo... npm:foo is still 1.2.0 (registry reports 1.3.0); npm registry metadata may be stale, try again in a few minutes Packages are already up to date ``` **2. Offline mode.** With `--offline` or `PI_OFFLINE=1`, `updateConfiguredSources()` returns before checking anything, and the CLI still prints `Packages are already up to date`. ## Change The CLI only prints "already up to date" when the update ran and printed no warning: | Situation | Output | |---|---| | Packages changed | `Updated N packages:` and the list (unchanged) | | Nothing changed, no warnings | `Packages are already up to date` (unchanged) | | Nothing changed, a warning was printed | `No packages were updated, see the warnings above` (or `<source> was not updated, ...`) | | Offline mode | `Skipped package updates (offline mode)` | The CLI counts `progress` update events, which are always warnings, and does not try to map them to packages. That is deliberate: the git warning about untracked files that could not be cleaned is printed even though the commit did change, so a warning does not mean "this package was not updated". In offline mode, `update()` still runs, so `pi update <unknown source>` still fails with "No matching package". `isOfflineModeEnabled()` is now exported from `core/package-manager.ts` (not from the package index) so the CLI uses the same check. The changelog entry from #11707 is adjusted, since it is unreleased. ## Tests `test/package-command-paths.test.ts`, both through `main()`: - npm `view` reports 1.3.0 but `install` leaves 1.2.0: the stale-metadata warning is printed, then `No packages were updated, see the warnings above`, and no "up to date". - `PI_OFFLINE=1`: `Skipped package updates (offline mode)`, no "up to date". Both fail without the fix. `cycles project package overrides in config local mode`, `prints a pnpm metadata hint when self-update fails` and `should expand ~ in exclusion and exact patterns` fail locally on Windows, on `origin/main` as well.
This commit is contained in:
parent
65c85bda2c
commit
806cdd68e3
4 changed files with 67 additions and 4 deletions
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
### Added
|
||||
|
||||
- `pi update` now lists each updated package with its npm version or git commit change, for example `npm:foo 1.2.0 -> 1.3.0`, and prints `Packages are already up to date` when nothing changed. `PackageManager.update()` reports each changed package as a new `result` progress event whose `message` holds that line ([#11707](https://github.com/earendil-works/pi/pull/11707))
|
||||
- `pi update` now lists each updated package with its npm version or git commit change, for example `npm:foo 1.2.0 -> 1.3.0`, and prints `Packages are already up to date` when nothing changed. When nothing changed but an update printed a warning, for example because npm left the old version installed after resolving stale registry metadata, it prints `No packages were updated, see the warnings above` instead; in offline mode it prints `Skipped package updates (offline mode)`. `PackageManager.update()` reports each changed package as a new `result` progress event whose `message` holds that line ([#11707](https://github.com/earendil-works/pi/pull/11707), [#11711](https://github.com/earendil-works/pi/pull/11711))
|
||||
|
||||
## [1.5.0] - 2026-11-02
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue