- Add edit/delete icon buttons to SidePanel items for entries, todos, lists, and fragments - Move fragment edit/delete controls from FragmentEditor main panel to SidePanel - Add externalEditRequested prop to FragmentEditor for parent-controlled edit mode - Add fragment delete handling in +page.svelte performDelete flow - Support custom entry filenames via FileName parameter in EntrySavePayload - Fix vault persistence for custom-named entries (non-date-formatted .md files) - Add VaultStorageService SaveCustomEntries helper for _custom_entries.vault - Add entries.delete backend command and wire through EntryFileService - Remove Write/Preview toggle from MarkdownEditor (previewOnly controlled by parent) - Add smoke tests for vault custom entry roundtrip and entry save with custom filename Co-Authored-By: Oz <oz-agent@warp.dev>
Tauri + SvelteKit + TypeScript
This template should help get you started developing with Tauri, SvelteKit and TypeScript in Vite.
Frontend State Management
This app uses Svelte stores as the source of truth for feature state.
Current Stores
src/lib/stores/entries.ts- state:
entriesStore - helpers:
getDefaultEntry,createEntryDraft
- state:
src/lib/stores/fragments.ts- state:
fragmentsStore - helpers: parse/serialize + fragment CRUD helpers (
createFragmentItem,updateFragmentItem,prependFragmentItem,removeFragmentItem)
- state:
src/lib/stores/todos.ts- state:
todoListsStore,todosStore - helpers: parse/serialize + todo list/item CRUD helpers
- state:
src/lib/stores/lists.ts- state:
listsStore - helpers:
createListDraft
- state:
src/lib/stores/settings.ts- state:
settingsTags,settingsFragmentTypes
- state:
Store-First Rule
- Components should call store helper functions for CRUD operations.
- Components should avoid embedding feature-specific mutation/parsing logic.
- UI components should focus on rendering, local form state, and invoking store operations.
What Still Needs Setup
- Move settings CRUD helpers into
settings.ts(currently add/edit/remove logic lives inroutes/settings/+page.svelte). - Add full CRUD helpers for
entriesandlistsstores (update/remove/reorder and optional find-by-id helpers). - Consolidate todo state into a single custom store API (or a single store object) so
todoListsStoreandtodosStoreupdates are atomic. - Move calendar-created notes into a dedicated calendar store (currently local to
SidePanel.svelte). - Add persistence/hydration layer so store state survives app restart and can be synchronized with backend commands.
Suggested Next Refactor
- Introduce feature service wrappers per store (for example
entriesService,fragmentsService) that handle:- in-memory store mutation
- backend command call (
sendCommand) - optimistic update / rollback policy
- error normalization for UI
Recommended IDE Setup
VS Code + Svelte + Tauri + rust-analyzer.