Changelog
Unreleased
[0.9.1] - 2026-05-21
Added
/tasks verify [id]— manually trigger the verify+fix loop for a specific done goals-mode task, or for all done standalone goals tasks when no id is given/plans verify <id>— manually trigger the verify+fix loop for all done goals in a plan without re-running implementations
Fixed
- Auto-retry failed goals —
/tasks runand/plans runnow automatically pick up previously-done tasks that still havefailedCriteriaand re-run verify+fix for them without manual intervention
[0.9.0] - 2026-05-10
Added
- Goals mode — set
planMode: "goals"innav.config.jsonfor outcome-focused planning;/planguides defining outcomes and acceptance criteria,/plans splitproduces goals with required criteria (minimum 2 per goal), and task execution leads with criteria while letting the agent decide implementation - Goal verification — after all goals complete, a verification phase checks each acceptance criterion; results stored in
task.criteriaResultswith pass/fail status and evidence - Fix-and-reverify loop — failed criteria trigger automatic rework; the agent receives a fix-focused prompt listing failed criteria, then verification runs again; loop repeats until all pass or
taskImplementationMaxAttemptsreached (default: 3)
Changed
- Plan mode tools —
/plandiscussion now allowsshellandshell_statusfor codebase exploration (ls, find, tree); edit/write remain blocked to prevent accidental mutations
Fixed
- Markdown parsing in verification — strips
**formatting from criterion text before matching
[0.8.6] - 2026-05-08
Fixed
subagent.parallelToolCalls— config setting now works correctly; previously it was ignored and subagents always ran sequentially regardless of the configured value
Changed
- Subagent parallelism — subagents no longer inherit the parent session's
parallelToolCallssetting; they default to1(sequential) unlesssubagent.parallelToolCallsis explicitly set innav.config.json
[0.8.5] - 2026-05-08
Changed
/planformat — the model now writes the plan as a markdown document with YAML frontmatter (nameanddescriptionbetween---lines) followed by the full plan body; parsed deterministically on confirm, replacing the previous fenced JSON block/plans splitformat — the agent now produces a markdown task list (##section per task, optional**Files:**and**Criteria:**bullets) instead of a JSON array; tasks are saved with IDs like1-1,1-2, etc. (/plans microsplitstill uses fenced JSON withcodeContext)- System prompt — default system prompt is now more compact to reduce token usage per request
Added
- Batched edits (
edits[]) — both hashline and searchReplace edit modes now accept aneditsarray for transactional multi-step edits applied atomically in a single file write
Improved
- Delegated run safety — subagent runs default to
parallelToolCalls: 1(sequential) for determinism and lower blast radius; setsubagent.parallelToolCallsexplicitly to allow parallel tool execution in delegated sessions; tool behavior hardened for delegated agent runs - Planning tool restriction —
/plandiscussion and/plans splitmodes limit the LLM to read-only tools (read,skim,filegrep) so planning never accidentally mutates files
[0.8.4] - 2026-04-28
Added
subagent.allowNestedSubagents— optionaltrueinnav.config.jsonenables recursivesubagentdelegation from delegated runs; when enabled andsubagentstays in the child allowlist, the child system prompt includes<available_subagents>like the main session
Changed
- Delegated sessions default — omitted or
false(default) removessubagentfrom delegated tool allowlists and omits the subagent catalog in child prompts, even ifsubagent.toolsor inherited allowlists listedsubagent
Improved
- Subagents guide — documents nested delegation defaults,
allowNestedSubagents, and token-cost guidance
[0.8.3] - 2026-04-28
Added
- Subagent parallel tool limit override — delegated runs now accept
subagent.parallelToolCallsso nested sessions can explicitly set their own per-message tool concurrency (1–32)
Improved
- Nested subagent tool labeling — chained delegations now preserve and compose context labels across levels so tool output clearly shows depth (for example, main → subagent → subagent → tool)
[0.8.2] - 2026-04-28
Improved
- Nested subagent assistant output — parallel
subagentruns buffer the child model reply and show one compact preview line (with inheritedcolorSlotand context label) instead of interleaving streamed tokens; TUI uses parallel accent colors; UI server emitsstatusinfo lines with slot and preview - Nordic theme parallel accents — refreshed rotating accent palette for concurrent tool and subagent lines
- Subagents guide — expanded documentation on defining and using project subagents
[0.8.1] - 2026-04-28
Added
parallelToolCalls— optionalnav.config.json/NAV_PARALLEL_TOOL_CALLS(1–32, default 1) caps how many tool calls from one assistant message run concurrently; batches that includeask_userrun sequentially; nested subagent sessions always use sequential tools. TUI and UI server emit optionalcolorSloton tool events for clearer interleaved output
Fixed
- Subagent block in
nav.config.json— setting onlymodelno longer replaces the parentprovider,baseUrl, orcontextWindowwith values inferred from the child model; unset keys keep the parent’s resolved values
Improved
- Parallel tool colors — Nordic and classic themes define rotating accents for concurrent tool lines, results, and verbose diffs
[0.8.0] - 2026-04-27
Added
- Subagents — project definitions in
.nav/subagents/<id>.md(YAMLname/descriptionplus body as role prefix),<available_subagents>catalog in the system prompt, andsubagenttool for delegation with optionalsubagentconfig block (model,contextWindow,handoverThreshold,tools) /create-subagent— interactive flow (optional id and purpose on the command line) for the main agent to draft and write a subagent file; reloads the system prompt when the run finishes- Tool allowlists — optional
toolsarray innav.config.jsonlimits which tools are sent to the LLM and described in the prompt; delegated runs can usesubagent.tools
Improved
- Subagent logging — nested tool lines, results, info, and errors show the subagent display name in brackets; WebSocket
tool.callmay includecontextLabelfor UIs
[0.7.7] - 2026-04-20
Improved
- Microsplit — enhanced plan microsplit behavior
[0.7.6] - 2026-04-18
Fixed
ask_usertool registration — theask_usertool is only offered to the model during/plandiscussion mode; normal agent runs no longer expose it
[0.7.5] - 2026-04-18
Fixed
- UI server role persistence —
systemPromptPrefixis retained when the system prompt is rebuilt (/clear,/init, and after/plans split//plans microsplit), including reloadingAGENTS.mdand skills
Improved
- UI server documentation — WebSocket protocol reference and guide for building custom clients
[0.7.4] - 2026-04-18
Changed
- UI server
systemPromptPrefix— whenthread.createincludes a non-empty prefix, Nav’s default “You are nav…” identity line is omitted so the prefix defines the agent role; operational tool and edit guidance is unchanged
[0.7.3] - 2026-04-18
Fixed
- macOS binary signing — release binaries are now ad-hoc codesigned, preventing SIGKILL on launch
[0.7.2] - 2026-04-17
Improved
- UI server — now supports multiple concurrent threads
[0.7.1] - 2026-03-26
Fixed
- Sandboxing — config file–based sandbox settings now apply correctly
[0.7.0] - 2026-03-23
Added
- Hooks — configurable
stop,taskDone, andplanDonesteps innav.config.json(shell commands and optional custom-command steps);taskDone/planDonesupportmaxAttemptswith feedback to the model on failure;NAV_HOOK_TIMEOUT_MS/hookTimeoutMsfor shell step timeouts (default 10 minutes per shell step) taskImplementationMaxAttempts(default 3, envNAV_TASK_IMPLEMENTATION_MAX_ATTEMPTS) — cap full work+verify cycles per task;/tasks runand/plans runstop when exhausted instead of continuing to the next taskeditModeinnav.config.json— defaulthashline; set tosearchReplacefor plain-text reads and literalold_string/new_stringedits instead of LINE:HASH anchors- Hook
commandsteps: optionalargsstring with${VAR}substitution (hook env +process.env); result fills custom command{input}placeholders
Improved
- TUI and UI server now show which hook is running (
stop,taskDone,planDone) with step index and shell command or custom command label before each step executes - Print task name when starting to work on a task
[0.6.0] - 2026-03-17
Added
ui-serversubcommand -- run nav as a local HTTP/WebSocket backend for external UI clients- UI server configuration flags/env vars:
--ui-host/--ui-portandNAV_UI_HOST/NAV_UI_PORT - UI protocol docs in
docs/ui-server-protocol.md - Core transport abstraction (
AgentIO) and WebSocket-oriented agent IO modules to support non-TUI frontends
Improved
- Sandbox re-exec arg forwarding now preserves CLI args correctly in both source and compiled runs
- Safer slash-command tab completion handling in TUI
[0.5.1] - 2026-03-16
Added
- Agent now knows the current date (injected dynamically into the system prompt)
[0.5.0] - 2026-03-16
Added
- Azure OpenAI provider -- use
-p azurewithAZURE_OPENAI_API_KEY,AZURE_OPENAI_API_BASE_URL, andAZURE_OPENAI_DEPLOYMENT_NAMEenvironment variables (or config file equivalents) azureDeploymentconfig option -- specify Azure deployment name separately from model name
[0.4.0] - 2026-03-07
Added
skimandfilegreptools -- lightweight file inspection with hashline output, no shell needed@file references -- type@path/to/filein the prompt to include file contents inline/plans microsplitcommand -- generate micro-tasks optimized for small LLMs- Arrow key navigation for slash-command autocomplete
Improved
- Tool parsing and output formatting
- Hashline robustness against duplicate hashes
- Edit tool simplified and made more robust
- Ollama: pass
num_ctxandnum_batchsizes; showprompt_eval_countin verbose output - Verbose mode: log full LLM calls when enabled
- Removed duplicate logging
- Renamed
/plans workand/tasks workto/plans runand/tasks run
[0.3.0] - 2026-02-21
Added
- Plan mode (
/plan,/plans,/plans split,/plans run) -- discuss an idea, save it as a named plan, generate ordered implementation tasks, and work through them automatically - Task management (
/tasks,/tasks add,/tasks run,/tasks rm) -- persistent task list withplanned->in_progress->donelifecycle config-initcommand -- creates a.nav/nav.config.jsonwith sensible defaults- Task halting -- users can stop a running task mid-execution
Improved
- Edit tool robustness -- returns only affected-line hashes after edits (not the whole file), with detailed error messages and fresh hashes on failure so the model can retry without re-reading
- Hashline parser -- fixed parse error on certain edge-case lines
- Plan mode conversation flow and task field layout
- TUI indentation and visual layout
[0.2.0] - 2026-02-16
Added
- Skills system -- define reusable agent capabilities in
SKILL.mdfiles under.nav/skills/,~/.config/nav/skills/, or.claude/skills/; automatically injected into the system prompt /skillscommand -- list all available skills/create-skillcommand -- interactively create a new skill
[0.1.1] - 2026-02-15
Improved
- Seatbelt sandbox profile is now embedded directly into the binary (no external file dependency at runtime)
[0.1.0] - 2026-02-15
Added
- Initial release
- Hashline-based editing -- each line is prefixed with
LINE:HASH; edits reference anchors instead of reproducing content, preventing stale-edit conflicts - Multi-provider LLM support: OpenAI, Anthropic (Claude), Google Gemini, Ollama
- Interactive and one-shot modes
- Shell command execution with background process support (
shell+shell_statustools) - ESC to stop agent execution; Ctrl-D to exit
- Slash commands:
/clear,/model,/handover,/help - Custom slash commands via
.nav/commands/*.mdor~/.config/nav/commands/*.md - Tab autocomplete for slash commands with live filtering
- Auto-handover when approaching context window limit (configurable threshold)
- macOS Seatbelt sandboxing (
-s/NAV_SANDBOX=1) - Config files:
.nav/nav.config.json(project) and~/.config/nav/nav.config.json(user) - Color themes:
nordic(default, 24-bit truecolor) andclassic(16-color) AGENTS.mdsupport -- project-specific instructions auto-included in system prompt/initcommand -- generates anAGENTS.mdfrom project context- Session logging to
.nav/logs/as JSONL - Pre-built binaries for macOS (arm64/x64), Linux (x64/arm64), and Windows (x64) via GitHub Actions
- Progress spinner during LLM API calls
- Verbose mode (
-v) -- shows diffs, token counts, timing, and context utilization