一键导入
pan-restart
pan restart — scoped restart (dashboard by default; --cliproxy, --traefik, or --full) that will not strand shared sidecars
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
pan restart — scoped restart (dashboard by default; --cliproxy, --traefik, or --full) that will not strand shared sidecars
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Add repositories to the current progressive polyrepo workspace
pan close <id> — close-out ceremony for a completed and merged issue
pan review <subcommand> — manage the code review lifecycle: list pending work, re-request review, heal status drift, reset/abort/restart review cycles
pan start <id> — spawn a work agent for an issue in its own tmux session and workspace
Maintain a project knowledge wiki in Open Knowledge Format with /okf init, open, author, convert, sync, study, retro, extract, validate, lint, and embed.
pan flywheel — start, pause, resume, complete, stop, inspect, emit, and report on the singleton Fix-All Flywheel orchestrator
| name | pan-restart |
| description | pan restart — scoped restart (dashboard by default; --cliproxy, --traefik, or --full) that will not strand shared sidecars |
Use this whenever a Overdeck component needs to be restarted. The pan restart
command is scope-aware: by default it restarts only the dashboard and leaves
CLIProxy, Traefik, and TLDR running — so a dashboard restart cannot strand the
system or kill unrelated dependencies.
| Situation | Command |
|---|---|
Dashboard restart (rebuild, stale state, EADDRINUSE on 3010/3011) | pan restart |
| GPT-routed agents returning 502s (CLIProxy died) | pan restart --cliproxy |
.localhost routing / Traefik changes | pan restart --traefik |
| Whole-stack rebuild (use sparingly — stops CLIProxy & Traefik) | pan restart --full |
# Build first if dashboard server or CLI code changed
cd ~/Projects/overdeck && npm run build
# Dashboard-only restart (safe — leaves CLIProxy, Traefik, TLDR running)
pan restart
# Scoped alternatives
pan restart --cliproxy
pan restart --traefik
pan restart --full # nuclear — stops & restarts everything
# Explicit force cases
pan restart --force # bypass the agent deploy-window gate
pan restart --cliproxy --force # redownload the pinned CLIProxy binary
Each stage is health-gated: the command waits for GET /api/health (dashboard)
or port binding (CLIProxy) to succeed before reporting ✓, and exits non-zero
with a [stage] reason message on timeout.
When pan restart would restart the dashboard, it refuses to run from a
non-primary checkout: either a workspace worktree or any linked Git worktree,
including a handoff worktree. It exits with code 2 and names the primary
checkout where the command must run.
The post-boot health gate verifies both repoRoot and mode from
GET /api/health. If another server holds the port, the command reports
port held by non-primary server (cwd=…, mode=…); a 200 response from the wrong
server is a failure, not a successful restart.
pan restart is idempotent: it stops the old listener(s), starts a new one,
then polls until the health check passes.pan restart --dashboard NEVER touches CLIProxy, Traefik, or TLDR — that
scope contract is enforced by tests.pan dev ownership refuses the restart because it would disconnect
live conversations and terminals; --force explicitly bypasses this gate.--cliproxy, --force has a separate meaning: it redownloads the binary at
the pinned version before restarting it.pan restart once the root cause is fixed.pkill -f "node.*server" — it can kill unrelated Node processes.pan restart over pan down && pan up whenever you only need to
cycle one component. pan down && pan up tears down everything and takes
longer to recover.