Repository navigation
Studio schedules: list, editor dialogs, detail, and run history #1852
Copy link
Copy link
Closed
Labels
WebUIApplies to the WebUI interfaceApplies to the WebUI interfaceenhancementNew feature or requestNew feature or request
Description
Parent: #1736. Design review: #1779.
Design baseline: 2026-09-24, expanded through the in-place tracer bullet on 2026-10-07.
Outcome
Studio provides a responsive scheduled-task workspace for finding, creating, safely editing, operating, and inspecting schedules and their past executions. It reuses the existing authenticated schedule BFF and does not broaden schedule authority.
Inventory
- Render a sortable desktop table and a compact mobile list from the caller-visible inventory returned by the BFF.
- Show name and prompt preview, human-readable schedule, next and last run, run count, and effective status.
- Default to attention order: Running, Claimed, Scheduled, Paused, Completed, then name. Desktop columns remain sortable; mobile keeps attention order.
- Search the loaded inventory by name, prompt, human/raw trigger, and timezone. Keep search local and distinct from global search, whose privacy contract excludes prompt bodies.
- Provide All, Scheduled, and Paused filters. Scheduled includes effective Running, Claimed, and Scheduled; Completed appears only in All. Preserve the BFF rule that active firing outranks paused state.
- Distinguish unsupported, loading, error, empty-inventory, status-filter-empty, and search-empty states.
Create and edit
- Create recurring and one-shot schedules with name, prompt, cadence/timezone, run limits, retry policy, read-only versus writing authority, permission mode, and tool profile.
- Keep read-only as the default. Writing requires explicit opt-in and never grants authority beyond the connected deployment.
- Preserve the immutable backend name after creation; do not emulate rename with create/delete.
- Until the backend exposes atomic rescheduling, resend an existing trigger exactly as stored and make trigger controls read-only.
- Until profile migration has explicit backend semantics, make an existing tool profile read-only.
- Keep completed one-shots inspect-only because the current update path rejects their unchanged past trigger. Completed recurring schedules may still edit supported metadata.
- Display the exact trigger that will be sent so the UI cannot imply a successful trigger change that the scheduler will ignore.
Operations and detail
- Offer Run now only while work remains and no fire is currently running.
- Offer Pause/Resume only for non-completed schedules; confirm destructive deletion and restore focus to the invoking action.
- Show prompt, mode, write access, owner, tool profile, model, trigger, timezone, limits, next/last run, and run count on the detail page.
- Present fire history newest-first by default, with sortable start, outcome, and duration. Distinguish Claimed, In flight, Failed, Cancelled, Timed out, and Completed.
- Poll only while the selected schedule or one of its fires is live, and stop background polling for stable history.
- Open a past fire's session transcript in a read-only dialog. Transcript inspection must not continue, rerun, or otherwise mutate the session.
Acceptance
- Desktop and mobile layouts support inventory search/filtering, create, safe edit, Run now, Pause/Resume, Delete, detail inspection, and fire-history inspection.
- Keyboard focus can move directly to the schedule filter, and dialogs/menus have usable names, focus return, and touch targets.
- Unsupported deployments remain capability-gated with a usable explanation.
- Existing schedule identity, ownership, placement, counters, firing state, and history are not silently replaced or reset by Studio operations.
- Focused component, form-value, inventory, shortcut, BFF, and browser scenarios cover the behavior above.
task studio:checkpasses, and a real localmecated servesmoke test creates a schedule, fires it, opens its detail, and observes run history.
Follow-ups discovered by the tracer bullet
- Studio schedules: stable identity and user-visible rename #2145 — stable identity and user-visible rename.
- Schedule updates: permit non-trigger edits after a one-shot fires #2146 — non-trigger edits after a one-shot fires.
- Schedule updates: define safe tool-profile changes #2147 — explicit tool-profile update semantics.
- Schedules: add atomic reschedule and reactivation semantics #2149 — atomic reschedule and reactivation semantics.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
WebUIApplies to the WebUI interfaceApplies to the WebUI interfaceenhancementNew feature or requestNew feature or request
Activity
kantord commentedon Oct 7, 2026
Design-in-place decision: #1852 will not emulate schedule rename.
The current backend treats
nameas the unique immutable schedule key and has no atomic rename operation. Recreating under a new name and deleting the old schedule could reset or split firing state, placement, ownership, and fire-history associations, and partial failure could leave duplicate unattended work.The create/edit UI in #1852 will therefore keep the name immutable after creation. Follow-up #2145 owns user-visible rename and will decide between an atomic key rename and a mutable
displayNamepaired with a stable unique backendname/identity.feat(studio): open a past fire's transcript in a read-only dialog
feat(studio): open a past fire's transcript in a read-only dialog