Skip to content

fix: daemon no longer holds the caller's working directory - #130

Merged
its-janghoon merged 1 commit into
developfrom
fix/daemon-cwd
Oct 21, 2026
Merged

its-janghoon merged 1 commit into
developfrom
fix/daemon-cwd

Conversation

@its-janghoon

Copy link
Copy Markdown
Member

What's done

  • packages/redrob/src/daemon/connect.ts: detached serve --register spawns with cwd: os.homedir().
  • packages/sdk/js/src/daemon.ts: service start spawns with cwd: os.homedir().
  • packages/redrob/src/cli/cmd/serve.ts: with --register, process.chdir(os.homedir()) at start (try/catch), so an older caller that still spawns the daemon from an app folder is covered once the engine updates.
  • installer/windows/redrob-code.iss: PrepareToInstall runs {app}\redrob.exe service stop (result ignored) before [Files] overwrites redrob.exe.

What's not done

  • Not run on Windows (installer Pascal script and Windows folder lock not exercised here). Plain serve (no --register, e.g. the Redrob Work sidecar) keeps its cwd.

What to review

  • Daemon cwd no longer follows the caller: an app install folder (e.g. Canvas bin\) stays unlocked, so its Windows update does not hit "folder in use".

Intentions

  • Ship as a patch release (v0.12.1) so Canvas and other apps can update on Windows.

The shared daemon was spawned with no cwd, so it inherited the caller's: an
app's install folder (e.g. Canvas's bin\), held open for the daemon's whole
life, which blocks that app's Windows update ("folder in use").

- daemon/connect.ts: spawn `serve --register` with cwd = home.
- sdk daemon.ts: spawn `service start` with cwd = home.
- serve --register: chdir to home at start (try/catch), covering older
  callers that still spawn it from an app folder.
- Windows installer: PrepareToInstall runs `{app}\redrob.exe service stop`
  (failure ignored) so a running daemon does not block overwriting redrob.exe.
@its-janghoon
its-janghoon merged commit 56d7f56 into develop Oct 21, 2026
12 checks passed
its-janghoon added a commit that referenced this pull request Oct 21, 2026
Release of #130 (daemon no longer holds the caller's working directory).
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