From 7d8105e7d010cdace2a7d03723874716d5e75038 Mon Sep 17 00:00:00 2001 From: Aaron Stannard Date: Mon, 10 Aug 2026 05:08:20 +0000 Subject: [PATCH] Prepare 0.3.0-alpha.5 release --- Directory.Build.props | 2 +- IMPLEMENTATION_PLAN.md | 5 +++++ RELEASE_NOTES.md | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index dbbcf24..1f58328 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -8,7 +8,7 @@ enable true 0.3.0 - alpha.4 + alpha.5 diff --git a/IMPLEMENTATION_PLAN.md b/IMPLEMENTATION_PLAN.md index 130504f..d29a4d8 100644 --- a/IMPLEMENTATION_PLAN.md +++ b/IMPLEMENTATION_PLAN.md @@ -620,6 +620,11 @@ priorities. and [GitHub prerelease](https://github.com/Aaronontheweb/ShellSyntaxTree/releases/tag/0.3.0-alpha.4) preserve strict unknown and source-mutated policy facts while default-mode static PowerShell commands no longer require ambient resolution proof. +- [ ] Publish `0.3.0-alpha.5` with the reviewed host-selected PowerShell dialect + contract, explicit PowerShell 7.6 and Windows PowerShell 5.1 behavior, + same-language child-host selection, cross-language non-delegation, and + live dual-dialect Windows oracle proof. Use this package for Netclaw's + native-Windows integration gate. - [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 41254b0..8602fc6 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -19,6 +19,38 @@ property also participates in options-record equality, hashing, `ToString()`, reflection, and default serialization shape. +#### 0.3.0-alpha.5 2026-08-10 #### + +This prerelease adds an explicit host-selected PowerShell dialect contract and +keeps Bash and PowerShell analysis at the native host boundary. The v0.2 +projection remains supported, and the public API changes are additive. + +## Added + +- Add `PwshDialect` and `PwshParserOptions.Dialect`, defaulting to the + compatible PowerShell 7 behavior and failing closed for unknown enum values. +- Model Windows PowerShell 5.1 as an explicit native-Windows fallback with its + own alias catalog, receiver conservatism, and rejection of unsupported + `&&` / `||` pipeline-chain syntax. +- Carry the selected dialect through nested PowerShell parsing and select the + matching dialect for static same-language `pwsh` and `powershell.exe` child + hosts. + +## Security and compatibility + +- Keep shell languages separate: Bash treats `pwsh` as an ordinary external + command, and PowerShell treats `bash` as an ordinary external command. The + parser never interprets a child command string in the other language. +- Require consumers to select `PowerShell7` only for a compatible PowerShell + 7.6 host (`>=7.6.4` and `<7.7`) and use `WindowsPowerShell51` for the native + `powershell.exe` fallback. Host selection, parser dialect, approval policy, + and executor identity must agree. +- Preserve the v0.2 compatibility projection and report exactly two additive + public API changes: the dialect enum and the parser-options property. +- Expand the generated PowerShell corpus to 504 entries. Linux and Windows CI + validate it with hash-pinned PowerShell 7.6.4; Windows additionally validates + the Windows PowerShell 5.1 dialect with the native executable. + #### 0.3.0-alpha.4 2026-08-09 #### This prerelease corrects PowerShell occurrence completeness to describe the