# Changelog All notable changes to Graph Notes will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/). ## [1.0.0] β€” 2026-03-09 ### πŸŽ‰ First Stable Release Graph Notes reaches 1.0 β€” a local-first, graph-based note-taking app built with Tauri, React, and Rust. ### Fixed - **Rust compilation** β€” resolved duplicate `dirs_config_path()` definition and removed reference to unlinked `dirs` crate - **Content Security Policy** β€” replaced `null` CSP with a proper baseline policy allowing local resources and Google Fonts - **Canvas dependency** β€” updated `@blinksgg/canvas` to correct local file path ### Removed - **Dead code** β€” removed unused `cache.rs` module (196 lines) that was never compiled (no `mod cache;` declaration, missing `notify` crate dependency) ### Changed - **README** β€” replaced Vite template boilerplate with comprehensive project documentation - **.gitignore** β€” added `src-tauri/target/` and `vault/` exclusions - **Version** β€” bumped from 0.9.0 β†’ 1.0.0 across `package.json`, `Cargo.toml`, and `tauri.conf.json` ## [0.9.0] β€” 2026-03-09 ### Added - **Import/Export Hub** β€” Export vault as ZIP, import .md folders from Obsidian/Notion - **Keyboard Shortcuts Editor** β€” View, rebind, persist all keyboard shortcuts - **Graph Analytics** β€” Stats dashboard with orphan detection, most-connected notes, link density - **Note Pinning** β€” Pin notes to sidebar top, persisted to `.graph-notes/pinned.json` ### Changed - Sidebar: added πŸ“Š Analytics action - Command Palette: added Graph Analytics, Import/Export, Keyboard Shortcuts commands - Backend: added `export_vault_zip`, `import_folder`, `save_shortcuts`, `load_shortcuts`, `get_pinned`, `set_pinned` ### Dependencies - Added `zip` crate (Rust) ## [0.8.0] β€” 2026-03-09 ### Added - **Outline Sidebar** β€” Collapsible heading tree (H1–H6) with click-to-scroll and active heading tracking - **Timeline View** β€” Chronological note cards grouped by date with 7d/30d/1y filters - **Document Statistics** β€” Status bar with word count, characters, lines, reading time, heading count - **Markdown Table Editor** β€” Visual table grid with click-to-edit cells, add/remove rows/columns, Tab navigation - **Random Note** β€” 🎲 Discover random notes from sidebar or command palette - **Link Suggestions** β€” Backend `suggest_links` for wikilink auto-completion ### Changed - Sidebar: added πŸ“… Timeline and 🎲 Random Note actions - Command Palette: added Timeline, Random Note commands - Backend: added `suggest_links`, `list_notes_by_date`, `random_note` commands ### Dependencies - Added `rand` crate (Rust) ## [0.7.0] β€” 2026-03-09 ### Added - **Canvas Whiteboard** β€” Freeform visual thinking surface powered by `@blinksgg/canvas` with card/text nodes, drag, zoom, save/load - **Database Views** β€” Notion-style table/gallery/list views from frontmatter properties with sort/filter - **Backlink Context** β€” Paragraph-level excerpts around wikilink mentions in backlinks panel - **Dataview Queries** β€” Inline ` ```dataview TABLE ... SORT ... ``` ` blocks rendering live query tables - **Git Sync** β€” commit/push/pull panel with status indicator, changed file list, repo initialization ### Changed - **GraphView rewritten** using `@blinksgg/canvas` (replaces custom HTML5 Canvas force simulation) - Sidebar: added Database, Whiteboard quick actions - Command Palette: added Database View, New Whiteboard, Git Sync commands - Backlinks now use backend `get_backlink_context` for paragraph excerpts ### Dependencies - Added `@blinksgg/canvas`, `jotai`, `graphology`, `d3-force` ## [0.6.0] β€” 2026-03-09 ### Added - **Tabbed Editor** β€” Multi-note tab bar with drag-reorder, close buttons, active tab highlighting - **Note Refactoring** β€” Extract selection to new note (replaces with wikilink), merge notes (appends + updates links) - **Encrypted Notes** β€” AES-256-GCM password protection with Argon2 key derivation, lock/unlock button in editor - **Spaced Repetition Flashcards** β€” Study mode from `?? question :: answer ??` syntax, SM-2 scheduling, difficulty ratings - **Heading Folding** β€” Fold state persistence per note via `.graph-notes/folds.json` - **Custom CSS Snippets** β€” Live-preview CSS editor, persisted in `~/.config/graph-notes/custom.css` - **Workspace Layouts** β€” Save/restore window arrangements in `.graph-notes/workspaces/` - **Embeddable Widgets** β€” `{{progress:N}}` progress bars, `{{counter:N}}` badges, `{{toggle:on/off}}` indicators ### Changed - Editor supports right-click context menu for refactoring operations - Command Palette extended with Flashcards, Custom CSS, and Save Workspace - Sidebar quick actions include Flashcards - Custom CSS loaded on mount via `useCustomCssInit` hook ### Dependencies - Added `aes-gcm`, `argon2`, `rand`, `base64` for encryption ## [0.5.0] β€” 2026-03-08 ### Added - **Kanban Board** β€” Visual task board from `- [ ]` / `- [/]` / `- [x]` items across vault, with drag-and-drop between Todo/In Progress/Done columns - **Focus / Zen Mode** β€” Distraction-free writing (`βŒ˜β‡§F`): hides sidebar, breadcrumbs, meta, centers content at max 720px - **Note Version History** β€” Auto-snapshots every 5 min, timeline sidebar with inline diff viewer (add/remove highlighting) - **PDF Export** β€” Print-styled export via browser print dialog with clean typography - **Global Search & Replace** β€” Find/replace text across vault with dry-run preview before applying (`⌘H`) - **Local Backlink Graph** β€” Mini force-directed canvas in preview showing current note's 1-hop link connections - **Writing Goals** β€” Per-note word count targets with gradient progress bar (redβ†’yellowβ†’green) - **Syntax-Highlighted Code Blocks** β€” highlight.js with 8 languages, copy-to-clipboard button, dark theme ### Changed - Editor supports focus mode (hides chrome, centers content) - Command Palette extended with Kanban, Focus Mode, Search & Replace, Export as PDF - Sidebar quick actions include Kanban Board - Auto-snapshot on save (throttled to 1 per 5 min) ### Dependencies - Added `highlight.js` for syntax highlighting ## [0.4.0] β€” 2026-03-08 ### Added - **Frontmatter & Properties Panel** β€” YAML `---` fenced metadata with inline key-value editor (collapsible panel below breadcrumbs) - **Table of Contents** β€” Auto-generated outline from headings, shown alongside preview mode with active heading highlight - **Mermaid Diagram Rendering** β€” Fenced `mermaid` code blocks render as SVG diagrams in preview mode (lazy-loaded) - **Image & Attachment Support** β€” Paste images from clipboard, stored in `_attachments/` directory with `![](path)` markdown - **Slash Commands** β€” Type `/` at line start to open inline formatting menu (14 commands: headings, lists, code blocks, mermaid, tables) - **Calendar View** β€” Visual month grid for daily notes with dot indicators, "Today" button, and click-to-create - **Theme Picker** β€” 5 built-in themes (Dark Purple, Dark Emerald, Dark Ocean, Dark Rose, Light) with live preview, persisted - **Export to HTML** β€” Export current note as styled standalone HTML file ### Changed - Editor now includes PropertiesPanel, TableOfContents sidebar, and SlashMenu - Command Palette extended with Calendar, Theme, and Export HTML commands - Sidebar quick actions include Calendar View - Added `⌘T` keyboard shortcut for Theme Picker ### Dependencies - Added `mermaid` for diagram rendering ## [0.3.0] β€” 2026-03-08 ### Added - **Split Editor** β€” Open two notes side by side with a draggable divider (right-click β†’ "Open in split") - **Wikilink Hover Preview** β€” Hover over `[[wikilinks]]` to see a floating preview card with note content and link count - **Note Transclusion** β€” `![[note-name]]` embeds the content of another note inline, with recursive depth limiting (3 levels) - **Vault Switcher** β€” Click sidebar brand to switch between recent vaults or open a new folder - **Drag & Drop File Organization** β€” Drag notes between folders in the sidebar file tree - **Breadcrumb Navigation** β€” Path breadcrumbs shown above the editor for nested notes - **Note Templates** β€” Create notes from templates in `_templates/` directory via Command Palette (supports `{{title}}` and `{{date}}` variables) - **Recent Notes** β€” Last 5 recently opened notes shown in the sidebar - **Favorites** β€” Pin notes as favorites (right-click β†’ "Favorite"), persisted per vault in `.graph-notes/favorites.json` - **Open in Split Pane** β€” Right-click context menu option to open a note in a side-by-side view ### Changed - Note view now uses `SplitView` component, supporting both single-pane and dual-pane editing - Context menu expanded with "Favorite" and "Open in split" actions, plus visual divider - Command Palette shows template commands when available - `LinkPreview` component renders as a global overlay for all hover previews ## [0.2.0] β€” 2026-03-08 ### Added - **Full-Text Search** β€” Vault-wide content search in the sidebar (debounced, with context snippets and result ranking) - **Command Palette** β€” `⌘K` / `Ctrl+K` opens a fuzzy search palette for notes, commands, and content - **Keyboard Shortcuts** β€” `⌘N` new note, `⌘G` graph view, `⌘D` daily note, `⌘E` toggle edit/preview, `⌘\` toggle sidebar - **Note Rename** β€” Right-click context menu on notes in sidebar for inline rename with automatic wikilink updates across vault - **Note Delete** β€” Right-click context menu with confirmation dialog; navigates away if active note deleted - **Tags System** β€” `#tag` extraction from notes, sidebar tags section with click-to-filter, emerald-colored tag pills in editor - **Graph Filtering** β€” Filter bar to highlight matching nodes, focus mode (1-hop neighborhood), orphan node toggle - **Inline Markdown Styling** β€” Headings (`# ## ###`) render at proper sizes in edit mode, `**bold**`, `*italic*`, `` `code` `` styled inline - **List Continuation** β€” Pressing Enter after `- item` auto-inserts bullet on next line - **Tab Indent/Outdent** β€” Tab and Shift+Tab for list item indentation - **Collapsible Sidebar** β€” Toggle sidebar visibility with `⌘\` ### Changed - Edit/Preview mode is now global (shared via context), toggled with `⌘E` from anywhere - Search input shows `⌘K` hint for command palette discovery ## [0.1.0] β€” 2026-03-07 ### Added - **Tauri v2 Desktop App** β€” Local-first note-taking with full filesystem access via `tauri-plugin-fs` - **Contenteditable Editor** β€” Rich inline editing with `[[wikilink]]` token chips (compact pills that unwrap on backspace/delete) - **Wikilink Autocomplete** β€” Type `[[` to fuzzy-search and link notes; creates new notes if no match found - **Force-Directed Graph View** β€” Canvas-based visualization with semantic zoom (circles β†’ rounded-rect cards with note previews) - **Graph Interactions** β€” Single-click animates zoom to node, double-click opens note, drag to reposition nodes - **shadcn-Inspired Design System** β€” Zinc-based neutrals, purple accent gradients, focus rings, spring transitions - **Sidebar** β€” Recursive file tree with search, collapsible folders, active-state indicators, note count badge - **Backlinks Panel** β€” Lists all notes linking to current page with highlighted context snippets - **Markdown Preview** β€” Toggle between edit and rendered preview modes with inline wikilink rendering - **Daily Notes** β€” Auto-generated daily journal entries accessible from sidebar shortcut - **Auto-Save** β€” Debounced 500ms save on every keystroke - **Custom Scrollbars** β€” Minimal 5px scrollbars matching the dark theme