vcs_status.py file-level

at main · View file ↗ · Intel ↗

History
1 files
1 commits
0 hotspots
0 🧊 dead
0 💥 blast risk
sha256:8 docs: queue board-identity follow-ups so they survive the session Capt… · aaronrene · Sep 5, 2026
1 """Read-only VCS status via adapter (§K4.0)."""
2
3 from __future__ import annotations
4
5 from pathlib import Path
6
7 from adapters.config import OverseerConfig
8 from adapters.errors import ReadError
9 from adapters.factory import create_adapter
10 from adapters.runner import CommandRunner
11 from adapters.types import StatusResult
12
13
14 def read_vcs_status(
15 config: OverseerConfig,
16 repo_root: Path,
17 runner: CommandRunner,
18 ) -> StatusResult | ReadError:
19 """Call only ``adapter.status()`` for CLI commands."""
20 adapter = create_adapter(config, repo_root, runner=runner)
21 return adapter.status()
22
23
24 def vcs_report(result: StatusResult, config: OverseerConfig) -> dict:
25 """Build the frozen ``vcs`` object for status output."""
26 return {
27 "regime": result.regime,
28 "canonical": config.vcs.canonical,
29 "branch": result.branch,
30 "dirty": result.dirty,
31 "notes": list(result.notes),
32 }