Drift sync with upstream agent-framework through 2026-08-31 - #8
Open
jamiewest wants to merge 1 commit into
Open
Conversation
Reviews the seven dotnet/src commits since the 2026-08-25 pin and advances
upstream-sync to 0822dd74 (2026-08-31).
Ported:
- Background-agents wait timeout (#7911): BackgroundAgentsProviderOptions
gains waitTimeout (default five minutes) plus the defaultWaitTimeout /
maximumWaitTimeout bounds, validated in the BackgroundAgentsProvider
constructor. BackgroundAgents_WaitForFirstCompletion now races the
first-completion future against that timeout and, when it elapses, returns
a message saying the tasks are still running and the tool may be called
again — the tasks themselves are left untouched. The timeout stays
provider-controlled: the tool schema still exposes only taskIds. Mirrors
upstream's six new unit tests.
Skipped, with the decisions recorded in PORTING.md:
- Shared workflow sample runner (#7913): the ChatMessage input overload
landed in dotnet/src/Shared/Workflows/Execution/WorkflowRunner.cs, an
internal Console/stdin sample harness in namespace Shared.Workflows that
targets the out-of-scope Declarative project. dotnet/src/Shared/Workflows
is not part of any ported namespace; future runs classify it out of scope.
Out of scope, no ledger entry needed:
- Public API analyzers (#7935): PublicAPI.{Shipped,Unshipped}.txt baselines
only, no .cs source change.
- Cosmos DB emulator startup (#3932), ADR renumbering in the Hyperlight
README (#6046), Foundry AgentHost port binding (#7932), and DevUI
aggregator analyzer annotations (#7864) all land in projects PORTING.md
lists as not ported.
Extensions edge (drift.md Step I2.5):
- Upstream's Microsoft.Extensions.AI versions are unchanged between the pin
and main (10.9.0 / 10.6.0 for the OpenAI package), so no coordination with
the extensions repo is needed for this window.
- Cleared the published-version lag: extensions ^0.6.0 -> ^0.7.1 in both
packages and extensions_flutter ^0.5.0 -> ^0.5.2 in agents_flutter. Both
packages analyze and test clean against the new resolution with no call
sites needing adaptation.
- No port in this window was blocked on a missing package:extensions API.
Version bumps for the automated release: agents 2.0.0 -> 2.1.0 (new public
API on BackgroundAgentsProviderOptions) and agents_flutter 0.8.2 -> 0.8.3
(dependency constraints only), each with a CHANGELOG entry.
Verified with dart analyze && dart test in packages/agents (1196 tests) and
flutter analyze && flutter test in packages/agents_flutter (835 tests).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Smrpnb1FFWC2mxNpZS9R5p
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.
Weekly
/drift sync. Reviews the seven upstreamdotnet/srccommits since the92aec78c(2026-08-25) pin and advancesupstream-syncto0822dd74(2026-08-31).Upstream commits reviewed
ChatMessageinput overload on the shared workflow sample runner.txtonly, no.cs)Totals: 1 ported, 1 skip recorded, 5 out of scope. Suppressed by the PORTING.md ledger: 0 — nothing in this window re-surfaced an existing divergence.
Ported — #7911
BackgroundAgentsProviderOptionsgainswaitTimeout(default five minutes) plus thedefaultWaitTimeout/maximumWaitTimeoutbounds, validated in theBackgroundAgentsProviderconstructor.BackgroundAgents_WaitForFirstCompletionnow races the first-completion future against that timeout; when it elapses the tool returns a message saying the tasks are still running and the tool may be called again, leaving the background work untouched. The timeout stays provider-controlled — the tool's schema still exposes onlytaskIds.Dart's
Future.timeoutis the exact analogue of upstream'sTask.WhenAny(firstCompletion, Task.Delay(...))+timeoutCts.Cancel(): it never cancels the future it wraps, so the tasks keep running. Abandoning the losingFuture.anyis safe here becauseBackgroundAgentRuntimeTask.completionis documented never to complete with an error.Deviations, recorded in PORTING.md:
ArgumentOutOfRangeException→ArgumentError.value(Dart has no range-specific subtype).maximumWaitTimeoutkeeps upstream'suint.MaxValue - 1ms value even though that cap is a .NETTask.Delayconstraint, so the validated option range matches upstream (and webTimerdelays overflow past 2³¹ ms anyway).TotalSeconds:gthrough a small_formatSecondshelper.Upstream's six new unit tests are mirrored in
background_agents_provider_test.dart.Skipped — #7913
The
ChatMessageinput overload landed indotnet/src/Shared/Workflows/Execution/WorkflowRunner.cs: aninternal sealedConsole/stdin sample harness innamespace Shared.Workflowsthat targets the out-of-scopeWorkflows.Declarativeproject.dotnet/src/Shared/Workflowsis not part of any ported namespace —workflows/execution/maps toMicrosoft.Agents.AI.Workflows, not toShared/. PORTING.md now records that future runs classifydotnet/src/Shared/Workflows/**as out of scope.Extensions edge (drift.md Step I2.5)
Microsoft.Extensions.AI*is 10.9.0 (10.6.0 for.OpenAI) at both the pin andmain, so no coordination with the extensions repo is needed for this window.extensions^0.6.0→^0.7.1in both packages, andextensions_flutter^0.5.0→^0.5.2inagents_flutter. Both packages analyze and test clean against the new resolution; no call sites needed adaptation.package:extensionsdoes not expose.Releases
Since this changes code under
packages/agents/lib, and both packages'extensionsconstraints moved:agents2.0.0 → 2.1.0 (minor: new public API onBackgroundAgentsProviderOptions)agents_flutter0.8.2 → 0.8.3 (patch: dependency constraints only)Each has a matching CHANGELOG entry.
agents_flutter'sagents: ^2.0.0constraint still covers 2.1.0 and was left alone.Verification
packages/agents:dart analyzeclean (2 pre-existinguse_super_parametersinfos insummarization_compaction_strategy.dartandchat_protocol_executor.dart, both untouched here),dart test— 1196 passed.packages/agents_flutter:flutter analyze— no issues,flutter test— 835 passed.Ripple not verified here: the sibling
agents_llamaandagents_appcheckouts are not available in this cloud environment. Both pin this repo by commit, so theextensions^0.7.1bump and the newBackgroundAgentsProviderOptionssurface should be checked on their next ref bump. No base contract changed, so subclass breaks are unlikely.Generated by Claude Code