Blackout windows — suspend an agent during declared periods
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3
- Forks
- 1
- Avg merge
- 4h 50m
- Merged PRs (30d)
- 1
Description
There are legitimate periods when an agent should NOT run: a deploy freeze week, the operator's vacation, a known database maintenance window. Today the only way to achieve this is to edit/comment out the schedule in the manifest — which leaves no trail and is easy to forget to re-enable.
Proposal
A [[blackout]] block in agent.toml declaring suspended periods:
[[blackout]]
reason = "Q4 deploy freeze"
start = "2026-12-15T00:00:00Z"
end = "2026-12-31T23:59:59Z"
[[blackout]]
reason = "weekly maintenance"
recurrence = "weekly"
weekday = "sun"
start_time = "02:00"
end_time = "04:00"
When the agent's schedule fires inside any blackout window, the daemon logs blackout_active and skips. No failure, no notification.
Acceptance criteria
- Both absolute date ranges and recurring rules (weekly on day X, time Y-Z) parse and apply.
-
dotagent whysurfaces the active blackout when an agent is suspended. - Blackouts emit an audit event but no notifier fires.
-
dotagent next(sibling issue) skips blackout windows when computing upcoming fires. -
agent-spec.mdupdated.
Where to start
crates/dotagent-core/src/manifest.rs— schema.crates/dotagent-scheduler/src/lib.rs— fire-decision logic.
Non-goals
- Global blackouts in
config.toml(only per-agent for v1). - Pulling holidays from an external calendar API.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the manifest schema in crates/dotagent-core/src/manifest.rs and the fire-decision logic in crates/dotagent-scheduler/src/lib.rs. Trace how dotagent why, audit events, and notifications represent a skipped fire, then verify absolute and recurring blackouts, the documented agent-spec.md changes, and interaction with the sibling dotagent next issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, cli, documentation
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 55/100