Skip to content

fix: remote remaining gaps — snapshot SSH, local resume, re-fetch, CLI params, IsRemote guards - #140

Merged
gavin-jeong merged 1 commit into
masterfrom
fix/remote-remaining-gaps
Jul 25, 2026
Merged

fix: remote remaining gaps — snapshot SSH, local resume, re-fetch, CLI params, IsRemote guards#140
gavin-jeong merged 1 commit into
masterfrom
fix/remote-remaining-gaps

Conversation

@gavin-jeong

Copy link
Copy Markdown
Collaborator

Five remaining audit gaps:

  1. Snapshot/fork for SSH: SnapshotMeta gains Transport/Host; SaveSnapshot uses Transport; StartFromSnapshot restores Transport/Host.
  2. Local resume: fetched JSONL materialized into ~/.claude/projects//.jsonl — session resumable locally after remote stop.
  3. Continuous fetch: handleRemoteExecDone re-fetches JSONL after detach — preview shows latest conversation. Attach errors surfaced.
  4. CLI params: :remote:start now parses transport= and host=.
  5. IsRemote guards: Resume/Edit/CopyPath/Move/Fork/New refuse on remote rows with helpful messages.

go build/vet clean; go test ./... green. Follow-up to #125-#139.

…I params, IsRemote guards

Five remaining audit gaps:

1. Snapshot/fork for SSH: SnapshotMeta gains Transport/Host fields;
   SaveSnapshot uses BuildTransportForPod + fetchRemoteWorkdirWithTransport
   instead of k8s-only paths; StartFromSnapshot restores Transport/Host.

2. Local resume: handleRemoteFetch now also materializes the fetched
   JSONL into ~/.claude/projects/<encoded local path>/<session-id>.jsonl
   so the session can be resumed locally with claude --resume after the
   remote is stopped.

3. Continuous fetch: handleRemoteExecDone re-fetches the session JSONL
   after detach so the preview shows the latest conversation content
   (everything Claude did while attached). Also surfaces attach errors
   instead of always printing "Detached".

4. CLI params: executeCmdRemoteStart now parses transport= and host=
   so SSH sessions can be started from :remote:start transport=ssh
   host=my-builder without editing config.yaml.

5. IsRemote guards: Resume, Edit, CopyPath, Move, Fork, New now refuse
   with a helpful message on remote session rows instead of running
   with synthetic ProjectPath/ID values that produce broken commands.
@Kairo-Kim Kairo-Kim added the auto-review/approved Auto-approved by the Slack auto-reviewer bot label Jul 25, 2026

@jinsekim jinsekim left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@gavin-jeong
gavin-jeong merged commit bd64d0c into master Jul 25, 2026
3 checks passed
@gavin-jeong
gavin-jeong deleted the fix/remote-remaining-gaps branch July 25, 2026 10:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-review/approved Auto-approved by the Slack auto-reviewer bot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants