feat(sandbox-windows-acl): ship a diagnosis skill for ACL denials
A denial this backend cannot explain — the confined child cannot open an object it was granted, or provisioning itself fails with Win32 5 — reached the user as a bare "Access is denied". The README documented both causes but shipped no way to tell them apart. Add the `diagnose-windows-sandbox-acl` skill. Its script reads unless a repair switch is passed, and classifies the failing path and its ancestors before anything changes; its two repair modes are the only supported ACL edits. `-Fix` removes a foreign package-SID allow ACE, and `-GrantFullControl` supplies the WRITE_DAC/WRITE_OWNER pair the mandatory-label write needs without ever changing an owner. Both require `-AllowRoot`, refuse a target outside it, and refuse to run together. `dsh-sandbox-local` registers the skill on Windows through `ctx.inject(['skills'], ...)`, so the skill registry stays optional and the sandbox never depends on it. The assets ship in this package's `files` list, which the workspace-constraints gate now pins alongside the runner and emitted-type entries. Tests cover the script's verdicts (foreign ACE, healthy object, inert capability SID, inert DENY ACE), its surgical removal, the grant's owner invariant, and both refusals; the catalog spec covers registration and disposal.
This commit is contained in:
1 parent
477b4f4205
commit
1d56bd5628
14 files changed
+870
-15
No files matched your search
@@ -207,7 +207,7 @@ const packageFileExtras: Readonly<Record<string, readonly string[]>> = {
|
||||
// The argv-prefix runner entry ships beside the lib as its own bundle;
|
||||
// sandbox-local resolves it through the package's ./runner export. tsdown
|
||||
// also shares its generated FFI code through a hashed runtime chunk.
|
||||
'@deepseek-ai/dsh-sandbox-windows-acl': ['lib/runner.js', 'lib/types-*.js'],
|
||||
'@deepseek-ai/dsh-sandbox-windows-acl': ['lib/runner.js', 'lib/types-*.js', 'assets'],
|
||||
'@deepseek-ai/dsh-skill-badge': ['assets'],
|
||||
'@deepseek-ai/dsh-skill-office': ['assets'],
|
||||
'@deepseek-ai/dsh-subprocess': ['lib/control.js'],
|
||||
|
||||
Reference in new issue
Block a user