Skip to content

Source discovery API

locallore.indexing.discovery

Discover Claude Code session files.

SourceFile(path, relative_path, identity, size_bytes, mtime_ns) dataclass

path instance-attribute

relative_path instance-attribute

identity instance-attribute

size_bytes instance-attribute

mtime_ns instance-attribute

discover(root)

Source code in src/locallore/indexing/discovery.py
def discover(root: Path) -> list[SourceFile]:
    root = root.resolve()
    sources: list[SourceFile] = []
    if not root.is_dir():
        raise FileNotFoundError(f"session directory does not exist: {root}")
    for path in sorted(root.rglob("*.jsonl")):
        try:
            resolved = path.resolve(strict=True)
            resolved.relative_to(root)
            if not resolved.is_file():
                continue
            stat = resolved.stat()
        except (FileNotFoundError, OSError, ValueError):
            continue
        sources.append(
            SourceFile(
                path=resolved,
                relative_path=resolved.relative_to(root).as_posix(),
                identity=f"{stat.st_dev}:{stat.st_ino}",
                size_bytes=stat.st_size,
                mtime_ns=stat.st_mtime_ns,
            )
        )
    return sources