Commit Graph
6 Commits
Author SHA1 Message Date
marcus dde8675454 fix(plugin-api): federate workspace file mutations and trim PR scope 2026-06-14 15:03:23 +02:00
marcus 27a3b2b5ed feat: Plugin API Completeness — file mutations, prompt editor, and attachment APIs
- WorkspaceFiles: writeFile, deleteFile, moveFile with path safety
  - writeFile: text/binary, auto-create dirs, overwrite option
  - deleteFile: idempotent, uses lstat (removes symlinks not targets)
  - moveFile: unix mv semantics, overwrite defaults to false
  - All mutations auto-refreshFiles() in File Explorer
  - Symlink escape prevention via realpath(dirname) check

- PluginPromptEditor: insertText, getText, getSelection, onPaste, onKeyDown, focus
  - Uses CM6 EditorView.domEventHandlers() via Compartment (not raw DOM)
  - Handlers registered before mount are preserved and applied on mount
  - First-to-consume-wins ordering for multi-plugin scenarios
  - insertText replaces selection (not inserts after)

- PluginAttachments: insertFileReference, getAttachedFiles, removeFileReference
  - insertFileReference validates file exists before inserting @path
  - Does not auto-focus editor (unlike prompt.insertText)
  - @file regex requires file extension to avoid matching emails

- Server endpoints: PUT /file, DELETE /file, POST /file/move
  - All work for local and federated machines

- Tests: 31 unit tests, 9 integration tests, 5 client tests
- Docs: 3 new sections in plugins.md
2026-06-14 15:03:23 +02:00
Federico Jaramillo Martinez 08f69d09c0 feat: bundle workspace tasks plugin 2026-06-03 22:31:36 +02:00
Federico Jaramillo Martinez 698a89948b feat(plugins): load workspace packages in dev 2026-05-21 09:41:46 +02:00
Federico Jaramillo Martinez fb9e524e5b feat: build bundled plugins from TypeScript 2026-05-19 12:50:42 +02:00
Federico Jaramillo Martinez 020b8f00ca Add pre-commit verification hook 2026-05-11 11:14:48 +02:00