From af0cf0d7c8f2bf65afa31af29a84f042c0141b0c Mon Sep 17 00:00:00 2001 From: Victor Casado Date: Thu, 11 Jun 2026 15:06:34 -0400 Subject: [PATCH] fix: guard upsertCoordinationWorkItem behind dryRun check in applySync The store write was unconditional, persisting work items even during dry runs. Move it inside the !dryRun block alongside editIssue and initialize snapshot to null beforehand so results.push still receives snapshot: null for dry runs. Co-Authored-By: Claude Sonnet 4.6 --- scripts/lib/github-coordination/actions.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/lib/github-coordination/actions.js b/scripts/lib/github-coordination/actions.js index 4548c4ad..06cd0d38 100644 --- a/scripts/lib/github-coordination/actions.js +++ b/scripts/lib/github-coordination/actions.js @@ -104,11 +104,13 @@ function applySync(repo, options = {}, context = {}) { const body = mergeIssueBody(issue, nextState, policy); const labelPlan = syncIssueLabels(repo, issue, nextState, policy, options); - if (!options.dryRun && normalizeBodyForComparison(body) !== normalizeBodyForComparison(issue.body)) { - editIssue(repo, issue.number, { body }, options); + let snapshot = null; + if (!options.dryRun) { + if (normalizeBodyForComparison(body) !== normalizeBodyForComparison(issue.body)) { + editIssue(repo, issue.number, { body }, options); + } + snapshot = upsertCoordinationWorkItem(store, repo, trackedIssue, nextState, 'sync', { ...context, policy }); } - - const snapshot = upsertCoordinationWorkItem(store, repo, trackedIssue, nextState, 'sync', { ...context, policy }); results.push({ ...summarizeStateForOutput(repo, trackedIssue, nextState, 'sync', policy), syncedAt,