XY-948: Separate historical and retryable attention lanes - #361
Merged
Conversation
…f history attention","authority":"manual"}
…sport failures","authority":"manual"}
…es","authority":"manual"}
…sition","authority":"manual"}
…markers","authority":"XY-948"}
…et episodes","authority":"XY-948"}
…failures","authority":"XY-948"}
…ailures","authority":"XY-948"}
… waits","authority":"XY-948"}
…fore attention","authority":"XY-948"}
…meouts","authority":"XY-948"}
…lures","authority":"XY-948"}
…h misses","authority":"XY-948"}
…tebacks","authority":"XY-948"}
…intents","authority":"XY-948"}
…s","authority":"XY-948"}
yvette-carlisle
marked this pull request as ready for review
June 12, 2026 19:28
…o repair","authority":"XY-948"}
…y from attention","authority":"XY-948"}
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linear: XY-948
Summary
RunFailureWritebackDispositionbefore any terminal needs-attention writeback.issue_label_add(decodex:needs-attention)now records intent only; Decodex applies the label only after a paired validatedmanual_attentioncomment.manual_attentioncomments that use runtime-owned retry/repair classes.review_repair, and unknown check states to wait/readback, so pre-review CI readback cannot apply passive manual attention ordecodex:needs-attentionby itself.Root Cause
The original status bug mixed historical terminal
needs_attentionledger rows with current operator-facing attention. Active-label and retained-worktree echoes could keep an old terminal attention row counted even after a non-attention post-review lane owned the current action.Runtime failures were also classified in several places. Startup transport disconnects, account capacity, zero-evidence startup failures, repo-gate repair loops, stalled runs, and phase-goal terminal-path misses could be retryable in one path but still become terminal attention in another. The unified disposition now decides once whether a failure is retryable, structured retryable recovery, or terminal attention.
The explicit tracker-tool path had another gap: prompts told agents to add
decodex:needs-attentiondirectly, and the label tool could mutate Linear before Decodex validated the explanatorymanual_attentionrecord. The label call is now only run-local intent; validated comment writeback owns the real label mutation.A retained-review edge still treated request-pending CI red or unknown check readback as passive manual attention before external review was requested. Since
decodex:needs-attentionblocks later automatic selection, one transient or repairable PR-check readback could freeze an otherwise owned post-review lane. Red checks now become retained repair; unknown check states wait for a later status tick.Verification
cargo make fmtcargo make lint-fixcargo test -p decodex reconcile_post_review_orchestration_repairs_unhandled_ci_red_before_requesting_external_review -- --nocapturecargo test -p decodex classify_post_review_lane_request_pending_repairs_unhandled_ci_red -- --nocapturecargo test -p decodex classify_post_review_lane_request_pending_waits_for_unknown_check_state -- --nocapturecargo test -p decodex reconcile_post_review_orchestration -- --nocapturecargo test -p decodex classify_post_review_lane -- --nocapturecargo test -p decodex tracker_tool_bridge -- --nocapturecargo test -p decodex failure_writeback_disposition -- --nocapturegit diff --check origin/main...HEADexternal_review_request_ci_red_manual_attentionremains only as historical ledger mappingcargo make checkon65cc8345939205fb9e7167532e5da4112b3a1a95: fmt-check, clippy, radar validate, site build/check, vstyle, nextest1154 passed, 1 skipped