Skip to content

Use ShellSyntaxTree v0.3 for Bash approvals - #1835

Merged
Aaronontheweb merged 1 commit into
devfrom
feature/shell-syntax-tree-v03-approval
Aug 9, 2026
Merged

Use ShellSyntaxTree v0.3 for Bash approvals#1835
Aaronontheweb merged 1 commit into
devfrom
feature/shell-syntax-tree-v03-approval

Conversation

@Aaronontheweb

@Aaronontheweb Aaronontheweb commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

Current alpha boundary

This change covers the grammar in 0.3.0-alpha. It keeps the #1795 numeric-operand containment until a later prerelease includes the new Bash mutation work. Loop and mutation acceptance cases will follow that package update.

Validation

  • dotnet build Netclaw.slnx -c Release --no-restore --verbosity minimal
  • dotnet test Netclaw.slnx -c Release --no-build --no-restore
  • 729 security tests passed
  • 2,937 actor tests passed
  • 951 daemon tests passed
  • file-header verification passed
  • Slopwatch passed with zero findings
  • adversarial security review passed after a wrapper-prefix bypass was found and fixed
  • adversarial follow-up passed after the macOS fixture correction; production redirect checks remain unchanged

@Aaronontheweb
Aaronontheweb enabled auto-merge (squash) August 9, 2026 04:30
Comment thread src/Netclaw.Security.Tests/ShellApprovalMatcherTests.cs Fixed
Comment thread src/Netclaw.Security.Tests/ShellApprovalMatcherTests.cs Fixed
Comment thread src/Netclaw.Security.Tests/ShellApprovalMatcherTests.cs Fixed
Comment thread src/Netclaw.Security.Tests/ShellApprovalMatcherTests.cs Fixed
Comment thread src/Netclaw.Security.Tests/ShellApprovalMatcherTests.cs Fixed
@Aaronontheweb
Aaronontheweb force-pushed the feature/shell-syntax-tree-v03-approval branch from 42fdd72 to 3086a3d Compare August 9, 2026 04:57
Comment on lines +236 to +243
foreach (var segment in relative.Split(
[Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar],
StringSplitOptions.RemoveEmptyEntries))
{
var candidate = Path.Combine(current, segment);
current = new DirectoryInfo(candidate).ResolveLinkTarget(returnFinalTarget: true)?.FullName
?? candidate;
}
Comment on lines +743 to +750
foreach (var segment in relative.Split(
[Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar],
StringSplitOptions.RemoveEmptyEntries))
{
var candidate = Path.Combine(current, segment);
current = new DirectoryInfo(candidate).ResolveLinkTarget(returnFinalTarget: true)?.FullName
?? candidate;
}
[Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar],
StringSplitOptions.RemoveEmptyEntries))
{
var candidate = Path.Combine(current, segment);
[Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar],
StringSplitOptions.RemoveEmptyEntries))
{
var candidate = Path.Combine(current, segment);
string[] expectedScopeNames)
{
var root = Path.Combine(Path.GetTempPath(), $"netclaw-path-scopes-{Guid.NewGuid():N}");
var root = Path.Combine(CanonicalTemporaryDirectory(), $"netclaw-path-scopes-{Guid.NewGuid():N}");
[Fact(SkipUnless = nameof(IsPosix), Skip = "POSIX-only path semantics")]
public void Redirect_to_symlink_target_fails_closed()
{
var root = Path.Combine(CanonicalTemporaryDirectory(), $"netclaw-redirect-symlink-{Guid.NewGuid():N}");
@Aaronontheweb
Aaronontheweb force-pushed the feature/shell-syntax-tree-v03-approval branch from 3086a3d to 655023b Compare August 9, 2026 05:08
@Aaronontheweb
Aaronontheweb force-pushed the feature/shell-syntax-tree-v03-approval branch from 655023b to 42d3172 Compare August 9, 2026 05:29
@Aaronontheweb
Aaronontheweb merged commit 6f3c727 into dev Aug 9, 2026
41 of 43 checks passed
@Aaronontheweb
Aaronontheweb deleted the feature/shell-syntax-tree-v03-approval branch August 9, 2026 06:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant