From dc58311c14f83160862567ef05113e8d97a76217 Mon Sep 17 00:00:00 2001 From: Aaron Stannard Date: Sun, 9 Aug 2026 15:05:26 +0000 Subject: [PATCH] Prepare 0.3.0-alpha.3 release --- Directory.Build.props | 2 +- IMPLEMENTATION_PLAN.md | 4 ++++ RELEASE_NOTES.md | 29 +++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index 5cade44..143419f 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -8,7 +8,7 @@ enable true 0.3.0 - alpha.2 + alpha.3 diff --git a/IMPLEMENTATION_PLAN.md b/IMPLEMENTATION_PLAN.md index 98e9935..ac4186e 100644 --- a/IMPLEMENTATION_PLAN.md +++ b/IMPLEMENTATION_PLAN.md @@ -579,6 +579,10 @@ priorities. and [GitHub prerelease](https://github.com/Aaronontheweb/ShellSyntaxTree/releases/tag/0.3.0-alpha.2) include exact module-qualified-looking alias and canonical alias-target shadowing defenses without changing the public API. +- [ ] Publish `0.3.0-alpha.3` for the Netclaw PowerShell approval integration + after Linux and Windows validate the reviewed initial-state, value, + command-binding, and state-invalidation slice. The package must preserve + the v0.2 projection and the existing public v0.3 API. - [x] Replace the pre-alpha consumer preview with the v0.3 occurrence-based authorization loop and separate syntax-display guidance. Document exact, finite, pattern, unknown, joined-cwd, redirect, incomplete-result, diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index f7525d8..4fc4e45 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -12,6 +12,35 @@ results require a consumer-owned, versioned DTO or explicit serializer mapping that fails closed on unknown node and enum values. +#### 0.3.0-alpha.3 2026-08-09 #### + +This prerelease adds the PowerShell state and value proofs needed for the +Netclaw approval-policy integration. It does not change the public v0.3 API +surface, and the conservative v0.2 projection remains available. + +## Added + +- Apply the explicit PowerShell initial-state contract to command identity, + native-versus-cmdlet argument binding, working-directory attribution, + redirects, automatic `HOME`, and `USERPROFILE` values. +- Preserve argument-binding provenance through static current-scope + `Invoke-Expression` payloads while keeping decoded child-host state isolated. +- Expand the generated PowerShell corpus from 422 to 491 entries with direct, + wrapper, alias, script, redirect, child-host, and unknown-state cases. + +## Security and compatibility + +- Treat aliases as capable of shadowing built-ins and path-shaped command + names; exact argument binding requires constrained, unmutated command + resolution. +- Invalidate following authorization state after uninspected scripts and + unproved in-process invocations instead of retaining stale exact values. +- Keep supported non-pipeline bodies of unknown receivers visible and + incomplete, while failing an unproved interior pipeline atomically with + empty authorization projections. +- Preserve ordinary v0.2 compatibility leaves under ambient uncertainty and + keep the public v0.3 API snapshot unchanged. + #### 0.3.0-alpha.2 2026-08-09 #### This prerelease completes the stable-v0.3 boundary between PowerShell script