Files
AgentHub/plugins/agenthub/commands/agenthub-open.md
T
nntrivi2001 c7dbaf2d9f refactor: finish the AgentHub rename and drop the MCP server
Two leftovers from the rebrand, done together because they touch the same
docs and manifests.

**Data directory.** `agent-dashboard` could not simply be renamed in the
source: it names a real directory holding the live SQLite database. Startup
now moves it once, via `migrateLegacyDataDir()` in `server/lib/claude-home.js`
— a same-filesystem rename, so it is instant even at multiple gigabytes and
cannot leave two divergent copies. `getDataDir()` stays PURE and resolves to
the legacy path until the move happens; the first version of this put the
rename inside the getter, which meant `npm run test:server` relocated the
developer's real database as a side effect. The call sits behind
`require.main === module` and ahead of the router requires, because those pull
in db.js, which opens SQLite at module load. A failed rename is silent and the
old directory keeps being used: an unfashionable directory name beats a blank
database beside an unreachable one. Same treatment for the port-discovery file
(`.agent-dashboard.json` → `.agenthub.json`, old one dropped on write).

Not renamed on purpose: the Sagi localStorage keys (renaming silently resets
everyone's prefs) and the PWA manifest `id` (changing it orphans an installed
app).

**MCP server.** 4 tool calls in 46 days across 577,132 events, against 4,556
lines of TypeScript, a 2 MB committed build artifact, and a pre-commit guard
that had already blocked commits twice. Deleted: `mcp/`, the maintainer skills
and `mcp-reviewer` agent, the build check, `plugins/agenthub/.mcp.json`,
`docs/MCP.md`, 12 npm scripts, 5 Makefile targets, and every doc section
describing it.

Kept, because they are unrelated things sharing the name: the Config
Explorer's MCP tab and its API, per-lane Playwright MCP, the agenthub-config
plugin's MCP audit, and the historical `mcp__plugin_agenthub_*` events that
analytics must keep attributing.

Verified: server 1432/1432, client 459/459, tsc clean, prettier clean. Both
directions of the migration proven — a sandbox-HOME test run leaves the legacy
directory untouched, and a real boot moves it with its contents intact.
2026-09-08 09:48:40 +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/agenthub/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.