← Back to PRs

#22103: fix(ui): move cron run history inline into job cards

by npmisantosh open 2026-02-20 18:23 View on GitHub →
app: web-ui size: S
## Summary - **Problem:** Cron run history was displayed in a separate card at the bottom of the page, far from the job being inspected. - **Why it matters:** On systems with many cron jobs, users had to scroll repeatedly to correlate a job with its specific run history, creating a disjointed UX. - **What changed:** Moved the run history list directly into the selected cron job card (inline) and removed the standalone history section from the bottom. - **What did NOT change (scope boundary):** The data fetching logic, the `cron.runs` API interaction, and the internal rendering of individual run log entries. ### Change Type (select all) - [X] Bug fix - [x] Feature - [ ] Refactor - [ ] Docs - [ ] Security hardening - [ ] Chore/infra ### Scope (select all touched areas) - [ ] Gateway / orchestration - [ ] Skills / tool execution - [ ] Auth / tokens - [ ] Memory / storage - [ ] Integrations - [ ] API / contracts - [x] UI / DX - [ ] CI/CD / infra ### Linked Issue/PR - Closes # - Related # ### User-visible / Behavior Changes - The "Run history" card at the bottom of the Cron tab has been removed. - Clicking a cron job or its "History" button now expands the job card to display its run history inline. - History is automatically hidden when another job is selected or the current one is removed. ### Security Impact (required) - New permissions/capabilities? (**No**) - Secrets/tokens handling changed? (**No**) - New/changed network calls? (**No**) - Command/tool execution surface changed? (**No**) - Data access scope changed? (**No**) ### Repro + Verification #### Environment - **OS:** Linux - **Runtime/container:** Node.js / Browser - **Model/provider:** N/A - **Integration/channel (if any):** N/A - **Relevant config (redacted):** N/A #### Steps 1. Navigate to the Cron tab in the UI. 2. Ensure at least one cron job exists. 3. Click on a cron job card or the "History" button. 4. Observe the run history appearing directly within the card. #### Expected The run history should appear immediately below the job's actions within the same card, pushing other jobs down. #### Actual Previously, the history appeared in a separate section at the very bottom of the page, regardless of the job's position. ### Evidence - [x] **Trace/log snippets:** Linting and build passed after resolving unused variable errors. - [ ] **Screenshot/recording:** (To be verified by user on port 3001) ### Human Verification (required) - **Verified scenarios:** Clicking multiple jobs to switch history views; clicking "Open run chat" links within the inline history; stopping event propagation to ensure link clicks don't toggle the card. - **Edge cases checked:** Jobs with no run history (displays "No runs yet" inline). - **What you did not verify:** Mobile-specific touch interactions (though standard click handlers are used). ### Compatibility / Migration - Backward compatible? (**Yes**) - Config/env changes? (**No**) - Migration needed? (**No**) ### Failure Recovery (if this breaks) - **How to disable/revert this change quickly:** Revert changes to `ui/src/ui/views/cron.ts` and `ui/src/styles/components.css`. - **Files/config to restore:** `ui/src/ui/views/cron.ts`, `ui/src/styles/components.css`. - **Known bad symptoms:** Layout shifting issues in the cron list or history failing to render when a job is clicked. ### Risks and Mitigations - **Risk:** Large history lists (50+ items) could make an individual card extremely tall. - **Mitigation:** The controller currently limits fetches to 50 items, and the list-based UI is consistent with existing patterns. Future updates could add a scrollable container for history if needed.

Most Similar PRs