github Azure/azure-sdk-for-net Azure.AI.AgentServer.Responses_1.0.0-beta.9

latest releases: Azure.Provisioning.Storage_1.2.0, Azure.ResourceManager.KeyVault_1.5.0
pre-release4 hours ago

1.0.0-beta.9 (2026-10-15)

Features Added

  • Hosted durable multi-turn task IDs are now scoped by FOUNDRY_AGENT_SESSION_GUID, preventing
    recreated sessions from reusing name-derived IDs that refer to tombstoned tasks from an earlier
    incarnation and can cause a service precondition failure (HTTP 412).
    Public ResponseContext.ConversationChainId values and one-shot task IDs are unchanged, and
    pending, in-progress, or suspended pre-rollout chains continue under their legacy task IDs.
  • Added AddResponsesServer(IHostApplicationBuilder host, string sectionName) and
    AddResponsesServer(IHostApplicationBuilder host, string sectionName, Action<ResponsesServerSettings>),
    which bind a new ResponsesServerSettings : ClientSettings (the Foundry credential, Endpoint,
    and option flags) from a single configuration section. Because response storage and
    resilient-task storage bind the same identity and endpoint from one section, the two cannot
    diverge. This is the required entry point in hosted Foundry environments. In a hosted
    container, values the section does not provide default to the platform: Endpoint to
    FOUNDRY_PROJECT_ENDPOINT, and an absent Credential section to a DefaultAzureCredential
    limited by default to the production credentials (environment, workload identity and managed
    identity; AZURE_TOKEN_CREDENTIALS overrides the selection), so
    ResponsesServer.Run<THandler>() needs no configuration. A Credential section that does not
    resolve still fails startup.
  • Added ResponseContext.ClientCancellation (a CancellationToken) alongside
    ResponseContext.Shutdown, so an explicit client cancel is composable as a token.

Breaking Changes

  • Stored responses use Core durable tasks only when the resilient-task runtime is enabled.
    ResilientBackground=true enables it automatically; otherwise store=true requests execute
    in-process and are not recovered after an ungraceful crash.
  • The local file-backed response provider now uses a new responses/partitions-v1 namespace.
    Previously persisted responses and their history are not visible after upgrade, including
    for anonymous requests and crash recovery. Legacy files remain unchanged; there is no
    automatic migration or legacy read fallback. Restoring old data requires an explicit,
    operator-controlled migration with independently verified ownership. Newly persisted
    partitioned data continues to survive restarts.
  • Hosted registration now uses the ClientSettings pattern. The
    AddResponsesServer(IServiceCollection, Action<ResponsesServerOptions>) overload remains for
    local / non-hosted scenarios and now throws in a hosted Foundry environment (use the
    IHostApplicationBuilder overload there). The internal DEFAULT_FETCH_HISTORY_ITEM_COUNT
    environment-variable read and the ambient TokenCredential registration were removed
    (FOUNDRY_PROJECT_ENDPOINT is now only the fallback for an unconfigured
    ResponsesServer:Endpoint); the HTTPS-in-non-development check now honors
    IHostEnvironment.IsDevelopment() rather than reading ASPNETCORE_ENVIRONMENT /
    DOTNET_ENVIRONMENT directly.
  • ResponseEventStream.Checkpoint() was renamed to the virtual CreateCheckpointEvent(), and
    ResponseEventStream.InternalMetadata was renamed to PersistedMetadata.
  • ResponseContext.ClientCancelled was renamed to IsClientCancelled. IsShutdownRequested and
    IsClientCancelled are now get-only virtual passthroughs over the Shutdown /
    ClientCancellation tokens; the settable IsShutdownRequested was removed.

Bugs Fixed

  • Legacy-chain migration now atomically requires the selected legacy task to still exist. If
    deletion wins after the compatibility probe, Responses starts the session-instance-scoped task
    instead of recreating the tombstoned legacy ID, including when the legacy chain is active and
    accepting steering input.
  • Scope local in-memory and file-backed response envelopes, items, history, and conversation
    indexes to PlatformContext.UserIdKey. Anonymous requests use a separate local partition.
  • Require an existing response in the caller's partition for updates, and retain deletion
    semantics without allowing updates to recreate deleted responses.
  • Changed the default history fetch limit from 100 to -1 (unlimited), avoiding
    automatic truncation of conversation history. Positive limits remain supported.
  • Hosted ResponsesServer.Run and AgentHostBuilder.AddResponses now bind through the
    ResponsesServer settings section instead of routing through the local-only service-collection
    registration path.
  • Hosted ResponsesServer.Run<THandler>() and AgentHostBuilder.AddResponses no longer fail at
    startup in a hosted Foundry container that provides only the platform environment
    (FOUNDRY_PROJECT_ENDPOINT and a managed identity). Unconfigured values fall back to the
    platform, and the fallback is logged at startup. A configured but unresolvable Credential
    section still fails startup.
  • The Foundry response-storage HTTP pipeline is now private to its provider, preventing unrelated
    ambient pipeline registrations from replacing the configured credential-bound pipeline.
  • Task-bound SSE relays now observe durable task completion failures, emit the existing SSE error
    event instead of hanging, and leave the underlying stream open for recovery.

Other Changes

  • Registered the Responses event-stream backing as a protocol default so an explicit
    application selection takes precedence regardless of registration order.
  • Hosted settings now reject malformed endpoint, count, and boolean values instead of silently
    falling back to defaults, and reject unsupported authentication-provider types with the actual
    configured type in the error.
  • Hosted response storage and resilient-task storage now receive the same resolved project endpoint
    as well as the same credential.
  • Explicit client-cancel and shutdown signals are replayed when a task context attaches after the
    signal, closing the multi-turn dispatch race.
  • Resilient streaming publishes and subscribes through Core's task-owned stream path; observer
    errors propagate to the task owner while normal completion leaves transport closure to Core.

Don't miss a new azure-sdk-for-net release

NewReleases is sending notifications on new releases.