Repository navigation
feat(claude-remote): enable built-in pr-steward scheduler - #284
Conversation
|
@claude review |
Bump image 0.3.0 -> 0.4.0 and set PR_STEWARD_SCHEDULE_SECONDS=1200 so the steward fires a precheck-gated headless tick every 20 min, removing the need to manually prompt the live remote-control session (gitops #276). The precheck (bin/pr-steward-precheck, shipped in 0.4.0) lists open PRs across the configured repos with the App token and only spawns `claude -p` when an in-scope PR is not yet in a terminal steward state, so idle ticks cost a GitHub API call rather than Claude usage. Widen the log-tail sidecar to also surface scheduler.log. Preserves the per-repo merge_mode config (global never + mctl-design/docs/telegram when-green) from #283.
7016818 to
20baeb3
Compare
|
Claude finished @mashkovd's task in 3m 11s —— View job Code Review
The diff is a values-only change: image tag bump ( Two minor observations (P3, non-blocking): 1. PR description version mismatch. The description says the tag bumps 2. Tick timeout (1800 s) exceeds the schedule interval (1200 s). A tick that runs to its full timeout will still be alive when the next tick fires 20 min later. The No P1/P2 findings — good to merge. |
Summary
Turns on the in-cluster pr-steward scheduler so it runs without a human prompting the live remote-control session (closes the manual-trigger gap, #276).
image.tag0.2.5→0.4.0(shipsbin/pr-steward-precheck+ the scheduler loop).PR_STEWARD_SCHEDULE_SECONDS: "1200"— a precheck-gated headlessclaude -p "Run the pr-steward skill"tick every 20 min.steward-logsidecar tail to also surfacescheduler.log.merge_mode+ mctl-telegram scope; no RemoteTrigger dependency).Cost safety
Each tick is gated by
bin/pr-steward-precheck: it lists open PRs across the configured repos with the already-minted App token and only spawns the model run when an in-scope PR (perpr_filter) is not yet in a terminalsteward:merged/:escalatedstate. Idle cadences therefore cost one GitHub API call, not Claude usage on the Max subscription. Each tick istimeout-wrapped (default 1800s) so a stuck turn can't wedge the loop.Effect
The scheduler will pick up the configured scope — mctl-design (
feat/agents-) and mctl-telegram (claude/,fix/, bothwhen-green+ squash). Open PRs #146/#147 should start getting ticked once the pod rolls to 0.4.0.Test plan
labs-claude-remoteto 0.4.0, pod Healthy, remote-control reconnectsscheduler.logshows precheck output; a tick fires only when an in-scope PR existsclaude -prun