• v1.5.1 d4052ed235

    1.5.1 Stable

    nntrivi2001 released this 2026-09-10 09:18:48 +00:00 | 241 commits to main since this release

    AgentHub 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.json version, 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_build state: a checkout ahead of the newest release reads Dev build · N ahead instead of a false "Up to date".
    • On a shallow clone every commits_*_release field is null and dev_build is never asserted; the version string is the only signal used.

    One-click self-apply, for both install kinds

    POST /api/updates/apply picks 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 --force from the new cache directory, which retires the old server and starts its replacement.

    Every chain outcome is recorded to plugin-update.json in the runtime dir — outside the cache the update replaces — so the next server reports it as last_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 running for over an hour is reported as abandoned so the button can't wedge.
    • Reload sessions — types /reload-plugins and /reload-skills into 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 no claude process — 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 update was invoked without -y while 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.action claimed write | delete while nine other values were already being emitted.
    • Corrected three ARCHITECTURE.md statements that claimed POST /api/updates/apply did 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-plugins for new skills and commands.

    Downloads