verstak-desktop/docs/MILESTONE_6D_FILES_PLUGIN_P...

1.8 KiB

Milestone 6d — Minimal Files Plugin

Goal

Create a minimal Files plugin that shows vault files/folders and opens files through Workbench openResource. No editor embedded.

What was built

Plugin: verstak.files

Location: verstak-official-plugins/plugins/files/

Contributions:

  • views: verstak.files.viewFilesView component
  • No sidebarItems — Files is not a global sidebar item

Permissions: files.read, files.write, workbench.open, ui.register

Files View

  • Root listing on mount
  • Folder navigation (double-click)
  • File open via api.workbench.openResource()
  • Breadcrumb navigation
  • Create folder/file buttons
  • Refresh button
  • Loading/error/empty states
  • .verstak filtered out

Provider priority

  • default-editor: priority 50
  • platform-test diagnostic: priority 10
  • default-editor wins for normal file opens

Bundle fix

Fixed missing opening quote in STYLES string (.files-empty'.files-empty'). Added automated bundle execution check to scripts/check.sh.

6d-hotfix

  • Removed sidebarItems from Files plugin (Files is not a global sidebar item)
  • Added [frontend bundle execution] check to check.sh — verifies all plugin bundles parse via new Function() and register via VerstakPluginRegister
  • Updated E2E tests: Files no longer expected in global sidebar
  • Documented: sidebarItems are global shell navigation, not workspace template tabs

Verification

  • go test ./... — PASS
  • go vet ./... — PASS
  • npm run build — PASS
  • npm run test:e2e — 34/34 PASS
  • Official plugins — 3 plugins built, bundle execution check passes
  • SDK — 11/11 tests pass

Deferred

  • Notes plugin, rename/move/trash UI, drag-and-drop, context menu, watcher/inotify, sync, external open, binary streaming, sidecar/security, workspace template host (Milestone 6d2)