fix(daemon): normalize paths for case-insensitive filesystems (GH#880)

On macOS (HFS+/APFS), `bd sync` would fail with exit status 128 when
the daemon was started from a terminal session with different path
casing than what git had stored for the worktree (e.g., /Users/.../
MyProject vs /Users/.../myproject).

Fixed by normalizing workspace paths using `filepath.EvalSymlinks()`
before storing in the registry and comparing during lookups:

- registry.Register(): Canonicalizes workspace path before storing
- registry.Unregister(): Canonicalizes paths before comparison
- FindDaemonByWorkspace(): Canonicalizes paths before lookup

This ensures consistent path matching across case-insensitive
filesystems since EvalSymlinks returns the actual filesystem casing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
topaz
2026-01-04 11:44:38 -08:00
committed by Steve Yegge
parent 1a0ad09e23
commit b789b99537
2 changed files with 273 additions and 156 deletions

File diff suppressed because one or more lines are too long