chore(release): 6.0.0 — Voyage never starts Claude Code

Valgt 6.0.0 (major) because the change is incompatible for a 5.11.1 user:
/trekexecute multi-session no longer finishes in one call, /trekplan
--decompose no longer writes launch.sh, and the per-session turn/budget
environment variables no longer apply. Version synced in plugin.json,
package.json, package-lock.json (both fields), the README badge and the
CHANGELOG heading.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-10-02 16:25:55 +02:00
commit 2a2af2e646
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
5 changed files with 70 additions and 26 deletions

View file

@ -1,7 +1,7 @@
{
"name": "voyage",
"description": "Voyage — brief, research, plan, execute, review, continue. Contract-driven Claude Code pipeline. /trekbrief, /trekplan, and /trekreview each end by building a self-contained operator-annotation HTML (scripts/annotate.mjs, pencil-toggle annotation pattern): select text or click any element, pick intent (Fiks/Endre/Spørsmål), write comment, copy structured prompt, paste back, Claude revises the .md.",
"version": "5.11.1",
"version": "6.0.0",
"author": {
"name": "Kjell Tore Guttormsen"
},

View file

@ -4,45 +4,89 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## Unreleased — Voyage never starts Claude Code
## v6.0.0 — 2026-10-02 — Voyage never starts Claude Code
Operator decision 2026-09-27: Voyage works the PM way. Nothing it ships
starts a Claude Code session; work that needs another session becomes an
order plus a starter line the user runs in a session they open themselves.
Operator 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)
- `/trekexecute` multi-session path (Phase 2.6) no longer launches headless
child sessions. 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. Phase 7.6 recovery is handed over
the same way. New Hard rule 21: never start Claude Code.
- `/trekplan --decompose`: the session-decomposer writes `orders.md` instead
of a `launch.sh`, and the "launch" reply is gone.
- `/trekexecute` multi-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.md` are 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 as `partial`; nothing dispatches it automatically.
- `/trekplan --decompose` (and its alias `--export headless`): the
session-decomposer writes `orders.md` instead of a `launch.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, as it
already did.
Claude Code binary to read its version; the post-hoc check decides. The
`version-below-floor` reason token is gone (that case now reports
`no-cited-report`).
- No `{session-dir}/logs/session-N.log` is 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.json` before its worktrees are removed.
- `--dry-run` no longer prints a billing line.
### Removed
- The `ANTHROPIC_API_KEY` billing 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.
they existed only for launched children. The `TREKEXECUTE_MAX_TURNS` and
`TREKEXECUTE_MAX_BUDGET_USD` environment variables are ignored.
- `templates/headless-launch-template.md` and
`scripts/q3-cache-prefix-experiment.mjs` (a finished experiment that
spawned the binary; its results stay in `docs/`).
- README: the billing-safety and headless MCP-tuning sections.
started the binary; its results stay in `docs/`).
- 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_ROOT` resolution in `/trekexecute` (multi-session Step 0 and
plan verification), `/trekreview` and `/trekresearch` now 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
every `trek/{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.
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 and nothing is started.
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 every `VOYAGE_ROOT`
block, substituted and unsubstituted.
## v5.11.1 — 2026-09-23 — dead references to a retired repository removed

View file

@ -2,7 +2,7 @@
Contract-driven Claude Code pipeline: brief, research, plan, execute, review. Agent swarms, research triangulation, adversarial review, multi-session resumption.
![Version](https://img.shields.io/badge/version-5.11.1-blue)
![Version](https://img.shields.io/badge/version-6.0.0-blue)
![License](https://img.shields.io/badge/license-MIT-green)
![Platform](https://img.shields.io/badge/platform-Claude%20Code-purple)

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "voyage",
"version": "5.11.1",
"version": "6.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "voyage",
"version": "5.11.1",
"version": "6.0.0",
"license": "MIT",
"engines": {
"node": ">=18"

View file

@ -1,6 +1,6 @@
{
"name": "voyage",
"version": "5.11.1",
"version": "6.0.0",
"private": true,
"description": "Voyage — brief, research, plan, execute, review, continue. Contract-driven Claude Code pipeline. /trekbrief, /trekplan, and /trekreview each end by building a self-contained operator-annotation HTML (scripts/annotate.mjs, pencil-toggle annotation pattern): select text or click any heading/paragraph/list-item, pick intent (Fiks/Endre/Spørsmål), write comment, copy structured prompt, paste back, Claude revises the .md.",
"type": "module",