notes/CHANGELOG.md
enzotar d174c7f26d feat: v0.3 + v0.4 — frontmatter, templates, outline panel, vault cache
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
2026-03-07 09:54:08 -08:00

64 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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**: H1H3 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)