Skip to content

Require review before activating changed schedules #169

Description

@owainlewis

Goal

Prevent an agent-authored file change from silently creating or changing unattended recurring execution.

Context

Push currently lets an allowed conversation ask an agent to write complete job runbooks directly under the assistant repository. Preserve that useful direct-authoring flow, but treat schedule activation as a separate high-impact capability.

Scope

  • Allow agents to continue creating and editing complete Markdown job files.
  • Detect every new or materially changed enabled scheduled trigger.
  • Keep an unapproved new or changed schedule inactive without preventing validation or manual inspection.
  • Present the exact job name, content revision, schedule, backend, timeout, work directory, and delivery target for review.
  • Bind approval to the allowlisted owner identity and the exact validated content revision.
  • Revalidation or any file change invalidates stale approval.
  • Persist approval so restarts do not lose an accepted schedule.
  • Preserve existing installed schedules through an explicit, tested migration rule.
  • Record proposed, approved, rejected, invalidated, and activated events in durable history and the audit log.
  • Support review without introducing a UI. Use existing channel-aware durable questions and/or explicit CLI commands.

Non-goals

  • Do not require approval to save a draft file or run validation.
  • Do not give jobs permission to approve themselves.
  • Do not restore removed permission-profile machinery.
  • Do not add remote administration or a web server.

Acceptance criteria

  • A newly authored enabled trigger cannot run before approval.
  • Manual jobs and disabled triggers remain editable without activation approval.
  • Approval is bound to both owner identity and exact content hash.
  • Editing a reviewed job invalidates its schedule approval before the changed schedule can run.
  • Duplicate, expired, mismatched, and replayed approvals fail closed.
  • Existing installations retain their intended schedules through a documented migration.
  • Tests cover restart, revision race, symlink/path replacement, invalid job edits, multiple channels, duplicate approval, rejection, and scheduler wake-up behavior.
  • Security, jobs, service, and CLI documentation describe the activation boundary.

Verify

  • cargo fmt --all -- --check
  • cargo clippy --locked --all-targets -- -D warnings
  • cargo build --locked
  • cargo test --locked

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readyScoped enough for an agent to pick upenhancementNew feature or requesthardeningRobustness / correctnesssecuritySecurity posture

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions