patchrelay 0.80.0 → 0.80.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "service": "patchrelay",
3
- "version": "0.80.0",
4
- "commit": "61fe1041ab2b",
5
- "builtAt": "2026-06-10T21:38:37.466Z"
3
+ "version": "0.80.1",
4
+ "commit": "d2c60661d5fa",
5
+ "builtAt": "2026-06-10T22:15:08.651Z"
6
6
  }
@@ -775,7 +775,7 @@ export class IdleIssueReconciler {
775
775
  return;
776
776
  }
777
777
  if (isReviewDecisionApproved(pr.reviewDecision)) {
778
- this.db.issueSessions.commitIssueState({
778
+ const reviewCommit = this.db.issueSessions.commitIssueState({
779
779
  writer: WRITER,
780
780
  update: {
781
781
  projectId: issue.projectId,
@@ -783,6 +783,14 @@ export class IdleIssueReconciler {
783
783
  prReviewState: "approved",
784
784
  },
785
785
  });
786
+ // Continue with the refreshed row so the version-checked advance
787
+ // below doesn't see our own review-state write as a conflict (same
788
+ // pattern as the facts commit above). Without this the advance was
789
+ // conflict-skipped on EVERY pass while the poll succeeded, so a lost
790
+ // review_approved webhook never converged to awaiting_queue.
791
+ if (reviewCommit.outcome === "applied") {
792
+ issue = reviewCommit.issue;
793
+ }
786
794
  const approvedState = deriveFactoryStateFromPrFacts(observed, currentFacts(issue));
787
795
  if (approvedState === "awaiting_queue") {
788
796
  // Provenance survives unless the polled evidence is newer than the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "patchrelay",
3
- "version": "0.80.0",
3
+ "version": "0.80.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "repository": {