-
Notifications
You must be signed in to change notification settings - Fork 2.1k
feat: add boulder-loop time-based autonomous work loop #1432
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
|
All contributors have signed the CLA. Thank you! ✅ |
|
I have read the CLA Document and I hereby sign the CLA |
There was a problem hiding this 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.
There was a problem hiding this 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
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
--until=HH:MM) or for N hours (--hours=N)/boulder,/cancel-boulderUsage
Implementation
src/hooks/boulder-loop/- Core hook implementationsrc/features/builtin-commands/templates/boulder-loop.ts- Command templatessrc/index.tswithchat.message,event, andtool.execute.beforehandlers.sisyphus/boulder-loop.local.mdUse 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.
Written for commit a9ef5c5. Summary will update on new commits.