Version Migration
How to move between Navigator versions and keep your project config in step with the installed plugin. This page covers the upgrade process — for the full per-version log, see the CHANGELOG and the releases/ notes.
v7 → v8
v8.0.0 “In Process” moves the hook runtime into Claude Code as a mod: the same ops, in-process,
on Claude Code 2.1.287 or newer, with the v7 Python dispatcher kept as the fallback for
older versions, blocked mods, or an op that crashes three times in a session. Config and state
are unchanged — .agent/.nav-config.json and .agent/.nav-runtime-state.json are shared by
both runtimes, so nothing migrates. New: the /nav pane, the status band, the Pilot theme
(/theme → Pilot), and a truthful update notice at session start (TASK-81). See the
v8.0.0 release notes .
Upgrade steps
claude plugin update navigator@navigator-marketplace.- Restart Claude Code. The plugin manifest now registers the mod; skill paths are cached at session start.
- On Claude Code ≥ 2.1.287 nothing else: the mod owns every op. On an older Claude Code the Python runtime keeps running exactly as in v7 — no feature is lost, only the pane and band.
- Optional:
/theme→ Pilot;/navto open the pane.
Rolling back to v7
claude plugin install navigator@7.9.0 and restart. State and config are compatible in both
directions.
v6 → v7
v7.0.0 “Hooks as Runtime” replaces the nine individual v6 hook scripts with a single dispatcher (hooks/nav_dispatch.py) that routes op modules across 13 Claude Code events. Behaviors that v6 mandated as prose in CLAUDE.md (workflow gating, loop exit rules, intent briefs, and so on) are now ops with config off-switches in .agent/.nav-config.json. Runtime state moves to a single file, .agent/.nav-runtime-state.json (schema 2, atomic writes), and the dispatcher is fail-open — a crash never blocks the session. See the v7.0.0 release notes for the full change list.
Upgrade steps
/plugin update navigator(or install fresh).- Restart Claude Code. The manifest hook set changed, and skill paths are cached at session start — without a restart the v6 hooks stay registered.
- Config migrates additively on first run: your v6 blocks in
.agent/.nav-config.jsonare preserved, and the v7 blocks (dispatcher,tier1,stop_completion, the*_hooktoggles) are added with safe defaults. Missing blocks always default safe — no manual config surgery required. - Opt in to the new blocking features if you want them: they ship off. Set
tier1.enabledfor instant answers, andstop_completion.enabledplusstop_completion.continue_enabledfor the completion gate.
Rolling back to v6
The additive-only config migration makes rollback safe by design:
claude plugin install navigator@6.18.1.- Restart Claude Code (re-registers the v6 manifest hook set).
- Optionally remove the v7-only config blocks — purely cosmetic, v6 ignores them.
.agent/.nav-runtime-state.jsonis inert under v6 and can be deleted.
Upgrading the plugin
Run the upgrade skill:
nav-upgradeor say “upgrade Navigator”. It detects the current version, updates the plugin, verifies the install, and then offers to sync your project CLAUDE.md. Session start only shows a notice when a newer release exists (Auto-Update); nothing updates until you run the command or this skill.
After any mid-session update, restart Claude Code so the new skill paths are loaded — Claude Code caches them at session start.
Syncing CLAUDE.md
The plugin binary and your project config version independently. After upgrading the plugin, bring the project config forward:
nav-sync-claudeor say “sync CLAUDE.md” / “update my CLAUDE.md”. It rewrites the managed sections of CLAUDE.md to match the installed version while preserving your customizations (project-specific standards, conventions, notes). nav-upgrade calls nav-sync-claude as one of its steps, so a normal upgrade keeps both in sync.
What version drift means
Version drift is when the installed plugin is ahead of (or behind) what your project config references:
| Signal | Meaning |
|---|---|
Plugin newer than CLAUDE.md | Config missing newer features — run nav-sync-claude |
| Docs reference unknown config keys | .nav-config.json behind schema — sync or re-init |
| Skill renamed but old name in docs | Stale cross-references — sync resolves them |
Resolve drift by running nav-sync-claude. The authoritative version source is the plugin manifest, not CLAUDE.md.
Notable deprecations
- Multi-Claude shell scripts → native Workflows (removed in v7.9.0). The shell-based orchestration, the
nav-multiandnav-install-multi-claudeskills, the templates and themulti_agentconfig block are gone (deprecated since v6.15.0). Use Claude Code’s native Workflows and the Agent tool, or Pilot, for parallel and multi-phase work. A stalemulti_agentblock in an existing config is ignored. - Skill renames (v6.14.0):
nav-update-claude→nav-sync-claude,nav-task-mode→nav-workflow. No backwards-compat aliases; update any saved references.
Upgrade checklist
- Run the command from the session-start notice, or nav-upgrade.
- Restart Claude Code after a mid-session update.
- Run nav-sync-claude if prompted, to clear version drift.
- Confirm
.nav-config.jsonkeys match the new schema. - Start a session and verify the version banner.
For the full release history and per-version migration notes, consult the CHANGELOG and releases/ directory in the repository.