Repository navigation
GH#34287: fix(pulse): resume interrupted async housekeeping and reconcile before blocker catch-up - #34291
Conversation
…cile before blocker catch-up
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)🚫 Excluded labels (none allowed) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
Completion Summary
aidevops.sh v3.39.1 plugin for OpenCode v1.18.34 with claude-opus-5-5 spent 4m and 12,698 tokens on this as a headless worker. Merged via PR #34291 to main. |
Pulse Unbound-Var Violations (set -u safety)The following files introduce Fix: initialise all vars at declaration time: # BAD — any var only assigned in a conditional branch aborts with set -u
local _g_nums _b_nums _p_nums child_nums
# GOOD — explicit empty-string init
local _g_nums="" _b_nums="" _p_nums="" child_nums=""
# GOOD — single-var declaration is safe
local pr_json
pr_json=$(gh pr list ...)Run |
Up to standards ✅🟢 Issues
|
Qlty Smell Regression Gate✅ No change — smell count unchanged.
|
Bash 3.2 Compatibility Regression Gate✅ No regression — no new bash 3.2-incompatible construct(s).
|
Shell Function Complexity Regression Gate✅ No regression — no new function(s) >100 lines.
|
Shell Nesting Depth Regression Gate✅ No regression — no new file(s) with nesting depth >8.
|
🔍 Code Quality Report�[0;35m[MONITOR]�[0m Code Review Monitoring Report SonarCloud: 0 bugs, 0 vulnerabilities, 1 code smells Sat Oct 10 22:52:38 UTC 2026: Code review monitoring started 📈 Current Quality Metrics
Generated on: Sat Oct 10 22:55:10 UTC 2026 Generated by AI DevOps Framework Code Review Monitoring |
File Size Regression Gate✅ No regression — no new non-README Markdown file(s) >1000 lines at root / >500 elsewhere.
|
vladimirdulov
left a comment
There was a problem hiding this comment.
Auto-approved by pulse runner @vladimirdulov — author @alex-solovyev confirmed collaborator, pre-merge gates passed.
aidevops.sh v3.39.0 automated scan.
* fix: explain tag-push release evidence failures (GH#34286) * test: cover tag-push release diagnostic safety (GH#34286) * GH#34287: fix(pulse): resume interrupted async housekeeping and reconcile before blocker catch-up (#34291) * GH#34287: fix(pulse): resume interrupted async housekeeping and reconcile before blocker catch-up * GH#34287: fix(pulse): initialise housekeeping lock/state locals for unbound-var lint * GH#34289: fix(pulse): defer parent-close near reconcile budget (GH#34289) (#34292) * fix(pulse): defer parent-close when reconcile budget is below mutation reserve (GH#34289) * refactor: extract parent close postcondition helper to stay under complexity limit * GH#34293: docs: keep Qlty on organisation repos and skip its out-of-minutes check --------- Co-authored-by: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Summary
Deploy reconciliation (setup.sh) SIGTERMs the detached housekeeping subshell, so long runs always restarted from stage 1 and preflight_ownership_reconcile was starved. Housekeeping now persists stage=epoch progress in ~/.aidevops/logs/pulse-post-dispatch-housekeeping.state (next to the lock, survives stale-lock reclaim); a following run skips stages completed within AIDEVOPS_PULSE_HOUSEKEEPING_RESUME_WINDOW_S (default 1800s, 0 disables) and a clean complete run removes the state. Stages whose child died by signal (rc>128) are not recorded. preflight_ownership_reconcile now runs before the GH#33246 blocker-refresh catch-up. The async subshell traps TERM/HUP and logs 'terminated by SIG during '. Housekeeping is still stopped on deploy; stage timeouts and catch-up gating are unchanged.
Files Changed
.agents/scripts/pulse-dispatch-engine.sh, .agents/scripts/tests/test-pulse-post-dispatch-housekeeping.sh
Runtime Testing
Resolves #34287
aidevops.sh v3.39.1 plugin for OpenCode v1.18.34 with claude-opus-5-5 spent 4m and 12,698 tokens on this as a headless worker.