fix(agent): prefer the terminal-run rejection slug over its English detail - #4299
Conversation
…etail The terminal-run append rejection was distinguishable only by exact string equality on a human-readable message; rewording it in the api makes the predicate miss and the runtime fall back to noisy retries. The wire schema already parses a slug and the 404 deleted-run branch already matches on one, so the 400 branch now prefers the api's registered terminal-run-append-rejected slug, keeping the string as fallback until every api deployment emits it. Safe to ship before the api change: the slug simply never matches until the api registers it, and the fallback preserves today's behavior. The misfire hazard stays covered -- a reworded detail without the distinct slug still misses rather than misclassifying a replay-checkpoint mismatch as terminal. Refs veryfront/veryfront-issue-inbox#757
There was a problem hiding this comment.
kojiwakayama has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
|
Warning Review limit reachedNext included review available in 20 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
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 |
|
You have reached your Codex usage limits for security reviews. Please try again later. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Note Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime. Code Review ✅ ApprovedUpdates terminal-run rejection classification to prefer the OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
📦 Client bundle boundary
A server module in a client graph aborts hydration in the browser. New leaks fail CI; known leaks are tracked in |
|
Score: 93/100 — excellent. Small, correct, well-tested fix that follows the existing pattern in this file exactly.
Nothing here blocks merge; the branch shows as blocked, presumably on review/approval rather than a code issue. Generated by Claude Code |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
You have reached your Codex usage limits for security reviews. Please try again later. |
There was a problem hiding this comment.
kojiwakayama has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
|
@codex review |
|
Codex Review: Didn't find any major issues. Swish! Reviewed commit: ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
|



Refs https://github.com/veryfront/veryfront-issue-inbox/issues/757
The runtime half of #757, shippable independently:
isTerminalRunConversationRunAppendErrorandisIgnorableConversationRunAppendErrornow share one predicate that prefersslug === "terminal-run-append-rejected"(the identifier the issue's final analysis settled on — same pattern the 404 deleted-run branch already uses) and keeps the exact-detail match as a fallback. Until the veryfront-api change registers the slug, the new branch never matches and behavior is byte-identical; after it, a reworded detail no longer degrades the terminal classification to retries.Deploy-order safe by construction — this is the "runtime prefers the slug, string as fallback" step the issue prescribes, and it works correctly both before and after the api-side registration (which lives in veryfront-api and is not part of this PR; noted on the issue).
Red → green: new test constructs a 400 with the distinct slug and a reworded detail (predicates must classify terminal by slug alone — red before: both returned false) and a 400 with only
validation-failed+ reworded detail (must miss, never misfire — green both before and after).durable-append-errors.test.ts5 steps and consumer suitedurable.test.ts50 steps pass, exit 0; fmt/lint/check clean.