Skip to content

fix: final-outcome step crashed on every successful non-rescue run - #27

Merged
george-elphick-talieisin merged 1 commit into
mainfrom
fix/final-outcome-set-e
Sep 21, 2026
Merged

george-elphick-talieisin merged 1 commit into
mainfrom
fix/final-outcome-set-e

Conversation

@george-elphick-talieisin

@george-elphick-talieisin george-elphick-talieisin commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Since feat: rescue and suggest modes for the upgrade pipeline #22 (2026-09-06), ci-watch → "Record final outcome" has crashed on every successful non-rescue run. The success message runs $([ "$MODE" = "rescue" ] && echo …), which returns 1 when the mode isn't rescue. Under set -euo pipefail, that failing substitution in an assignment ends the step before any label is set.
  • finalize then sees ai-upgrade still present and parks the PR as ai-blocked ("ended without reaching a terminal state"), so CI-green upgrades land in the needs-a-decision list instead of the ready-to-merge one.
  • Confirmed in the logs: Talieisin/caersid#301 (run 35549790950, OUTCOME: success, MODE: upgrade) and Talieisin/macwhisper-assistant#71 (run 35523851554). Fix: || true inside the substitution. This is the only occurrence of the pattern in either repo.

Test plan

  • Isolated reproduction: the old line exits 1 under set -euo pipefail with MODE=upgrade; the fixed line gives the right message for upgrade and rescue
  • After merge, re-queue caersid#301 and macwhisper-assistant#71; both should finish ai-complete

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Copilot AI lite review requested due to automatic review settings September 21, 2026 22:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🟢 Approval recommended

The change correctly prevents set -e from aborting the success path and is narrowly scoped with no additional behavioral risk observed.

Review effort: Lite
Findings: None

What changed in this PR

Fixes a bash set -euo pipefail interaction in the ci-watch “Record final outcome” step so successful non-rescue runs no longer crash before applying the terminal label/message.

Changes:

  • Prevents a non-rescue success path from exiting due to a failing command substitution by forcing a zero exit status (|| true) inside the substitution.
File Description
.github/​workflows/​dependabot-upgrade.yml Ensures the success message construction can’t terminate the step under set -e, allowing the final label/message to be applied consistently.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@george-elphick-talieisin
george-elphick-talieisin merged commit 32e6f0b into main Sep 21, 2026
2 checks passed
@george-elphick-talieisin
george-elphick-talieisin deleted the fix/final-outcome-set-e branch September 21, 2026 22:31
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.

2 participants