-
v6.0.0 Stable
released this
2026-10-02 17:54:22 +00:00 | 239 commits to main since this releaseOperator decision 2026-09-27: nothing Voyage ships starts a Claude Code
session. Work that needs another session becomes an order plus a starter
line that the user runs in a session they open themselves; parallel work
inside one session uses subagents. This is a breaking change for anyone who
relied on Voyage launching sessions.Changed (breaking)
/trekexecutemulti-session path (Phase 2.6) no longer launches child
sessions and no longer finishes in one call. It prepares one wave at a
time: a worktree per session, one session order per session
(.claude/trekplan-sessions/{slug}/orders/, written by the new
lib/util/session-orders.mjs) with a/trekexecute --session N <plan>
starter, and stops. Running the same command again reads each session's
progress file, merges the wave sequentially and prepares the next one. A
plan with W waves takes W + 1 parent runs plus one session per order.
New Hard rule 21: never start Claude Code.- Sessions now run under the user's own permission mode and tool set: the
per-session tool allowlist and the permission-bypass mode are gone, and
brief.md/architecture/overview.mdare no longer injected as an
appended system prompt. - Phase 7.6 recovery writes a bounded recovery order for a session you open,
and the run stops aspartial; nothing dispatches it automatically. /trekplan --decompose(and its alias--export headless): the
session-decomposer writesorders.mdinstead of alaunch.sh, and the
"launch" reply is gone./trekresearch --engine deep-research: the pre-gate no longer runs the
Claude Code binary to read its version; the post-hoc check decides. The
version-below-floorreason token is gone (that case now reports
no-cited-report).- No
{session-dir}/logs/session-N.logis written any more; progress files
are the source of truth, and each wave's progress files are archived to
orders/wave-W-session-N.progress.jsonbefore its worktrees are removed. --dry-runno longer prints a billing line.
Removed
- The
ANTHROPIC_API_KEYbilling check, the hooks-fire version precheck, the
headless safety preamble and the per-child tool, turn and budget flags —
they existed only for launched children. TheTREKEXECUTE_MAX_TURNSand
TREKEXECUTE_MAX_BUDGET_USDenvironment variables are ignored. templates/headless-launch-template.mdand
scripts/q3-cache-prefix-experiment.mjs(a finished experiment that
started the binary; its results stay indocs/).- README: the billing-safety and headless MCP-tuning sections, and the
fourth security layer (scoped per-child tool access), which went with the
launched children.
Fixed
- Every
VOYAGE_ROOTresolution in/trekexecute(multi-session Step 0 and
plan verification),/trekreviewand/trekresearchnow finds the
installed plugin: the literal${CLAUDE_PLUGIN_ROOT}that Claude Code
substitutes, else the highest installed version in the plugin cache. Before,
these blocks always exited 2. - The multi-session path never force-deletes. Worktrees are removed only
when git agrees they are clean and session branches are deleted only once
merged; anything git refuses is kept and listed in the report with what to
do. Before, a failed session, a merge conflict or a refused merge deleted
everytrek/{slug}/*branch of the wave, finished work included. - Collecting a wave never tears down a session that is still running (an
unknown status counts as running); it stops when the main checkout has
uncommitted changes or has switched branch, and tells a refused merge from
a real conflict. The parent run must start in the main checkout, never in a
session's worktree or a subdirectory's view of it. - A merged-waves record, bound to the plan's path and content hash, keeps a
re-run from preparing an already merged wave again; a different plan or an
edited plan is refused with the way out named. The record is cleared only
when the final merge is confirmed.
Added
tests/lib/no-claude-code-launch.test.mjs: fails when any tracked file
outside a reasoned, exact-count exemption list carries a way to start
Claude Code; proven on a known-positive fixture for every pattern. The one
operator-run exception is the fixed test set (docs/proevesett.md).tests/lib/session-orders.test.mjs: runs the order writer on a fixture
plan and proves the orders land, statuses classify, progress is archived,
merged waves are remembered, and nothing is started.tests/lib/plugin-root-resolution.test.mjs: runs everyVOYAGE_ROOT
block, substituted and unsubstituted.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
5 downloads