• v1.5.4 7000a9c5ce

    v1.5.4 Stable

    nntrivi2001 released this 2026-09-10 16:23:57 +00:00 | 235 commits to main since this release

    Fixed

    A self-update left the dashboard serving the previous version's UI.

    After 1.5.2 → 1.5.3 applied itself, the server ran 1.5.3 while the browser still showed 1.5.2. The client build had failed and runtime/client-dist still held the old bundle, so nothing looked broken — the only signal anywhere was the Settings page's UI build v1.5.2 (rebuild client to match) line.

    Cause: the entire client build toolchain (vite, typescript, @vitejs/plugin-react, tailwindcss, @types/*) is a devDependency, and npm reads NODE_ENV=production as --omit=dev:

    $ NODE_ENV=production npm config get omit
    dev
    

    The dashboard server runs with NODE_ENV=production, and every bootstrap descended from it inherits that — the plugin-update chain, and any SessionStart fired by a claude running inside a tmux pane the server started. So npm ci installed 58 packages instead of ~330, vite was never there, tsc -b died on missing type declarations, and buildClient returned failed with the stale bundle left in place. Every build before this succeeded only because it ran from a hook claude invoked directly, with no NODE_ENV — the first real self-update was the first time the condition occurred.

    --include=dev is now passed on both install paths; a CLI flag outranks the env, which is the point. Verified by running buildClient with NODE_ENV=production against the installed plugin root: previously failed, now built, and the served bundle carries the new version.

    A successful update chain no longer reports nothing. plugin-update-helper writes its verdict before the bootstrap handover as well as after: that step retires the process tree the helper hangs off, and the observed run reached the new server with no verdict file at all, so the dashboard showed last_plugin_update: null for an update that had in fact succeeded.

    Verification

    • server/__tests__/plugin-bootstrap.test.js +1 test pinning --include=dev on every dependency-install path.
    • npm run test:server 1708 passing.
    • Live: the update chain ran end-to-end for real (plugin-update.log: marketplace update → agenthub updated b868a2fa8566 → 67c948bbe2f8 → plugin-bootstrap --force), which is how this was found.
    Downloads