Expand description
FileSystemReader/Writer: async file-system read and write operations.
§FileSystemProvider (Environment)
Implements FileSystemReader
and FileSystemWriter for
MountainEnvironment, providing secure, validated filesystem access with
workspace trust enforcement. Handles read, write, stat, delete, rename,
copy, and directory traversal; detects symbolic links.
§Security model
All operations call Utility::PathSecurity::IsPathAllowedForAccess before
touching the filesystem. Access is sandboxed to registered workspace
folders, path normalization blocks ../ traversal, and symbolic links
outside the workspace are not followed.
§Implementation
The trait impl is split across two sub-modules loaded via #[path]:
FileSystemProvider/ReadOperations.rs-FileSystemReaderimplFileSystemProvider/WriteOperations.rs-FileSystemWriterimpl
§VS Code reference
vs/workbench/services/files/electron-browser/diskFileSystemProvider.tsvs/platform/files/common/files.tsvs/base/common/network.ts
§Planned Work
- Filesystem change watching
- Path normalization enforcement
- Atomic writes via temp+rename
- File permissions/ownership metadata
- Extended attributes
- Trash API (not delete)
- Encoding detection
- Case-sensitivity handling
- Filesystem usage statistics
- Metadata caching
Modules§
- Read
Operations 🔒 - FileSystemProvider - Read Operations
- Write
Operations 🔒 - FileSystemProvider - Write Operations