GH#18539: fix review-followup findings in new-task-helper.sh#18604
GH#18539: fix review-followup findings in new-task-helper.sh#18604marcusquinn wants to merge 2 commits intomainfrom
Conversation
- Insert TODO entries under ## Ready header instead of appending to EOF - Only skip full-line # comments in file/stdin input, preserve inline refs like #123 - Move TODO.md existence check to cmd_batch (once) instead of per-task - Remove 2>/dev/null from claim-task-id.sh to surface allocation errors
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 6 minutes and 23 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
🔍 Code Quality Report�[0;35m[MONITOR]�[0m Code Review Monitoring Report SonarCloud: 0 bugs, 0 vulnerabilities, 226 code smells Mon Apr 13 04:37:50 UTC 2026: Code review monitoring started 📈 Current Quality Metrics
Generated on: Mon Apr 13 04:37:52 UTC 2026 Generated by AI DevOps Framework Code Review Monitoring |
The post-merge-review-scanner creates issues that lack implementation context (file paths, steps, verification), causing headless workers to stall and time out. This is the systemic root cause of GH#18539. Changes to post-merge-review-scanner.sh: - Extract unique file paths from review findings - Add Worker Guidance section with Files to Modify, Implementation Steps, and Verification commands - Increase snippet length from 200 to 500 chars to preserve review context - Pass file_paths as new arg to create_issue()
🔍 Code Quality Report�[0;35m[MONITOR]�[0m Code Review Monitoring Report SonarCloud: 0 bugs, 0 vulnerabilities, 226 code smells Mon Apr 13 04:39:15 UTC 2026: Code review monitoring started 📈 Current Quality Metrics
Generated on: Mon Apr 13 04:39:18 UTC 2026 Generated by AI DevOps Framework Code Review Monitoring |
|
Up to standards ✅🟢 Issues
|
…NG PR When the pulse merge pass skips auto-close on an origin:interactive CONFLICTING PR (GH#18285 — maintainer session work is theirs to own), it now posts an idempotent nudge comment with the exact rebase command. Previously the skip was silent — the pulse log recorded 'skipping auto-close' every cycle but the maintainer never saw the signal, and the CONFLICTING state persisted forever. The nudge is idempotent via _gh_idempotent_comment with marker '<!-- pulse-rebase-nudge -->' — posted exactly once per PR lifetime. If the PR is updated and still conflicts, the nudge does NOT repeat. Fail-open: missing _gh_idempotent_comment helper, invalid PR number, or empty repo slug all return 0 without crashing the merge pass. Nudging is best-effort operational plumbing. Evidence from 2026-04-13 queue: PRs #18604 (GH#18539), #18566 (GH#18547), and #18531 (GH#18418) all CONFLICTING for 6+ hours with no signal to the author. Live verification after this merges will post the nudge on each. 6 new unit tests cover: - nudge body contains marker, branch interpolation, rebase command - posts as PR entity (type='pr'), not issue - PR number and repo slug are threaded correctly - no-ops when _gh_idempotent_comment is undefined (fail-open) - no-ops on invalid PR number - no-ops on empty repo slug Function lengths after addition: _close_conflicting_pr: 96 lines (was 95, +1 for the nudge call) _post_rebase_nudge_on_interactive_conflicting: 49 lines (new) Scope: intentionally narrow. Does NOT auto-rebase, does NOT close after N cycles, does NOT escalate via any channel other than the PR's native GitHub notification. Humans own the conflict resolution. Fixes #18650
…NG PR (#18651) When the pulse merge pass skips auto-close on an origin:interactive CONFLICTING PR (GH#18285 — maintainer session work is theirs to own), it now posts an idempotent nudge comment with the exact rebase command. Previously the skip was silent — the pulse log recorded 'skipping auto-close' every cycle but the maintainer never saw the signal, and the CONFLICTING state persisted forever. The nudge is idempotent via _gh_idempotent_comment with marker '<!-- pulse-rebase-nudge -->' — posted exactly once per PR lifetime. If the PR is updated and still conflicts, the nudge does NOT repeat. Fail-open: missing _gh_idempotent_comment helper, invalid PR number, or empty repo slug all return 0 without crashing the merge pass. Nudging is best-effort operational plumbing. Evidence from 2026-04-13 queue: PRs #18604 (GH#18539), #18566 (GH#18547), and #18531 (GH#18418) all CONFLICTING for 6+ hours with no signal to the author. Live verification after this merges will post the nudge on each. 6 new unit tests cover: - nudge body contains marker, branch interpolation, rebase command - posts as PR entity (type='pr'), not issue - PR number and repo slug are threaded correctly - no-ops when _gh_idempotent_comment is undefined (fail-open) - no-ops on invalid PR number - no-ops on empty repo slug Function lengths after addition: _close_conflicting_pr: 96 lines (was 95, +1 for the nudge call) _post_rebase_nudge_on_interactive_conflicting: 49 lines (new) Scope: intentionally narrow. Does NOT auto-rebase, does NOT close after N cycles, does NOT escalate via any channel other than the PR's native GitHub notification. Humans own the conflict resolution. Fixes #18650
Rebase needed — branch has diverged from
|
|
Superseded — closing in favour of a fresh PR against current Why closing instead of rebasingThis PR was created against
Disposition of the 4 findingsThe new-task-helper findings are still unfixed on current main:
The scanner findings are resolved — main's implementation exceeds this PR's scope. ReplacementA fresh PR will apply just the 4 aidevops.sh v3.8.8 plugin for OpenCode v1.4.3 with claude-opus-4-6 spent 4m and 1,175 tokens on this as a headless worker. Overall, 16h 25m since this issue was created. |



Summary
Resolves #18539
Addresses all 4 actionable review bot findings from PR #18416 on
.agents/scripts/new-task-helper.sh:HIGH — TODO.md insertion position:
_append_todo_entrywas appending to EOF with>>, placing new tasks after## Doneand TOON blocks. Now correctly finds the## Readyheader (falling back to## Backlog) and inserts after the last task line in that section using awk.MEDIUM — Destructive
#stripping:${line%%#*}stripped everything after the first#, breaking titles like "Fix bug feat(plan+): add granular bash permissions for file discovery #123". Changed to only skip full-line comments (^#), preserving inline#references. Also fixes the inconsistency where--titleflag input was not stripped but file/stdin input was.MEDIUM — Redundant TODO.md check: The file existence check was inside
_append_todo_entry(called per task). Moved tocmd_batch— validated once before the loop starts.MEDIUM — Suppressed stderr:
2>/dev/nullonclaim-task-id.shhid auth/network/lock errors. Removed so allocation failures surface properly.Runtime Testing
shellcheckcleanself-assessedaidevops.sh v3.8.5 plugin for OpenCode v1.4.3 with claude-opus-4-6 spent 4m and 9,561 tokens on this as a headless worker.