Pair GitHub.Copilot.SDK with MAF instead of freezing it - #141
Merged
Conversation
#136 ignored GitHub.Copilot.SDK outright, on the reasoning that it was not independently upgradable while Microsoft.Agents.AI.GitHub.Copilot sat at 1.11.0-rc1. That comment ended with a condition — "lift this together with MAF, not before: 1.19.0+ declares [1.0.5, )" — and #137 met it about an hour later, moving MAF to 1.20.0 and the SDK to 1.0.5 in one PR, green on both .NET jobs across net8.0, net9.0 and net10.0. Leaving the ignore in place would now freeze the SDK at 1.0.5 indefinitely, including for security releases, behind a comment telling the next reader to remove it because a condition that is already true. So the ignore goes, and the constraint is expressed where it actually belongs: GitHub.Copilot.SDK joins both Microsoft groups. It is not a Microsoft.* package, so without that it is proposed alone — and alone is the shape that breaks, since SquadAgent.cs reaches CopilotClient through MAF's re-export and the two must compile as a pair. This is a nudge rather than a guarantee: grouping bundles whatever updates exist in a run, so a solo SDK bump can still appear. That is an acceptable residual risk because the failure mode is loud rather than silent — #124 turned both .NET jobs red on CS0012, which is exactly what a review gate is for. Trading a permanent freeze for a well-caught failure is the better side of that deal.
Contributor
🛫 PR Readiness Check
PR Scope: 🔧 Infrastructure
|
| Status | Check | Details |
|---|---|---|
| ✅ | Single commit | 1 commit — clean history |
| ✅ | Not in draft | Ready for review |
| ✅ | Branch up to date | Up to date with dev |
| ❌ | Copilot review | No Copilot review yet — it may still be processing |
| ✅ | Changeset present | No source files changed — changeset not required |
| ✅ | Scope clean | No .squad/ or docs/proposals/ files |
| ✅ | No merge conflicts | No merge conflicts |
| ✅ | Copilot threads resolved | No Copilot review threads |
| ✅ | CI passing | All checks passing |
Files Changed (1 file, +11 −15)
| File | +/− |
|---|---|
.github/dependabot.yml |
+11 −15 |
Total: +11 −15
This check runs automatically on every push. Fix any ❌ items and push again.
See CONTRIBUTING.md and PR Requirements for details.
Contributor
🟢 Impact Analysis — PR #141Risk tier: 🟢 LOW 📊 Summary
🎯 Risk Factors
📦 Modules Affectedci-workflows (1 file)
This report is generated automatically for every PR. See #733 for details. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Corrects something I got wrong in #136, roughly an hour after merging it.
What happened
#136 ignored
GitHub.Copilot.SDKoutright, reasoning that it was not independently upgradable whileMicrosoft.Agents.AI.GitHub.Copilotsat at1.11.0-rc1. The comment ended with an explicit lift condition:#137 met that condition an hour later — Dependabot proposed MAF
1.11.0-rc1 → 1.20.0and the SDK1.0.3 → 1.0.5in a single PR, green on.NET ubuntu-latestand.NET windows-latestacross net8.0/net9.0/net10.0. That is precisely the coordinated upgrade #124 could not do alone.So the ignore is now actively wrong: it would freeze the SDK at 1.0.5 indefinitely — security releases included — behind a comment instructing the next reader to remove it because of a condition that is already true. That is a trap, and I put it there.
What this does
GitHub.Copilot.SDKignore.GitHub.Copilot.SDKto both Microsoft groups on the/src/Squad.Agents.AIentry.The constraint is real, but it is a pairing constraint, not a freeze. The SDK is not a
Microsoft.*package, so without an explicit pattern it gets proposed on its own — and on its own is the shape that breaks, sinceSquadAgent.csreachesCopilotClientthrough MAF's re-export and the two must compile together.Not added to the
/test/Squad.Agents.AI.Testsentry — that project does not reference the SDK.The honest caveat
Grouping is a nudge, not a guarantee. Dependabot groups whatever updates exist in a given run, so if only the SDK has one, a solo bump can still appear and can still break the build.
I think that is the right trade anyway, because the failure is loud: #124 turned both .NET jobs red on
CS0012and never came close to merging. A permanent freeze buys protection against a failure that CI already catches reliably, at the cost of never taking a security fix. Given the weekly review now reads those jobs as required evidence for these paths, the loud failure is the better half of the deal.