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 ## Current focus
State at 2026-10-21: 5.0.0-rc8 is published and accepted (tag `c719197`, CI run State at 2026-10-22: 5.0.0-rc9 is published, the last prerelease before the
`39408140862`, Gallery 2026-10-20 10:40:58Z, GitHub 10:41:07Z, identity check stable 5.0.0 (Decision 27). The maintainer merged #131 (`823c814`, 08:13Z; its
passed; lab acceptance of the published bytes 10:38 to 11:47Z, record tree is byte-identical to the validated head `696ac38`) and the Memory Bank
`Tests/Lab/Acceptance-2026-10-20-published-rc8.md`, #128). `master` is #132 (`f2bcd9d`, 10:15Z), and pushed the lightweight tag `5.0.0-rc9` at
`d0cb57c`: the maintainer merged #128 (2026-10-21 05:48Z), the tests-only round `823c814` at about 08:37Z. The CI run `39749188259` of the tag passed (Build
#129 (08:24Z), and the Memory Bank #130 (08:47Z). 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 rc9 contains (36 commits over `d0cb57c`, head `696ac38`): the five piped parameters of `Add-` and
`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
`Remove-NTFSAccess` and `-NTFSAudit` are `object`, converted in the cmdlet `Remove-NTFSAccess` and `-NTFSAudit` are `object`, converted in the cmdlet
(`ParameterConversion`), so a typo for `Deny` no longer creates an Allow entry; (`ParameterConversion`), so a typo for `Deny` no longer creates an Allow entry;
a list for `-AccessType` and `-AppliesTo` is rejected; the `-SecurityDescriptor` 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 blank, `$null`, or `DBNull` value of the other parameter group is
`AmbiguousParameterSet` (documented, not restructured). `AmbiguousParameterSet` (documented, not restructured).
Open before the stable pull request: the pull request, merge, and tag of rc9 Open before the stable pull request: the end of the lab acceptance of the
(maintainer); the lab acceptance of the published rc9 (agent, about 70 published rc9 and its record (agent); his decision on #34 on 2026-11-02; his
minutes, `Chain-Published.ps1`); his decision on #34 on 2026-11-02; his check of check of `PSGALLERY_API_KEY`. The stable change then touches only the label,
`PSGALLERY_API_KEY`. The stable change then touches only the label, the the CHANGELOG, and `$publishedVersions` (add `5.0.0-rc9`; the list ends at rc8).
CHANGELOG, and `$publishedVersions` (add `5.0.0-rc9`). The Memory Bank of this
work is a separate pull request (branch `ai/memory-bank-merged`).
State at 2026-10-10: the maintainer integrated the release-gate stack into 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 `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 - Evidence of rc9 is outside git, in the session folder
`816cf47d-2f80-4eba-8ac9-41702c49560b\files\rc9`: the specs and review briefs, `816cf47d-2f80-4eba-8ac9-41702c49560b\files\rc9`: the specs and review briefs,
`suite-full1` (first integration), `suite-final`, `suite-final2`, `suite-full1` (first integration), `suite-final` to `suite-final7-696ac38`
`suite-final3`, `suite-final4`, `suite-final5`, `suite-final6-b436423`, and (the head), the probes (`p-*.ps1`, `fixb-probe`, `shapes-r2`, `Run-Oracle.ps1`,
`suite-final7-696ac38` (the head), the probes (`p-*.ps1`, `Run-Pathological.ps1`), the published rc8 (`rc8-published`), the published
`fixb-probe`, `shapes-r2`, `Run-Oracle.ps1`, `Run-Pathological.ps1`), the rc9 (`rc9-published-identity`: the nupkg, the zip, `Identity-5.0.0-rc9.json`;
published rc8 (`rc8-published`), and the analyzer and surface results. The `oracle-published-rc9`), the chain of the acceptance (`rc9-published`: log
review probes of the reviewers are in `C:\Temp\ntfs-rc9\review*-probes-*` `chain-published-rc9.log`, a stage folder and a result folder per stage), and
(temporary). The worktrees under `C:\Temp\ntfs-rc9` are temporary too. 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 - 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` 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`. 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 ## Next step
1. The maintainer pushes `ai/rc9`, creates the pull request, merges it after 1. Lab acceptance of the published rc9: the chain started 2026-10-22 11:00:36Z
CI, and tags `5.0.0-rc9` (commands in the reply of 2026-10-21; every release (log `rc9-published\chain-published-rc9.log`; 68 minutes for rc8). When the
step is his). Then run `Chain-Published.ps1 -Version 5.0.0-rc9 -Tag 5.0.0-rc9 log ends with `chain-published-rc9-DONE`, read the stage logs and the
-Evidence <dir>` from the session files (about 70 minutes, detached, with the `Validate-LabResults.ps1` output, never the marker alone; save the machines
heartbeat; save the labs afterwards) and write the acceptance record again (`Save-VM`;
`Tests/Lab/Acceptance-<date>-published-rc9.md`. A defect that it finds needs `OSWin11E` is off after its hour); write
rc10. `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 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 `[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 list ends at rc8). The maintainer checks the expiry of `PSGALLERY_API_KEY`
checks the expiry of `PSGALLERY_API_KEY` first, merges, and tags. 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: 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 `Tests/Lab/Non-Windows-File-Server-Test.md`). On that date the maintainer
chooses between waiting longer and accepting the untested risk with a 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 ## Current status
5.0.0-rc8 is published on the Gallery and GitHub (2026-10-20, tag at 5.0.0-rc9 is published on the Gallery and GitHub (2026-10-22, tag at `823c814`);
`c719197`); rc7 (2026-10-10, tag at `fa0701b`) is the one before it. On rc8 (2026-10-20, tag at `c719197`) and rc7 (2026-10-10, tag at `fa0701b`) are the
2026-10-10 the maintainer merged the stack of #116, #120, #118, #119, and #121 ones before it. On 2026-10-10 the maintainer merged the stack of #116, #120,
into `master` (CI green; the milestones have the details). On 2026-10-19 he #118, #119, and #121 into `master` (CI green; the milestones have the details).
merged #125 (Handoff 5) and #124 (Dependabot) and decided the path to stable On 2026-10-19 he merged #125 (Handoff 5) and #124 (Dependabot) and decided the
(Decision 21, "Closing the gate"); on 2026-10-20 he merged #126 (the decisions) path to stable (Decision 21, "Closing the gate"); on 2026-10-20 he merged #126
and #127 (the rc8 fix and label) and tagged rc8; on 2026-10-21 he merged #128 (the decisions) and #127 (the rc8 fix and label) and tagged rc8; on 2026-10-21
(the rc8 record), #129 (tests), and #130 (this file). The published rc7 and he merged #128 (the rc8 record), #129 (tests), and #130 (this file); on
rc8 passed their lab acceptance in the matrix and in the first lab. rc9 2026-10-22 he merged #131 (rc9) and #132 (the Memory Bank) and tagged rc9. The
(Decision 27) is built on the local branch `ai/rc9` and waits for his push, published rc7 and rc8 passed their lab acceptance in the matrix and in the
pull request, merge, and tag. Stable Gallery version: 4.2.6. After 5.0.0, first lab; the acceptance of the published rc9 runs (see `activeContext.md`).
archive in favor of WindowsAccessControl (Decision 18). Stable Gallery version: 4.2.6. After 5.0.0, archive in favor of
WindowsAccessControl (Decision 18).
## Recent milestones ## Recent milestones
@ -32,47 +33,34 @@ archive in favor of WindowsAccessControl (Decision 18).
Gallery publication and attempt 2 succeeded (GitHub prerelease 2026-10-09 Gallery publication and attempt 2 succeeded (GitHub prerelease 2026-10-09
07:01:34Z); the log does not establish the earlier assumed timeout cause. 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. 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 - 2026-10-09 to 10: the quality gate. The autonomous follow-up (#117, then
handoff 1 (#118) took the suite from 202 cases above rc7 to 1,310 per #120) and handoff 1 (#118) took the suite from 202 cases above rc7 to 1,310
configuration with zero failures and 3,192/3,634 sequence points (87.84%; per configuration (3,192/3,634 sequence points, 87.84%) and fixed eleven
74.21% before); publication recovery verifies the exact SHA-512 identity. defects, ten with a guard that is red before the fix (a later command's
Eleven defects were fixed, ten with a guard that is red before the fix (76 exception that cmdlets swallowed, a privilege left enabled); lab acceptance
rows red at the base), among them a later command's exception that cmdlets `83149ee` against `f11ff41`: 486 passed against 338 passed, 148 failed
swallowed (a `throw` made `Remove-Item2` remove the next item) and a privilege (record `Tests/Lab/Acceptance-2026-10-09-quality-gate-paths.md`). Handoffs 2
left enabled. Lab acceptance, `83149ee` against `f11ff41`: 486 passed, 0 to 4 (decisions D1 to D47 in the night log of the session files) built the
failed against 338 passed, 148 failed. Report in `Tests/Coverage`; record matrix lab `NtfsSecurityOsMatrixLab` (Server 2019, 2022, 2025, Windows 11
`Tests/Lab/Acceptance-2026-10-09-quality-gate-paths.md`. 22H2; 26H1 suite only), which found three module defects, fixed in `962887a`
- 2026-10-09 to 10: handoffs 2 to 4 under the maintainer's delegation (decisions and `fdd7a8b` (audit inheritance by descriptor, `Get-NTFSEffectiveAccess
D1 to D47 in the night log of the session files). The matrix lab -ServerName ''`, the same cmdlet for a non-administrator on a domain member);
`NtfsSecurityOsMatrixLab` (Server 2019, 2022, 2025, a Windows 11 Enterprise the final candidate passed the suite on every machine (24 runs), the live
22H2 client, Windows 11 26H1 suite only) found three module defects, fixed in controller in three cells (1,374/0/12), and the first lab (245/0/1 per
`962887a` and `fdd7a8b`: audit inheritance by descriptor, edition); the built-in security review found no exploitable vulnerability and
`Get-NTFSEffectiveAccess -ServerName ''`, and the same cmdlet for a two LOW items for the maintainer. Record
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:
`Tests/Lab/Acceptance-2026-10-10-os-matrix.md`. `Tests/Lab/Acceptance-2026-10-10-os-matrix.md`.
- 2026-10-10: the maintainer integrated the stack. His branch deletion after the - 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 merge of #116 (`8a6be9f`) removed the base branch of #117, and GitHub closed
GitHub closed #117 unmerged three seconds later instead of retargeting it #117 unmerged instead of retargeting it (`cli/cli#14223`; Decision 15 has the
(`cli/cli#14223` shows the same events); the earlier guidance that relied on a rule); #120 (`bdb9981`) replaced it, then #118 (`03bef2c`) and #119
retarget was wrong. Nothing was lost: #120 (`bdb9981`, 10:50Z) replaced #117, (`fa0701b`) merged; CI on `master` passed at 11:40Z.
then #118 (`03bef2c`, 11:12Z) and #119 (`fa0701b`, 11:28Z) merged after their - 2026-10-10: rc7 published (tag `fa0701b` at about 12:20Z, Gallery 12:30:57Z,
retargeting; CI on `master` passed at 11:40Z. Decision 15 has the rule. GitHub 12:31:09Z, no approval step; identity check passed at 12:33Z; hashes in
- 2026-10-10: rc7 published. The maintainer tagged `fa0701b` at about 12:20Z; the deployment notes). Gate 3 on the published rc7 (14:29 to 15:30 UTC, one
the CI run of the tag passed and the Release job published without an detached driver): three cells 1,374/0/12, the suite in 24 runs on six machine
approval step (Gallery 12:30:57Z, GitHub 12:31:09Z). The identity check classes without a failure, the first lab 245/0/1 per edition, every end state
(`Test-PublishedRelease.ps1`, 12:33Z) passed: Gallery SHA-512, nupkg and zip CLEAN; the counts equal those of the final local candidate. Record
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:
`Tests/Lab/Acceptance-2026-10-10-published-rc7.md`. `Tests/Lab/Acceptance-2026-10-10-published-rc7.md`.
- 2026-10-10 to 2026-10-11: Handoff 5, the coverage unknowns (branch - 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 `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 chosen on 2026-10-21, and four work items started (branch
`ai/rc9-before-stable`). `ai/rc9-before-stable`).
- 2026-10-21: rc9 built and reviewed (Decision 27; branch `ai/rc9`, 36 commits - 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 worked test-first in worktrees (the five piped parameters, the 17 handlers
and three inconsistencies, the library items, the filter); the chains were 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 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 `696ac38`: 2,162 cases per configuration, 0 failed in four configurations
(rc8: 1,615); docs fixpoint; analyzer clean; valid shapes differ from rc8 in (rc8: 1,615); docs fixpoint; analyzer clean; valid shapes differ from rc8 in
9 list rows only; both reviewers: no finding. 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 ## Stable capabilities

Loading…
Cancel
Save