Repository navigation
Migrate Notes shared directives to the v3 cmdlet configuration framework - #3889
Open
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 18 commits into
Open
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 18 commits into
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 18 commits into
Conversation
Repair the unbalanced shared selector with exactly one terminal parenthesis, retaining the invalid original and parse error. Account for all 298 actual legacy matches per profile and their unique compatible successors; preserve ordered suppressions, shared naming, and unaffected neighbors. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Verify both compatible profiles and all three resource roots: RootList and NestedList query/header sets, RootGet query/header sets, exact operation IDs and response shapes. Preserve the published nested List1 route contract for the shared multi-route dependency. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep every profile operation collection an explicit JSON array and pin the complete ordered Site rename and superseded nested content-action dispositions against both compatible profiles. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Pass generation profile separately, reprove all 298 actual legacy selector survivors against current compatible IDs, preserve strict Legacy bridge requirements, and give ambiguous nested section-group collections meaningful path-backed names without changing ordinary root defaults. Record the frozen v1 derived suppression gap rather than hiding it. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full queued compatible-spec Release pipeline: exit 0, Status OK, 176 compiled exports. Kiota 1.36.1 (cap1), official unmodified Authentication 2.38.1. Fresh compiled assertions verify 301 reviewed suppressions absent, 21 migrated/neighbor route identities and ordinary List defaults. Frozen derived nested-list gaps and raw parity 174/176 remain documented limitations, not full-fidelity or parity passes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The full beta pipeline exposed three count-name collisions beyond the nested collection cases. Use the same meaningful path-backed nested noun for both collection and count, preserving endpoints and all ordinary List/Get defaults. Test both profiles with derived data disabled and beta with derived data enabled; rerun both complete pipelines after this shared source change. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Repeat the full queued compatible-spec Kiota+cmdlet Release pipeline on shared source a6c1843: exit0, Status OK,176 exports,21.7builderseconds. Kiota client/project/lock outputs are byte-identical; genuine cmdlet deltas rename three nested count files. Fresh compiled migrated/default/neighbor checks pass with explicitly documented baseline nested-list gaps. This is one combined real profile generation boundary, not a split client/cmdlet run. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ramework Full queued compatible-spec Release pipeline on shared source a6c1843: exit0,StatusOK,182 freshly compiled exports,50.1builderseconds. Create previously absent lowercase beta client/cmdlet/projects/lock tree. Fresh compiled24route/default/neighbor assertions and301suppressedroute absence pass; meaningful distinct nested collections/counts preserved. Raw parity0/182 remains failed due baseline Mg versus MgBeta and naming limitations; no normalized parity or body/HTTP claim. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep the six frozen derived-data omissions explicit beside the source migration and its strict Legacy bridge blocker. Both actual full profile builds pass on final authored configuration a6c1843; this documentation-only correction does not change generator inputs or claim full fidelity. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Normally integrated #3847 restores all 298 selected same-profile current operations. Remove rejected Legacy bridge fields, refresh exact IDs and spec provenance, and keep a one-time independent historical path review. Preserve the approved one-parenthesis source repair, nested naming, ordinary defaults, six frozen v1 derived omissions and prior profile generation history. Validation scope is PowerShell7/Core only. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full unchanged four-mutex queued Kiota+cmdlet Release pipeline against compatible blob cffaf20: exit0, StatusOK,176 compiled exports,24.7builderseconds on PowerShell7/Core with original complete official Authentication2.38.1 and isolated Kiota1.36.1/cap1. Actual compiled24route assertions,301suppressions absent,3ordinarydefaults,3realbinder rejections and2WhatIf checks pass. Client sources,cmdlets andprojects are byte-identical; only the genuine Kiota lock description hash changes. This preserves a combined full profile generation boundary, not a manufactured source delta. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full unchanged four-mutex queued Kiota+cmdlet Release pipeline against compatible blob fc79835: exit0,StatusOK,182compiledexports,40.4builderseconds on PowerShell7/Core with originalcompleteofficialAuthentication2.38.1 and isolatedKiota1.36.1/cap1. Freshfullmodule30routeassertions,301suppressionsabsent,3ordinarydefaults,3realbinderrejections and2WhatIfchecks pass. Client sources,cmdlets andprojects are byte-identical; only the genuine Kiota lock description hash changes. Rawparity0/182 is recorded unnormalized as an existing limit, not a pass. This preserves one combined full-profile generation boundary. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Ramses Sanchez-Hernandez (ramsessanchez)
requested a review
from a team
as a code owner
November 2, 2026 21:45
…to Notes Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Require generated nested collection workers to use the separate runtime v1.0 or beta profile when obtaining the request adapter. Keep shared authored config, source selectors, names and baseline omissions unchanged. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full queued Kiota+client+cmdlet Release regeneration after normal844672: exit0,StatusOK,176exports,42.9builderseconds; manifest requires adaptedAuthentication2.41.2, profile-aware workers and normal three-owned-DLL/no-preload packaging. Real Notes fullmodule metadata/default/binder safety passes. Actualfactory offlineGlobal/USGov transport has60PASS/2retained3886FAIL: bound genericheaders lost on PATCH204GETrefetch. Typed bodies/results and noHTTPsafety work; no globaloverlay/fakeall-runtime-pass. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full sequential queued Kiota+client+cmdlet Release regeneration after normal844672: exit0,StatusOK,182exports,44.4builderseconds; explicit beta service-root adapter calls and three-owned-DLL/no-preload packaging. Full manifest migrated/default/binder checks pass. Real authenticated factory Global/USGov offline matrix64PASS/2retained3886FAIL: bound genericheaders lost on PATCH204GETrefetch. Typed serializers/results, profilecloud URLs, actualfactory BaseAddress immutability, cacheidentity and genuineNo/WhatIf0HTTP checks verified. No overlay or allruntimePASS claim. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This branch has not been deployed
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.
Changes proposed in this pull request
src/Notes/Notes.mdto the v3 module configuration framework and ordinary literal migration ledger. Each profile's complete actual historical selector population and current literal selection contain the same 298 surviving operations; none is declared removed. Preserve positive and unaffected-neighbor coverage.)to the active regex, preserving the invalid original and parse error. The invalid original never had an executable match set. The normal required-path ID alignment supplies all literal IDs; rejected Legacy lookup/integration fields are removed. A one-time historical route comparison remains only in module tests/audit, not in generator/runtime integration.Current normal Authentication refresh — target
844672d7c2238f6b29a208f9ba73fe28e9e29cef(#3891)This PR normally merges the new target at
06f2591c6256639aa34ed502f88b30965ae8dcdf. The tightly coupled owned test correctiona14667c3d0759feb223513f72d2dbdeb00438c2epins explicit runtime profile calls (GetRequestAdapter("v1.0"/"beta")), without changing shared directive semantics or adding authored profile filters.Both required full pipelines were rerun sequentially after that final source change. Fresh combined generation commits are v1.0
f009f813e888f95132752e9b84f8ca5a28688671and beta586b4cb0dfdefe4ee470481768858bf68e6f41cf. Each actual full run regenerates Kiota/client, cmdlets, projects and manifests together; Kiota source/locks remain byte-identical where appropriate, while profile-aware cmdlet adapter calls and normal wrapper dependency ownership/project changes are real generated deltas (165 v1.0 files; 171 beta files). Nothing is hand-edited in generated output or manufactured to force a generation diff. Existingbetacasing and all prior commits remain.Acceptance imports the normally packaged adapted Authentication 2.41.2 from the exact merged production source, not stock Gallery 2.41.2 or old 2.38.1. Complete 64-file SHA256 validation and fresh child import path/version checks pass. Authentication nupkg SHA256:
2FC09BFE6B70D313BC56DF8ADCCFB1976FB4E90A1898BF8A916B4B8B792898EB. The first process-local module path isC:\Users\ramsess\.copilot\session-state\4aa86cf9-d43c-4d2b-a4a3-aeaed01b8f29\files\authentication-v2-sync\final-source\modules, followed by the normal build-tool module paths. Isolated Kiota 1.36.1+fd3bf87790149b87f40f7eae1a5feb9016625943, cap 1, and the unchanged four-mutex queue are used in the same process environment. No global installation, package modification, manual DLL injection, loader shim or unmerged #3881/#3882/#3886 overlay.Actual remaining runtime blocker — not an all-runtime pass
Each full Notes profile was exercised using normal manifest import, real
Connect-MgGraph, the existing in-memoryMockDataStore, and realGraphHttpClientFactoryauthentication pipelines with an offline terminal handler. Each profile records 64 PASS / 2 FAIL, actual exit 1. The two failures are the same known #3886 generic-header loss, once in Global and once in USGov:Update-MgSiteOnenoteNotebookContent -Headers @{ 'x-offline-marker' = 'patch-refetch-proof' }sends the bound marker on PATCH, but its successful 204-triggered GET refetch omits it. Both methods, exact URLs, typed PATCH JSON and returned typed notebook are captured; this is a genuine failed header-preservation assertion, not a source-only inference. The failures and raw captures remain retained; the shared emitter is not patched or bypassed in this module branch.Successful real transport assertions cover typed notebook POST JSON/result, renamed Site Notebook PATCH JSON and 204→GET typed result, bodyless DELETE, typed copyNotebook action JSON/result (using each profile's actual baseline exported action name), migrated typed PageContent commands, typed default List/item GET, bound GET headers, cloud/profile roots, adapter reuse, request-context invalidation, reconnect/new-token handling, disconnected NoGraphSession, and single Authentication/Kiota dependency identities/load contexts. Each profile has eight genuine declined confirmation prompts and eight WhatIf invocations with 0 HTTP; invalid List/Get binder combinations also send 0 HTTP. No live Graph/OAuth/credential-store operations occur.
The real factory client's
BaseAddressremainshttps://graph.microsoft.com/v1.0/, including USGov sessions. Actual generated beta requests nevertheless use/beta; USGov requests usehttps://graph.microsoft.us/<profile>. Alternating v1.0/beta typed calls preserve the proper cloud host without mutating the shared client's BaseAddress or session transport. Authentication normally owns RMS, UriTemplate and Multipart. Wrapper bins and packages contain exactly their own three DLLs, require Authentication 2.41.2, and have no RequiredAssemblies dependency preload. The old RMS serialization/loading gap is closed by the normal Authentication package, not by wrapper-local retention. Both Notes specs have 58 DELETE operations and zero DELETE operations declaring query parameters; #3882's required ordinary DELETE-query case is not applicable to Notes and is not claimed tested as a Notes surface.Current validation commands/results
$repoRootis this Notes worktree;$proofisC:\Users\ramsess\.copilot\session-state\0f2ddb19-b65a-4a6a-95cb-602f838839e3\files\notes-844672-validation.$queueis the unchanged coordinatorC:\Users\ramsess\.copilot\session-state\871a5292-dc5b-423e-8083-5165b0006603\files\Invoke-QueuedModuleBuild.ps1.Invoke-NotesRefresh.ps1verifies the exact adapted Auth package/64 hashes/import source, Kiota/spec hashes and complete process-local environment before invoking that queue. No skip/generate-only/no-collision/fallback flags are used.pwsh -NoProfile -File .\tools\Get-WrapperDirectiveMigrationInventory.ps1 -Module Notes -FailOnUnresolved -OutputPath "$proof\strict-inventory.json"dotnet test .\tools\WrapperGenerator.Tests\WrapperGenerator.Tests.csproj --filter 'FullyQualifiedName~NotesDirectiveMigrationTests|FullyQualifiedName~NamingTests|FullyQualifiedName~CmdletConfiguratorTests' --logger 'trx;LogFileName=targeted-tests.trx' --results-directory $proof --verbosity quiet --nologodotnet test .\src\GraphWrapperRuntime\Runtime.Tests\Microsoft.Graph.Wrapper.Runtime.Tests.csproj --filter 'FullyQualifiedName~GraphRouteAttributeTests|FullyQualifiedName~SessionAdapterCacheTests|FullyQualifiedName~StaticBearerTokenAuthenticationProviderTests' --logger 'trx;LogFileName=runtime-tests.trx' --results-directory $proof --verbosity quiet --nologopwsh -NoProfile -File $queue -RepoRoot $repoRoot -Module Notes -ApiVersion v1.0 -Configuration Releasepwsh -NoProfile -File $queue -RepoRoot $repoRoot -Module Notes -ApiVersion beta -Configuration Releasepwsh -NoProfile -File "$proof\Test-NotesMetadata.ps1" -RepoRoot $repoRoot -Profile v1.0and-Profile betapwsh -NoProfile -File "$proof\Test-NotesTransport.ps1" -RepoRoot $repoRoot -Profile v1.0and-Profile betapwsh -NoProfile -File "$proof\Pack-NotesExistingBuild.ps1" -RepoRoot $repoRoot -ApiVersion v1.0and-ApiVersion betapwsh -NoProfile -File .\tools\Test-WrapperModule.ps1 -PackagePath <exact generated profile nupkg>(both packages, paths recorded in$proof\v1-package.json/beta-package.json)pwsh -NoProfile -File .\tools\Compare-WrapperCmdletNames.ps1 -GeneratedPath .\src\Notes\wrapper\v1.0\Cmdlets -OutLedger "$proof\v1-raw-parity.csv"pwsh -NoProfile -File .\tools\Compare-WrapperCmdletNames.ps1 -GeneratedPath .\src\Notes\wrapper\beta\Cmdlets -OutLedger "$proof\beta-raw-parity.csv"Before/after evidence verifies the same 64 adapted Authentication files and final authored/spec/runtime/template inputs. Package nupkg SHA256s: v1.0
6F62AEA2965FCEEB6B4B1D12B78AD648FE3138ADC59E757C890A116C624F7AAC; betaC10882107EECF7B0762EEEF8AE2E7AD9AFE78FB2BCE716565C4DC1442017B1D5. Current package/manifest/bin hashes, actual HTTP captures, load contexts, logs, test TRX, initial harness-assumption failures and corrections, commands and exact exit results are retained in the new proof directory. No proof artifacts or binaries are committed.Scope, disposition and preserved limits
Required profiles: v1.0 then beta; excluded profiles: none. Shared module markdown only; all profile-local directives and
src/readme.graph.mdare ignored. Parameter aliases/transforms and schema/response directives remain Deferred (none occur in this shared file). PowerShell 7/Core only; no explicit 5.1 compatibility work.Directive 1 suppresses all 298 selected operations/profile. Directive 2 covers 15 resource Page PATCH routes (12 overlap plus 3 direct suppressions), not the direct POST PageContent action. Directive 3 has 15 Site rename candidates (11 previously suppressed, 4 live). Directives 4/5 preserve Group RecentNotebook/PageContent naming. Directives 6–9 are superseded by directive 1 while retaining their active source and real successor evidence; no redundant unreachable overrides. There are 301 distinct reviewed suppressions per profile.
Compatible spec blobs remain v1.0
cffaf201c6e5c1e61e792be47e820e6eadd42e3d, betafc79835fd611ab275d1e13c8cf6f740e2000647b. Historical source blobs remaind95f0fa9431657647f6fab06531e135b8c273500/aeb4a3ddb187f0d837189546db955c38b753307f. The approved repair, finite ID alignment, source selection, naming and neighbors are unchanged by this refresh.Frozen v1.0 derived data still omits three nested
sectionGroups/{sectionGroup-id}/sectionGroupslists and three rootsectionGroups/$countroutes. No global unsuppression/oracle mutation or full-endpoint-fidelity claim. Raw v1.0 parity retains three intentionally distinct nested-count names plus two preexisting Site/User RecentNotebook differences; beta retains the baseline Mg rather than MgBeta prefix and naming/first-URI limits. No new mutation variant groups, schemas, aliases, selectors, authored API filters or naming expansion.Historical evidence — not current 844672 proof
Original migration
73e01595a3, current API/naming corrections59a25c75b3/a6c184325e, normal #3849 integration86aec3935b, normal #3847 integration09af69b1, ordinary literal correction0e21d613, and all earlier combined profile generations remain in history. Prior 604bd96 full generation commits686a4fe41877b0e7ce002c82f9067331a180493b/83848ff1dd8a4ddfa99b16cb54f52cb0f3b66d65had 176/182 exports with original Auth 2.38.1 (24.7/40.4 s, 115+10 tests). Those proofs and theirnotes-604bd968-validationartifacts are retained untouched and are not substituted for the current adapted Auth 2.41.2 full builds and transport results. The previous RMS/no-body-proof limitation is now superseded by actual current typed HTTP evidence; the #3886 refetch header failure remains real.Other links
844672d7c2238f6b29a208f9ba73fe28e9e29cef.