#21644: feat(control-ui): add runtime runs filters in cron tab
app: web-ui
size: L
Cluster:
Cron Job Stability Fixes
## Summary
- extend Control UI Cron tab with runtime runs observability panel
- add filter/search/time-range controls for runtime history (`search`, `status`, `from/to`, `limit`, include disabled)
- add quick time presets (`1h`, `6h`, `24h`, `7d`) and reset/apply actions
- show cross-job failure rollups and recent runs lists from `ops.runtime.runs`
- wire new Cron state fields through app state/render/settings load path
- add controller/view tests for new filtering interactions and runtime calls
## Why
Mission Control v1 needs the operator to answer quickly:
- what recently ran?
- what is unhealthy?
- what needs manual action?
This PR provides the UI layer for filtering/search/time-range controls and readable runtime rollups.
## Notes
- This UI calls `ops.runtime.runs` (PR2: #21639).
- If the method is unavailable on an older gateway, UI shows a clear compatibility message.
## Validation
- `pnpm exec oxfmt --check ui/src/ui/app-defaults.ts ui/src/ui/app-render.ts ui/src/ui/app-settings.ts ui/src/ui/app-view-state.ts ui/src/ui/app.ts ui/src/ui/controllers/cron.ts ui/src/ui/controllers/cron.test.ts ui/src/ui/types.ts ui/src/ui/ui-types.ts ui/src/ui/views/cron.ts ui/src/ui/views/cron.test.ts`
- `pnpm exec oxlint --type-aware ui/src/ui/app-defaults.ts ui/src/ui/app-render.ts ui/src/ui/app-settings.ts ui/src/ui/app-view-state.ts ui/src/ui/app.ts ui/src/ui/controllers/cron.ts ui/src/ui/controllers/cron.test.ts ui/src/ui/types.ts ui/src/ui/ui-types.ts ui/src/ui/views/cron.ts ui/src/ui/views/cron.test.ts`
- `pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/controllers/cron.test.ts src/ui/views/cron.test.ts`
- `pnpm --dir ui build`
Related: #21600
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
Extended Control UI Cron tab with runtime runs observability panel, adding comprehensive filter/search/time-range controls for runtime history. The implementation includes search, status filtering, time range selection with quick presets (1h, 6h, 24h, 7d), and displays cross-job failure rollups and recent runs from `ops.runtime.runs` gateway method.
**Key changes:**
- Added `CronRuntimeRunsFilters` type with search, status, time range, limit, and includeDisabledCron fields
- New controller functions: `loadOpsRuntimeRuns`, `applyCronRuntimeRunsPreset`, `buildOpsRuntimeRunsParams`
- Runtime runs state management integrated through app state/render/settings
- Comprehensive test coverage for new filtering interactions and runtime API calls
- Graceful degradation with compatibility message when `ops.runtime.runs` unavailable on older gateways
<h3>Confidence Score: 5/5</h3>
- This PR is safe to merge with minimal risk
- The implementation is well-structured with proper type safety, comprehensive test coverage, error handling for backwards compatibility, and follows existing patterns in the codebase. No logical errors or security issues detected.
- No files require special attention
<sub>Last reviewed commit: 4a57d36</sub>
<!-- greptile_other_comments_section -->
<sub>(5/5) You can turn off certain types of comments like style [here](https://app.greptile.com/review/github)!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#21639: feat(gateway): add ops runtime runs history API
by frank8ai · 2026-02-20
80.3%
#17064: fix(cron): prevent control-plane starvation during startup catch-up...
by donggyu9208 · 2026-02-15
79.9%
#6408: feat(ui): add job filtering and improve run history display
by Cassius0924 · 2026-02-01
78.6%
#9510: Feature/cron UI filter bar
by guxu11 · 2026-02-05
78.1%
#15685: feat(cron): add maxRuns for automatic recurring job cleanup
by snurfer0 · 2026-02-13
77.4%
#21612: feat(gateway): add ops runtime summary API
by frank8ai · 2026-02-20
76.8%
#7024: feat(ui/cron): add silent job indicator and no-runs hints
by sergi039 · 2026-02-02
75.6%
#12303: fix(cron): correct nextRunAtMs calculation and prevent timer stall
by colddonkey · 2026-02-09
75.1%
#17561: fix(cron): add runtime staleness guard for runningAtMs (#17554)
by robbyczgw-cla · 2026-02-15
74.6%
#22627: control-ui: agent runner queue view
by vctorabrdge · 2026-02-21
74.1%