Skip to content

feat(pane_group): migrate working_directories to LocalOrRemotePath (5c-2a) - #68

Merged
jwp2987 merged 1 commit into
mainfrom
parity-diffstate-5c2a
Aug 5, 2026
Merged

feat(pane_group): migrate working_directories to LocalOrRemotePath (5c-2a)#68
jwp2987 merged 1 commit into
mainfrom
parity-diffstate-5c2a

Conversation

@jwp2987

@jwp2987 jwp2987 commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Mirrors Warp upstream, adapted to the fork: keys the whole working_directories layer by LocalOrRemotePath so a repository on an SSH host can carry a remote-backed DiffStateModel distinct from a same-path local repo.

What changed

Behavior-preserving: the detection pipeline still resolves only local roots via DetectedRepositories and wraps them in LocalOrRemotePath::Local, so every key produced today is Local — functionally identical. This makes the layer remote-ready.

Remaining for the feature (per Warp's register_remote_repo path)

Verification

  • warp lib 3912 / 0 / 33
  • working_directories 2/0, code_review 76/0

🤖 Generated with Claude Code

…c-2a)

Mirrors Warp upstream, adapted to the fork: keys the whole working_directories
layer by LocalOrRemotePath so a repository on an SSH host can carry a
remote-backed DiffStateModel distinct from a same-path local repo.

- All per-pane-group + global maps migrate PathBuf -> LocalOrRemotePath:
  pane_groups, repository_roots, directory_to_terminal, comment_models,
  code_review_views, focused_repo (diff_state_models already migrated in #67).
- WorkingDirectoriesEvent payloads (RepositoriesChanged / FocusedRepoChanged /
  WorkingDirectory.path) carry LocalOrRemotePath; consumers (left_panel,
  right_panel, workspace/view) updated.
- right_panel's code-review panel (CodeReviewState.available_repos /
  selected_repo_path / focused_repo_path + ~20 methods: set/update/close/
  ensure/create/find_review_terminal/route_review_comments/…) threads
  LocalOrRemotePath, extracting .to_local_path() at the local-only boundaries
  (CodeReviewView::new/on_open, terminal-session matching) and .display_name()
  for the dropdown.

Behavior-preserving: the detection pipeline
(refresh_working_directories_for_pane_group) still resolves only local roots
via DetectedRepositories and wraps them in LocalOrRemotePath::Local, so every
key produced today is Local — functionally identical. This makes the layer
remote-ready; producing Remote keys is 5c-2b (generalize
DetectedRepositories::get_root_for_path to LocalOrRemotePath + remote
registration) and 5c-2c (feed remote CWDs from the terminal/session +
remote-server RepoMetadata sync), per Warp's register_remote_repo path.

Also fixes the non-local_fs stub signatures (incl. the stale #67
get_or_create_diff_state_model) to match.

Verified: warp lib 3912/0/33; working_directories 2/0; code_review 76/0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012gDYSHa4oDvQbfungWwG1h
@jwp2987
jwp2987 merged commit 23564b9 into main Aug 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant