Skip to content

Support bare path resume with interactive session picker #110

Description

@od0

Problem

Resuming a session in a different harness requires two commands:

path p import claude          # interactive session picker
path resume claude-<uuid>     # interactive harness picker

path share already aggregates all installed harnesses into a single fzf picker, but it's wired to Pathbase upload. There's no local-only equivalent. A user who wants to move a session from Claude into Gemini (or vice versa) has to either know the cache id or round-trip through Pathbase.

Proposal

Support bare path resume (no <input> argument). When invoked with no input and a TTY:

  1. Reuse the path share session-aggregation logic (gather_sessions) to build a cross-harness picker showing all installed providers' sessions, ranked by cwd match then recency.
  2. After the user picks a session, derive it into a toolpath Path (same as share does internally).
  3. Launch the existing harness picker (pre-selecting the source harness) and project into the chosen target.

No Pathbase interaction, no cache write required (though --cache could opt into it).

Behavior summary

Invocation Behavior
path resume <input> Existing: resolve input, harness picker, project, exec
path resume (TTY) New: session picker → derive → harness picker → project → exec
path resume (no TTY) Error: "no input provided and no TTY for interactive selection"
path resume --harness X (no input) Session picker filtered to harness X only, then project into target

Implementation notes

  • gather_sessions and format_picker_row in cmd_share.rs should be extracted into a shared module (or cmd_share should expose them as pub(crate)).
  • The derive step after session selection is already implemented per-harness in cmd_share.rs — same logic applies.
  • path resume --harness X with no input could mean either "pick from X's sessions" or "project into X." Suggest: use --harness for the target harness (matching current resume semantics) and add --from for filtering the session picker by source provider. Or just let the aggregated picker do its job and don't filter.
  • The --project / -C flag already exists on resume for the working directory; it should also influence cwd-matching rank in the picker (same as share uses shell cwd).

Non-goals

  • This doesn't replace path share. Sharing to Pathbase is a distinct action.
  • No new TUI chrome needed — it's the same fzf picker share already builds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions