Skip to content

Migrate org scheduler config to jobs#41

Merged
s-hiraoku merged 1 commit into
mainfrom
kaizen/issues-38-40-scheduler-sync
Jun 22, 2026
Merged

Migrate org scheduler config to jobs#41
s-hiraoku merged 1 commit into
mainfrom
kaizen/issues-38-40-scheduler-sync

Conversation

@s-hiraoku

@s-hiraoku s-hiraoku commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Move .github scheduler config from fixed scheduler fields to scheduler.jobs.
  • Represent the 01:30 guarded run as maintenance and the 13:30 unguarded run as maintenance-followup.
  • Keep continuous polling disabled as a disabled issue-watch job and raise the scheduled issue limit to 2.

Verification

  • Repository validation commands from .kaizen/config.yml
  • bash scripts/check-daily-dogfood-sync-contract.sh
  • bash scripts/test-sync-daily-dogfood.sh
  • Parsed the updated config with the current kaizen-loop schema

Closes #40

Summary by CodeRabbit

  • Chores
    • Increased the nightly issue-processing limit from 1 to 2.
    • Reworked the job scheduler: replaced prior nightly/polling entries with scheduled maintenance jobs at 01:30 and 13:30 (with different late-start safeguards).
    • Added an issue-watch interval job that runs every 5 minutes in watch mode, currently disabled (skips if a run is already in progress).

@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: kaizen-agents-org/coderabbit/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 7ffb0be1-733f-41d6-8564-436f3dde1985

📥 Commits

Reviewing files that changed from the base of the PR and between 460a2e9 and 446bed4.

📒 Files selected for processing (1)
  • .kaizen/config.yml

📝 Walkthrough

Walkthrough

.kaizen/config.yml increases maxIssuesPerNight from 1 to 2 and replaces the legacy scheduler.nightly and scheduler.poll fields with a scheduler.jobs structure containing two jobs: maintenance (enabled, running at 01:30 and 13:30, mode: maintenance) and issue-watch (disabled, interval-based at 5 minutes, mode: watch).

Changes

Scheduler config migration

Layer / File(s) Summary
scheduler.jobs structure and run limit update
.kaizen/config.yml
maxIssuesPerNight raised from 1 to 2. scheduler.nightly and scheduler.poll removed and replaced with scheduler.jobs containing a maintenance job (enabled, times: ["01:30", "13:30"], mode: maintenance, lateStartGuard: false) and an issue-watch job (disabled, everyMinutes: 5, mode: watch, skipIfRunning: true).

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related issues

  • [monitor] Migrate org scheduler config to scheduler.jobs #40: The PR directly implements the migration described in this issue — replacing scheduler.nightly/scheduler.poll with scheduler.jobs (maintenance at 01:30 and 13:30 plus disabled issue-watch) and raising maxIssuesPerNight to 2, matching the recommended YAML exactly.

Possibly related PRs

  • kaizen-agents-org/.github#20: Directly modifies the same .kaizen/config.yml scheduler configuration, previously adding nightly and poll fields that this PR replaces with the new scheduler.jobs structure.
  • kaizen-agents-org/kaizen-loop#66: Restructures .kaizen/config.yml into the same scheduler.jobs maintenance-run pattern with identical daily cadence (01:30 and 13:30).
  • kaizen-agents-org/coderabbit#11: Applies the same changes—maxIssuesPerNight increased from 1 to 2 and scheduler restructured to add scheduled runs while disabling poll-style scheduling.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change: migrating the scheduler configuration to the jobs interface, matching the primary objective.
Linked Issues check ✅ Passed The PR fully implements the recommended migration from issue #40: consolidated maintenance job with dual times, disabled issue-watch job, and increased maxIssuesPerNight to 2.
Out of Scope Changes check ✅ Passed All changes are directly aligned with issue #40 requirements; no extraneous modifications to unrelated files or configuration fields are present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch kaizen/issues-38-40-scheduler-sync

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 460a2e9fc3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .kaizen/config.yml
- "13:30"
run:
mode: maintenance
lateStartGuard: false

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve the late-start guard for the 01:30 run

With both 01:30 and 13:30 in the same maintenance job, setting lateStartGuard: false disables the existing run.latestStartHour: 7 protection for the overnight slot as well as the afternoon slot. In contexts where the scheduler catches up after downtime or a delayed start after 07:00, the old 01:30 run can now start during the day instead of being skipped; split the times into separate jobs or keep the guard enabled for the overnight job only.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in 446bed4: the guarded run is now maintenance with lateStartGuard: true, and the later run is a separate maintenance-followup job with lateStartGuard: false.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[monitor] Migrate org scheduler config to scheduler.jobs

1 participant