Skip to content

Default Code semantic index must follow a symlinked source root #197

Description

@AntoineToussaint

Production evidence

The checked-in Mind production session qualification/sessions/04b-many-unit-microservices.json ran at immutable repository commit 5096a85b2f3bf41bef53363cfe5478d5b86ac701 through CLI v0.1.82 and released agents on 2026-08-09. All 12 code units were routed through Gateway.GetSemanticIndex.

Six Go/JVM/.NET units completed. All Python and Node units returned SEMANTIC_INDEX_STATE_NOT_ATTEMPTED with unsupported_source::no supported semantic source files were found, despite those exact rooted units containing .py / .js source. The persisted production ledger was 40 files, 2005 symbols, 2180 edges, 6 coverage rules.

The CLI arbitrary-source adapter exposes the exact source as <ephemeral-service>/code, a symlink. Python and Node resolve that symlink itself as DefaultCodeServer.SourceDir. filepath.WalkDir does not traverse a directory symlink used as its root, so the shared semantic index sees zero files.

Generic fix

Canonicalize a local source root to its physical directory at the shared Core Code boundary before any file/index operation. Do not add language, repository, or benchmark-specific handling in Mind or an agent. Preserve non-local/custom VFS behavior when the path cannot be resolved locally.

DOD

  • A real DefaultCodeServer rooted at a directory symlink returns COMPLETE semantic facts for supported source beneath the target.
  • The returned fact paths remain root-relative, not physical host paths.
  • Existing VFS, file, git, cached-index, semantic-index, and race suites pass.
  • Python and Node production agents consume the released Core fix and the exact 12-unit Mind session no longer reports those six false NOT_ATTEMPTED states.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions