avelino/dotagent

Per-schedule `timeout_seconds` override

Open

#27 opened on 2026年5月20日

GitHub で見る
 (0 comments) (0 reactions) (0 assignees)Rust (1 fork)github user discovery
area: manifestarea: runnergood first issuetype: feature

Repository metrics

Stars
 (2 stars)
PR merge metrics
 (PR metrics pending)

説明

agent.toml has a single timeout_seconds at the [agent] level. But many agents have multiple schedules with very different durations — morning might run a quick health check (10s) and nightly might run a full backup (30 min). Forcing both into the same timeout means either the quick one waits too long to fail or the slow one gets killed unfairly.

Proposal

Allow timeout_seconds to be set per [[schedules]] entry, overriding the agent-level default:

[agent]
timeout_seconds = 60          # default for all schedules

[[schedules]]
id = "morning"
type = "cron"
weekday = "mon-fri"
at = "10:15"
# inherits 60s

[[schedules]]
id = "nightly"
type = "cron"
weekday = "mon-sun"
at = "02:00"
timeout_seconds = 1800        # override: 30 min for the heavy backup

Acceptance criteria

  • Schedule-level timeout_seconds parses and overrides the agent-level value at runtime.
  • When absent, behavior is identical to today.
  • dotagent doctor reports both values in inspect.
  • agent-spec.md updated.

Where to start

  • crates/dotagent-core/src/manifest.rsSchedule struct.
  • crates/dotagent-runner/src/lib.rs::run — timeout resolution.

Non-goals

  • Dynamic timeouts (e.g. "10× the rolling average duration"). Static config only.

コントリビューターガイド