fix: keep a remote session's fix plan authoritative (release review, #722)

#722 stopped handing a remote session's workingDir to the Ralph tracker,
which also left isFileAuthoritative false for remote sessions only. That
flag is what keeps the output-based completion guessers off, and it is
true for every local session with a working directory, so a remote loop
could end, and mark every todo done, on a prose line such as "All tasks
completed" while a local one cannot.

setRemoteWorkingDir() records the path without reading or watching the
local disk, so the fix plan stays authoritative as for a local session;
the file still reaches the tracker only through fix-plan/read, over ssh.
The test pins both, and fails on the previous head.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Codeman maintainer committed 2026-10-28 09:25:50 +01:00
1 parent 593b2eb2ea
commit 1ad9db7606
5 files changed
+73 -15

No files matched your search

+6 -3
View File
@@ -432,9 +432,12 @@ path but the SESSION (`session.remote`): a remote session never falls back to lo
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.
(and the `fs.watch` behind it) never runs for a remote session, because the watcher reads
the LOCAL disk, where that path is missing or a different tree: `setupSessionListeners()`
(`server.ts`) calls `setRemoteWorkingDir()` instead, which only records the path. The fix
plan stays authoritative exactly as for a local session, so the tracker's output-based
completion guessers stay off there too; the file reaches the tracker only through
`fix-plan/read`, over ssh. The image watcher skips remote sessions the same way.
## Wake-on-LAN from user input