Skip to main content

resolve_project

Function resolve_project 

Source
pub fn resolve_project(
    storage: &SqliteStorage,
    explicit: Option<&str>,
) -> Result<Project>
Expand description

Resolve a project from explicit input or CWD.

Accepts a project ID, a filesystem path, or None for CWD auto-detection. Always validates against the database — sessions can only be created for registered projects.

§Resolution

Explicit value (Some):

  1. Try as project ID (storage.get_project)
  2. Try as filesystem path, canonicalized (storage.get_project_by_path)
  3. Error with ProjectNotFound

Auto-detect (None):

  1. Canonicalize CWD
  2. Check CWD and parent directories against known project paths (longest match)
  3. Fall back to .savecontext/ directory discovery (legacy)
  4. Error with NoProjectForDirectory listing available projects

§Errors

Returns ProjectNotFound or NoProjectForDirectory if no match is found.