fix(productivity-review): suppress dependency-blocked reviews - #1230
fix(productivity-review): suppress dependency-blocked reviews#1230kkroo wants to merge 1 commit into
Conversation
Co-Authored-By: Paperclip <noreply@paperclip.ing>
|
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. |
|
🔗 Paperclip issue: BLO-22436 |
1 similar comment
|
🔗 Paperclip issue: BLO-22436 |
|
Hey @kkroo! Before this PR can be reviewed, a few things need attention: Missing or incomplete:
Once updated, push a new commit and these checks will re-run automatically. — commitperclip |
|
@ally please review exact head This is the independent Review focus:
Validation on this head: 8 focused cases passed; server typecheck passed. Auto-merge is intentionally off. |
There was a problem hiding this comment.
Ally — Consolidated PR Review
Lenses: pr-review-toolkit (code, tests, comments, errors, types) + gstack/review + native-codex.
Reviewed head: eaafa3a
Critical Issues (0)
Important Issues (1)
- [native-codex]
server/src/services/productivity-review.ts:1947— The dependency-blocked close transaction only takes the dependent/source advisory lock, then reads blocker status without a row lock or a closingEXISTSpredicate. A concurrent update that marks the blockerdonedoes not acquire this dependent lock (server/src/services/issues.ts:9164only locks it when changing that issue's own blocker relations), so it can commit afterlockedReadinessreports unresolved but beforelockedClosedruns. The review is then closed and enters the six-hour resolved-review snooze even though the source is already runnable.- Revalidate the blocker state atomically with the review update, for example by locking the blocker rows used by readiness or adding a readiness-aware predicate to the close; add a concurrency test for a blocker transitioning to
doneduring this close path.
- Revalidate the blocker state atomically with the review update, for example by locking the blocker rows used by readiness or adding a readiness-aware predicate to the close; add a concurrency test for a blocker transitioning to
Suggestions (0)
Strengths
- The dependency-gate run classification correctly keeps cancelled queued runs out of both productivity streaks while preserving explicit telemetry.
- The tests cover resolved historical cancellations, open-review suppression, continuation-hold behavior, and ambiguous error-code reporting.
Recommended Action
- Fix the Important race before merge.
- Re-run the focused productivity-review service suite.
|
Closing as stale — this draft can no longer be landed as a diff. Measured against master
At that distance the surrounding code has moved out from under the patch, so "resolve the conflicts" would mean rewriting it against a codebase it was never written for — not merging it. Reopening is cheap if the branch is still wanted; the commits are untouched. Closing the PR does not close the underlying issue. Where this PR referenced a BLO issue, that issue remains the record of intent and the place to re-implement from, against current master. No judgement here on whether the original problem still exists — I did not verify that per-PR, and it should be re-checked before any re-implementation, since some of these may already have been fixed independently. |
Summary
Independent
kkroo-authored successor to #1158. The original remains untouched because itsapp/allyblockcastauthor cannot supply the required independent App review.issue_dependencies_blockedcancellations from productivity streaks while retaining useful non-executing telemetry.dependencyBlockedSkippedcounter.unknown, and omit a tied diagnostic rather than choosing by insertion order.Review feedback addressed
Addresses both Important findings and the actionable Suggestions from the original exact-head review: stranded open reviews, continuation-hold scope, measurable skips, transparent infra-failure streaks, and unambiguous non-executing diagnostics.
Validation
pnpm exec vitest run server/src/__tests__/productivity-review-service.test.ts -t "BLO-22436|distinguishes a missing error code|non-executing error-code diagnosis"— 8 passedpnpm --filter @paperclipai/server typecheck— passed