c7dbaf2d9f
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.
50 lines
2.0 KiB
Markdown
50 lines
2.0 KiB
Markdown
---
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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`.
|