Skip to content

fix: Phase 3 error visibility in supervisor pulse (t265)#1061

Merged
marcusquinn merged 1 commit intomainfrom
feature/t265
Feb 11, 2026
Merged

fix: Phase 3 error visibility in supervisor pulse (t265)#1061
marcusquinn merged 1 commit intomainfrom
feature/t265

Conversation

@marcusquinn
Copy link
Owner

@marcusquinn marcusquinn commented Feb 11, 2026

Summary

Fixes #1041 — Phase 3 error visibility in supervisor pulse cycle.

Problem

When process_post_pr_lifecycle or process_verify_queue failed in Phase 3/3b of the pulse cycle, errors were silently swallowed by 2>/dev/null || true. This made debugging impossible when Phase 3 crashed (e.g., infinite loop, DB error) — the pulse would exit with code 1 but produce no output after the header.

Solution

  1. Redirect stderr to log: Replace 2>/dev/null with 2>>"$SUPERVISOR_LOG" for both Phase 3 and Phase 3b
  2. Add error visibility: Wrap calls in if ! ... then log_error blocks to log failure messages before exit codes are suppressed
  3. Ensure Phase 5 runs: The if ! ... then pattern (without early exit) ensures Phase 5 summary always executes even if Phase 3 fails

Changes

  • .agents/scripts/supervisor-helper.sh: Modified Phase 3 and Phase 3b error handling (lines 9594-9606)

Testing

Created and ran test script that simulates Phase 3 failure:

  • ✓ Stderr is captured in $SUPERVISOR_LOG instead of /dev/null
  • ✓ Error message is logged before exit code suppression
  • ✓ Phase 5 continues to run after Phase 3 failure
  • ✓ ShellCheck passes with no warnings

Impact

  • Errors in Phase 3/3b are now visible in supervisor logs
  • Debugging pulse failures is now possible
  • No change to control flow — Phase 5 still runs unconditionally

Summary by CodeRabbit

  • Bug Fixes
    • Improved error handling in automated processes to surface failures instead of silently suppressing errors.
    • Added explicit logging when process execution fails, providing better visibility for troubleshooting.

- Replace 2>/dev/null with 2>>$SUPERVISOR_LOG for visibility
- Wrap process_post_pr_lifecycle and process_verify_queue in if-blocks
- Log error message before || true suppresses exit code
- Phase 5 summary already runs unconditionally due to || true pattern
@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
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, 46 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Wed Feb 11 02:27:11 UTC 2026: Code review monitoring started
Wed Feb 11 02:27:12 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 46

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 46
  • VULNERABILITIES: 0

Generated on: Wed Feb 11 02:27:14 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

@sonarqubecloud
Copy link

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 11, 2026

Walkthrough

The supervisor helper script's Phase 3 and Phase 3b now explicitly handle and log errors from process_post_pr_lifecycle and process_verify_queue calls instead of silently suppressing them. Error messages are logged with failure details and diagnostic pointers, improving observability and failure tracking.

Changes

Cohort / File(s) Summary
Error Handling Enhancement
.agents/scripts/supervisor-helper.sh
Replaced stderr suppression (2>/dev/null) with explicit error handling for Phase 3 and Phase 3b lifecycle operations. Added conditional checks (if !) to capture and log failures from process_post_pr_lifecycle and process_verify_queue, surfacing diagnostic information to $SUPERVISOR_LOG.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

Errors once whispered to the void, now sing,
Their tales logged clear for debugging's wing,
Phase 3 and 3b surface their strife,
No more silent deaths—they show their life! 📋✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR addresses error visibility and logging for Phase 3/3b failures, but the linked issue #1041 (t265) requests fixes to image generation detection logic using alternative signals like spinner disappearance or button state—not error visibility improvements. Implement the actual image detection fixes described in issue #1041: replace the image-count heuristic with alternative completion signals (spinners, timestamps, button state, or History tab checks).
Out of Scope Changes check ⚠️ Warning The PR modifies Phase 3/3b error handling and logging in supervisor-helper.sh, but the linked issue #1041 requests fixes to image generation detection in waitForImageGeneration(), making these logging changes unrelated to the stated bug fix scope. Focus the PR on implementing image generation completion detection fixes as specified in issue #1041, rather than supervisor error visibility improvements.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: improving Phase 3 error visibility in supervisor pulse logs, directly matching the PR's core objective.
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
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/t265

No actionable comments were generated in the recent review. 🎉


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.

@marcusquinn marcusquinn merged commit 77432c5 into main Feb 11, 2026
14 checks passed
@marcusquinn marcusquinn deleted the feature/t265 branch February 11, 2026 02:35
marcusquinn added a commit that referenced this pull request Feb 11, 2026
…ntly swallows all errors. When Phase 3 crashes (e.g., infinite loop, DB error), the pulse produces no output after the header and exits with code 1, but the error is invisible. Fix: redirect stderr to `$SUPERVISOR_LOG` instead of `/dev/null`, and add a trap or wrapper that logs the error before `|| true` suppresses it. Also ensure Phase 5 (summary) always runs even if Phase 3 fails. #bugfix #supervisor #observability #auto-dispatch ~30m (ai:20m test:10m) model:sonnet ref:GH#1041 logged:2026-02-11|#1061)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment