-
1.5.1 Stable
released this
2026-09-10 09:18:48 +00:00 | 241 commits to main since this releaseAgentHub 1.5.1
Release-based update detection, and a button that works
- Update detection now reads the forge's releases API and compares the published tag to this install's
package.jsonversion, instead of counting commits against the default branch — a commit count says nothing about whether a version shipped, and on the plugin cache (a depth-1 clone) every distance is a graft artefact. - When no release can be read, detection falls back to the commit count and puts the reason in
release_check, so "up to date" never silently means "we couldn't look". - New
dev_buildstate: a checkout ahead of the newest release readsDev build · N aheadinstead of a false "Up to date". - On a shallow clone every
commits_*_releasefield isnullanddev_buildis never asserted; the version string is the only signal used.
One-click self-apply, for both install kinds
POST /api/updates/applypicks its mode from how the copy was installed, never from the request body:- checkout — fast-forward onto the release tag, rebuild, self-restart.
- plugin cache — handed to a detached chain:
claude plugin marketplace update→claude plugin update -y→plugin-bootstrap.js --forcefrom the new cache directory, which retires the old server and starts its replacement.
Every chain outcome is recorded to
plugin-update.jsonin the runtime dir — outside the cache the update replaces — so the next server reports it aslast_plugin_update. A failed chain is otherwise indistinguishable from a slow one.Update all, and reloading open sessions
In
/settings?tool=claude-code→ Plugins:- Update all — every marketplace, then every installed plugin, then one reload. AgentHub itself goes last, because its bootstrap restarts the dashboard; progress is journalled to disk and survives that restart. A batch left
runningfor over an hour is reported asabandonedso the button can't wedge. - Reload sessions — types
/reload-pluginsand/reload-skillsinto the dashboard's live lane panes over tmux. Both commands are scoped by Claude Code to the session that runs them, so this reuses running sessions and spawns noclaudeprocess — a one-shot headless run would reload only itself and leave a junk session behind. - Updating a single plugin reloads immediately; the batch reloads once at the end.
Fixes
claude plugin updatewas invoked without-ywhile stdin is closed, which the CLI refuses whenever stdin is not a TTY — the per-plugin Update button failed for any plugin whose marketplace declares an install command.CcConfigChangedPayload.actionclaimedwrite | deletewhile nine other values were already being emitted.- Corrected three
ARCHITECTURE.mdstatements that claimedPOST /api/updates/applydid not exist.
Other
- Sidebar subtitle, splash screen and page title now read SmartGift Solution.
Upgrading: a plugin-cache install can use the in-app Update now button from the next release onward. To get onto this one, run
claude plugin update agenthub@sg -y(or/agenthub-update); an already-open Claude Code session still needs/reload-pluginsfor new skills and commands.Downloads
- Update detection now reads the forge's releases API and compares the published tag to this install's