b572ec3dda
The name-based sibling probe can't reach every dead worktree: a dir renamed away from its repo's prefix (`hermes-salvage-drafts` next to `hermes-agent`) shares nothing to trim back to, and a scratch dir under /tmp was never a worktree at all. Those fall through to the path-only heuristic, which reports the cwd as its own repo root, and Tier 2 promotes it to a top-level project — one that can't be opened and can only be dismissed by hand. Gate auto-project promotion on the directory still existing, threaded in as an injected predicate to keep the builder pure. The guard keys on the directory, not on git-ness, so a plain non-git folder that's still on disk keeps its project; callers that can't stat (remote backends) omit it and keep every candidate. A stale persisted `git_repo_root` gets the same treatment, so a deleted repo can't resurrect from the recorded value alone.