feat(plugins): let a plugin write files, inside and outside the project (#2016)

Adds fs.write-file / fs.write-bytes behind a new fs.write:<path> capability (high risk; resolved to the real path, a missing file through its real directory, so a link cannot reach outside the grant; writing doesn't imply reading), and workspace.project.write-file(path, text) behind project.write (medium risk; stays inside the root and creates missing directories).

Writes go through the editor's save path: atomic, keeping the file's encoding and BOM (new files are UTF-8), capped at 16 MiB, and refused while an editor holds unsaved changes for the file. Both capabilities need engines.openidea ^1.3. Tested through the real component (misbehave fixture) and the SDK mock.

Closes #1823
Closes #1824

Co-authored-by: chaoes <[email protected]>
Цей коміт міститься в:
WangTongchaoтаchaoes authored and GitHub committed 2026-11-07 23:57:13 +08:00
1 джерело b43d9bf7fb
коміт 3f65cb0f57
41 files changed
+624 -81

No files matched your search

+1 -1
Переглянути файл
@@ -1 +1 @@
3805e5469c539186fd83fef1f4eef831149d4ba846c54d16e1f9b941d49acb04
6a3d219b86eb112ee16aa846f97a17df4f3270ddfa90b5aa7ebe073b3a426d35