generated from coulomb/repo-seed
feat(STATE-WP-0064): add consistency sweep remote-all API endpoint
Expose POST /consistency/sweep/remote-all so activity-core can trigger the workstation ADR-001 remote-all sweep via the bridge tunnel pattern. Records consistency_sweep_remote_all progress events and documents the cutover runbook while the local custodian-sync timer remains interim.
This commit is contained in:
42
api/schemas/consistency_sweep.py
Normal file
42
api/schemas/consistency_sweep.py
Normal file
@@ -0,0 +1,42 @@
|
||||
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)",
|
||||
)
|
||||
|
||||
|
||||
class ConsistencySweepRemoteAllRun(BaseModel):
|
||||
started_at: datetime
|
||||
completed_at: datetime
|
||||
max_seconds: int
|
||||
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
|
||||
Reference in New Issue
Block a user