Files
AgentHub/plugins/ccam/commands/ccam-open.md
T
nntrivi2001 c017f6dad9 fix(plugin): restart a server left on a retired plugin root
A plugin update applied mid-session (/plugin followed by /reload-plugins)
fires no SessionStart, so the bootstrap's version handover never runs and the
dashboard server keeps executing a cache directory Claude Code has already
discarded. /ccam-open then rebuilt the bundle from the new root against that
old server, and the new bundle called routes the old server never had:
/api/lanes/pipeline-stats fell through to /:id and rendered "lane not found",
/api/workflows/skill-usage fell through to the SPA catch-all and broke
JSON.parse on the returned HTML. Both Workflows panels showed an error while
the code they needed was sitting on disk.

plugin-open now re-runs bootstrap when the live server's recorded pluginRoot
differs from the current one, or when no server is live at all. Bootstrap
already owns the stop/start and the dependency install the new root may need,
so this only restores the trigger that a mid-session update skips.
2026-08-26 10:57:03 +07:00

1.1 KiB

description
description
Rebuild the dashboard UI and print its URL

Rebuild the dashboard bundle, then print the URL. Always forces a rebuild so a stale bundle (e.g. after a fix commit landed but the bootstrap's build predates it) never serves silently. Also finishes the build if the bootstrap's own attempt failed (check ~/.claude/agent-dashboard/runtime/client-build.log).

node "${CLAUDE_PLUGIN_ROOT}/scripts/plugin-open.js" --force

Install + build takes a few minutes if the client toolchain isn't already installed; otherwise the rebuild itself takes ~10-15s. The server serves from that directory, so it usually needs no restart — but if it is down, or still running from a plugin root a mid-session /plugin update retired, the command re-runs bootstrap first and prints Server restarted on the current plugin version. (without it, the fresh bundle would call routes that old server never had).

Then help the user open it:

uname -s
  • Darwin → open <url>
  • Linux → xdg-open <url>
  • otherwise → tell them to open the URL in a browser.

Keep the output to a few lines.