Remove Request.Changes and -Changes parameter (breaking change)#220
Remove Request.Changes and -Changes parameter (breaking change)#220
Conversation
Co-authored-by: blindzero <13959569+blindzero@users.noreply.github.com>
…dlePlanObject Co-authored-by: blindzero <13959569+blindzero@users.noreply.github.com>
Co-authored-by: blindzero <13959569+blindzero@users.noreply.github.com>
blindzero
left a comment
There was a problem hiding this comment.
@copilot why any test to deny changes root? we check against allowed roots anyways. tests against all denied is impossible. so remove this
There was a problem hiding this comment.
Pull request overview
This PR implements a breaking change that removes the Request.Changes property and -Changes parameter from IdLE's request model, simplifying the input semantics to use only Request.Intent and Request.Context. The change addresses ambiguity introduced by having a third top-level input concept, enforcing a cleaner separation where delta-like instructions must be explicitly modeled within Request.Intent.
Changes:
- Removed
Changesproperty from theIdleLifecycleRequestdomain model class, including constructor parameter and validation logic - Removed
-Changesparameter from public request creation cmdlets (New-IdleRequestandNew-IdleRequestObject) - Updated template resolution, plan snapshots, and plan exports to remove all
Changesreferences - Removed all test cases and fixtures related to
Changes - Updated documentation to remove all mentions of
Request.Changesfrom cmdlet references, workflow guides, extensibility docs, and plan export specifications
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/IdLE.Core/Private/IdleLifecycleRequest.ps1 | Removed Changes property, constructor parameter, and validation from domain model class |
| src/IdLE.Core/Public/New-IdleRequestObject.ps1 | Removed -Changes parameter, ScriptBlock validation, cloning logic, and constructor argument |
| src/IdLE/Public/New-IdleRequest.ps1 | Removed -Changes parameter from public API wrapper |
| src/IdLE.Core/Public/New-IdlePlanObject.ps1 | Removed Changes from request snapshot in plan object |
| src/IdLE.Core/Private/Resolve-IdleTemplateString.ps1 | Removed Request.Changes from allowed template roots and backslash escape pattern |
| src/IdLE.Core/Private/ConvertTo-IdlePlanExportObject.ps1 | Removed Changes and Delta from plan export field mapping |
| tests/Core/New-IdleRequest.Tests.ps1 | Removed all test cases for Changes parameter including validation tests |
| tests/_testHelpers.ps1 | Removed -Changes parameter from test helper function |
| tests/fixtures/plan-export/expected/plan-export.json | Removed "changes": null from expected fixture output |
| docs/reference/cmdlets/New-IdleRequest.md | Removed -Changes from syntax, parameter table, and description |
| docs/use/workflows.md | Removed Request.Changes.* from allowed template roots table |
| docs/extend/extensibility.md | Removed Changes from optional request fields list |
| docs/reference/specs/plan-export.md | Removed changes field from specification examples and field rules |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 57adc96a94
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Code Coverage Report
|
Request.Changesintroduced ambiguous third-input semantics alongsideIntentandContext. Delta-like instructions belong explicitly inRequest.Intent; there is no deprecation window.Core
IdleLifecycleRequest– removed$Changesproperty, constructor parameter, and validationNew-IdleRequestObject/New-IdleRequest– removed-Changesparameter and all associated ScriptBlock validation and cloningNew-IdlePlanObject– removedChangesfrom request snapshotResolve-IdleTemplateString– removedRequest.Changesfrom$allowedRootsand from the backslash-escape lookahead patternConvertTo-IdlePlanExportObject– removedchangesfield from plan export mappingTests
Changes-related test cases; no blacklist assertions added$ChangesfromNew-IdleTestRequesthelper; removed"changes": nullfrom plan-export fixtureDocs
New-IdleRequest.md– removed-Changesfrom SYNTAX and parameter tableworkflows.md– removedRequest.Changes.*from allowed-roots tableextensibility.md– removedChangesfrom optional fields listplan-export.md– removedchangesfrom spec example and field rulesOriginal prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.