From 147d16d956e919a8ef1d71adc612b56f55d26513 Mon Sep 17 00:00:00 2001 From: "openai-code-agent[bot]" <242516109+Codex@users.noreply.github.com> Date: Wed, 9 Sep 2026 18:34:41 +0000 Subject: [PATCH 1/2] Initial plan From 0a7aa7922c850181d5e01c3e8a30b7e12b05a7a5 Mon Sep 17 00:00:00 2001 From: "openai-code-agent[bot]" <242516109+Codex@users.noreply.github.com> Date: Wed, 9 Sep 2026 18:37:41 +0000 Subject: [PATCH 2/2] fix(ci): exclude dependabot deps from drift untracked list Co-authored-by: groupthinking <154503486+groupthinking@users.noreply.github.com> --- .github/workflows/repository-reconciliation.yml | 8 +++++++- tests/unit/test_repository_reconciliation_workflow.py | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/repository-reconciliation.yml b/.github/workflows/repository-reconciliation.yml index ba9297f11..d064720ac 100644 --- a/.github/workflows/repository-reconciliation.yml +++ b/.github/workflows/repository-reconciliation.yml @@ -28,6 +28,9 @@ jobs: const now = Date.now(); const staleAfterMs = 14 * 24 * 60 * 60 * 1000; const closingPattern = /(?:close[sd]?|fix(?:e[sd])?|resolve[sd]?)\s+#(\d+)/gi; + const isDependencyAutomationPR = pr => + pr.user?.login === "dependabot[bot]" && + /^build\(deps(?:-[^)]+)?\):/i.test(pr.title || ""); const pulls = await github.paginate(github.rest.pulls.list, { owner, repo, state: "open", per_page: 100 @@ -73,7 +76,10 @@ jobs: // Restrict to validated issue references only. const validUnique = [...new Set(issues)].filter(n => validIssues.has(n)); // Drafts mirror the governance workflow's deferred-enforcement rule and are excluded. - if (validUnique.length !== 1 && !pr.draft) untracked.push(pr); + // Dependabot dependency bumps are automation-managed and excluded from this drift gate. + if (validUnique.length !== 1 && !pr.draft && !isDependencyAutomationPR(pr)) { + untracked.push(pr); + } for (const issue of validUnique) { const existing = issueToPulls.get(issue) || []; existing.push(pr.number); diff --git a/tests/unit/test_repository_reconciliation_workflow.py b/tests/unit/test_repository_reconciliation_workflow.py index d7142f691..52f5fadcc 100644 --- a/tests/unit/test_repository_reconciliation_workflow.py +++ b/tests/unit/test_repository_reconciliation_workflow.py @@ -102,3 +102,10 @@ def test_reconciliation_workflow_report_is_idempotent() -> None: # Should update the existing issue if found, otherwise create a new one. assert "issues.update" in script assert "issues.create" in script + + +def test_reconciliation_workflow_excludes_dependabot_from_untracked() -> None: + """Dependabot dependency PRs should not be counted as canonical-issue drift.""" + script = _get_script(_load_workflow()) + assert "dependabot[bot]" in script + assert "isDependencyAutomationPR" in script