You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Inspect OAS2 PUT, PATCH, POST and DELETE operations with an explicit 202 response.
Require a truthy x-ms-long-running-operation on the selected operation; an absent or false extension violates the original check.
Exempt GET and operations without an explicit 202 response.
The Spectral selector $.paths[*][put,patch,post,delete].responses[?(@property == '202')]^^ walks from each selected response back to its operation, where the extension is checked. The diagnostic concerns the operation's extension/missing extension, not whether its Location header actually describes polling. Copying that extension-based behavior would miss native semantic failures and duplicate existing ARM prerequisites.
Migrated native TypeSpec behavior
Mapping: LroExtension → lro-extension (tsp-lintdiff-local-linter/lro-extension). Coverage is deliberately partial, limited to supported uncovered ARM semantics.
The maintained resource-manager ruleset already owns registered resource-instance POST/PUT/DELETE response-code checks. This migration does not duplicate them. It checks PATCH and ARM-marked collection/provider POST operations with exact HTTP 202 responses, using compiler listServices, HTTP getHttpService, ARM isArmCollectionAction, and Azure Core getLroMetadata. Supported customized ArmCustomPatchAsync and ArmProviderActionAsync headers can retain a plain Location header while losing native polling metadata; those operations receive one warning on the authored operation. Semantic LRO headers/default async templates are compliant. Supported synchronous template response customizations are also covered.
The temporary mixed ARM/data-plane lintdiff runner uses service-root getArmProviderNamespace only for isolation. The documented promotion adaptation removes that guard when the official ARM ruleset supplies the audience boundary. Production logic uses compiler/HTTP/Core/ARM only: no emitter, OpenAPI extensions, TCGC, reference-string inference, or unsafe version mutation.
Polling metadata, not emitted extension overrides or historical Swagger snapshots, defines the native contract. Version attribution is assessed separately against corpus-selected API versions; this is not an all-historical-version or universal Swagger-equivalence claim.
The earlier nested-service warning regression retains one target warning for an overlapping missing-metadata operation and two for distinct operations sharing response types. The cycle-1 repair additionally marks each eligible semantic Operation visited before impure metadata resolution, including compliant operations. A real registered-package regression uses nested services that are both ARM-provider marked, a standard async provider action, and original-uri final state with no GET at that route. It now produces exactly one Azure Core no-operation-at-original-uri diagnostic, zero lro-extension diagnostics, and no other diagnostics, rather than resolving metadata twice. Eligibility, service isolation, warning severity/message, and authored Operation targets are unchanged.
Scoped four-file formatting/check, package build and changed-TypeScript lint passed before the new commit.
Focused native tests: 17 passed (the original 16 plus the actual registered-linter regression). The original overlap-warning1 and distinct-operation-warning2 controls remain covered.
All four affected fixture groups passed with unchanged snapshot/expectation enforcement: 51 cases. Explicitly reviewed ambient expectations, intentional Swagger/native discrepancies, and the existing mapped-compliance advisory are preserved; this is not a claim of 51 universally equivalent or universally clean cases.
Required fresh full ARM corpus: 468 attempted, 462 compiled successfully, with six unchanged compile failures (DeviceProvisioningServices, TenantActionGroups, Network/Network, Quota, Resources/deployments and ServiceLinker; duplicate-body/missing-uri-param). Their details and impact are disclosed in the migration note.
Retained Swagger results: 39 diagnostics / 14 projects; native results: 14 diagnostics / 5 projects. Five projects overlap; nine are validator-only; none are TypeSpec-only. The 25 intentional exclusions are POST14, PUT6 and DELETE5, belonging to documented prerequisites/out-of-contract operations rather than unexplained supported-native misses.
The fresh representative/full corpus after the cycle-1 production repair preserved all 14 native diagnostic identities and all six known compilation failures.
Validation retained the prepared source profile: Core a6137cac43a727ce0c2656364fd72d50c272ee4a, integrated base adf0d2865887d9e12609d7a4d398b96211510a85, and checked-in runner settings. The fetched migration base had advanced to b4fdf202afdda010789557603b571f046f0ca70c; the branch/Core/profile were not moved or replayed.
The historical complete 596-case fixture baseline had 72 snapshot mismatches and three expectation mismatches previously established as noncausal. It was not rerun this cycle and is not represented as a fully green suite.
A fresh persistent independent local reviewer found no significant issues in the complete 57-file task diff, including the registered regression, after an actual same-reviewer follow-up. The new incremental commit changes exactly four approved files.
Generated corpus output was archived and restored through the exact-digest reviewed cleanup plan (971 generated changes); no generated coverage, logs, dependency manifests, Core gitlink changes or skill changes are committed.
This remains the development-stage draft. A new current-head GitHub review is pending; the earlier f097 review does not cover this commit. Official promotion draft #5652 remains unchanged at d2d665bb160a96c384daee82d91b264f98368087 with its previous f097 source pin, pending a clean new source review and an explicitly authorized incremental refresh. Neither PR is merged by this workflow.
Cover supported custom PATCH and ARM provider/collection POST responses without native polling metadata; retain existing resource status-code ownership and document partial Swagger coverage. Include native tests, strict migration fixtures, corpus evidence, and nested-service operation deduplication.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 625c0cd9-bacc-4f9c-8b96-4ded1932a30a
Regenerate the complete validation report after the LroExtension partial mapping and refresh its derived documentation summaries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 625c0cd9-bacc-4f9c-8b96-4ded1932a30a
The PR description says the complete reviewed diff contains 50 files, but the current PR metadata reports 56 changed files. Please update that validation claim (or explain which six files were intentionally excluded) so the stated independent review evidence matches the current head.
Visit each eligible semantic operation before resolving LRO metadata so
compliant operations do not duplicate Azure Core diagnostics. Preserve
the partial ARM eligibility and authored-operation warning contract.
Add a real registered-linter regression asserting one Core diagnostic
and no LroExtension warning, and refresh the migration evidence.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 625c0cd9-bacc-4f9c-8b96-4ded1932a30a
## Summary
Clarify Windows publication command safety for the LintDiff queue and
review loop.
- Separate read-only identity checks from short rooted staging, commit,
push, and publication steps.
- Validate multi-line PowerShell publication syntax before executing it.
- Use native Git exit codes, not stdout truthiness, for outputless
commands.
- Inspect the actual refreshed diagnostic-snapshot set instead of a
guessed file count.
## Evidence
The LroExtension workflow in #5639 completed its required review-fix
validation but stopped before staging because a large PowerShell
publication wrapper had a missing closing parenthesis. Earlier
outputless Git wrappers and a guessed five-snapshot guard also
obstructed valid work; the actual nine changed snapshots were
independently verified as diagnostic-message replacements.
The primary review loop is stopped. This independent PR changes only
skill documentation and does not resume that workflow, alter rule code,
or grant an additional correction attempt. Parser rejection still counts
as a command failure under the existing finite recovery policy, despite
zero native mutation attempts.
## Validation
Formatted only the two changed Markdown files with the existing Prettier
3.9.5 installation and identical repository configuration. Checked the
complete diff, relative documentation links, staged scope, and `git diff
--check`.
No dependency installation, submodule initialization, package build,
corpus rerun, CI retry, or additional Copilot review loop is required
for this documentation-only PR.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 625c0cd9-bacc-4f9c-8b96-4ded1932a30a
Preserve LroExtension and current base classifications and recompute the combined catalog summary.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 625c0cd9-bacc-4f9c-8b96-4ded1932a30a
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
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.
Original Swagger linter
linter code: LroExtension
linter doc: lro-extension.md
202response.x-ms-long-running-operationon the selected operation; an absent or false extension violates the original check.202response.The Spectral selector
$.paths[*][put,patch,post,delete].responses[?(@property == '202')]^^walks from each selected response back to its operation, where the extension is checked. The diagnostic concerns the operation's extension/missing extension, not whether itsLocationheader actually describes polling. Copying that extension-based behavior would miss native semantic failures and duplicate existing ARM prerequisites.Migrated native TypeSpec behavior
Mapping: LroExtension →
lro-extension(tsp-lintdiff-local-linter/lro-extension). Coverage is deliberately partial, limited to supported uncovered ARM semantics.The maintained resource-manager ruleset already owns registered resource-instance POST/PUT/DELETE response-code checks. This migration does not duplicate them. It checks PATCH and ARM-marked collection/provider POST operations with exact HTTP
202responses, using compilerlistServices, HTTPgetHttpService, ARMisArmCollectionAction, and Azure CoregetLroMetadata. Supported customizedArmCustomPatchAsyncandArmProviderActionAsyncheaders can retain a plainLocationheader while losing native polling metadata; those operations receive one warning on the authored operation. Semantic LRO headers/default async templates are compliant. Supported synchronous template response customizations are also covered.The temporary mixed ARM/data-plane lintdiff runner uses service-root
getArmProviderNamespaceonly for isolation. The documented promotion adaptation removes that guard when the official ARM ruleset supplies the audience boundary. Production logic uses compiler/HTTP/Core/ARM only: no emitter, OpenAPI extensions, TCGC, reference-string inference, or unsafe version mutation.Polling metadata, not emitted extension overrides or historical Swagger snapshots, defines the native contract. Version attribution is assessed separately against corpus-selected API versions; this is not an all-historical-version or universal Swagger-equivalence claim.
The earlier nested-service warning regression retains one target warning for an overlapping missing-metadata operation and two for distinct operations sharing response types. The cycle-1 repair additionally marks each eligible semantic Operation visited before impure metadata resolution, including compliant operations. A real registered-package regression uses nested services that are both ARM-provider marked, a standard async provider action, and original-uri final state with no GET at that route. It now produces exactly one Azure Core
no-operation-at-original-uridiagnostic, zerolro-extensiondiagnostics, and no other diagnostics, rather than resolving metadata twice. Eligibility, service isolation, warning severity/message, and authored Operation targets are unchanged.Migration evidence and validation
Migration note: latest results, complete project accounting, supported-shape evidence, version attribution and limitations.
a6137cac43a727ce0c2656364fd72d50c272ee4a, integrated baseadf0d2865887d9e12609d7a4d398b96211510a85, and checked-in runner settings. The fetched migration base had advanced tob4fdf202afdda010789557603b571f046f0ca70c; the branch/Core/profile were not moved or replayed.Published source head:
9afb5818fba089835296258049ad7104e8a92c50, parentf0973f43bffa73169fdde0436566c2534bdab595, on the existing development branch.This remains the development-stage draft. A new current-head GitHub review is pending; the earlier
f097review does not cover this commit. Official promotion draft #5652 remains unchanged atd2d665bb160a96c384daee82d91b264f98368087with its previousf097source pin, pending a clean new source review and an explicitly authorized incremental refresh. Neither PR is merged by this workflow.