Scope
Implement FileSystemDirectoryHandle.removeEntry(name, { recursive }) over a typed opaque native directory-mutation authority.
Required browser behavior:
- remove a regular file or empty directory when
recursive is false;
- remove a directory tree when
recursive is true;
- reject a missing child with
NotFoundError and a non-empty directory without recursion with InvalidModificationError;
- preserve WebIDL-shaped receiver, option conversion, and invalid single-component
TypeError behavior;
- map cancellation, denial, changed/stale generation, capacity, and I/O outcomes to browser-compatible errors;
- bind each request to the calling realm/origin/profile/partition, complete exactly once, and retire it on navigation/runtime teardown.
Product dependency
Unchanged VS Code calls this operation from htmlFileSystemProvider.delete() and uses delete while implementing browser file/folder rename as copy plus removal. This is the smallest remaining generic File System Access gap on the current main branch.
Acceptance
- pinned File System Access spec/WPT and direct Chrome oracle for file, empty directory, recursive tree, missing, non-empty, Unicode and invalid names;
- native ABI/export/C11 and exact AppScene adapter parity;
- origin/profile/partition security, symlink/race behavior, cancellation, stale generation, and navigation retirement;
- 10,000 bounded broker operations and 100 lifecycle cycles with heap/RSS/FD bounds;
- unchanged Code OSS call-site evidence for delete and rename.
Blocked by the missing native opaque removal authority tracked in SceneTech/AppScene. This issue excludes move/rename, CSS, MessagePort #288, webviews/resources #266, packaging, consolidation PR #76, and vscode-demo.
Parent: #248.
Scope
Implement
FileSystemDirectoryHandle.removeEntry(name, { recursive })over a typed opaque native directory-mutation authority.Required browser behavior:
recursiveis false;recursiveis true;NotFoundErrorand a non-empty directory without recursion withInvalidModificationError;TypeErrorbehavior;Product dependency
Unchanged VS Code calls this operation from
htmlFileSystemProvider.delete()and uses delete while implementing browser file/folder rename as copy plus removal. This is the smallest remaining generic File System Access gap on the current main branch.Acceptance
Blocked by the missing native opaque removal authority tracked in SceneTech/AppScene. This issue excludes move/rename, CSS, MessagePort #288, webviews/resources #266, packaging, consolidation PR #76, and vscode-demo.
Parent: #248.