Repository navigation
Migrate Planner shared directives to v3 cmdlet configuration - #3890
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
Preserve all eight shared AutoRest directives and map complete same-profile legacy selectors to pinned compatible operations. Cover suppressions and retained resource/function neighbors in module-specific regression tests. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ration Run the complete queued Release pipeline against pinned Kiota-compatible v1.0 Planner with Kiota 1.36.1 and official Authentication 2.38.1. Client/project output is byte-identical except the regenerated client lock; generated cmdlets enforce the reviewed suppressions. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ration Run the complete queued Release pipeline with pinned compatible beta spec, Kiota 1.36.1 and official Authentication 2.38.1; retain tracked Beta casing. All 122 surviving baseline supported routes retain their names; the pinned spec lacks 18 stale generated goal routes, removed by normal regeneration. Preserve existing unrelated beta naming limitations without suppressing unique routes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…tadata Treat legacy operations without action/function metadata as resource operations when reviewing UserPlannerPlanCount and UserPlannerTaskCount. Add exact both-profile evidence and positive regression coverage; the existing v1 parity suppression is preserved and beta gains the shared directive's suppression. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…rection The corrected complete queued Kiota plus cmdlet/project Release pipeline succeeded in 43 seconds with 54 compiled exports. All generated client, cmdlet, project and lockfile output is byte-identical because v1.0 derived configuration already suppressed these two count routes; retain the required separate profile-generation boundary without fabricated source changes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… migration Repeat the complete queued Kiota plus cmdlet/project Release pipeline after the reviewed count correction. The generated client/projects/lockfiles are byte-identical; beta correctly drops only the two UserPlannerPlanCount/UserPlannerTaskCount cmdlets and exports 135 commands, retaining every other supported baseline route and name. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…z-planner-v3-migration
…iants Refresh all eight reviewed groups against current actual legacy and compatible specs. v1.0 uses complete supported literal evidence; beta retains 206 original survivors including 24 actual-kind guarded final action/function bridges, which still require normal merge of the reviewed Legacy inventory helper. Keep exact shared route configuration and parent/count fidelity unchanged. Update only Planner tests to three-setting GeneratorConfig with explicit separate runtime profiles for naming, suppression and full actual-spec generation; cover both oracle modes. Targeted Planner/configurator/naming regressions pass 117 tests. Strict current inventory honestly fails only beta directive 1 until #3847 merges. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Run the current-target full queued Kiota and cmdlet/client/project Release pipeline with Kiota1.36.1 cap1 and official Authentication2.38.1: exit0/OK54exports18.6seconds. All171reviewed suppressions absent, all50nonmigrated compatible routes present,10neighbors retained; raw current parity54/54. Client/cmdlet/project output is byte-identical except current spec client lock metadata. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Run the current-target full queued Kiota and cmdlet/client/project Release pipeline with Kiota1.36.1 cap1 and official Authentication2.38.1: exit0/OK238exports34.4seconds. Preserve tracked Beta casing and all120prior surviving route names; emit86additional current spec routes with no authored collision policy. All254shared suppressions remain absent and18neighbors remain present.
Do not claim full-surface coverage: the baseline shared emitter skips GET /planner/tasks_v2/{task-id}/customFieldValues/{customFieldValue-id} because its scalar value property is misclassified as a collection. Raw beta parity remains failing0/238 (132mismatches and106no-oracle), with no suppressions added to conceal those limitations. Final publication still requires normally merged reviewed Legacy helper and strict PASS.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…z-planner-v3-migration
Integrate the normally merged required-path ID alignment, refresh all609current method/path/ID rows, and remove rejected Legacy integration fields. Both unchanged original selections are complete with ordinary literal evidence:137v1.0 and206beta. Preserve unchanged shared exact suppressions, count fidelity, parent calls and a one-time historical route audit in tests. Actual normal strict inventory maps all8directives, and119Planner/configurator/naming regressions pass. No helper overlay, global generator change, profile-scoped authored rule or unrelated scalar-value emitter fix. Final generation and validation target PowerShell7/Core only. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…alignment Run full queued Kiota plus cmdlet/client/project Release pipeline on final source46243172be and normal target604bd968, using Kiota1.36.1 cap1 and original official Auth2.38.1 on PowerShell7/Core. Exit0/OK54exports20.0seconds;171suppressions absent,50unique routes,10neighbors, offline defaults/binder/WhatIf checks pass; raw parity54/54. Combined profile output is byte-identical; preserve the required generation commit boundary without fabricated deltas. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ignment Run full queued Kiota plus cmdlet/client/project Release pipeline after final source46243172be on normal604bd968, Kiota1.36.1 cap1 and original official Auth2.38.1 on PowerShell7/Core. Exit0/OK238exports41.3seconds;254shared suppressions absent,206unique compiled routes,18neighbors, offline defaults/binder/WhatIf checks pass. Combined client/cmdlet/project sources byte-identical except updated compatible spec lock hash; preserve tracked Beta casing. Frozen nonmigrated scalarCustomFieldValue.value item-GET emitter omission and raw beta parity0of238 remain explicit baseline limits, not rewritten or suppressed. No actual network/mutation serialization or PowerShell5.1 validation claimed. 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:47
…z-planner-v3-migration
Assert actual whole-spec generation explicitly passes each separate runtime profile to GetRequestAdapter and never emits a bare/default or opposite-profile call, with derived naming data on and off. Keep existing literal directive evidence, shared authored rules, selected surfaces and frozen schema limits unchanged. Actual119module/configurator/namingtests pass; all8ordinary strict directives Mapped. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Complete full queued Kiota plus cmdlet/client/project Release generation after final source198407936e against target844672: exit0/OK54exports28.4seconds, canonical adaptedAuth2.41.2complete64filepackage andKiota1.36.1cap1. Emit explicit v1.0 runtime service root and regenerated project ownership: wrapper bin contains only its three owned DLLs; Authentication owns complete Kiota/RMS/UriTemplate/Multipart closure without preloads. Kiota client source byte-identical; preserve separate combined profile-generation boundary. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Complete sequential full queued Kiota plus cmdlet/client/project Release generation after final source198407936e against target844672: exit0/OK238exports57.9seconds, canonical adaptedAuth2.41.2complete64filepackage andKiota1.36.1cap1. Emit explicit beta runtime service root and regenerated project ownership: three wrapper-owned DLLs only, no dependency preloads or duplicate Auth/Kiota. Kiota client source byte-identical; preserve separate combined profile-generation boundary and tracked Beta casing. 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.
No separate issue is linked.
Changes proposed in this pull request
src/Planner/Planner.mdto the v3 configurator, retaining exact reviewed operation evidence, source annotations and positive/neighbor regressions. Original AutoRest directives remain active. Required profiles are exactly v1.0 and beta, with no exclusions; preserve trackedwrapper/Betacasing.844672d7c2238f6b29a208f9ba73fe28e9e29cef. Rebuild both profiles sequentially against the canonical normally packaged adapted Authentication 2.41.2, preserving prior commits. Generated manifests require Authentication 2.41.2; bins and packages carry only the three wrapper-owned DLLs, with no dependency preloads or duplicate Auth/Kiota/RMS/UriTemplate/Multipart copies. The generator emits the explicit separate runtime profile. Validation is PowerShell 7/Core only.Current acceptance is not an all-runtime pass: full builds, ordinary strict inventory, targeted/unit tests, normal-manifest compiled checks and package smoke gates pass. All four real offline authenticated profile/cloud HTTP gates retain an actual FAIL / exit 1 because a bound generic header is lost on the GET after a 204 PATCH. #3886 is not overlaid or waived. Exact captures and all other gate outcomes are retained below.
Ignored/deferred scope: all profile-local readmes and
src/readme.graph.mdare deliberately ignored and unchanged. Parameter/schema aliases and transforms remain deferred; none occur in the shared Planner source. PowerShell 5.1 compatibility is unsupported/out of scope. No live Graph/OAuth/credential-store calls, other-owner changes, dependency injection shims, new PRs, force-pushes or prerequisite overlays.Reviewed dispositions
Overlaps remain deduplicated into the unchanged 254-entry shared exact method/path configuration: 171 unique v1.0 / 254 unique beta suppressions. The one-time historical qualified-action/function route audit remains only in module tests.
Integration and commit boundaries
fde35d161fc57eafb99c/0dabcef99a997caca220,87d5896d4c/cb858af6849cf25c267b,0eed050fa95eab3ca588/cf4f6e988a69bb91a03c,46243172be604bd968af8229a5e8/c9c39382d53c857d71ddac2c5bce460e31d36fcadef88217e4198407936eab0680c6bd: client source byte-identical; cmdlets/projects regenerated for profile-aware transport and Authentication-owned dependenciesba1c90225e: same combined boundary, tracked Beta casing preservedCurrent canonical head:
ba1c90225e9e7b7b856d8033101d46a59746b9b6. No rebase, amend, cherry-pick or squash; required Copilot App co-author trailers retained. Git's full no-rename diff population is 738 paths; rename-collapsed REST counts are not used as the full path count.Actual final source/build evidence
6b17e5c670edb0cfa60f0e0c3f4f03f43ca9e950dd3e46fdb6f30eb2c530119979654f2876dca775ae762ea25793ba27bc4c013870176fd8e94ef8d3ff945046e9fb2d11ae0207f1ea3e4d0cbc7ae32dCurrent acceptance imports adapted Authentication 2.41.2 from the exact normal-production package root, not Gallery Authentication or old 2.38:
C:\Users\ramsess\.copilot\session-state\4aa86cf9-d43c-4d2b-a4a3-aeaed01b8f29\files\authentication-v2-sync\final-source\modulesAll 64 files match
auth-package-hashes.json; canonical Authentication nupkg SHA256 is2FC09BFE6B70D313BC56DF8ADCCFB1976FB4E90A1898BF8A916B4B8B792898EB. This root is first in process-local PSModulePath, followed by the user modules, Program Files modules and PowerShell 7 modules. Kiota is isolated1.36.1+fd3bf87790149b87f40f7eae1a5feb9016625943, withKIOTA_Generation__MaxDegreeOfParallelism=1. No global environment/package edits or manual DLL bundles.All 50/206 prior emitted nonmigrated routes retain their exact public names. Both regenerated manifests load normally with Authentication minimum 2.41.2, zero dependency preloads, and exactly
Microsoft.Graph.Wrapper.Planner.dll,Microsoft.Graph.Wrapper.Planner.Client.dll,Microsoft.Graph.Wrapper.Runtime.dllin each bin/package. Nativedotnet pack --no-buildpackages the actual validated bins using the normal builder's nuspec/module-bin layout; it does not substitute for the full queued generation pipelines.67ADD7A34D5EE84352ADA8E068F1EADFACF76C3717880FF96994A0B0B01AAA044262B5ECD53D74EE379C006EA5F36B1C0379853E8FA86C9F0A98EDED90B0CCAAExact final validation commands and results
Current raw evidence root (all commands run in the existing isolated owner worktree):
With the prescribed process-local environment in the same invocation, run sequentially:
Both passed, exit 0 / OK, with the populations/times above. No SkipKiota, GenerateOnly, NoCollisionData, legacy fallback or NO-CMDLETS acceptance.
Passed: ordinary strict inventory 8/8 Mapped, exit 0; actual targeted TRX 119 executed/passed, 0 failed; actual normal-target runtime TRX 28 executed/passed, 0 failed. No zero-population test run is counted.
Both passed, exit 0: fresh normal-manifest imports, exact migrated suppressions/neighbors, ordinary defaults, mutation safety metadata, unchanged names and the explicitly frozen scalar-value omission. Normal packages also pass the existing gate:
Passed: 54/238 package exports match manifests, zero orphan workers; compiled dispatcher reaches genuine NoGraphSession; complex/enum conversions, 1/2 scalar cases and 19/19 untyped cases per profile pass. Package DLL bytes match actual compiled bins; Auth/Kiota are not shipped twice.
The actual real authenticated HTTP matrix uses
Connect-MgGraph, the existing in-memory MockDataStore, the real GraphHttpClientFactory authentication/retry/redirect pipeline, and a test-only terminal handler. Each row is a fresh normal-manifest process. No live Graph/OAuth or credential store:The one failure in each row is bound generic refetch headers lost (#3886):
x-planner-proof=patch-and-refetchis on the actual PATCH but absent from the immediate GET. The logs/captures and exit 1 remain; no all-runtime PASS claim.Passing real transport checks include typed POST JSON/results; selected typed PATCH JSON with scalars/date/enum/model, 204 then typed GET result; exact encoded IDs; bodyless DELETE with If-Match; beta typed archive/move actions and bodyless extendExpiry; bound GET select/expand and generic headers; default list routing; WhatIf and genuine declined Confirm each send zero HTTP, one prompt per declined mutation; invalid binder inputs send zero HTTP. Session/client/profile cache reuse, timeout/reconnect invalidation and NoGraphSession identity pass.
Real factory BaseAddress stays
https://graph.microsoft.com/v1.0/, including USGov tests. Generated requests nevertheless use the correct Global/USGov host and explicit v1.0/beta root; alternating typed profile requests never mutate the authenticated shared client's BaseAddress. Exact assembly identity/context/hash captures show one Authentication-owned Kiota/RMS/UriTemplate/Multipart closure with no DLL injection or duplicate contexts. Normal packaging closes the old RMS gap.DELETE query obligation #3882 is not applicable to Planner's current specs: 57/82 actual DELETE operations have zero inline query parameters, zero component-parameter references and zero inherited path query declarations. This is recorded in
delete-query-applicability.json; no unsupported query API was added.Current raw parity: v1.0 exit 0, 54/54 match; beta exit 1, 0/238 match, with 132 mismatches (117 Mg/MgBeta-prefix-only, 15 other names) and 106 no-oracle rows. Prefixes are not normalized into a claimed raw pass.
Frozen limits
The existing beta client-only omission remains:
GET /planner/tasks_v2/{task-id}/customFieldValues/{customFieldValue-id}. Kiota supports it, but the unchanged shared emitter mistakes scalarCustomFieldValue.valuefor a collection property and omits the item GET. Current beta spec population remains 461: 254 shared suppressions, 206 emitted unique routes, one frozen nonmigrated omission. No unrelated schema/emitter change, suppression or full-surface claim.Current HTTP header-loss failure is additional and explicit, not relabeled as this frozen omission. #3881/#3882/#3886 were not overlaid. Live tenant paging/delta behavior is not claimed. PowerShell 5.1 remains out of scope.
Historical evidence remains historical: prior normal
604bd968/ Authentication 2.38.1 validation was 54/238 exports, 20.0/41.3s, eight Mapped, 119 targeted plus 26 runtime tests and offline binder/WhatIf checks; it did not prove actual HTTP serialization or the new Authentication behavior. Its complete original body, raw commands/results/TRX/input/Auth hashes and artifacts remain unchanged underPlanner-final-604bd968and this refresh'spr-before-update.json. Earlier 08/candidate artifacts are untouched. They are not substituted for current844672proof.Current canonical evidence root:
C:\Users\ramsess\.copilot\session-state\24d3e949-2987-4321-9dab-8f5b71e66ff6\files\Planner-auth-844672.Retained:
revalidation-report.json, full build logs/exits, actualtargeted-tests.trx/runtime-tests.trx, ordinary strict JSON,authentication-64-hashes.json, input hashes, compiled manifest/DLL data, package inventory/hashes/smoke logs, all four raw HTTP logs/exits/captures/assembly contexts and raw parity ledgers. Initial test-fixture errors are preserved as.initial-fixture; the corrected real gates above do not hide the actual refetch failure.Other links
PlannerDirectiveMigrationTests.csretain the migration audit.