fix(updates): report a plugin build installed beside the running one, never "up to date" on a failed check
A `claude plugin update` run from a terminal (or with only the Claude desktop
app open) unpacks the new build and starts nothing: no SessionStart fires, so
the dashboard kept running the old cache dir across reboots, and with the
forge unreachable the sidebar read "Up to date" (seen on a machine stuck at
1.8.10).
- pluginStatus asks supersededBy for its own root: a recorded sibling install
sets `installed_not_running: {root, version}` and `update_available`, with
no network needed
- the sidebar reads "<version> installed, not running"; the update modal keys
on it, so Update now is offered even with no release tag or sha
- plugin-update-helper hands over to the recorded install first, the newest
sibling dir only as a fallback
- a plugin install whose release lookup failed reads "Could not check for
updates" instead of "Up to date"
- docs/PLUGINS.md: the case and the manual hand-over command
This commit is contained in:
@@ -158,7 +158,10 @@ function main() {
|
||||
return;
|
||||
}
|
||||
|
||||
const newRoot = findNewRoot(oldRoot);
|
||||
// Claude Code's own install record first: newest-mtime is only a guess, and a
|
||||
// build installed from a terminal while this server kept running is exactly
|
||||
// the one to hand over to, whether or not this chain pulled anything.
|
||||
const newRoot = require("./plugin-bootstrap").supersededBy(oldRoot) || findNewRoot(oldRoot);
|
||||
if (!newRoot) {
|
||||
// Already newest: the marketplace had nothing to pull. Not a failure — the
|
||||
// old server is still running and untouched, so say so plainly.
|
||||
|
||||
Reference in New Issue
Block a user