What's Changed
- 4743537 fix: handle Archived/Trashed Yes/No string values in frontmatter parser
- a933e6a fix: add reload_vault to vault API proxy for browser mock
- 7968983 style: apply cargo fmt to new tests
- b10e9fa fix: reload vault invalidates cache and rescans from filesystem
- 2a32d2b fix: resolve TypeScript overload errors in zoomCursorFix
- 11a4e15 test: add Playwright smoke test for CodeMirror cursor at non-100% zoom
- 080e5ff fix: bypass CodeMirror posAtCoords for accurate cursor at non-100% CSS zoom
- 60fd4d9 fix: embed conversation history in AI agent chat messages
- 3583cb9 ci: retrigger release — fix Tauri signing key secret
- 1f497e4 test: fix flaky command palette smoke test — use reindex instead of settings
- 13b3252 docs: consolidate VISION.md into docs/ — remove duplicate root file
- 1714da4 fix: prune stale cache entries on vault open, not just cache write
- 7b75cb7 fix: add 1 retry for Playwright smoke tests to handle server startup timing
- a66eedb style: rustfmt vault/mod.rs test formatting
- dc92fd1 fix: disk-first writes in useEntryActions, document three-layer model
- 4012a65 feat: wire Reload Vault into Cmd+K palette and menu bar
- b2da813 feat: add reload_vault_entry Tauri command
- e461a91 refactor: remove hardcoded RELATIONSHIP_KEYS — detect wikilink fields dynamically
- edf2489 test: add Playwright smoke test for exact-match search ranking
- 1c8542b feat: flip canonical type field — make type: primary, Is A: the alias
- aef98f1 feat: move vault cache to ~/.laputa/cache/ and make writes atomic
- 5c85bc4 test: add Playwright smoke test for exact-match search ranking
- 60f3139 fix: ensure exact title match always ranks first in search
- e40c09a style: apply rustfmt to rename.rs
- f90f703 test: add Playwright smoke test for move-note-to-type-folder
- eaf31ff feat: move note to type folder when Is A changes
- db50f77 feat: add move_note_to_type_folder backend command
- e228bd3 docs: add Refactoring strategic context to VISION.md
- 3a0fd06 docs: add Phase 1b — Tauri dev QA for filesystem/native tasks
- e2489b8 feat: exact-match-first ranking in search and wikilink autocomplete
- 11f8731 docs: strengthen Phase 1 QA requirements in CLAUDE.md
- 6f7a7d7 docs: add 'why this, why now, why us' section to VISION.md
- 2173df6 docs: clarify that evergreen notes are one output type, not the only one
- 98cad76 feat: fast note open — use allContent cache to skip IPC disk reads
- f076c71 docs: add purpose-driven notes and evergreen notes to VISION.md
- 44221e5 docs: rewrite VISION.md as a coherent product narrative
- 06c0153 docs: add capture/organize philosophy and Inbox to vision and roadmap
- fddc323 docs: add ROADMAP.md with strategic directions
- 23b63bb docs: expand VISION.md with product trajectory and updated principles
- c858cf8 fix: use vault path for resolveNewNote, resolveNewType, resolveDailyNote
- 0dc6844 docs: add design principles and semantic field conventions
- aafe69b fix: show all scalar properties in Properties panel — remove Owner from RELATIONSHIP_KEYS, remove notion_id from SKIP_KEYS
- a3c53c1 fix: resolve AI chat empty body race — read contextPrompt from closure, not stale ref
- 5185f36 feat: show type instances in inspector Properties panel
- 3915363 docs: update 'Is A' → 'type:' throughout — type: is now canonical
- 2249c4a fix: resolve AI chat empty body via || fallback + defensive body + Rust strip_frontmatter
- 6575ec2 fix: auto-save unsaved notes before trash/archive
- 1f08694 style: rustfmt assert formatting
- a99cb2a fix: parse lowercase 'archived' frontmatter field
- 8eabcd9 test: add Playwright smoke test for AI chat empty body fix
- 97112b9 fix: strip frontmatter from AI context body field — fixes empty body bug
- a53819e chore: extend .gitignore with runtime and generated artifacts
- 41a2d25 chore: rotate Tauri signing keypair
- 3a3d0bb chore: remove stale files and planning docs from repo
Requires Apple Silicon (M1/M2/M3)
Built from 4743537 on 2026-03-09