Discover Claude Code session files.
SourceFile(path, relative_path, identity, size_bytes, mtime_ns)
dataclass
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
|