* server: keep newline worktree paths registered git worktree list --porcelain splits a path at an embedded newline, so is_worktree_registered treated a live checkout as unregistered. Task cleanup could then remove_dir_all that directory after a failed git worktree remove. NUL-delimited porcelain keeps the path in one field. * server: match non-UTF-8 canonical worktree paths Strict UTF-8 parsing skipped a worktree field when Git stored the canonical bytes of a UTF-8 symlink. Lossy comparison keeps that checkout registered.
8 files changedLine totals unavailable