Skip to content

fix(ci): deliver the desktop tidy to Dependabot branches - #6976

Merged
devantler merged 2 commits into
mainfrom
claude/desktop-tidy-dependabot-6974
Sep 8, 2026
Merged

fix(ci): deliver the desktop tidy to Dependabot branches#6976
devantler merged 2 commits into
mainfrom
claude/desktop-tidy-dependabot-6974

Conversation

@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Agentic Engineer

Why

Dependency bumps keep stalling. Three are stuck right now (#6971, #6972, #6973), all failing the same four checks for the same reason, and the queue has a cap on how many can be open at once — so stuck ones throttle dependency intake generally.

CI already knows how to fix this and was computing the fix on every one of them, then throwing it away and reporting success.

What

The desktop app is a second Go module that tracks the main one, so a dependency bump has to update it too. CI works that out automatically and is supposed to commit it back to the bump's branch. Since #6851 it stopped doing so on Dependabot's branches — correctly for generated files like schemas and docs, which are tidied up later after the bump merges, and which cost Dependabot its ability to keep a branch up to date if we push them.

The desktop update is not that kind of change: without it the bump's own checks fail, so it can never merge, and "we'll fix it after it merges" never arrives.

Now Dependabot's branch receives the desktop update and nothing else. When the desktop module is already up to date the branch is not touched at all, so #6851's benefit is kept in every case it was actually about.

Fixes #6974

Merge-order note

The three stalled bumps need a rerun (or a rebase) after this lands to pick up the repaired job. They are not fixed by this PR merging on its own.

desktop/ is a separate Go module that vendors the root via `replace => ../`,
so a root dependency bump leaves desktop/go.{mod,sum} stale. ci.yaml's
verify-desktop-tidy job computes the fix and uploads it as desktop-tidy.patch,
and desktop.yaml deliberately skips its own hard `go mod tidy -diff` gate on
same-repo PRs on the stated grounds that this self-heal covers them.

Since the PR-branch push started excluding Dependabot, it did not. On a bump the
patch was computed, uploaded and applied — then never committed, while the job
reported success. The bump's own required checks failed on the stale module, so
it could never merge, and the protected-branch path that repairs generated-file
drift only runs after a merge.

That exclusion is right for generated files: schemas and docs are cosmetic drift
the post-merge sync PR fixes, and pushing them costs Dependabot its rebase
ability for the rest of the PR's life. The desktop tidy is a different kind of
patch — a build-blocking prerequisite — so deferring it does not delay a repair,
it prevents one.

Move the exclusion from the commit step into the apply step and scope it to
non-desktop patches. A Dependabot branch now receives the desktop tidy and
nothing else; when desktop is already tidy that patch is empty, nothing is
staged, and the branch is never touched — so Dependabot keeps its rebase ability
in exactly the cases the exclusion was about.

Fixes #6974
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

MegaLinter analysis: Success

✅ Linters with no issues

actionlint, bash-exec, git_diff, hadolint, jscpd, jsonlint, lychee, markdown-table-formatter, markdownlint, prettier, prettier, shellcheck, shfmt, stylelint, syft, trivy-sbom, trufflehog, v8r, v8r, yamllint

Notices

⚠️ Your configuration references items that have been removed from MegaLinter and are ignored: REPOSITORY_GITLEAKS. See Removed linters to find their replacements.

See detailed reports in MegaLinter artifacts

MegaLinter is provided by OX Security
Show us your support by starring ⭐ the repository

golangci-lint's varnamelen flags 'ok' where the scope between declaration
and last use spans several assertions. Name each result for what it
asserts instead of reusing a two-letter identifier across the block.
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

Requesting a current-head review. CI has fully settled at this head: 72 successful entries and 5 skipped, zero failing — including the Docker system-test matrix that was still in progress when this PR was last handed off. No review has been requested on this PR at any head, so this is the first request rather than a re-request.

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

@devantler I will perform a full review of the current PR head.

✅ Action performed

Full review finished.

@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 747649fa-8ea8-456f-9fb7-dc8a0f51e1c4

📥 Commits

Reviewing files that changed from the base of the PR and between 5ed8b50 and 8465785.

📒 Files selected for processing (2)
  • .github/workflows/ci.yaml
  • internal/ciharness/ci_workflow_test.go

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.

📜 Recent review details
🧰 Additional context used
📓 Path-based instructions (4)
Use Go 1.26.1 or newer, matching the version declared in `go.mod`.

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • internal/ciharness/ci_workflow_test.go
Generated files must not be hand-edited; run `make generate` as the canonical regeneration command.

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • internal/ciharness/ci_workflow_test.go
Validate workflow changes with `mega-linter-runner -f go`; MegaLinter runs `actionlint` for GitHub Actions workflows.

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • .github/workflows/ci.yaml
Add regression tests for confident bug fixes and run flaky-test candidates repeatedly with `go test -run -count=10 ./...`.

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • internal/ciharness/ci_workflow_test.go
🔇 Additional comments (2)
.github/workflows/ci.yaml (1)

750-765: LGTM!

Also applies to: 771-774, 813-818

internal/ciharness/ci_workflow_test.go (1)

320-343: LGTM!

Also applies to: 368-386, 420-463, 465-516


📝 Walkthrough

Walkthrough

The CI workflow now limits Dependabot pull requests to desktop-tidy.patch during patch application. The generated-change commit step now runs for all pull requests and commits only applied changes. Workflow tests update the auto-commit condition, add step inspection support, and verify both patch restriction and desktop-tidy artifact delivery.

Priority: ➖ Normal

Severity of issue fixed: Medium

Merge Risk: ⚪ Minimal · up to 84657

Dependabot dependency branches now receive required desktop module tidy updates while generated patches remain excluded, preventing stale desktop dependencies from blocking checks. The change is ready to merge.


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
Linked Issues check ❌ Error The PR addresses Dependabot branch handling for the desktop tidy, but it does not satisfy all linked issue requirements [#6974]. The changes do not establish the Dependabot propagation discriminator, … Add or document a deterministic Dependabot configuration or equivalent mechanism that updates both Go modules together. Update TestClaircoreLinkedPackagesStayInert to report go list stderr. Re-run or otherwise update #6971, #6972, and #6973
✅ Passed checks (4 passed)
Check name Status Explanation
Out of Scope Changes check ✅ Passed The workflow and test changes are related to the linked issue. They modify Dependabot branch patch application and verify desktop-tidy delivery. No unrelated changes are evident.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 1 files. (1 skipped: 1 …
Title check ✅ Passed The title clearly and concisely describes the primary CI change: delivering the desktop tidy to Dependabot branches.
Description check ✅ Passed The description is detailed and directly explains the Dependabot branch, desktop module, and CI changes in the pull request.
Full details: Linked Issues check

Explanation

The PR addresses Dependabot branch handling for the desktop tidy, but it does not satisfy all linked issue requirements [#6974]. The changes do not establish the Dependabot propagation discriminator, guarantee both modules move together through Dependabot configuration, improve TestClaircoreLinkedPackagesStayInert diagnostics, or directly restore the three stalled PRs.

Resolution

Add or document a deterministic Dependabot configuration or equivalent mechanism that updates both Go modules together. Update TestClaircoreLinkedPackagesStayInert to report go list stderr. Re-run or otherwise update #6971, #6972, and #6973 so their checks reach green, or provide explicit evidence that the merged fix will do so when they are rerun.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

Readiness record at 8465785b2168a1ce566fca8ab6d293b71f2d5f03.

1 — Programmatically tested. 72 successful entries, 5 skipped, 0 failing. I checked that the consuming job actually ran rather than trusting the aggregate: ✅ Validate Go Project reads skipped, which looks like the Go suite never executed. It did — the org-required validate-go-project.yaml publishes its checks without that prefix, and at this head 🧪 Test, 📊 Code Coverage, 🧹 Lint - golangci-lint, 🏗️ Build, 📦 Tidy and CI - Required Checks are all green. internal/ciharness/ci_workflow_test.go ran inside 🧪 Test. (This is the measurement error the job's own comment documents, closed twice before as #6563/#6564 — worth re-confirming rather than inheriting.)

2 — Reviewed. CodeRabbit full review completed at this head (21:07:24Z, after the 21:01:31Z request; head status Review completed). Its summary names this exact SHA and carries only a 🔇 Additional comments (2) section — the informational one — with zero inline comments and zero review threads. No rate-limit or service marker on the artifact. green_review=cr@8465785b21.

3 — Tried and evaluated as a user. The runtime surface here is CI itself, so I traced the enacting path end to end rather than inferring from the diff:

  • DESKTOP_TIDY_ONLY evaluates true only for a pull_request whose author is exactly dependabot[bot]; every other PR keeps today's behaviour, and the protected-branch path is untouched.
  • The filename the guard compares is real, not assumed: verify-desktop-tidy writes /tmp/desktop-tidy.patch, uploads it as artifact desktop-tidy-patch, and the download uses pattern: "*-patch" with merge-multiple: true into /tmp/patches — so the basename at the guard is exactly desktop-tidy.patch, and generate.patch is the one correctly skipped. Had this name not matched, the guard would have skipped everything on a Dependabot branch and looked like it worked.
  • The "branch is not touched" claim holds: an already-tidy desktop module yields an empty patch, [ -s "$patch" ] skips it, no additions or deletions are collected, and the commit step takes its if [ ! -s "$additions" ] && [ ! -s "$deletions" ] branch and exit 0s without a push. So ci: leave Dependabot branches to Dependabot so bumps can rebase themselves #6851's benefit is preserved in exactly the cases it was about.

What I have not yet observed is a real Dependabot run through the repaired job — that is only observable after this merges. #6971/#6972/#6973 are the live cases; I will rerun one immediately after merge and report what it actually did, rather than claim that observation now.

Promoting on 1 and 2 plus the traced path, with the post-merge observation stated as outstanding.

@devantler
devantler marked this pull request as ready for review September 8, 2026 21:17
@devantler
devantler merged commit 55c1720 into main Sep 8, 2026
77 checks passed
@devantler
devantler deleted the claude/desktop-tidy-dependabot-6974 branch September 8, 2026 21:17
@github-project-automation github-project-automation Bot moved this from 🫴 Ready to ✅ Done in 🌊 Project Board Sep 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

fix(deps): root Go bumps that skip desktop/go.mod stall the dependency lane

1 participant