47430a1b1e
When CTASK_PROJECT_ROOT is unset, SearchRoots now appends \$CTASK_ROOT/projects/ so that projects created under the default category are discoverable from any shell without per-session env var setup. Dedupe in scanAllRoots prevents double-counting workspaces that are reachable both via the depth-2 scan under CTASK_ROOT and via the new explicit search root. Adds a named regression test asserting no duplicates appear in either ResolveQuery or ListWorkspaces results. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>