Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/spindle/control_plane/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,8 @@ async def training_runs(self) -> list[dict[str, object]]:

async def training_run(self, training_run_id: str) -> dict[str, object]:
entries = await self.checkpoints(training_run_id)
if not entries and training_run_id.endswith(":train:0"):
entries = await self.checkpoints(training_run_id.removesuffix(":train:0"))
if not entries:
raise RecordNotFound("training run", training_run_id)
return self._training_run(entries)
Expand Down
2 changes: 2 additions & 0 deletions tests/control_plane/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,8 @@ async def run() -> None:
assert run_a["is_lora"] is True
assert run_a["lora_rank"] == 32
assert run_a["last_checkpoint"]["tinker_path"] == "tinker://run-a/weights/newer"
sampler_run = await plane.training_run("run-a:train:0")
assert sampler_run["training_run_id"] == "run-a"
runs = await plane.training_runs()
assert [run["training_run_id"] for run in runs] == ["run-a", "run-b"]
assert runs[1]["is_lora"] is False
Expand Down
Loading