feat(conductor): Implement configurable paths and mark track 'Conductor Path Configuration' as complete

This commit is contained in:
2026-03-06 16:43:11 -05:00
parent 1294104f7f
commit f580165c5b
17 changed files with 284 additions and 58 deletions

View File

@@ -13,6 +13,7 @@ import re
import json
from typing import Any, Optional, TYPE_CHECKING, Union
from pathlib import Path
from src import paths
if TYPE_CHECKING:
from src.models import TrackState
TS_FMT: str = "%Y-%m-%dT%H:%M:%S"
@@ -237,7 +238,7 @@ def save_track_state(track_id: str, state: 'TrackState', base_dir: Union[str, Pa
"""
Saves a TrackState object to conductor/tracks/<track_id>/state.toml.
"""
track_dir = Path(base_dir) / "conductor" / "tracks" / track_id
track_dir = Path(base_dir) / paths.get_track_state_dir(track_id)
track_dir.mkdir(parents=True, exist_ok=True)
state_file = track_dir / "state.toml"
data = clean_nones(state.to_dict())
@@ -249,7 +250,7 @@ def load_track_state(track_id: str, base_dir: Union[str, Path] = ".") -> Optiona
Loads a TrackState object from conductor/tracks/<track_id>/state.toml.
"""
from src.models import TrackState
state_file = Path(base_dir) / "conductor" / "tracks" / track_id / "state.toml"
state_file = Path(base_dir) / paths.get_track_state_dir(track_id) / "state.toml"
if not state_file.exists():
return None
with open(state_file, "rb") as f:
@@ -294,7 +295,7 @@ def get_all_tracks(base_dir: Union[str, Path] = ".") -> list[dict[str, Any]]:
Handles missing or malformed metadata.json or state.toml by falling back
to available info or defaults.
"""
tracks_dir = Path(base_dir) / "conductor" / "tracks"
tracks_dir = Path(base_dir) / paths.get_tracks_dir()
if not tracks_dir.exists():
return []
results: list[dict[str, Any]] = []