Skip to content

Pair GitHub.Copilot.SDK with MAF instead of freezing it - #141

Merged
DeDuva merged 1 commit into
devfrom
fix/copilot-sdk-pair-with-maf
Sep 1, 2026
Merged

Pair GitHub.Copilot.SDK with MAF instead of freezing it#141
DeDuva merged 1 commit into
devfrom
fix/copilot-sdk-pair-with-maf

Conversation

@DeDuva

@DeDuva DeDuva commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Corrects something I got wrong in #136, roughly an hour after merging it.

What happened

#136 ignored GitHub.Copilot.SDK outright, reasoning that it was not independently upgradable while Microsoft.Agents.AI.GitHub.Copilot sat at 1.11.0-rc1. The comment ended with an explicit lift condition:

Lift this together with MAF, not before: 1.19.0+ declares [1.0.5, ) and is built against the newer SDK line.

#137 met that condition an hour later — Dependabot proposed MAF 1.11.0-rc1 → 1.20.0 and the SDK 1.0.3 → 1.0.5 in a single PR, green on .NET ubuntu-latest and .NET windows-latest across 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

  • Removes the GitHub.Copilot.SDK ignore.
  • Adds GitHub.Copilot.SDK to both Microsoft groups on the /src/Squad.Agents.AI entry.

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, since SquadAgent.cs reaches CopilotClient through MAF's re-export and the two must compile together.

Not added to the /test/Squad.Agents.AI.Tests entry — 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 CS0012 and 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.

#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.
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

🛫 PR Readiness Check

ℹ️ This comment updates on each push. Last checked: commit 1b4d722

PR Scope: 🔧 Infrastructure

⚠️ 1 item(s) to address before review

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.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

🟢 Impact Analysis — PR #141

Risk tier: 🟢 LOW

📊 Summary

Metric Count
Files changed 1
Files added 0
Files modified 1
Files deleted 0
Modules touched 1

🎯 Risk Factors

  • 1 files changed (≤5 → LOW)
  • 1 module(s) touched (≤1 → LOW)

📦 Modules Affected

ci-workflows (1 file)
  • .github/dependabot.yml

This report is generated automatically for every PR. See #733 for details.

@DeDuva
DeDuva merged commit 544d208 into dev Sep 1, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant