fix(agent): keep delayed Slack receipts retryable#1352
Conversation
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughThe guardian now treats missing Slack receipt timestamps as pending, logs a warning, and retries on a later tick. Tests simulate delayed receipts and verify idempotent replay without duplicate Slack posts. The changelog documents the behavior. ChangesSlack receipt retry flow
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related issues
Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint install timed out. The project may have too many dependencies for the sandbox. 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 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d519d4325e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ctx.log('warn', 'relay-feature-guardian.post-receipt-pending', { | ||
| channel, | ||
| feature: feature.id, | ||
| path: result.path, | ||
| }); | ||
| return; |
There was a problem hiding this comment.
Add an Unreleased entry for altered guardian delivery semantics
This changes the deployed guardian’s observable behavior from failing a run when no provider timestamp is returned to recording a successful, retry-pending run; the current [Unreleased - Patch] section does not describe that change. Add a concise Fixed entry so operators can understand why failed-run alerts may instead appear as receipt-pending warnings.
AGENTS.md reference: AGENTS.md:L29-L34
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Addressed in 352b226: added a concise Unreleased/Fixed entry describing the retry-pending receipt behavior and the preserved checkpoint/idempotency key.
352b226 to
e8fd8a7
Compare
Summary
Root cause
The write helper can return after the draft is admitted but before the provider receipt is visible. The guardian previously translated that success-without-receipt state into Slack post failed: no timestamp returned for feature capabilities-register, even though provider completion could still arrive later.
Relayfile v0.10.36 fixes one underlying accepted-operation 404 receipt visibility defect, but it is not deployed to the running snapshot and it does not remove the helper independent 15-second receipt deadline. This PR fixes the residual agent-side classification bug.
Red / green
Exact acceptance red, observed Node v20.20.1: with the production no-timestamp branch restored and the final fixture, 1 failed / 33 passed; exact cause Slack post failed: no timestamp returned for feature capabilities-register at agent.ts:796.
CI-correct local verification at 9f16f23, observed Node v22.14.0 / npm 10.9.2 as pinned by .github/workflows/test.yml:
The clean install reports existing transitive engine warnings for dependencies requiring newer Node 22 minors than the workflow pin; install and both gates pass. No live agent run, deploy, merge, or production mutation was performed.