Ai/docs alignment (#91)
* chore: initialize the memory bank
Add the canonical .memory-bank base with evidence-based project context:
purpose and scope, workflows, stack and validation commands, architecture
map, decisions, and the open work found while documenting the cmdlets.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
* docs: align documentation with the cmdlet source
- Fill all 36 platyPS cmdlet pages from the C# source: synopsis,
description, parameters, defaults, examples, inputs, outputs, and
notes, including documented limitations of the current code
- Check every example against live parameter metadata and run them in a
sandbox; fix examples that did not work (CSV restore, account filter,
recursive inheritance, -AccessRights typos)
- Rewrite the home, concepts, examples, README, and contributor pages;
add a grouped cmdlet overview, module settings, privileges, long paths,
and the platyPS workflow
- Document Remove-Item2 -PassThru as renamed after 4.2.6 (#64)
- Fix mkdocs.yml navigation, edit_uri, and copyright markup; add
build.os and a pinned MkDocs version for Read the Docs
- Point online help links to the pages on GitHub; add CHANGELOG.md
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
* ci: build the module and check the docs against the build
The documentation check ran Update-MarkdownHelp against the NTFSSecurity
release from the PowerShell Gallery (4.2.6), so it failed for every
unreleased parameter change. PR #91 failed because 4.2.6 still has
Remove-Item2 -PassThur while the source and the docs have -PassThru.
- Build NTFSSecurity.csproj in Release on the Visual Studio 2022 image,
using the .NET Framework 4.5.2 reference assemblies package instead of
an installed targeting pack
- Check Docs/Cmdlets against the module built from source
- Pin platyPS 0.14.2 and MarkdownLinkCheck 0.2.0, and enable TLS 1.2 so
the NuGet provider bootstrap works
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
* chore: record the green PR 91 build in the memory bank
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
1 month ago
|
|
|
---
|
|
|
|
|
status: current
|
|
|
|
|
last-verified: 2026-10-08
|
Ai/docs alignment (#91)
* chore: initialize the memory bank
Add the canonical .memory-bank base with evidence-based project context:
purpose and scope, workflows, stack and validation commands, architecture
map, decisions, and the open work found while documenting the cmdlets.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
* docs: align documentation with the cmdlet source
- Fill all 36 platyPS cmdlet pages from the C# source: synopsis,
description, parameters, defaults, examples, inputs, outputs, and
notes, including documented limitations of the current code
- Check every example against live parameter metadata and run them in a
sandbox; fix examples that did not work (CSV restore, account filter,
recursive inheritance, -AccessRights typos)
- Rewrite the home, concepts, examples, README, and contributor pages;
add a grouped cmdlet overview, module settings, privileges, long paths,
and the platyPS workflow
- Document Remove-Item2 -PassThru as renamed after 4.2.6 (#64)
- Fix mkdocs.yml navigation, edit_uri, and copyright markup; add
build.os and a pinned MkDocs version for Read the Docs
- Point online help links to the pages on GitHub; add CHANGELOG.md
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
* ci: build the module and check the docs against the build
The documentation check ran Update-MarkdownHelp against the NTFSSecurity
release from the PowerShell Gallery (4.2.6), so it failed for every
unreleased parameter change. PR #91 failed because 4.2.6 still has
Remove-Item2 -PassThur while the source and the docs have -PassThru.
- Build NTFSSecurity.csproj in Release on the Visual Studio 2022 image,
using the .NET Framework 4.5.2 reference assemblies package instead of
an installed targeting pack
- Check Docs/Cmdlets against the module built from source
- Pin platyPS 0.14.2 and MarkdownLinkCheck 0.2.0, and enable TLS 1.2 so
the NuGet provider bootstrap works
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
* chore: record the green PR 91 build in the memory bank
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
1 month ago
|
|
|
owner: active-agent
|
|
|
|
|
source: current task evidence
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# Active context
|
|
|
|
|
|
|
|
|
|
## Current focus
|
|
|
|
|
|
|
|
|
|
Phase 2 of the quality gate before 5.0.0 (Decision 21), on the branch
|
|
|
|
|
`ai/release-5.0.0-rc6`, released as 5.0.0-rc6: tests until every code
|
|
|
|
|
path is tested or explained, live tests for the remaining cmdlets, and
|
|
|
|
|
test-first fixes of the known defects. The maintainer approved it on
|
|
|
|
|
2026-10-08. Then Phase 3 and 5.0.0; after 5.0.0 the repository is archived
|
|
|
|
|
in favor of WindowsAccessControl (Decision 18).
|
Ai/docs alignment (#91)
* chore: initialize the memory bank
Add the canonical .memory-bank base with evidence-based project context:
purpose and scope, workflows, stack and validation commands, architecture
map, decisions, and the open work found while documenting the cmdlets.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
* docs: align documentation with the cmdlet source
- Fill all 36 platyPS cmdlet pages from the C# source: synopsis,
description, parameters, defaults, examples, inputs, outputs, and
notes, including documented limitations of the current code
- Check every example against live parameter metadata and run them in a
sandbox; fix examples that did not work (CSV restore, account filter,
recursive inheritance, -AccessRights typos)
- Rewrite the home, concepts, examples, README, and contributor pages;
add a grouped cmdlet overview, module settings, privileges, long paths,
and the platyPS workflow
- Document Remove-Item2 -PassThru as renamed after 4.2.6 (#64)
- Fix mkdocs.yml navigation, edit_uri, and copyright markup; add
build.os and a pinned MkDocs version for Read the Docs
- Point online help links to the pages on GitHub; add CHANGELOG.md
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
* ci: build the module and check the docs against the build
The documentation check ran Update-MarkdownHelp against the NTFSSecurity
release from the PowerShell Gallery (4.2.6), so it failed for every
unreleased parameter change. PR #91 failed because 4.2.6 still has
Remove-Item2 -PassThur while the source and the docs have -PassThru.
- Build NTFSSecurity.csproj in Release on the Visual Studio 2022 image,
using the .NET Framework 4.5.2 reference assemblies package instead of
an installed targeting pack
- Check Docs/Cmdlets against the module built from source
- Pin platyPS 0.14.2 and MarkdownLinkCheck 0.2.0, and enable TLS 1.2 so
the NuGet provider bootstrap works
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
* chore: record the green PR 91 build in the memory bank
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
1 month ago
|
|
|
|
|
|
|
|
## Evidence
|
|
|
|
|
|
|
|
|
|
- 2026-10-08, Phase 1, measured on 5.0.0-rc5 (`fcb370e`):
|
|
|
|
|
- The published package passes the live tests in both editions: 8 role
|
|
|
|
|
runs, no failure.
|
|
|
|
|
- As a basic user, the 11 tests that CI skips pass in both editions. The
|
|
|
|
|
one failure, `Enable-Privileges should write one object per
|
|
|
|
|
privilege`, assumes more than one privilege. Every test runs in at
|
|
|
|
|
least one of four configurations (elevated or basic user, two
|
|
|
|
|
editions), but CI runs only elevated.
|
|
|
|
|
- The suite runs 55.9% of the C# lines and 37.4% of the branches
|
|
|
|
|
(`techContext.md`, Validation). No line of `Test-Path2` and
|
|
|
|
|
`Get-DiskSpace` runs; `Set-NTFSOwner` (46%) runs only as a setup step
|
|
|
|
|
of another test; `Clear-NTFSAccess` and the access inheritance cmdlets
|
|
|
|
|
run about 43%, `FileSystemSecurity2` 42%. No cmdlet calls the registry
|
|
|
|
|
classes, `SimpleFileSystemAuditRule`, `PrivilegeEnabler`, or
|
|
|
|
|
`FileSystemEffectivePermissionEntry` (244 lines).
|
|
|
|
|
- 19 of the 36 cmdlets never ran over SMB, among them `Get-NTFSOwner`,
|
|
|
|
|
`Set-NTFSOwner`, the audit inheritance cmdlets, and `Clear-NTFSAudit`;
|
|
|
|
|
no account of another domain or forest ran; both ends of the lab run
|
|
|
|
|
Windows Server 2025.
|
|
|
|
|
- Known defects from the reviews of #113 and #114 (`progress.md`, open
|
|
|
|
|
work 3): `Move-Item2 -PassThru` returns the source item; the conflict
|
|
|
|
|
checks of `Copy-Item2` and `Move-Item2` use `File.Exists` also for
|
|
|
|
|
folders, maybe the cause of #21; an error while restoring the owner can
|
|
|
|
|
hide the original one (R4); `Set-NTFSSecurityDescriptor -PassThru` reads
|
|
|
|
|
the item again inside the retry (R5); the access check doesn't read
|
|
|
|
|
`AUTHZ_ACCESS_REPLY.Error`, and its buffers aren't initialized. #110
|
|
|
|
|
lists seven test follow-ups.
|
|
|
|
|
- #34: no reply from the tester by 06:44 UTC on 2026-10-08.
|
|
|
|
|
- Phase 2, step 1, first part (2026-10-08, commits `82969ba` to
|
|
|
|
|
`ff74100`): 34 new tests for `Set-NTFSOwner`, `Test-Path2`, and
|
|
|
|
|
`Get-DiskSpace`, and two defects found and fixed test-first. Every
|
|
|
|
|
cmdlet that enables privileges left the Backup, Restore, Take Ownership,
|
|
|
|
|
and Security privileges enabled in the session when a later command or a
|
|
|
|
|
terminating error stopped the pipeline; `Test-Path2` stopped with
|
|
|
|
|
"Illegal characters in path" in Windows PowerShell for a path such as
|
|
|
|
|
`C:\a|b`.
|
|
|
|
|
- Phase 2, step 1, link cmdlets (2026-10-08, `4d5c8c4`, `09eb337`): 18 new
|
|
|
|
|
tests for `New-NTFSHardLink`, `Get-NTFSHardLink`, and
|
|
|
|
|
`New-NTFSSymbolicLink` pass elevated and as a basic user in both
|
|
|
|
|
editions; no code defect. The page of `New-NTFSSymbolicLink` was wrong
|
|
|
|
|
twice: `-PassThru` returns a folder object for a link to a folder since
|
|
|
|
|
5.0.0, and Windows Developer Mode doesn't help, because AlphaFS 2.2.1
|
|
|
|
|
passes only the File or Directory flag to `CreateSymbolicLinkW`. Lab
|
|
|
|
|
check on `F1AFile1` as `NtfsLiveServerAdmin` (no administrator):
|
|
|
|
|
with Developer Mode on, `mklink` created a link and the cmdlet of
|
|
|
|
|
5.0.0-rc5 failed with error 1314; the setting was restored.
|
|
|
|
|
- Security review of `fcb370e..00c3646` (`security-reviewer`, 2026-10-08):
|
|
|
|
|
the `Dispose` approach is sound; two Major findings, both one root cause
|
|
|
|
|
that 4.2.6 already had: the privilege cleanup decided on the states read
|
|
|
|
|
in `BeginProcessing` and stopped at the first failure. Reproduced: a
|
|
|
|
|
privilege that another command in the pipeline disabled left the others
|
|
|
|
|
enabled (silently after an early stop), and
|
|
|
|
|
`Get-NTFSOwner ... | ForEach-Object { Disable-Privileges; $_ }` stopped
|
|
|
|
|
with "Priviledge already disabled". Two Minor findings: the early-stop
|
|
|
|
|
tests could pass vacuously, and `Test-Path2` gave no reason for `$false`.
|
|
|
|
|
The maintainer chose to fix all four; fixed test-first in `578042f` and
|
|
|
|
|
`b241441`. The suite (555 tests) passes elevated in both editions
|
|
|
|
|
(534/0/21 and 504/0/51), and the changed test files pass as a basic user.
|
|
|
|
|
|
Ai/docs alignment (#91)
* chore: initialize the memory bank
Add the canonical .memory-bank base with evidence-based project context:
purpose and scope, workflows, stack and validation commands, architecture
map, decisions, and the open work found while documenting the cmdlets.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
* docs: align documentation with the cmdlet source
- Fill all 36 platyPS cmdlet pages from the C# source: synopsis,
description, parameters, defaults, examples, inputs, outputs, and
notes, including documented limitations of the current code
- Check every example against live parameter metadata and run them in a
sandbox; fix examples that did not work (CSV restore, account filter,
recursive inheritance, -AccessRights typos)
- Rewrite the home, concepts, examples, README, and contributor pages;
add a grouped cmdlet overview, module settings, privileges, long paths,
and the platyPS workflow
- Document Remove-Item2 -PassThru as renamed after 4.2.6 (#64)
- Fix mkdocs.yml navigation, edit_uri, and copyright markup; add
build.os and a pinned MkDocs version for Read the Docs
- Point online help links to the pages on GitHub; add CHANGELOG.md
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
* ci: build the module and check the docs against the build
The documentation check ran Update-MarkdownHelp against the NTFSSecurity
release from the PowerShell Gallery (4.2.6), so it failed for every
unreleased parameter change. PR #91 failed because 4.2.6 still has
Remove-Item2 -PassThur while the source and the docs have -PassThru.
- Build NTFSSecurity.csproj in Release on the Visual Studio 2022 image,
using the .NET Framework 4.5.2 reference assemblies package instead of
an installed targeting pack
- Check Docs/Cmdlets against the module built from source
- Pin platyPS 0.14.2 and MarkdownLinkCheck 0.2.0, and enable TLS 1.2 so
the NuGet provider bootstrap works
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
* chore: record the green PR 91 build in the memory bank
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
1 month ago
|
|
|
## Next step
|
|
|
|
|
|
|
|
|
|
Phase 2, one step at a time, each with evidence before the next:
|
|
|
|
|
|
|
|
|
|
1. Tests for the cmdlets without tests of their own: done for
|
|
|
|
|
`Set-NTFSOwner`, `Test-Path2`, `Get-DiskSpace`, and the link cmdlets;
|
|
|
|
|
open for `Get-NTFSOrphanedAudit` and `Get-NTFSSimpleAccess`.
|
|
|
|
|
2. The other parameter sets and error paths, such as the
|
|
|
|
|
`-SecurityDescriptor` sets of the inheritance cmdlets and of
|
|
|
|
|
`Clear-NTFSAccess`.
|
|
|
|
|
3. The paths of `Security2` that no test runs, and #110.
|
|
|
|
|
4. Test-first fixes of the known defects; behavior changes go to the
|
|
|
|
|
maintainer (Decision 16).
|
|
|
|
|
5. A CI job as a basic user, live tests for the other cmdlets over SMB and
|
|
|
|
|
for accounts of other forests, and a lab run.
|
|
|
|
|
6. Measure the coverage again, explain what remains, review, and prepare
|
|
|
|
|
5.0.0-rc6. The final review covers the whole branch, including the fix
|
|
|
|
|
round of `578042f` and `b241441`.
|
|
|
|
|
|
|
|
|
|
Open question for the maintainer, not planned: `New-NTFSSymbolicLink`
|
|
|
|
|
could request unprivileged creation with
|
|
|
|
|
`SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE`, so that Developer Mode
|
|
|
|
|
works. That is a behavior change (Decision 16) and needs a fallback for
|
|
|
|
|
Windows versions before 10 1703, which don't know the flag.
|