diff --git a/docs/remote-sessions.md b/docs/remote-sessions.md index 2d80397b..3deb1e7d 100644 --- a/docs/remote-sessions.md +++ b/docs/remote-sessions.md @@ -429,6 +429,11 @@ path but the SESSION (`session.remote`): a remote session never falls back to lo `fs`, and a local session never opens an ssh connection — including for attachment records, which are keyed to the session that registered them. +**Local watchers skip a remote session.** The Ralph tracker's `@fix_plan.md` auto-load +(and the `fs.watch` behind it) never runs for a remote session: `setupSessionListeners()` +(`server.ts`) does not hand the tracker a remote `workingDir`, because the watcher reads +the LOCAL disk, where that path is missing or a different tree. + ## Wake-on-LAN from user input A durable remote session survives an SSH drop (COD-104/108), but nothing brought the diff --git a/test/ralph-fix-plan-remote.test.ts b/test/ralph-fix-plan-remote.test.ts index 6bd6291e..9127ac0f 100644 --- a/test/ralph-fix-plan-remote.test.ts +++ b/test/ralph-fix-plan-remote.test.ts @@ -9,9 +9,10 @@ * remote session (and where a same-named local directory did exist, it watched * the wrong tree). Setting the path also made the tracker treat the unreadable * file as authoritative (`isFileAuthoritative`), which switched off its - * output-based todo completion for every remote session. `setupSessionListeners()` already skips external CLI modes for - * the same reason (the tracker is not supported there); a remote location is the - * other case with no local file to watch. + * output-based todo completion for every remote session. + * `setupSessionListeners()` already skips external CLI modes (the tracker is + * not supported there); a remote location is the other case with no local + * file to watch. * * Drives the real `WebServer.setupSessionListeners()`, like * discard-partially-built-session.test.ts.