v0.3: Core file reading & markdown infrastructure
- Rust: read_note_with_meta, list_templates, save_attachment commands
- TypeScript: frontmatter.ts (parse/serialize YAML, extract headings)
- OutlinePanel with click-to-scroll headings + tabbed right panel
- CommandPalette: New from Template with {{title}}/{{date}} replacement
- Editor: image drag-and-drop to attachments/
- 130 lines of CSS for outline panel and right panel tabs
v0.4: File reading & caching
- Rust: VaultCache (cache.rs) with mtime-based invalidation
- Rewrote read_note, read_note_with_meta, build_graph, search_vault to use cache
- init_vault_cache (eager scan on startup), get_cache_stats commands
- Frontend LRU noteCache (capacity 20, stale-while-revalidate)
- notify crate added for filesystem watching foundation
64 lines
3.7 KiB
Markdown
64 lines
3.7 KiB
Markdown
# Changelog
|
||
|
||
All notable changes to this project will be documented in this file.
|
||
|
||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||
|
||
## [0.4.0] - 2026-03-07
|
||
|
||
### Added
|
||
- **VaultCache** (`src-tauri/src/cache.rs`): In-memory note cache with mtime-based invalidation
|
||
- **`init_vault_cache`**: Eagerly scan all `.md` files and populate cache on startup
|
||
- **`get_cache_stats`**: Return cache hits/misses/entry count for diagnostics
|
||
- **Cache-backed commands**: `read_note`, `read_note_with_meta`, `build_graph`, `search_vault` now read from cache
|
||
- **Frontend LRU cache** (`src/lib/noteCache.ts`): Cache last 20 notes with stale-while-revalidate
|
||
- **File watcher** (`notify` crate): Foundation for filesystem change detection and cache invalidation
|
||
|
||
### Changed
|
||
- `build_graph` iterates cached entries instead of walking disk (O(1) vs O(n) on subsequent calls)
|
||
- `search_vault` iterates cached entries instead of reading every file from disk
|
||
|
||
## [0.3.0] - 2026-03-07
|
||
|
||
### Added
|
||
- **Frontmatter Parsing**: Rust backend parses YAML frontmatter (`title`, `tags`, `created`, `modified`) on read
|
||
- **`read_note_with_meta`**: New IPC command returns content, parsed metadata, body (without frontmatter), and heading list
|
||
- **TypeScript Frontmatter Module** (`src/lib/frontmatter.ts`): Client-side parse/serialize with `extractHeadings()`
|
||
- **Outline / TOC Panel**: Right-side panel showing document headings with click-to-scroll and smooth highlight animation
|
||
- **Tabbed Right Panel**: Switch between Outline and Backlinks views in the note editor
|
||
- **Note Templates**: `_templates/` folder support; Command Palette lists templates and creates notes with `{{title}}`/`{{date}}` replacement
|
||
- **Image Attachments**: Drag-and-drop images onto editor; saves to `vault/attachments/` and inserts markdown image link
|
||
- **`list_templates`**: Rust command to scan `_templates/` folder for `.md` template files
|
||
- **`save_attachment`**: Rust command to save binary data to `vault/attachments/` with deduplication
|
||
|
||
## [0.2.0] - 2026-03-07
|
||
|
||
### Added
|
||
- **Command Palette** (`Ctrl+K`): Fuzzy search notes and run commands with keyboard navigation (↑↓ Enter Esc)
|
||
- **Keyboard Shortcuts**: `Ctrl+N` new note, `Ctrl+G` graph view, `Ctrl+D` daily note
|
||
- **Full-Text Search**: Rust-powered vault content search with context snippets, displayed in sidebar
|
||
- **Note Rename**: Right-click context menu in sidebar for renaming notes with automatic wikilink updates across vault
|
||
- **Note Delete**: Context menu delete with confirmation dialog
|
||
- **Editor: Heading Scaling**: H1–H3 headings render at proportional sizes in edit mode
|
||
- **Editor: Task Lists**: Interactive checkboxes for `- [ ]` / `- [x]` syntax, clickable to toggle
|
||
- **Editor: Inline Code**: Backtick-quoted text styled with monospace font and accent color
|
||
- **Editor: Markdown Preview**: Styled headings, code blocks, and checkbox rendering in preview mode
|
||
- **Graph Filtering**: Filter graph by folder and minimum link count with a dedicated filter bar
|
||
|
||
### Changed
|
||
- Sidebar search upgraded to show both filename matches and content search results
|
||
- Graph view header now reflects filtered node/edge counts
|
||
|
||
## [0.1.0] - 2025-06-01
|
||
|
||
### Added
|
||
- Tauri 2 desktop application with React 19 + Vite 7
|
||
- Contenteditable editor with inline wikilink tokens
|
||
- Wikilink autocomplete dropdown (`[[` trigger)
|
||
- Force-directed graph view with semantic zoom (circles → cards)
|
||
- Sidebar with file tree, search filtering, and quick actions
|
||
- Backlinks panel with context snippets
|
||
- Daily notes with auto-creation
|
||
- Auto-save with debounced writes
|
||
- Custom CSS design system (dark theme, glassmorphism, purple accents)
|