Skip to content

t1342: Add Linux cron support for pulse scheduler#2402

Merged
marcusquinn merged 1 commit intomainfrom
feature/t1342-linux-pulse-systemd
Feb 27, 2026
Merged

t1342: Add Linux cron support for pulse scheduler#2402
marcusquinn merged 1 commit intomainfrom
feature/t1342-linux-pulse-systemd

Conversation

@alex-solovyev
Copy link
Collaborator

@alex-solovyev alex-solovyev commented Feb 26, 2026

Summary

  • Add Linux (cron) pulse scheduler setup alongside existing macOS launchd in runners.md
  • Replace dead supervisor-helper.sh references in setup.sh with cross-platform cron installer
  • Verified: setup.sh --non-interactive installs pulse cron entry on Linux, ShellCheck clean

Fixes #2401

Summary by CodeRabbit

  • New Features

    • Added Linux support for pulse scheduler configuration alongside macOS.
  • Documentation

    • Updated setup documentation with explicit platform-specific instructions for both macOS and Linux.
  • Improvements

    • Simplified the pulse scheduler setup process with a unified cross-platform approach.
    • Enhanced setup prompts and messaging for clearer user guidance.

…rvisor-helper.sh refs (t1342)

- runners.md: add Linux (cron) section alongside macOS launchd instructions
- setup.sh: replace dead supervisor-helper.sh pulse installer with
  cross-platform cron-based approach (works on macOS and Linux)
- setup.sh: update help text to point to runners.md instead of deleted script

Fixes #2401
@gemini-code-assist
Copy link

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@github-actions github-actions bot added the enhancement Auto-created from TODO.md tag label Feb 26, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 26, 2026

Walkthrough

Documentation and setup logic for the pulse scheduler are refactored to support both macOS and Linux. runners.md now explicitly documents platform-specific setup (launchd on macOS, cron on Linux). setup.sh is simplified to use a unified cross-platform cron-based installation approach, removing dead supervisor-helper.sh references.

Changes

Cohort / File(s) Summary
Pulse Scheduler Documentation
.agents/scripts/commands/runners.md
Reorganized with platform-specific subsections for macOS (launchd) and Linux (cron). Adds complete cron configuration details, 2-minute scheduling cadence, overlap guards using pgrep, and clarifications on Enable/Disable/Verify behaviors across platforms.
Setup Orchestration
setup.sh
Refactored pulse detection and installation from dedicated supervisor script to unified cron-based approach. Replaces dead supervisor-helper.sh references with opencode-based pulse execution. Updates interactive/non-interactive flows, status messages, and documentation pointers to runners.md. Works cross-platform without separate launchd/cron migration paths.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • PR #1971: Modifies the same setup.sh supervisor/pulse installation logic with platform-specific scheduler configurations, making it directly related to this refactoring effort.

Poem

🐧 macOS and Linux, now they both run free,
The pulse beats steady with cross-platform harmony.
Cron sweeps every two minutes with grace,
Dead code swept away—a cleaner, faster place! 🚀

🚥 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 accurately describes the main change: adding Linux cron support for the pulse scheduler, which is the primary focus of both file modifications.
Linked Issues check ✅ Passed All acceptance criteria from issue #2401 are met: runners.md documents both macOS and Linux setup, setup.sh uses cross-platform cron installer, supervisor-helper.sh references are removed, and ShellCheck passes.
Out of Scope Changes check ✅ Passed All changes are directly related to the objectives: runners.md additions document Linux cron setup, setup.sh modifications replace supervisor-helper.sh with cron-based installer, and both align with issue #2401 requirements.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

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

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/t1342-linux-pulse-systemd

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions
Copy link

🔍 Code Quality Report

�[0;35m[MONITOR]�[0m Code Review Monitoring Report

�[0;34m[INFO]�[0m Latest Quality Status:
SonarCloud: 0 bugs, 0 vulnerabilities, 88 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Thu Feb 26 23:00:05 UTC 2026: Code review monitoring started
Thu Feb 26 23:00:06 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 88

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 88
  • VULNERABILITIES: 0

Generated on: Thu Feb 26 23:00:09 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

@sonarqubecloud
Copy link

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
setup.sh (1)

706-713: Quote the directory path in the cron command to handle paths with spaces.

Line 708 constructs the pulse command with $_aidevops_dir unquoted. If the path contains spaces (e.g., /home/user/My Git/aidevops), the cron entry will parse incorrectly.

🛡️ Proposed fix for path quoting
 			if [[ "$_install_pulse" == "true" ]]; then
 				mkdir -p "$HOME/.aidevops/logs"
-				local _pulse_cmd="$opencode_path run \"/pulse\" --dir $_aidevops_dir -m anthropic/claude-sonnet-4-6 --title \"Supervisor Pulse\""
+				local _pulse_cmd="$opencode_path run \"/pulse\" --dir \"$_aidevops_dir\" -m anthropic/claude-sonnet-4-6 --title \"Supervisor Pulse\""
 				# Install as cron entry (works on both macOS and Linux)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@setup.sh` around lines 706 - 713, The cron entry fails for directories with
spaces because $_aidevops_dir is unquoted in the constructed _pulse_cmd and the
crontab echo, so update the _pulse_cmd assignment (variable _pulse_cmd) to pass
--dir "$_aidevops_dir" (i.e., quote the directory) and ensure the string written
into crontab preserves that quoting (escape or wrap the entire cron command
appropriately so the quoted path survives when echoing the line into crontab,
e.g., ensure the crontab echo that includes $_pulse_cmd emits the command with
the directory argument quoted).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@setup.sh`:
- Around line 706-713: The cron entry fails for directories with spaces because
$_aidevops_dir is unquoted in the constructed _pulse_cmd and the crontab echo,
so update the _pulse_cmd assignment (variable _pulse_cmd) to pass --dir
"$_aidevops_dir" (i.e., quote the directory) and ensure the string written into
crontab preserves that quoting (escape or wrap the entire cron command
appropriately so the quoted path survives when echoing the line into crontab,
e.g., ensure the crontab echo that includes $_pulse_cmd emits the command with
the directory argument quoted).

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2147c53 and c8ca5b3.

📒 Files selected for processing (2)
  • .agents/scripts/commands/runners.md
  • setup.sh

@marcusquinn marcusquinn merged commit 5aa03cc into main Feb 27, 2026
21 checks passed
@marcusquinn marcusquinn deleted the feature/t1342-linux-pulse-systemd branch March 3, 2026 03:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Auto-created from TODO.md tag

Projects

None yet

Development

Successfully merging this pull request may close these issues.

t1342: Add Linux support for pulse scheduler and remove dead supervisor-helper.sh references

2 participants