#22627: control-ui: agent runner queue view
app: web-ui
gateway
size: M
Cluster:
Cron Job UI Enhancements
Adds an Agent runner section to the Agents overview for cron-backed per-agent task queueing.
- Queue tasks via one-shot isolated cron jobs using naming convention `queue:<agentId>:`.
- Show per-agent recent sessions and link to open that session in Chat.
- Show per-agent queued jobs (filtered by name prefix) with actions: Run / Disable / Remove / View runs.
Notes:
- Queued jobs are NOT auto-deleted after run (per requested behavior).
- Delivery is set to `none` by default for queued jobs.
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
Adds an Agent runner section to the Agents overview that enables per-agent task queueing using cron-backed isolated jobs. Tasks are queued by creating one-shot cron jobs with a naming convention (`queue:<agentId>: <task>`), scheduled 3 seconds in the future. The implementation displays recent sessions per agent with links to open them in Chat, shows queued jobs with management actions (Run/Disable/Remove/View runs), and integrates cleanly with the existing cron infrastructure.
**Key changes:**
- New `app-agents-queue.ts` module handles task queueing logic via cron RPC
- New `agents-runner.ts` view component renders the per-agent queue UI
- Integration into Agents overview tab with proper state management
- Reuses existing cron controllers (`runCronJob`, `toggleCronJob`, `removeCronJob`, `loadCronRuns`)
**Minor issues:**
- The `QUEUE_PREFIX` constant is duplicated across `app-agents-queue.ts` and `agents-runner.ts` (consider extracting to a shared constant)
- The `makeQueueJobName` function in `app-agents-queue.ts:8` doesn't normalize the `agentId` parameter, though agent IDs should already be normalized by callers
<h3>Confidence Score: 4/5</h3>
- This PR is safe to merge with only minor style improvements recommended
- The implementation is solid, follows existing patterns, and integrates cleanly with the codebase. The two issues identified are minor style concerns (DRY violation and defensive normalization) rather than bugs. The core functionality correctly reuses existing cron infrastructure, handles errors appropriately, and implements the stated feature requirements. No breaking changes or security concerns.
- No files require special attention - the style improvements are optional refinements
<sub>Last reviewed commit: 98f301a</sub>
<!-- greptile_other_comments_section -->
<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#5977: fix(ui): handle optional agentId and add updateCronJob function
by xpnobug · 2026-02-01
80.9%
#6408: feat(ui): add job filtering and improve run history display
by Cassius0924 · 2026-02-01
79.2%
#6690: UX: clearer /queue and /subagents output
by kamb5686 · 2026-02-01
78.0%
#22845: Pass agentDir through cron and followup embedded runs
by seilk · 2026-02-21
77.1%
#12310: cron: pass agentDir to embedded runner for isolated sessions
by magendary · 2026-02-09
76.7%
#22707: fix: pass agentDir to runEmbeddedPiAgent in cron isolated sessions
by mrlerner · 2026-02-21
76.1%
#9088: fix(cron): ensure nextRunAtMs is computed when enabled is undefined...
by divol89 · 2026-02-04
75.5%
#14618: feat(ui): add AgentHQ - agent workspace evolution viewer
by eddie333016 · 2026-02-12
75.3%
#21679: fix: Mission Control dashboard issues for agent status, stale sessi...
by thejawdoc · 2026-02-20
75.3%
#9521: fix: restrict bootstrap files for cron agentTurn sessions
by ComputClaw · 2026-02-05
75.3%