Skip to content

Add agentic issue triage workflow#6

Merged
samvaity merged 6839 commits into
mainfrom
issue-triage-workflow
Apr 24, 2026
Merged

Add agentic issue triage workflow#6
samvaity merged 6839 commits into
mainfrom
issue-triage-workflow

Conversation

@samvaity

Copy link
Copy Markdown
Owner

Adds an agentic issue triage workflow using gh-aw, adapted from Azure/azure-sdk-for-rust.

What it does:

  • Automatically triages new issues when they are opened
  • Analyzes issue content, applies labels (type + service labels)
  • Routes to appropriate team members via CODEOWNERS patterns
  • Detects spam/bot issues
  • For questions: attempts to answer from existing docs/code before escalating
  • Posts a structured analysis comment with debugging strategies, links, and next steps

Files added:

  • .github/workflows/issue-triage.md\ — the workflow definition
  • .github/workflows/issue-triage.lock.yml\ — compiled lock file (auto-generated by \gh aw compile)

Inspired by: Azure/azure-sdk-for-rust issue-triage.md and azure-sdk-tools#14119

azure-sdk and others added 30 commits March 11, 2026 13:19
…peline more flexibility (Azure#48384)

Co-authored-by: Chidozie Ononiwu <chononiw@microsoft.com>
)

* Copy System.LinkTypes.Related links when cloning package work items for new Major.Minor versions

Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>

* Replace REST API URI with az boards work-item relation show in GetWorkItemRelatedLinkIds

Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>

* Fix

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
Co-authored-by: Chidozie Ononiwu <chononiw@microsoft.com>
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.10 to 7.5.11.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](isaacs/node-tar@v7.5.10...v7.5.11)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Migrate azure-resourcemanager-search to TypeSpec

Regenerated SDK from TypeSpec specification.

Changes:
- Regenerated all Java source from TypeSpec
- Updated module-info.java with implementation.models opens
- Removed stale generated samples
- Added revapi suppressions for TypeSpec migration breaking changes
- Updated CHANGELOG.md and tsp-location.yaml

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* update changelog

* regen on main

* delete generated samples, the manager is SearchServiceManager

* Update eng/lintingconfigs/revapi/track2/revapi.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* regen

* commit on main

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…re-ai-projects` packages (Azure#48353)

* Generating from latest spec + JDK TimeZone type

* Changelog updates

* Updated tests and PR feedback

* Generated from latest commit

* Using latest commit from topic branch

* Latest spec for azure-ai-projects

* Removed classes duplicated from Stainless package

* Removed codegen artifact

* copilot feedback

* Changed fully qualified class names to import

* Verifying JSON roundtrip

* Changelog updates

* Addressed some warnings in tests

* CI fixes
* Migrate azure-resourcemanager-trafficmanager to TypeSpec

- Regenerated SDK from TypeSpec
- Added implementation.models opens in module-info.java
- Added revapi suppressions for output-only model breaking changes
- Updated CHANGELOG.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* regn

* commit on main

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* initial draft

* fix syntax error

* Update sdk/monitor/azure-monitor-opentelemetry-autoconfigure/src/test/java/com/azure/monitor/opentelemetry/autoconfigure/implementation/builders/AbstractTelemetryBuilderTest.java

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…zure#48352)

* Generating from latest spec + JDK TimeZone type

* Changelog updates

* Updated tests and PR feedback

* Generated from latest commit

* Using latest commit from topic branch

* Latest spec for azure-ai-projects

* azure-ai-agents union types addressed

* WIP

* Simplified PR

* Rolling back things

* Final cleanup

* Final cleanup 2

* Final AI pass

* Copilot feedback and more unit tests

* README snippet fix

* Changelog updates

* Made BinaryData setters and getters packaga-private
…48362)

Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
)

* Add DirectoryFilterPattern parameter to regeneration pipeline

Add DirectoryFilterPattern parameter to archetype-typespec-emitter.yml
and New-RegenerateMatrix.ps1 to allow filtering the regeneration matrix
by package directory name pattern.

This enables azure-sdk-for-net's http-client-csharp-mgmt CI to only
regenerate Azure.ResourceManager* SDKs instead of all TypeSpec SDKs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Handle empty filter results with array wrapping and early error

Address review feedback: wrap filtered results in @() to ensure
reliable .Count, and fail fast with a clear error when no directories
match the filter pattern.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Support comma-separated filter patterns

Update DirectoryFilterPattern to split on commas and match any pattern,
so callers can filter to multiple SDK prefixes (e.g.,
'Azure.ResourceManager*,Azure.Provisioning*').

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Wei Hu <live1206@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: swathipil <swathip@microsoft.com>
* Async utils, sample and public API convenience methods

* Unit tests

* Build issues

* CHANGELOG and README updates
* [Automation] Generate SDK based on TypeSpec 0.43.0

* delete generated samples

* fix partial-update

* update commit and regen trafficmanager

* update customization class

* fix spelling

---------

Co-authored-by: Weidong Xu <weidxu@microsoft.com>
Co-authored-by: Annie Liang <anniemac@Annies-MacBook-Pro.local>
… Java-5986909 (Azure#48350)

* Configurations:  'specification/netapp/resource-manager/Microsoft.NetApp/NetApp/tspconfig.yaml', API Version: 2025-12-15-preview, SDK Release Type: beta, and CommitSHA: 'ffdc765830f1ece01d260e4b026f7e4f9389a038' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5986909 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.

* Configurations:  'specification/netapp/resource-manager/Microsoft.NetApp/NetApp/tspconfig.yaml', API Version: 2025-12-15-preview, SDK Release Type: beta, and CommitSHA: '117cc9c72862af27d56430fac305b61e00341b3d' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6007555 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.

* Configurations:  'specification/netapp/resource-manager/Microsoft.NetApp/NetApp/tspconfig.yaml', API Version: 2025-12-15-preview, SDK Release Type: beta, and CommitSHA: '117cc9c72862af27d56430fac305b61e00341b3d' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6007650 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Add Copilot CLI skill definitions for azure-ai packages

Add reusable skill files under sdk/ai/.skills/ to provide Copilot CLI
agents with domain-specific guidance for common Azure SDK for Java
workflows including TypeSpec codegen, test execution, release notes,
duplicate class verification, and secret management.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* cspell

* path

* path

* fix

* Skill polish

* Moved files to avoid using reserved word for name

* Skill update

* More word exceptions

* Polish union-type-wrappers: change BinaryData getter/setter to package-private

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>
Co-authored-by: Mike Harder <mharder@microsoft.com>
* removed enableDeterministic

* change .delete() to .deleteIfExists()

* remove Sinks.EmitFailureHandler.FAIL_FAST from CrcInputStream

- read functions had FAIL_FAST which would throw an error when  the stream had reached then end and we wanted to read from the stream again. So we removed from  both reads.
- refactor code so that the exit criteria is a tthe beginning
- refactor the emitContentInfo for dry

* prevent crashes on reattempted close on stream

- changed emitValue to tryEmitValue
- remove Sinks.EmitFailureHandler.FAIL_FAST so that multiple closes does not cause an error to be thrown

* fix telemetry so that it doesnt swallow errors

* roll back two deps because they were causing failures in the containers

- opentelemetry-runtime-telemetry-java8 from 2.24.0-alpha -> 2.15.0-alpha
- opentelemetry-logback-appender-1.0 from 2.24.0-alpha -> 2.15.0-alpha

* rollback azure-client-sdk-parent linting extensions from 1.0.0-beta.2 t0 beta.1

* revert linting extensions to beta2

* remove comments with old code

* add logging for errors

* remove catches for double close issue and okay status

* recursively delete files then delete the directory

* change to sync deletes, refactor for easier reading

* restructing share clean up so super calls only once

* incorporate copilot suggestions

* incorporate copilot suggestions

* incorporate copilot suggestions

* incorporate copilot suggestions

* fix all deletes to make sync and wrap in try-catch

* fix tests so that super.globalCleanupAsync() is only called once

* change telemetry to loggin only returns final state instead of failed retries when ultimately successful

* undo versio downgrade for linting-extensions

* Fixing spacing in error messages

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* refactor datalake delete all so that it is easier to read

* refactor runAsync in ShareScenarioBase so retry failures dont show as failures upon success

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
…zure#48426)

* Update deprecation_process.md with version_client.txt instructions

Add a step to update eng/versioning/version_client.txt when the release
version differs from the current-version during package deprecation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Indent fenced code block under list item for proper GFM rendering

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Clarify version_client.txt wording and separate as repo-level file

- Introduce repo-level section to distinguish from package-level files
- Replace ambiguous 'update it' with explicit 'set the current-version'
- Remove redundant phrasing

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update version_client.txt diff example to use more realistic versions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Align CHANGELOG example version to 1.0.1 for consistency

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [Automation] Generate SDK based on TypeSpec 0.43.1

* regen

---------

Co-authored-by: Weidong Xu <weidxu@microsoft.com>
azure-sdk and others added 28 commits April 16, 2026 11:38
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* Fix streaming APIs in Agents and Projects libraries

* add unit tests

* update HttpResponse

* remove unused logger

* remove unused import
)

* remove mapping

* api version optional/removed

---------

Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
…re#48836)

Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* update date

* format
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* regen on 2025-11

* update handwritten code
…ation - Java-6131697 (Azure#48751)

* Configurations:  'specification/authorization/resource-manager/Microsoft.Authorization/Authorization/tspconfig.yaml', API Version: 2024-07-01-preview, SDK Release Type: beta, and CommitSHA: '14ea458babe962d08b39acbb244bb81bdd3cb999' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6131697 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.

* Update CHANGELOG.md

---------

Co-authored-by: Weidong Xu <weidxu@microsoft.com>
…nUtil (Azure#48837)

* Fix NoClassDefFoundError for MetadataVersionUtil in Cosmos Spark connector

Inline version validation logic in ChangeFeedInitialOffsetWriter instead
of depending on Spark-internal MetadataVersionUtil, which has been
relocated in Databricks Runtime 17.3 LTS (Spark 4.0).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add unit tests for inlined validateVersion logic

Add ChangeFeedInitialOffsetWriterSpec with tests covering:
- Valid version strings within supported range
- Version exceeding max supported (UnsupportedLogVersion)
- Malformed versions: non-numeric, empty, missing v prefix, v0, negative, bare v

Widen companion object visibility to private[spark] for testability.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add change feed micro-batch streaming scenarios to Databricks live test notebooks

Add structured streaming scenarios using cosmos.oltp.changeFeed to both
basicScenario.scala and basicScenarioAadManagedIdentity.scala notebooks.
These scenarios exercise the ChangeFeedInitialOffsetWriter and
HDFSMetadataLog code paths that can break on certain Spark distributions
(e.g. Databricks Runtime 17.3+).

Each scenario:
- Creates a sink container
- Reads change feed from source via readStream with micro-batch
- Writes to sink container via writeStream
- Validates records were copied
- Cleans up both containers

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix change feed streaming checkpoint path in Databricks notebooks

Use file:/tmp/ instead of /tmp/ for checkpoint location to avoid DBFS
access issues on Unity Catalog-enabled Databricks clusters. Also:
- Remove unused Trigger import
- Stop query before reading sink to avoid race conditions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Simplify change feed streaming test to use memory sink

Replace cosmos.oltp sink with in-memory sink to eliminate the need for
a separate sink container. This avoids 404 errors from sink container
creation/resolution and removes checkpoint path concerns.

The test still exercises the full ChangeFeedInitialOffsetWriter and
HDFSMetadataLog code paths (readStream with cosmos.oltp.changeFeed),
which is the goal for validating the MetadataVersionUtil fix.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove change feed streaming scenarios from Databricks notebooks

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Re-add change feed streaming with shared logic in both notebooks

Both notebooks now use the same pattern: derive changeFeedCfg from the
existing cfg map (which already has the correct auth config) plus the
change feed-specific options. Write to an in-memory sink to avoid
container creation issues. This ensures both key-based and AAD/MSI
notebooks exercise identical streaming logic.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove change feed streaming from AAD/MSI notebook

The MSI notebook shares a cluster with basicScenario, and the Cosmos
client cache retains references from the first notebook's proactive
connection init. When basicScenario drops the source container during
cleanup, the MSI notebook's change feed streaming fails with 404 on
the cached (now-deleted) container. The change feed streaming test in
basicScenario already provides sufficient coverage for the
ChangeFeedInitialOffsetWriter code paths.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add diagnostic logging to MSI change feed streaming test

Add detailed logging to capture:
- Endpoint, database, container, auth config used
- Source container record count before streaming
- Streaming query ID
- Full exception details on failure

This will help diagnose why the change feed streaming fails
on the MSI notebook but succeeds on the key-based one.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove change feed streaming from MSI notebook

The MSI change feed test passes on a fresh cluster but fails when
basicScenario runs first on the same cluster without restart. The
basicScenario leaves cached Cosmos client state (proactive connection
init on the ephemeral endpoint) that causes the MSI streaming query
to resolve to the wrong endpoint, resulting in a 404. The change feed
test in basicScenario provides sufficient coverage for the
ChangeFeedInitialOffsetWriter/HDFSMetadataLog code paths.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Release azure-cosmos-spark 4.47.0

Version bumps and CHANGELOG updates for:
- azure-cosmos-spark_3-3_2-12 4.47.0
- azure-cosmos-spark_3-4_2-12 4.47.0
- azure-cosmos-spark_3-5_2-12 4.47.0
- azure-cosmos-spark_3-5_2-13 4.47.0
- azure-cosmos-spark_4-0_2-13 4.47.0

Features Added:
- Added support for change feed with startFrom point-in-time on merged partitions (PR Azure#48752)

Bugs Fixed:
- Fixed readContainerThroughput unnecessary permission requirement (PR Azure#48800)

Also updated azure-cosmos CHANGELOG to reclassify the startFrom fix as a feature.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address PR review: add clinit fix to CHANGELOGs and DBR 17.3 known issue

- Added JVM <clinit> deadlock fix (PR Azure#48689) to all 5 spark connector CHANGELOGs
- Added Known Issues section to Spark 4.0 README for Structured Streaming
  incompatibility with Databricks Runtime 17.3

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Reword DBR 17.3 known issue based on IcM 779484786

Updated with accurate details: MetadataVersionUtil$ class removal,
DBR 17.3 includes Spark 4.1 changes while reporting 4.0.0, and
recommendation to stay on previous LTS until DBR 18 LTS.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove DBR 17.3 known issue - will be fixed before release

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update spark release date to 2026-04-17

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add MetadataVersionUtil fix to Spark 4.0 CHANGELOG (PR Azure#48837)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…zure#48816)

* Added a warm up step to cache maven-help-plugin into the CFS

* temp change to test docs publish

* Moved warm up step to the install-rex-validation template

* Ran command in batch mode rather than quiet mode

* Reverted test change for template ci

* Re-applied template ci change for testing

* Reverted test change
)

* Add GitHub Action run link to APIView PR comment

Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/0a4d8e3c-c96b-4265-905c-5f8918876354

Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Ray Chen <raychen@microsoft.com>

* Apply suggestion from @raych1

* Apply suggestion from @raych1

* Pass GitHubActionRunUrl via environment variable and use IsNullOrWhiteSpace guard

Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/61d68e76-9b14-444b-b244-44d770e9a9b2

Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
Co-authored-by: Ray Chen <raychen@microsoft.com>
* Add GitHub Action run link to APIView PR comment

Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/0a4d8e3c-c96b-4265-905c-5f8918876354

Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>

* Pass GitHubActionRunUrl via environment variable and use IsNullOrWhiteSpace guard

Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/61d68e76-9b14-444b-b244-44d770e9a9b2

Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
Co-authored-by: Ray Chen <raychen@microsoft.com>
…ameter [Cosmos] (Azure#48811)

* fix: ensure CustomItemSerializer is not applied to internal query pipeline structures and is applied to SqlParameter serialization

---------

Co-authored-by: Annie Liang <xinlian@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* regen w new SHA + customizations

* updated changes from PR comment

* regen with latest SHA

* re-record tests and removed tests for old features

* fix typos in skill reference .md

* additional fix

* fix: move SearchServiceVersion customizations to SearchCustomizations.java for CI compliance

* fix: remove unused imports and update test recordings

* fix: remove unused BinaryData import

* updated tests to 2026-04-01 version

* regen w proper SHA

* Add knowledge samples

* fix: remove src_embed from generated files

* remove unnecessary plugin

* regen with typespec-java@0.43.0

* Revert "regen with typespec-java@0.43.0"

This reverts commit fbd62ca.

* regen

* remove permission filter / related files, regen

* Regenerate with latest hash. Update tests and update customizations

* address comments and regen with updated SHA

* remove unnecessary file

* update renamed KB references

* update references to searchindexingbufferedsenderbuilder

* fix code for renames + apply spotless formatting

* fix test

* regen from tsp

* fix linting issues

* updated disabled tests

* address second apireview comments

* revert unnecessary changes

* fixed build issues

* version bump and list methods fix

* update version in pom

* update version in version client

* make nextLink and nextPageParameters internal

* regen with accept headers fix

* fix linting issues and re-run tests

* fixed broken link

* regen with tsp changes

* regen

* fix comments

* re-trigger CI

* fix return type

* pull in skills files

* remove duplicate PascalCase skills directory

---------

Co-authored-by: efrainretana <141282336+efrainretana@users.noreply.github.com>
…unts (Azure#48758)

* Fix background database account refresh stopping in multi-writer accounts

In multi-writer accounts, refreshLocationPrivateAsync() stops the background
refresh timer when shouldRefreshEndpoints() returns false. This means topology
changes (e.g., multi-write to single-write transitions) go undetected until
the next explicit refresh trigger.

The .NET SDK (azure-cosmos-dotnet-v3) correctly continues the background
refresh loop unconditionally - the loop only stops when canRefreshInBackground
is explicitly false, not when shouldRefreshEndpoints returns false.

This fix adds startRefreshLocationTimerAsync() to the else-branch of
refreshLocationPrivateAsync(), ensuring the background timer always reschedules
itself regardless of whether endpoints currently need refreshing.

Without this fix, after a multi-write -> single-write -> multi-write transition,
reads remain stuck on the primary region because the SDK never re-reads account
metadata to learn about the restored multi-write topology.

Unit tests updated:
- backgroundRefreshForMultiMaster: assertTrue (timer must keep running)
- backgroundRefreshDetectsTopologyChangeForMultiMaster: new test proving
  MW->SW transition detection via mock

Related: PR Azure#6139 (point #4 in description acknowledged this bug)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add DR drill test results (4 scenarios: MW offline, MW transitions, SW switch, SW offline)

Kusto-backed evidence with charts for PR Azure#48758 validation.
Accounts: bgrefresh-mw-test-440 (multi-writer), bgrefresh-sw-test-440 (single-writer)
Branch: fix/background-refresh-multi-writer @ 2048abe

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Revert "Add DR drill test results (4 scenarios: MW offline, MW transitions, SW switch, SW offline)"

This reverts commit c9fc5c4.

* Restart background timer on force-refresh path (403/3 driven)

The forceRefresh=true path in refreshLocationAsync() updates the
LocationCache but never restarts the background timer. After a
MW→SW transition triggered by 403/3, the timer stays dead and the
SDK never detects MW re-enablement — traffic stays pinned to the
SW write region permanently.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add jitter (0-15s) to background refresh interval to prevent thundering herd

Configurable via COSMOS.BACKGROUND_REFRESH_LOCATION_JITTER_MAX_IN_SECONDS
(default 15). Spreads refresh calls from many CosmosClient instances to
avoid overwhelming the compute gateway.

Jitter is skipped during initialization (zero delay for first refresh).
Tests set jitter to 0 for deterministic behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Disable background refresh jitter in GatewayServiceConfigurationReaderTest

The background refresh jitter (0-15s) added to prevent thundering herd
causes the refresh interval to exceed the 2-second sleep windows used
by this test. Disable jitter so the background refresh fires predictably.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
)

* Add CODEOWNERS verification pipeline step and script

Add verify-codeowners.yml pipeline template step and
Test-CodeownersForArtifacts.ps1 script to validate that packages
intended for release have sufficient CODEOWNERS coverage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Review feedback

* Fail closed on missing release status

---------

Co-authored-by: Daniel Jurek <djurek@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…K Generation - Java-6084812 (Azure#48645)

* Configurations:  'specification/relationships/Relationships.Management/tspconfig.yaml', API Version: 2023-09-01-preview, SDK Release Type: beta, and CommitSHA: 'ab5c0abaf718ad3ad3328695dc8e1eb5b3bfd38c' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6084812 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.

* Configurations:  'specification/relationships/Relationships.Management/tspconfig.yaml', API Version: 2023-09-01-preview, SDK Release Type: beta, and CommitSHA: '843ab81f0fb6e0d22bca64e1c73ffe64d1681ca9' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6103940 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.

---------

Co-authored-by: Meghana Gupta <93553451+meghanagupta95@users.noreply.github.com>
…neration - Java-6178330 (Azure#48863)

* Configurations:  'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: '8b2ae2cd4aaa5292b115bb38663f722b8a694235' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6178330 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.

* Configurations:  'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: '8b2ae2cd4aaa5292b115bb38663f722b8a694235' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6178396 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.

* Update CHANGELOG.md

* Update CHANGELOG.md

---------

Co-authored-by: Weidong Xu <weidxu@microsoft.com>
Adapted from Azure/azure-sdk-for-rust issue-triage.md with Java-specific
patterns: Maven package naming, Java SDK directory structure, Java docs
links, and question-answering from existing documentation.

Uses gh-aw (GitHub Agentic Workflows) to auto-triage new issues with
labeling, routing via CODEOWNERS, and initial analysis comments.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@samvaity samvaity requested a review from mssfang as a code owner April 24, 2026 21:07
@samvaity samvaity merged commit 7f1d7b2 into main Apr 24, 2026
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.