Skip to content

Conversation

@Stranmor
Copy link

@Stranmor Stranmor commented Feb 3, 2026

Summary

Boulder Loop is a time-based autonomous work loop that continues until a deadline, unlike Ralph Loop which stops when the agent decides it's complete.

Features

  • Time-based execution: Work until a specific time (--until=HH:MM) or for N hours (--hours=N)
  • Persistent state: Survives session crashes/restarts
  • Deadline enforcement: Automatic continuation prompts until deadline reached
  • Commands: /boulder, /cancel-boulder

Usage

/boulder "Refactor and add tests" --until=23:00
/boulder "Work on improvements" --hours=4
/cancel-boulder

Implementation

  • src/hooks/boulder-loop/ - Core hook implementation
  • src/features/builtin-commands/templates/boulder-loop.ts - Command templates
  • Integrated into src/index.ts with chat.message, event, and tool.execute.before handlers
  • Persistent storage in .sisyphus/boulder-loop.local.md

Use Case

When you want the agent to work autonomously until a specific time (e.g., "work until I wake up", "work for 4 hours while I'm away") rather than stopping when it thinks it's done.


Summary by cubic

Add Boulder Loop, a time-based autonomous work loop that keeps working until a deadline. This enables “work until HH:MM or for N hours,” with persistent state and automatic continuation.

  • New Features
    • Slash commands: /boulder "task" --until=HH:MM or --hours=N; /cancel-boulder
    • Persistent state in .sisyphus/boulder-loop.local.md (survives crashes/restarts)
    • Deadline enforcement with idle-event prompts; auto stop with final toast and message
    • Config: boulder_loop { enabled, default_hours, state_dir }
    • Skip questions during Boulder Loop to avoid blocking
    • Wait for background tasks to finish before injecting the next continuation
    • CI: daily upstream sync workflow with build and release

Written for commit a9ef5c5. Summary will update on new commits.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 3, 2026

All contributors have signed the CLA. Thank you! ✅
Posted by the CLA Assistant Lite bot.

@Stranmor
Copy link
Author

Stranmor commented Feb 3, 2026

I have read the CLA Document and I hereby sign the CLA

github-actions bot added a commit that referenced this pull request Feb 3, 2026
Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 13 files

Confidence score: 5/5

  • Low-severity maintainability note: deadline parsing/calculation is duplicated between chat.message and slashcommand handlers in src/index.ts, which could require synchronized edits later
  • This PR appears safe to merge since the issue is about refactoring potential rather than user-facing behavior
  • Pay close attention to src/index.ts - duplicated deadline parsing logic across handlers.
Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="src/index.ts">

<violation number="1" location="src/index.ts:639">
P3: Deadline parsing and calculation logic is duplicated between chat.message and slashcommand handlers; changes would need to be synchronized in two places. Consider extracting a shared helper for parsing deadline options.</violation>
</file>

Since this is your first cubic review, here's how it works:

  • cubic automatically reviews your code and comments on bugs and improvements
  • Teach cubic by replying to its comments. cubic learns from your replies and gets better over time
  • Ask questions if you need clarification on any suggestion

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

2 issues found across 1 file (changes from recent commits).

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name=".github/workflows/sync-upstream.yml">

<violation number="1" location=".github/workflows/sync-upstream.yml:76">
P2: Release tags are date-only, so multiple runs in the same day reuse the same tag and action-gh-release will fail with an `already_exists` error. This can break manual re-runs or multiple upstream updates in one day.</violation>

<violation number="2" location=".github/workflows/sync-upstream.yml:89">
P2: Release instructions reference `oh-my-opencode-boulder.js`, but the only uploaded asset is `dist/index.js`, so users won’t find the documented filename in the release assets.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Time-based development loop that runs until a deadline.
- /boulder command to start loop with --until=HH:MM or --hours=N
- /cancel-boulder to stop early
- Question tool auto-skipped in boulder mode (agent decides autonomously)
- Minimal continuation prompt (just time remaining + original task)
Skip continuation prompt injection if subagents are still running.
Uses backgroundManager.getTasksByParentSession() to check for active tasks.
- Add timestamp to release tags to prevent conflicts on same-day runs
- Rename artifact to oh-my-opencode-boulder.js to match docs
- Extract parseBoulderDeadline() helper to eliminate duplication
- Remove hardcoded ru-RU locale, use system default
- Add error logging to empty catch block
- Check session_id before skipping questions in boulder mode
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.

1 participant