Repository navigation
fix(deploy): recover webhook rollouts from checkout drift - #253
Conversation
…ixes - scripts/deploy.sh: archive drift state before origin sync, classify failures into LOCK_CONTENTION / CHECKOUT_RECOVERY_FAILED / MIGRATION_FAILED / RUNTIME_PRECHECK_FAILED; replace brittle stash Saved* check with git stash list | grep -qF - .github/workflows/deploy.yml: classify webhook failure annotations by response body pattern - deploy/hooks.json: enable include-command-output-in-response so CI grep patterns see real output - .opencode/plugins/lucky-policy-lib.mjs: guard repoRoot spread with non-empty non-root check to prevent /.env false positive; add cwd+home params to commandTouchesSensitivePath - .cursor/skills/lucky-deploy-recovery/SKILL.md: new deterministic incident triage and rerun policy - .cursor/skills/lucky-ci-gate-recovery/SKILL.md: add deploy-checkout-drift bucket and rerun policy
✅ Deploy Preview for regal-bunny-0c8efe ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThis PR restructures deployment recovery and CI gate handling by introducing standardized failure classifications (LOCK_CONTENTION, CHECKOUT_RECOVERY_FAILED, RUNTIME_PRECHECK_FAILED), adding checkout archive-and-sync functions, adjusting webhook retry parameters and logic, and refactoring recovery guidance documentation with concrete command examples. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
📝 Coding Plan
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 |
|
|
PR #253 inadvertently changed deploy.sh from mode 100755 to 100644. The almir/webhook binary requires execute-command targets to be executable; without it, the hook returns HTTP 500 with an empty body. Restores the +x bit so the deploy webhook can invoke the script.
PR #253 inadvertently changed scripts/deploy.sh from mode 100755 to 100644.\nThe almir/webhook binary requires execute permission, causing HTTP 500 with empty body on every deploy trigger.\n\nRestores the executable bit so the webhook can invoke the script directly.
Bumps version to 2.6.17 and promotes CHANGELOG entries for PRs #253-#256:\n- fix(deploy): restore executable bit on deploy.sh\n- feat(bot): harden queue snapshot restore with staleness guard\n- feat(bot): enforce provider health cooldown ordering in search fallback\n- fix(deploy): recover webhook rollouts from checkout drift
- Archive local drift state before origin sync via git stash with labeled stash - Enforce archive-reset checkout hygiene to prevent stale checkout artifacts - Classify deployment failures into LOCK_CONTENTION, CHECKOUT_RECOVERY_FAILED, MIGRATION_FAILED, RUNTIME_PRECHECK_FAILED categories in deploy.yml - Add hooks.json output capture so CI grep patterns see real webhook response - Guard repoRoot in lucky-policy-lib.mjs to prevent /.env false positive - Add lucky-deploy-recovery skill for deterministic incident triage
PR #253 inadvertently changed scripts/deploy.sh from mode 100755 to 100644.\nThe almir/webhook binary requires execute permission, causing HTTP 500 with empty body on every deploy trigger.\n\nRestores the executable bit so the webhook can invoke the script directly.
Bumps version to 2.6.17 and promotes CHANGELOG entries for PRs #253-#256:\n- fix(deploy): restore executable bit on deploy.sh\n- feat(bot): harden queue snapshot restore with staleness guard\n- feat(bot): enforce provider health cooldown ordering in search fallback\n- fix(deploy): recover webhook rollouts from checkout drift



Summary
git pullto deterministic archive+reset hygienerepoRootspread in policy-lib to prevent/.envfalse positiveChanges
scripts/deploy.sh: archive drift state before origin sync; classify failures (LOCK_CONTENTION / CHECKOUT_RECOVERY_FAILED / MIGRATION_FAILED / RUNTIME_PRECHECK_FAILED); fix brittle stash verification withgit stash list | grep -qF.github/workflows/deploy.yml: annotate webhook failures by response body patterndeploy/hooks.json: enableinclude-command-output-in-responseso CI grep patterns see real output.opencode/plugins/lucky-policy-lib.mjs: guard repoRoot with non-empty non-root check; add cwd+home params tocommandTouchesSensitivePath.cursor/skills/lucky-deploy-recovery/SKILL.md: new deterministic incident triage and rerun policy.cursor/skills/lucky-ci-gate-recovery/SKILL.md: add deploy-checkout-drift bucket and rerun policyVerification
bash -n scripts/deploy.shnpm run lintnpm run type:checkReplaces #250 (which had unresolvable merge conflicts after #248 squash-merge).
Summary by CodeRabbit
New Features
Improvements