Skip to content

feat: ForecastOps Control Center — read-only ops slice + /ops page #217

@w7-mgfcode

Description

@w7-mgfcode

Summary

Implement PRP-24 — ForecastOps Control Center (PRPs/PRP-24-forecastops-control-center.md).

Add an operator-facing dashboard that connects ForecastLabAI's isolated Explorer/Visualize pages into one workflow.

Scope

  • Backend — new read-only vertical slice app/features/ops/ with two endpoints:
    • GET /ops/summary — system health, job-status counts, run/alias health, data freshness, and a "needs attention" list.
    • GET /ops/retraining-candidates?limit= — a (store, product) queue ranked by a deterministic retraining-priority score.
  • Frontend — new frontend/src/pages/ops.tsx Control Center page wired into the top nav, consuming both endpoints and reusing existing KPICard / StatusBadge / Card / Table components.

Constraints

  • No new tables, no Alembic migration, no new external dependency.
  • Read-only slice; cross-slice ORM imports of jobs/registry/data_platform models are an explicit locked decision (mirrors the analytics precedent) — to be called out in the PR description per .claude/rules/product-vision.md.

Acceptance

See PRP-24 Success Criteria and Final Validation Checklist. All five backend gates (ruff, mypy --strict, pyright --strict, pytest) plus the frontend gates must pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions