A deleted Conductor worktree leaves its gstack-code-<hash> source behind
and gbrain's autopilot fails on it forever. Local absence is not proof a
source is dead (machines sharing a federated brain register their own
paths, and its pages may be the only copy of uncommitted work), so gstack
never removes one automatically.
- Each sync counts consecutive misses for gstack code sources whose path
is missing, prints "path unavailable" once per source with the review
command, and records which repository each synced source belongs to.
- New gstack-gbrain-sync --prune-gone-worktrees (with --dry-run, whose
plan it always prints first) removes a source only when its path was
missing on two consecutive syncs, its parent is readable, recomputing
deriveCodeSourceId() for that path on this host yields its id, and the
repository's git common dir still exists and no longer lists the
worktree. It re-checks the path right before removing (through the
#1734-guarded safeSourcesRemove) and logs each removal.