Skip to content

Studio schedules: list, editor dialogs, detail, and run history #1852

Closed

Description

@samuv

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:check passes, and a real local mecated serve smoke test creates a schedule, fires it, opens its detail, and observes run history.

Follow-ups discovered by the tracer bullet

Depends on: #1843, #1844.

Activity

  1. added
    enhancementNew feature or request
    WebUIApplies to the WebUI interface
    on Sep 24, 2026
  2. self-assigned this
    on Oct 7, 2026
  3. kantord commented on Oct 7, 2026

    @kantord
    Member

    Design-in-place decision: #1852 will not emulate schedule rename.

    The current backend treats name as 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 displayName paired with a stable unique backend name/identity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

WebUIApplies to the WebUI interfaceenhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions