The glob pattern $APPDATA/openpylon/** didn't match the openpylon directory itself, causing exists() checks to fail with a forbidden path error on app startup.
Flush pending board saves on window close via Tauri's onCloseRequested. Set minimum window dimensions to 800x600.
- Tauri v2 with React 19 + TypeScript + Vite 7 - Tauri plugins: fs, dialog, shell (registered in lib.rs) - Filesystem permissions scoped to $APPDATA/openpylon/** - Tailwind CSS v4 via @tailwindcss/vite - shadcn/ui initialized with 12 components - All app dependencies: Zustand, zundo, dnd-kit, Framer Motion, Zod, ulid, date-fns, react-markdown, remark-gfm - Path alias @/* configured in tsconfig + vite