Files
state-hub/api/schemas/consistency_sweep.py
tegwick ab14e77e77 feat(STATE-WP-0064): start parallel week with source-tagged sweep runners
Tag consistency_sweep_remote_all progress events by source, route the local
timer through the API, add a parallel-week comparison script, and document
the 2026-06-21 to 2026-06-28 observation window for T03.
2026-06-21 21:46:43 +02:00

47 lines
1.3 KiB
Python

from __future__ import annotations
import uuid
from datetime import datetime
from pydantic import BaseModel, Field
class ConsistencySweepIssueSummary(BaseModel):
fail: int = 0
warn: int = 0
info: int = 0
class ConsistencySweepRepoResult(BaseModel):
repo_slug: str
repo_path: str
result: str
summary: ConsistencySweepIssueSummary
fixes_applied: list[str] = Field(default_factory=list)
class ConsistencySweepRemoteAllGenerate(BaseModel):
max_seconds: int = Field(
default=300,
ge=0,
le=3600,
description="Wall-clock budget for the remote-all sweep (0 disables)",
)
source: str = Field(
default="api",
description="Runner label stored on progress events (local-timer, activity-core, api)",
)
class ConsistencySweepRemoteAllRun(BaseModel):
started_at: datetime
completed_at: datetime
max_seconds: int
source: str
exit_code: int
lock_skipped: bool
repos_processed: list[ConsistencySweepRepoResult] = Field(default_factory=list)
skipped_clean: list[str] = Field(default_factory=list)
skipped_missing: list[str] = Field(default_factory=list)
skipped_budget: list[str] = Field(default_factory=list)
progress_event_id: uuid.UUID | None = None