Wikilinks are detected via regex, rendered as styled spans with hidden
brackets, and navigate to the linked note on click. Uses mousedown
instead of click to catch the event before CM6 removes the widget.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add frontmatterHide extension that hides --- ... --- block at top of files
- Shows collapsed --- indicator, reveals on cursor focus
- Place initial cursor after frontmatter so content is visible on load
- Remove frontmatter detection from livePreview (handled by dedicated extension)
- Add Playwright test for frontmatter hiding
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add frontmatterHide extension using CM6 StateField for cross-line replacement
- Frontmatter (--- ... ---) collapsed to small "---" indicator when cursor is outside
- Cursor entering the frontmatter block reveals full YAML content
- Editor places cursor after frontmatter on note load so it starts hidden
- Add Playwright test verifying frontmatter is hidden by default
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace single selectedNote with tabs state in App (open/close/switch)
- Tab bar above editor: title + x close button, active tab highlighted
- Clicking note opens new tab or switches to existing
- Closing active tab switches to adjacent tab
- Fix race condition: editor re-creates when tab content loads async
- Add Playwright test verifying multi-tab behavior
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Implement Obsidian/Bear-style live preview via CM6 ViewPlugin + decorations
- Headings: ## markers hidden, text rendered large — revealed on cursor line
- Bold/italic: ** and * markers hidden, text styled — revealed on cursor line
- Links: [text](url) rendered as styled text — revealed on cursor line
- Inline code: backticks hidden, content styled with monospace — revealed on cursor line
- Horizontal rules rendered as styled <hr> elements
- Add Playwright test verifying reveal-on-focus behavior
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Install CM6 packages (state, view, lang-markdown, theme-one-dark, commands, language)
- Replace Editor placeholder with real CodeMirror 6 instance
- Add realistic markdown content to all mock entries in mock-tauri.ts
- Wire up note selection: clicking a note in NoteList loads its content in the editor
- Dark theme matching app colors, line numbers, active line highlighting, line wrapping
- Update NoteList with selected state styling
- Update Playwright screenshot test to capture editor with note selected
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pill bar below search: All | Projects | Notes | Events | People |
Experiments | Procedures | Responsibilities. Clicking a pill filters
the displayed entries by isA type. "All" resets the filter.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Default sort: last modified descending (pinned entity stays first
in entity view). Search bar at top filters by title substring
(case-insensitive).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- All Notes → show everything
- People/Events filters → show entities of that type
- Section group header → show all entities of that type
- Specific entity → pinned at top with green border + children
- Topic → show entries whose relatedTo references that topic
- Wikilink reference matching (belongsTo/relatedTo → path stem)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Flat list of Topic entities at the bottom of the sidebar,
separated from section groups by a border. Clicking a topic
fires onSelect with kind: 'topic'.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Each section is collapsible with expand/collapse toggle, shows entity count,
and has a + button. Entities are clickable. SidebarSelection type introduced
for managing navigation state across filters, section groups, entities, and topics.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Scaffold Vite + React + TypeScript frontend
- Add Tauri v2 backend with Rust
- Implement list_vault command: recursively scans .md files, parses
YAML frontmatter (Is A, aliases, Belongs to, Related to, Status,
Owner, Cadence), extracts title from H1 or filename
- 10 passing Rust tests for frontmatter parsing and vault scanning
- Configure Vitest and Playwright (test infrastructure)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>