New `create_placeholder_chain()` function in path_id.rs materializes missing intermediates and empty leaf for non-existent deny targets. In cli.rs, `canonicalize_ace_targets()` calls this when encountering `CanonError::NotFound` on deny targets, stamping leaf with full `SbAce::Deny` and intermediates with `SbAce::DenyDelete`. Trailing-separator handling: `leaf_is_dir = p.ends_with(['\\', '/'])` in cli.rs; smoke test A31(d) confirms trailing `\` materializes as directory. All changes integrated w
src/sandbox/sandbox-manager.ts, src/sandbox/windows-sandbox-utils.ts, test/sandbox/glob-expand.test.ts, vendor/srt-win-src/ci/smoke-aces.ps1, vendor/srt-win-src/src/acl.rs, vendor/srt-win-src/src/cli.rs
fns: computeWindowsFsAccessSet, wrapWithSandboxArgv, uninstallWindowsSandbox, describe, SbAce, SbAceSet, AceReleaseEntry, run