Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,58 @@

All notable changes to the Toolpath workspace are documented here.

## path-cli 0.21.0 — 2026-08-26

- **`path-cli`** (0.21.0): `path resume` takes `--remote <dest>` (Claude
only), `--dry-run`, and, with `--remote`, `-C <remote-dir>` for the
remote project directory (default: the local cwd with the local home
swapped for the remote home). The command resumes the session on an
ssh host under tmux. Two read-only probes report the remote home, the
claude path, tmux, the physical project directory, the tmux session
state, and the session file's existence, and the plan prints. Then a
live tmux session is attached to as is, a present session file is
launched as is, and an absent file is shipped over ssh stdin (0600;
written to a temporary name and renamed into place after a byte-count
check, so a present file is a complete file), launched, and attached
to. The session ID is the one `p export claude --derive-session-id`
derives. `--dry-run` stops after the plan. The transport is a new
internal ssh module, an in-process SSH client (`russh`); every remote
call has a wall-clock timeout. `scripts/resume-remote.sh` hands off to the
command after its bootstrap steps (VM creation, `--setup` seeding,
working-tree sync).
- **`toolpath-cli`** (0.21.0): lockstep bump of the deprecated shim.

## path-cli 0.20.0 — 2026-08-25

- **`path-cli`** (0.20.0): `p export claude` takes `--derive-session-id`.
The flag renames the session to an ID derived from the input
document: a v4-shaped UUID from the first 128 bits of the SHA-256 of
the key-sorted compact JSON. The same document yields the same ID on
every run, so a second export of it into the same project is refused
instead of duplicated. It conflicts with `--session-id`. The
`--output` message names the session ID. `scripts/resume-remote.sh`
exports with the flag and reads the remote session ID back from the
JSONL.
- **`toolpath-cli`** (0.20.0): lockstep bump of the deprecated shim.

## path-cli 0.19.0 — 2026-08-24

- **`path-cli`** (0.19.0): `p export claude` takes `--session-id <uuid>`
and `--cwd <dir>`. `--session-id` renames the session: the ID becomes
the conversation's session ID, every entry's `sessionId`, and every
`sessionId` key in every preamble line, nested keys included (Claude
Code copies the ID into `worktreeSession.sessionId` on
`worktree-state` lines); any UUID form is accepted and the output
uses the hyphenated lowercase form; with `--project` it names the
session file. `--cwd` roots the session: the directory becomes the
`cwd` of every entry that carries one; it must be an absolute POSIX
path in normalized form (no `.`, `..`, or empty component; one
trailing `/` is dropped), does not have to exist on this machine, and
conflicts with `--project`. Message content and tool results are not
touched. `scripts/resume-remote.sh` passes both flags, checks that
the output carries the remote cwd and ID, and ships it as is.
- **`toolpath-cli`** (0.19.0): lockstep bump of the deprecated shim.

## toolpath-claude 0.13.0 — 2026-08-23

- **Breaking:** `Conversation.segment_ids` replaces `Conversation.session_ids`.
Expand Down
Loading
Loading