Browse Source

docs(memory-bank): record that rc9 is merged, tagged, and published, and that its lab acceptance runs

#131 (rc9) and #132 (the Memory Bank) are merged, the tag 5.0.0-rc9 is at the
merge commit of #131 (823c814, whose tree equals the validated head 696ac38),
the CI run of the tag passed, and the Gallery and GitHub have the package.
The identity check verified the published bytes (hashes in progress.md), and
the pathological-input, ToString, and valid-shape probes give the results of
the validated build on them. The lab acceptance of the published bytes runs in
one detached chain since 11:00:36Z; activeContext.md says how to finish it and
what the stable pull request needs. The oldest milestones of progress.md are
condensed to stay within the line budget.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
master
Raimund Andree 1 week ago
parent
commit
72176542f0
  1. 75
      .memory-bank/activeContext.md
  2. 105
      .memory-bank/progress.md

75
.memory-bank/activeContext.md

@ -9,18 +9,24 @@ source: current task evidence
## Current focus
State at 2026-10-21: 5.0.0-rc8 is published and accepted (tag `c719197`, CI run
`39408140862`, Gallery 2026-10-20 10:40:58Z, GitHub 10:41:07Z, identity check
passed; lab acceptance of the published bytes 10:38 to 11:47Z, record
`Tests/Lab/Acceptance-2026-10-20-published-rc8.md`, #128). `master` is
`d0cb57c`: the maintainer merged #128 (2026-10-21 05:48Z), the tests-only round
#129 (08:24Z), and the Memory Bank #130 (08:47Z).
State at 2026-10-22: 5.0.0-rc9 is published, the last prerelease before the
stable 5.0.0 (Decision 27). The maintainer merged #131 (`823c814`, 08:13Z; its
tree is byte-identical to the validated head `696ac38`) and the Memory Bank
#132 (`f2bcd9d`, 10:15Z), and pushed the lightweight tag `5.0.0-rc9` at
`823c814` at about 08:37Z. The CI run `39749188259` of the tag passed (Build
and test, then Release without an approval step) and the GitHub prerelease
appeared at 08:51:19Z. `Test-PublishedRelease.ps1` printed
`PUBLISHED_IDENTITY_VERIFIED` at 10:54Z and again inside the chain at 11:02Z
(the Gallery's SHA-512 matches the nupkg, the 11 module files are identical in
the nupkg and the zip, the manifest says `5.0.0-rc9`); the pathological-input,
`ToString`, and valid-shape probes give the results of the validated build on
the published bytes. The lab acceptance of the published bytes runs since
11:00:36Z in one detached chain (`Chain-Published.ps1 -Version 5.0.0-rc9 -Tag
rc9`, evidence `files\rc9\rc9-published` in the session folder, expected end
about 12:10Z, heartbeat every 10 minutes). rc8 (tag `c719197`) was accepted on
2026-10-20 (record `Tests/Lab/Acceptance-2026-10-20-published-rc8.md`, #128).
The last prerelease before the stable 5.0.0 is rc9 (Decision 27). The branch
`ai/rc9` (base `d0cb57c`, 36 commits, head `696ac38`) is complete and
validated; it is local until the maintainer pushes it, opens the pull request
(body: `C:\Temp\ntfs-rc9\final-msgs\pr-rc9-body.md`, temporary), merges it, and
tags `5.0.0-rc9`. It contains: the five piped parameters of `Add-` and
rc9 contains (36 commits over `d0cb57c`, head `696ac38`): the five piped parameters of `Add-` and
`Remove-NTFSAccess` and `-NTFSAudit` are `object`, converted in the cmdlet
(`ParameterConversion`), so a typo for `Deny` no longer creates an Allow entry;
a list for `-AccessType` and `-AppliesTo` is rejected; the `-SecurityDescriptor`
@ -53,12 +59,10 @@ ends the host through the three flags parameters, as in rc8 (known limit). A
blank, `$null`, or `DBNull` value of the other parameter group is
`AmbiguousParameterSet` (documented, not restructured).
Open before the stable pull request: the pull request, merge, and tag of rc9
(maintainer); the lab acceptance of the published rc9 (agent, about 70
minutes, `Chain-Published.ps1`); his decision on #34 on 2026-11-02; his check of
`PSGALLERY_API_KEY`. The stable change then touches only the label, the
CHANGELOG, and `$publishedVersions` (add `5.0.0-rc9`). The Memory Bank of this
work is a separate pull request (branch `ai/memory-bank-merged`).
Open before the stable pull request: the end of the lab acceptance of the
published rc9 and its record (agent); his decision on #34 on 2026-11-02; his
check of `PSGALLERY_API_KEY`. The stable change then touches only the label,
the CHANGELOG, and `$publishedVersions` (add `5.0.0-rc9`; the list ends at rc8).
State at 2026-10-10: the maintainer integrated the release-gate stack into
`master` (#116, #120, #118, #119, #121; `fa0701b`, CI green; GitHub closed #117
@ -73,13 +77,15 @@ Decisions 22 and 24 on 2026-10-19 and decides 23 on 2026-11-02.
- Evidence of rc9 is outside git, in the session folder
`816cf47d-2f80-4eba-8ac9-41702c49560b\files\rc9`: the specs and review briefs,
`suite-full1` (first integration), `suite-final`, `suite-final2`,
`suite-final3`, `suite-final4`, `suite-final5`, `suite-final6-b436423`, and
`suite-final7-696ac38` (the head), the probes (`p-*.ps1`,
`fixb-probe`, `shapes-r2`, `Run-Oracle.ps1`, `Run-Pathological.ps1`), the
published rc8 (`rc8-published`), and the analyzer and surface results. The
review probes of the reviewers are in `C:\Temp\ntfs-rc9\review*-probes-*`
(temporary). The worktrees under `C:\Temp\ntfs-rc9` are temporary too.
`suite-full1` (first integration), `suite-final` to `suite-final7-696ac38`
(the head), the probes (`p-*.ps1`, `fixb-probe`, `shapes-r2`, `Run-Oracle.ps1`,
`Run-Pathological.ps1`), the published rc8 (`rc8-published`), the published
rc9 (`rc9-published-identity`: the nupkg, the zip, `Identity-5.0.0-rc9.json`;
`oracle-published-rc9`), the chain of the acceptance (`rc9-published`: log
`chain-published-rc9.log`, a stage folder and a result folder per stage), and
the analyzer and surface results. The review probes of the reviewers are in
`C:\Temp\ntfs-rc9\review*-probes-*` (temporary). The worktrees under
`C:\Temp\ntfs-rc9` are temporary too.
- Milestones of earlier gates (rc6 and rc7 releases, handoff 1, the operating
system matrix, handoff 5, the rc7 and rc8 acceptances) are in `progress.md`
and in the records and reports under `Tests/Lab` and `Tests/Coverage`.
@ -99,17 +105,20 @@ Decisions 22 and 24 on 2026-10-19 and decides 23 on 2026-11-02.
## Next step
1. The maintainer pushes `ai/rc9`, creates the pull request, merges it after
CI, and tags `5.0.0-rc9` (commands in the reply of 2026-10-21; every release
step is his). Then run `Chain-Published.ps1 -Version 5.0.0-rc9 -Tag 5.0.0-rc9
-Evidence <dir>` from the session files (about 70 minutes, detached, with the
heartbeat; save the labs afterwards) and write the acceptance record
`Tests/Lab/Acceptance-<date>-published-rc9.md`. A defect that it finds needs
rc10.
1. Lab acceptance of the published rc9: the chain started 2026-10-22 11:00:36Z
(log `rc9-published\chain-published-rc9.log`; 68 minutes for rc8). When the
log ends with `chain-published-rc9-DONE`, read the stage logs and the
`Validate-LabResults.ps1` output, never the marker alone; save the machines
again (`Save-VM`;
`OSWin11E` is off after its hour); write
`Tests/Lab/Acceptance-2026-10-22-published-rc9.md` and update this file,
`progress.md`, and `deployment-notes.md` in one pull request (branch
`ai/acceptance-published-rc9`; the maintainer pushes and merges). A defect
that the chain finds needs rc10.
2. The stable pull request: no `Prerelease`, `## [5.0.0] - <date>` with an empty
`[Unreleased]` and the links, and `5.0.0-rc9` in `$publishedVersions` (the
list ends at rc7 now; rc8 comes with the rc9 pull request). The maintainer
checks the expiry of `PSGALLERY_API_KEY` first, merges, and tags.
list ends at rc8). The maintainer checks the expiry of `PSGALLERY_API_KEY`
first, merges, and tags. Not before his decision on #34 (item 3).
3. #34 waits for a tester until 2026-11-02 (Decision 23, option 3; checklist:
`Tests/Lab/Non-Windows-File-Server-Test.md`). On that date the maintainer
chooses between waiting longer and accepting the untested risk with a

105
.memory-bank/progress.md

@ -9,18 +9,19 @@ source: repository and validation evidence
## Current status
5.0.0-rc8 is published on the Gallery and GitHub (2026-10-20, tag at
`c719197`); rc7 (2026-10-10, tag at `fa0701b`) is the one before it. On
2026-10-10 the maintainer merged the stack of #116, #120, #118, #119, and #121
into `master` (CI green; the milestones have the details). On 2026-10-19 he
merged #125 (Handoff 5) and #124 (Dependabot) and decided the path to stable
(Decision 21, "Closing the gate"); on 2026-10-20 he merged #126 (the decisions)
and #127 (the rc8 fix and label) and tagged rc8; on 2026-10-21 he merged #128
(the rc8 record), #129 (tests), and #130 (this file). The published rc7 and
rc8 passed their lab acceptance in the matrix and in the first lab. rc9
(Decision 27) is built on the local branch `ai/rc9` and waits for his push,
pull request, merge, and tag. Stable Gallery version: 4.2.6. After 5.0.0,
archive in favor of WindowsAccessControl (Decision 18).
5.0.0-rc9 is published on the Gallery and GitHub (2026-10-22, tag at `823c814`);
rc8 (2026-10-20, tag at `c719197`) and rc7 (2026-10-10, tag at `fa0701b`) are the
ones before it. On 2026-10-10 the maintainer merged the stack of #116, #120,
#118, #119, and #121 into `master` (CI green; the milestones have the details).
On 2026-10-19 he merged #125 (Handoff 5) and #124 (Dependabot) and decided the
path to stable (Decision 21, "Closing the gate"); on 2026-10-20 he merged #126
(the decisions) and #127 (the rc8 fix and label) and tagged rc8; on 2026-10-21
he merged #128 (the rc8 record), #129 (tests), and #130 (this file); on
2026-10-22 he merged #131 (rc9) and #132 (the Memory Bank) and tagged rc9. The
published rc7 and rc8 passed their lab acceptance in the matrix and in the
first lab; the acceptance of the published rc9 runs (see `activeContext.md`).
Stable Gallery version: 4.2.6. After 5.0.0, archive in favor of
WindowsAccessControl (Decision 18).
## Recent milestones
@ -32,47 +33,34 @@ archive in favor of WindowsAccessControl (Decision 18).
Gallery publication and attempt 2 succeeded (GitHub prerelease 2026-10-09
07:01:34Z); the log does not establish the earlier assumed timeout cause.
Detail: git, `CHANGELOG.md`, `Docs/Version-History.md`, Decisions 1 to 22.
- 2026-10-09: the autonomous follow-up (#117, then #120, through `3442194`) and
handoff 1 (#118) took the suite from 202 cases above rc7 to 1,310 per
configuration with zero failures and 3,192/3,634 sequence points (87.84%;
74.21% before); publication recovery verifies the exact SHA-512 identity.
Eleven defects were fixed, ten with a guard that is red before the fix (76
rows red at the base), among them a later command's exception that cmdlets
swallowed (a `throw` made `Remove-Item2` remove the next item) and a privilege
left enabled. Lab acceptance, `83149ee` against `f11ff41`: 486 passed, 0
failed against 338 passed, 148 failed. Report in `Tests/Coverage`; record
`Tests/Lab/Acceptance-2026-10-09-quality-gate-paths.md`.
- 2026-10-09 to 10: handoffs 2 to 4 under the maintainer's delegation (decisions
D1 to D47 in the night log of the session files). The matrix lab
`NtfsSecurityOsMatrixLab` (Server 2019, 2022, 2025, a Windows 11 Enterprise
22H2 client, Windows 11 26H1 suite only) found three module defects, fixed in
`962887a` and `fdd7a8b`: audit inheritance by descriptor,
`Get-NTFSEffectiveAccess -ServerName ''`, and the same cmdlet for a
non-administrator on a domain member. The final candidate passes the module's
suite on every machine (24 runs), the live controller in three cells (1,374
passed, 0 failed, 12 skipped), and the first lab with case 9 (245 passed, 0
failed, 1 skipped per edition). The Server 2022 effective-access failures
were stale account state, not the module (the controller names the case-3
account anew, `1dec389`). The built-in security review found no exploitable
vulnerability and two LOW items left for the maintainer. Record:
- 2026-10-09 to 10: the quality gate. The autonomous follow-up (#117, then
#120) and handoff 1 (#118) took the suite from 202 cases above rc7 to 1,310
per configuration (3,192/3,634 sequence points, 87.84%) and fixed eleven
defects, ten with a guard that is red before the fix (a later command's
exception that cmdlets swallowed, a privilege left enabled); lab acceptance
`83149ee` against `f11ff41`: 486 passed against 338 passed, 148 failed
(record `Tests/Lab/Acceptance-2026-10-09-quality-gate-paths.md`). Handoffs 2
to 4 (decisions D1 to D47 in the night log of the session files) built the
matrix lab `NtfsSecurityOsMatrixLab` (Server 2019, 2022, 2025, Windows 11
22H2; 26H1 suite only), which found three module defects, fixed in `962887a`
and `fdd7a8b` (audit inheritance by descriptor, `Get-NTFSEffectiveAccess
-ServerName ''`, the same cmdlet for a non-administrator on a domain member);
the final candidate passed the suite on every machine (24 runs), the live
controller in three cells (1,374/0/12), and the first lab (245/0/1 per
edition); the built-in security review found no exploitable vulnerability and
two LOW items for the maintainer. Record
`Tests/Lab/Acceptance-2026-10-10-os-matrix.md`.
- 2026-10-10: the maintainer integrated the stack. His branch deletion after the
merge of #116 (`8a6be9f`, 09:10:12Z) removed the base branch of #117, and
GitHub closed #117 unmerged three seconds later instead of retargeting it
(`cli/cli#14223` shows the same events); the earlier guidance that relied on a
retarget was wrong. Nothing was lost: #120 (`bdb9981`, 10:50Z) replaced #117,
then #118 (`03bef2c`, 11:12Z) and #119 (`fa0701b`, 11:28Z) merged after their
retargeting; CI on `master` passed at 11:40Z. Decision 15 has the rule.
- 2026-10-10: rc7 published. The maintainer tagged `fa0701b` at about 12:20Z;
the CI run of the tag passed and the Release job published without an
approval step (Gallery 12:30:57Z, GitHub 12:31:09Z). The identity check
(`Test-PublishedRelease.ps1`, 12:33Z) passed: Gallery SHA-512, nupkg and zip
identical, manifest `5.0.0-rc7`. Hashes: deployment notes.
- 2026-10-10: gate 3 on the published rc7, 14:29 to 15:30 UTC, in one detached
driver: the three matrix cells 1,374 passed, 0 failed, 12 skipped; the suite
in 24 runs on six machine classes without a failure; the first lab with case
9 245 / 0 / 1 per edition; every end state CLEAN. The counts equal those of
the final local candidate. Record:
merge of #116 (`8a6be9f`) removed the base branch of #117, and GitHub closed
#117 unmerged instead of retargeting it (`cli/cli#14223`; Decision 15 has the
rule); #120 (`bdb9981`) replaced it, then #118 (`03bef2c`) and #119
(`fa0701b`) merged; CI on `master` passed at 11:40Z.
- 2026-10-10: rc7 published (tag `fa0701b` at about 12:20Z, Gallery 12:30:57Z,
GitHub 12:31:09Z, no approval step; identity check passed at 12:33Z; hashes in
the deployment notes). Gate 3 on the published rc7 (14:29 to 15:30 UTC, one
detached driver): three cells 1,374/0/12, the suite in 24 runs on six machine
classes without a failure, the first lab 245/0/1 per edition, every end state
CLEAN; the counts equal those of the final local candidate. Record
`Tests/Lab/Acceptance-2026-10-10-published-rc7.md`.
- 2026-10-10 to 2026-10-11: Handoff 5, the coverage unknowns (branch
`ai/coverage-unknowns`, merged as #125 on 2026-10-19). rc7 measured at
@ -120,7 +108,7 @@ archive in favor of WindowsAccessControl (Decision 18).
chosen on 2026-10-21, and four work items started (branch
`ai/rc9-before-stable`).
- 2026-10-21: rc9 built and reviewed (Decision 27; branch `ai/rc9`, 36 commits
over `d0cb57c`, head `696ac38`, local until he pushes). Four implementers
over `d0cb57c`, head `696ac38`). Four implementers
worked test-first in worktrees (the five piped parameters, the 17 handlers
and three inconsistencies, the library items, the filter); the chains were
cherry-picked in order, so every fix sits in the commit of its item. Round 1
@ -133,6 +121,19 @@ archive in favor of WindowsAccessControl (Decision 18).
`696ac38`: 2,162 cases per configuration, 0 failed in four configurations
(rc8: 1,615); docs fixpoint; analyzer clean; valid shapes differ from rc8 in
9 list rows only; both reviewers: no finding.
- 2026-10-22: rc9 published. The maintainer merged #131 (`823c814`, 08:13Z; its
tree equals the validated `696ac38`; the CI of the PR ran 2,162 cases per
configuration on the runner, equal to the local run in all four
configurations) and #132 (`f2bcd9d`, 10:15Z), and tagged `823c814` at about
08:37Z. The CI run `39749188259` of the tag passed, Release without an
approval step; GitHub 08:51:19Z. `Test-PublishedRelease.ps1`: identity
verified at 10:54Z. Published bytes: `NTFSSecurity.dll` SHA-256
`464CAB365AD63CD22208B21012A5B7F0B8B630E819CF300019787A0172791198`, zip
`5A05BC008605D9B4B1EAB074FFC811B460FAF6D3549701D00ABA15D9208ED571`, nupkg
`72CC5E28567BEC564DB052AF34C91F237ECFC9558FA2E981E201E02E16B4F8F3`. The
published bytes give the results of the validated build in the pathological,
`ToString`, and valid-shape probes (9 list rows differ from rc8). The lab
acceptance chain started at 11:00:36Z.
## Stable capabilities

Loading…
Cancel
Save