Skip to content

Audit Mail shared directives for v3 wrappers - #3840

Open
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 8 commits into
powershell-v3from
ramsessanchez-mail-v3-migration
Open

Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 8 commits into
powershell-v3from
ramsessanchez-mail-v3-migration

Conversation

@ramsessanchez

@ramsessanchez Ramses Sanchez-Hernandez (ramsessanchez) commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

N/A

Changes proposed in this pull request

Audit Mail's three shared AutoRest cmdlet directives without duplicating existing derived naming/suppression coverage. This existing PR is now normally integrated and fully regenerated against merged Authentication #3891. The current proof below supersedes, rather than relabels, the earlier #3849/Authentication 2.38.1 evidence.

  • Preserve one exact folder-message content GET suppression, three replyAll renames, and three createReplyAll renames. Complete original same-profile source selections equal all seven compatible survivors. Current literal IDs and the source/compatible spec blobs are documented; no extra operation group, alias, naming sweep, global generator patch, or authored profile filter is added.
  • Support v1.0 only. Beta is explicitly excluded because openApiDocs_KiotaCompat/beta/Mail.yml is missing, not because the beta APIs are generally unsupported or the corresponding operations are proven absent. Its declarations use excluded: true, empty operations, explanatory notes, and no absenceExpected. Generation never falls back to the original spec; that original v1.0 input is read only for source-intent audit.
  • Scope remains the three cmdlet groups in src/Mail/Mail.md. Keep those source directives intact; ignore every directive in src/readme.graph.md and profile-local readmes. Parameter aliases/transforms and schema/response migrations remain deferred. The runtime profile is separate generation context, not a GeneratorConfig setting or authored profile restriction.

Current integration and commit boundaries

Normal merge 019313cd8e75fcbd8071995043257de4a2d99321 integrates powershell-v3 at 844672d7c2238f6b29a208f9ba73fe28e9e29cef (#3891). All prior audit, correction, and profile-generation history is preserved.

Own test commit d78dba36d52821a60b80e3ebfeae5566c67fd920 exercises the actual Mail compatible document through the current generator, pinning explicit GetRequestAdapter("v1.0") for migrated/ordinary reply commands and item GET, together with the exact suppression.

Separate combined full v1.0 generation commit 2e1bc464fcba288530a852c409fea7c03d8bbb4e contains 132 emitted runtime-profile updates and the normal project dependency-ownership template. The freshly generated client and spec/dependency locks are byte-identical; no source delta is fabricated. The regenerated manifest requires adapted Authentication 2.41.2 with no dependency preloads, and the wrapper bin contains only its three owned DLLs. Authentication supplies the complete Kiota/RMS/UriTemplate/Multipart closure. Bin/manifest binaries and session logs are not committed.

At this publication the open, non-draft PR has base powershell-v3 / 844672d7c2238f6b29a208f9ba73fe28e9e29cef and head 2e1bc464fcba288530a852c409fea7c03d8bbb4e. This continuation used normal merges and an ordinary push, with no amendment, rebase, cherry-pick, force-push, duplicate PR, or PR merge.

Current inputs and package

Input Verified identity
openApiDocs_KiotaCompat/v1.0/Mail.yml Git blob 42f7093190db0aefecdd6c079ab37123f96d5d4c
Original audit input openApiDocs/v1.0/Mail.yml Git blob e1a19a44755a1c5a2f61ef2c8ebe88cc0949551b
Kiota 1.36.1+fd3bf87790149b87f40f7eae1a5feb9016625943, process-local parallelism 1
Adapted Authentication 2.41.2 Package SHA256 2FC09BFE6B70D313BC56DF8ADCCFB1976FB4E90A1898BF8A916B4B8B792898EB; all 64 extracted file hashes match the supplied manifest

Authentication comes from the normally packaged local build of the integrated shipping source, not a stock gallery module or manual DLL bundle. Fresh child import verified the exact first module root:

C:\Users\ramsess\.copilot\session-state\4aa86cf9-d43c-4d2b-a4a3-aeaed01b8f29\files\authentication-v2-sync\final-source\modules

Only process-local PATH/PSModulePath were changed. No dependency installation, old Authentication 2.38.1 acceptance, RMS copy, dependency preload, or load-context shim was used.

Exact current commands and results

The new evidence directory is:

C:\Users\ramsess\.copilot\session-state\aa9ad2a2-473c-4a39-b1eb-152ad5636d52\files\mail-3891-844672

In the commands below, $evidence is that exact directory; $repo is C:\Users\ramsess\Repos\copilot-worktrees\msgraph-sdk-powershell\ramsessanchez-bookish-winner.

  1. dotnet test .\tools\WrapperGenerator.Tests\WrapperGenerator.Tests.csproj --configuration Release --filter 'FullyQualifiedName~MailDirectiveMigrationTests|FullyQualifiedName~CmdletConfiguratorTests|FullyQualifiedName~NamingTests|FullyQualifiedName~DerivedCollisionResolutionsTests' --logger 'trx;LogFileName=mail-targeted.trx' --results-directory $evidence --verbosity quiet - passed, exit 0; TRX counters total/executed/passed 114, failed/skipped 0. This is the selected module/configurator/naming regression set, not a full shared suite.
  2. .\tools\Get-WrapperDirectiveMigrationInventory.ps1 -Module Mail -FailOnUnresolved -OutputPath (Join-Path $evidence 'strict-inventory.json') - passed; exactly three directives, all Mapped, with genuine missing-input beta exclusions.
  3. & 'C:\Users\ramsess\.copilot\session-state\871a5292-dc5b-423e-8083-5165b0006603\files\Invoke-QueuedModuleBuild.ps1' -RepoRoot $repo -Module Mail -ApiVersion v1.0 -Configuration Release - passed, exit 0, status OK, 33.7 seconds, 146 exports. The unchanged four-mutex queue ran the full compatible-spec builder after final own source changes; slot 2 released automatically. No SkipKiota, GenerateOnly, NoCollisionData, or legacy fallback.
  4. pwsh -NoProfile -NonInteractive -File (Join-Path $evidence 'Test-Mail3891Runtime.ps1') -RepoRoot $repo -EvidenceRoot $evidence -Environment Global and the same command with -Environment USGov - both passed, exit 0, each in a fresh process with normal manifest import. Each verifies 146 exports, 19 exact compiled migrated/neighbor/worker routes, default List/item dispatch, the suppressed GET's absence, and 10 requests through the real authenticated GraphHttpClientFactory pipeline intercepted by a test-only terminal handler.
  5. pwsh -NoProfile -NonInteractive -File .\tools\Compare-WrapperCmdletNames.ps1 -GeneratedPath .\src\Mail\wrapper\v1.0\Cmdlets -OutLedger (Join-Path $evidence 'raw-parity.csv') - passed, exit 0, unchanged raw parity 146/146 routes; no skipped routes, normalization, mismatches, or deliberate corrections. Frozen oracle omissions and neighboring names are unchanged; beta parity is not claimed.

Observed runtime scope and limits

Per environment, the 10 captured requests are typed public item/default-list GETs (including escaped mandatory IDs, supported Top, and direct request headers), all six migrated reply actions with typed JSON and typed/void results, neighboring bodyless send POST, and content DELETE. All use the requested v1.0 cloud host while retaining the same authenticated client and its unchanged Global-v1 factory BaseAddress. Session adapter reuse is checked.

Each run also checks six WhatIf invocations and six genuinely declined Confirm prompts send zero HTTP, one prompt per action; an empty mandatory ID and invalid typed Message fail binding before HTTP. The wrapper bin has only Mail, Mail.Client, and Runtime DLLs, and all loaded Authentication/Kiota/RMS/UriTemplate/Multipart identities come singly from the verified Authentication package with the expected load contexts.

These are bounded offline representative checks using Connect-MgGraph, the normal factory/auth pipeline, an in-memory MockDataStore, and a terminal handler. They are not live Graph/OAuth/network proof, whole-module body coverage, pagination proof, wrapper-package installation, beta transport proof, or grouped-variant/default-family proof. No PATCH-204/refetch or generic refetch-header assertion was made; unmerged #3886 is not overlaid or certified. No #3881/#3882 overlay or shared stale MultiRoute source-equality repair is included.

The initial fixture assumptions about a missing factory trailing slash and a USGov factory-default BaseAddress were corrected to the actual factory contract. Their failed logs/exits are retained separately; final requests explicitly assert the selected service host instead. Existing NU1903 warnings for Microsoft.OpenApi.YamlReader 3.7.0 remain unchanged.

Retained current evidence includes current-proof-summary.json, mail-targeted.trx, targeted-tests.log/.exit, strict-inventory.json, full-v1-build.log/.exit, auth-64-files-verified.json, auth-fresh-import.log, source-input-hashes.json, tool-hashes.json, generated-source-hashes.json, generated-bin-manifest-hashes.json, Test-Mail3891Runtime.ps1, runtime-Global.json/.log/.exit, runtime-USGov.json/.log/.exit, raw-parity.csv/.log/.exit, Kiota logs, and original fixture attempts. Older mail-post3849-* evidence remains untouched and historical.

Other links

Record exact compatible operation evidence, preserve existing derived coverage, and distinguish excluded beta input from absent API operations. Add focused Mail regression coverage without duplicate overrides.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Run the full Release build against openApiDocs_KiotaCompat v1.0 with Kiota 1.36.1. Client and cmdlet sources, generated projects, and dependency locks are unchanged; only Kiota version metadata in the client lock changes. The compiled module exports 146 commands and all 132 direct operations match published parity.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Pass the derived run profile separately from GeneratorConfig, refresh current literal operation IDs and spec evidence, and assert complete original source selection equals current compatible survivors.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Run the shared queued full Kiota and wrapper Release pipeline on powershell-v3 08e409a with Kiota 1.36.1 and official Authentication 2.38.1. Generated cmdlets/projects remain identical; persist the two Kiota mail-folder delta documentation refreshes and updated spec lock hash. The fresh module exports 146 commands and raw parity matches 146/146 routes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Exercise the real Mail compatible document through the current generator and verify ordinary/migrated reply commands and item GET use the explicit v1.0 request adapter context while the exact content suppression remains intact.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Run the shared queued full Kiota/client/cmdlet/project/manifest Release pipeline against normal target 844672d with Kiota 1.36.1 and the verified adapted Authentication package. Persist explicit v1.0 adapter calls and the dependency-ownership project template; client/spec/dependency locks remain unchanged. Normal manifest requires Authentication 2.41.2 with only three owned wrapper DLLs and no dependency preloads. Fresh compiled Global and USGov offline factory-pipeline gates and raw parity pass.

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

This branch has not been deployed

No deployments
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