Skip to content

v0.8.0-beta: Watch Mode / Scheduled Rechecks - #52

Merged
DeepZone merged 1 commit into
mainfrom
codex/implement-v0.8.0-beta-watch-mode
May 20, 2026
Merged

v0.8.0-beta: Watch Mode / Scheduled Rechecks#52
DeepZone merged 1 commit into
mainfrom
codex/implement-v0.8.0-beta-watch-mode

Conversation

@DeepZone

Copy link
Copy Markdown
Owner

Motivation

  • Add a read-only Watch Mode to persist selected checks as Watch Targets and record repeated run history with change detection.
  • Provide a robust manual / externally-triggerable recheck mechanism (a run-due endpoint) for scheduled rechecks without introducing an internal scheduler.

Description

  • Added new SQLAlchemy models WatchTarget and WatchRun and an Alembic migration 0004_watch_mode to create watch_targets and watch_runs tables with FK links to users, change_cases and reports.
  • Implemented backend API endpoints under /api/watch-targets for list/create/read/update/delete, runs listing, single-run (POST /api/watch-targets/{id}/run) and due-run execution (POST /api/watch-targets/run-due) with role enforcement (admin/operator mutate/run, viewer read-only).
  • Implemented WatchService which reuses existing check services (BgpVisibilityService, RoaPlannerService, PrefixChecker, AsnChecker) to run checks, persist standard Check/Report, create WatchRun entries, set previous_status, compute changed, and update last_run_at / next_run_at / last_status.
  • Added frontend API bindings, a new WatchModeView component, types, navigation wiring, and app version/docs bumps to v0.8.0-beta.

Testing

  • Ran backend test suite with cd backend && pytest -q, including new backend/tests/test_watch_mode.py, and the tests completed successfully.
  • Built the frontend with cd frontend && npm run build and the production build completed successfully.

Codex Task

@DeepZone
DeepZone merged commit 12b6b5c into main May 20, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant