pub fn classify(path: &Path, roots: &Roots) -> Result<Option<SessionFile>>
Classify a known path lexically under configured roots, preserving IO errors. Paths containing parent components are rejected rather than escaping a root.