Files
AgentHub/plugins/agenthub/commands/agenthub-update.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

2.0 KiB

description
description
Pull the latest agenthub plugin version and refresh the dashboard runtime

Pull the newest agenthub release from its marketplace, then reinstall the runtime dependencies and restart the dashboard server against it. Use this to get a new dashboard build, or when /agenthub-doctor reports missing dependencies or a dead server.

First, find which marketplace this install's agenthub came from and pull the latest version into the plugin cache:

INSTALLED=$(claude plugin list 2>/dev/null | grep -o 'agenthub@[^ ]*' | head -1)
MARKETPLACE="${INSTALLED#agenthub@}"
if [ -z "$MARKETPLACE" ]; then
  echo "agenthub is not installed as a plugin (checkout install?) - nothing to update this way."
else
  claude plugin marketplace update "$MARKETPLACE"
  claude plugin update "agenthub@$MARKETPLACE" -y
fi

That downloads the new version into ~/.claude/plugins/cache/ but does not take effect in this session — Claude Code only re-resolves ${CLAUDE_PLUGIN_ROOT} on /reload-plugins (a REPL-only action, not scriptable from a command). Say so plainly: tell the user to run /reload-plugins now, then either re-run /agenthub-update (this time the bootstrap step below runs against the new version) or just start a new session — plugin-bootstrap.js compares the recorded state against the current plugin version on every SessionStart and rebuilds automatically if they differ.

Then, whether or not a plugin update was just pulled, refresh the runtime against whatever ${CLAUDE_PLUGIN_ROOT} currently resolves to. This stops the running dashboard server before starting the new one. Say so, then run:

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

It runs in the foreground and can take a few minutes on a cold cache. When it finishes, verify:

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

Report the final state in a few lines. If the bootstrap failed, quote the decisive line from ~/.claude/agenthub/runtime/bootstrap.log.