Tolaria Release History

Stable builds appear when a stable-vYYYY.M.D tag is promoted. Alpha builds update on every push to main.

Tolaria v2026-05-07

May 7, 2026 ยท v2026-05-07

View on GitHub

New Features

  • ๐Ÿ’ป New website! โ€“ available at Tolaria.md, now includes thorough docs and universal search with cmd+k
  • ๐Ÿค– Built-in Agent Docs โ€” Tolaria now bundles product documentation for local AI agents so guidance is available inside the app.

Improvements

  • ๐Ÿ“‘ Table of Contents Shortcut โ€” Open a note outline more quickly when navigating longer notes, via cmd+shift+t
  • ๐ŸŒ More Reliable AI Setup โ€” Local model connections, Gemini launch paths, Windows shims, and Linux MCP server discovery are handled more consistently.
  • ๐Ÿ”— Better Attachment and Media Paths โ€” PDF attachments, vault media links, and shared attachment handling now resolve more predictably across editor flows.
  • ๐ŸŽจ Sharper Editor Details โ€” Wikilink suggestions, saved-view sort indicators, and type-derived quick-open behavior received focused UI polish.

Stability and Fixes

  • Git remotes now use macOS Keychain credentials more reliably.
  • Switching vaults clears stale editor state more safely, reducing cross-vault confusion.
  • Editor rendering is more resilient around stale BlockNote IDs, normalized note openings, and missing whiteboard text measurements.
  • Release automation now keeps documentation-site updates out of app releases and preserves download assets more reliably.
  • The contributor instructions now make release-readiness checks explicit for CodeScene, coverage, Codacy, localization, analytics, docs, and QA cleanup.

Tolaria v2026-05-06

May 6, 2026 ยท v2026-05-06

View on GitHub

What's Changed

  • 2e7c5cb fix: restore native image attachments
  • 41ee40d fix(type-actions): handle type filename collisions
  • 5bf59a9 fix(note-list): keep status dot steady while typing
  • ee24982 fix(editor): repair malformed numbered list blocks
  • 755a743 fix(download): keep public installer page visible
  • 35be37d fix(onboarding): keep ai setup dialog scrollable
  • 9c0d0a8 chore: ratchet codescene threshold
  • 0294bb6 fix(ai): preserve composer focus after replies
  • dee1c8b fix: refine frontmatter date picker
  • e22b404 refactor(test): improve app test harness health
  • 691f5ee fix: expand editor whitespace selection hit area
  • 7cf2a07 test: cover editor flush when returning to switched note
  • b40c105 feat(properties): speed up distant date edits
  • 7a274d3 fix(editor): guard stale whiteboard block writes
  • 634975e fix(vault): coalesce background file activity
  • 88f5d04 fix(editor): preserve exact copied text
  • 59408bb fix: raise CI Node heap for release builds
  • bc97ade fix(editor): support whitespace drag selection
  • eb6b58e fix: refine breadcrumb overflow actions
  • 520b2c9 feat(settings): follow system theme
  • d5ecd56 fix(editor): guard stale wikilink click targets
  • f88b359 fix(editor): render wikilinks inside tables
  • 67ada08 fix(editor): ignore stale history diff responses
  • 6ce04ee fix(ai): avoid Codex Windows batch shims
  • b8e3d81 fix(editor): guard stale table handle state
  • 9c09b5a fix(editor): guard composing enter in list items
  • a6caa2b fix(linux): enable fcitx input for AppImage Wayland
  • 0f23104 fix(vault): retry transient access denied saves
  • 8a3d00e docs: add/update ADR for media previews and vault refresh policy (guard โ€” from commit d347cda, 92c0b89)
  • bfd1752 ci: split frontend and rust quality lanes
  • 0df9c1d fix(types): normalize built-in notes type creation
  • ccfa148 fix(nav): guard stale entity backlink metadata
  • dda4943 test(editor): cover mermaid property refresh
  • be87c38 fix(ai): remount composer after native input
  • 982d647 fix(editor): guard stale suggestion query cleanup
  • 92c0b89 fix(editor): preserve focus during vault refresh
  • 75a8444 fix(window): preserve windows properties geometry
  • d347cda fix(preview): allow native media playback
  • f5adbf9 feat(settings): add note display preferences
  • 19059fb fix(frontmatter): preserve crlf inbox organization
  • 1694e3a fix(editor): route clipboard images to attachments
  • e46613b fix: stabilize tldraw whiteboard assets
  • 38ea516 fix(i18n): correct Korean locale mistranslations (#524)

Stable release โ€” manually promoted from main

Includes macOS (Apple Silicon and Intel), Windows x64, and Linux x64 bundles

Built from 2e7c5cb4 on 2026-05-06

Tolaria v2026-05-04

May 4, 2026 ยท v2026-05-04

View on GitHub

New Features

  • ๐Ÿค– Direct AI Model Providers โ€” Use OpenAI, Anthropic, Gemini, OpenRouter, Ollama, LM Studio, or a custom OpenAI-compatible endpoint directly from Tolaria.
  • ๐Ÿ–Š๏ธ Markdown Whiteboards โ€” Create and edit tldraw-powered whiteboards that live as durable Markdown files in your vault.
  • ๐Ÿงญ Table of Contents Panel โ€” Navigate long notes with a lazy, outline-style panel generated from the current document headings.
  • ๐Ÿ“„ Readable Release Notes โ€” View stable releases through curated notes written for users instead of raw commit lists.

Improvements

  • ๐Ÿงฉ Cleaner AI Settings โ€” Configure provider secrets, local models, and AI targets through a more focused settings experience.
  • ๐Ÿ’ฌ Better Agent Context Handling โ€” Large AI agent contexts are compacted more safely, and Codex MCP tools are exposed more reliably.
  • ๐Ÿงฑ Improved Editor Blocks โ€” Code blocks can be copied more easily, block controls feel steadier, and rich exports avoid unsupported browser APIs.
  • ๐Ÿ—‚๏ธ Smarter Note and Type Handling โ€” Renames, type changes, frontmatter placeholders, and path identity now behave more consistently across vault flows.
  • ๐ŸŒ Better International Editing โ€” RTL text direction, IME composition, Korean sidebar copy, and unicode git paths all received focused polish.

Stability and Fixes

  • Embedded diagrams, tldraw whiteboard assets, stale checklist toggles, and stale note open or rename flows were hardened to avoid broken editor states.
  • Vault recovery, missing active vault handling, fresh-note heading paste, and same-path type collisions now fail more gracefully.
  • Linux AppImage startup, MCP resource discovery, release CI, Codacy security findings, and AI provider runtime paths all received stability fixes.

Stable release โ€” manually promoted from main

Includes macOS (Apple Silicon and Intel), Windows x64, and Linux x64 bundles

Built from e5fa40b8 on 2026-05-04

Tolaria 2026.5.2

May 2, 2026 ยท stable-v2026.5.2

View on GitHub

What's Changed

  • e5ed863 fix: refine sidebar folder rows
  • 4f7f5a3 fix(linux): choose matching wayland preload
  • 439e2b7 fix: prefetch tauri nsis tools in release ci
  • 048d272 fix: refine slash command menu
  • 58e129c fix: stabilize editor block dragging
  • 713b486 fix: render release history tabs as pills
  • 7d66e2f fix: guard table handle add selection
  • cd6847d feat: refine titlebar navigation controls
  • 74c9841 fix(ui): refine icon picker appearance
  • ba41854 fix: ignore malformed reload entries
  • 6532ee1 fix(vault): prevent gitignored folder scan freezes
  • c9698b8 fix(notes): serialize immediate note creation writes
  • db16f2f fix(views): ignore stale saved-view deletes
  • 1e5d83d refactor(commands): share app command manifest
  • 062de26 refactor(frontmatter): share canonical key rules
  • 65d14eb fix(editor): theme code blocks in light mode
  • 0b5149b fix(ai): preserve gui path for cli agents
  • c23a3c1 fix: add sidebar section bottom spacing
  • 44e2870 fix(editor): preserve pasted markdown raw toggles
  • 802b6b7 fix: align macOS header controls
  • bb09fcf fix: repair blocknote core patch
  • c8ac12f feat: cache note content and parsed editor blocks
  • fbfda2f fix(types): render css type colors
  • c4c7737 fix(types): guard root type filename collisions
  • c24c60b fix(editor): guard stale block side menu actions
  • 21532de fix: remove legacy startup loading skeleton
  • f92efd7 fix: keep note windows editable
  • 6e41328 fix: tolerate colliding frontmatter properties
  • 5b2b4cd fix: recognize type frontmatter case-insensitively
  • 494aeb9 feat: add Polish (pl-PL) translation (#475)
  • 8272e68 fix: ignore stale rich editor beforeinput views
  • 7ba20c1 fix: guard stale table handle drags
  • 3384b9a fix: make editor left block handle draggable
  • 8b36ff6 fix: avoid active editor remount on unrelated vault refresh
  • acb35cb docs: add/update ADR for Tauri frontend readiness watchdog (guard โ€” from commit 1c010dd)
  • a8bda0a fix: allow linux window controls
  • 4acbe17 refactor: consolidate sidebar item interactions
  • 09759d2 test: cover traditional chinese wikilinks
  • 7a01ef6 fix: recover formula note parse failures
  • 1c010dd fix: recover inert macos webview startup
  • 0df5c78 ci: bound vitest coverage parallelism
  • 2d138f1 ci: bound frontend coverage parallelism
  • c9ee81c test: cover locale-stable note subtitles
  • 04fa74e fix: keep mcp setup dialog scrollable
  • b42ed35 refactor: consolidate blocknote stale guards
  • 75e1a82 test: cover windows type creation
  • 2af2156 test: cover windows typed note creation
  • 568ada8 fix: sanitize appimage git subprocess env
  • 0987946 fix: surface codex final replies
  • 81b03f0 chore: ratchet codescene thresholds
  • ee71a00 feat: add paste without formatting command

Stable release โ€” manually promoted from main

Includes macOS (Apple Silicon and Intel), Windows x64, and Linux x64 bundles

Built from e5ed863d on 2026-05-02

Tolaria 2026.4.30

April 30, 2026 ยท stable-v2026.4.30

View on GitHub

What's Changed

  • adcaa8a fix: align ai agent permission modes
  • 4a03f16 fix: parse crlf multibyte headings safely
  • 50c304f fix: reduce autosave pressure while typing
  • aa4d4fd fix: revert sidebar navigation arrows
  • b31f0b5 fix: keep macos startup responsive
  • d3a577b fix: copy mcp config through native clipboard
  • fbb0927 fix: preserve mermaid svg styles under tauri csp
  • 687d640 fix: remove rename view menu action
  • 1738dd2 fix: persist claude power user shell access
  • 8c286a4 fix: stabilize linux appimage webkit rendering
  • 0331b40 fix: persist layout panel widths
  • d53c3fa fix: detect linuxbrew ai agent binaries
  • 3c14d60 fix: stream gemini cli replies
  • 765a16a fix: ignore stale BlockNote side menu blocks
  • 886ded9 fix: canonicalize simplified chinese ui language
  • 831f6eb fix: guard uninitialized BlockNote suggestion updates
  • 45efb08 fix: persist supported ui language settings
  • fdc7d8f fix: guard note suggestions during reload
  • 690ace2 fix: resolve linux mcp server resources
  • a267a00 test: cover native menu event dispatch
  • 536cab3 fix: align view customization with type actions
  • e49af58 fix: ignore stale vault refreshes after note switch
  • 9012cd9 test: include multibyte search smoke in pre-push
  • 0d6e385 fix: make search snippets unicode-safe
  • 8754b1b docs: add ADRs for vault-root navigation and safe analytics events (guard โ€” from commits ec83e9b, 18b4f9d)
  • ec57517 feat: improve type sidebar actions
  • 0995c90 fix: show pointer cursor on interactive controls
  • dede400 fix: surface desktop menu update feedback
  • 65ff44e feat: open inline images in lightbox
  • 2c06c8d fix: disable unsafe shiki highlighting on old webkit
  • bc56eec fix: block frontmatter writes for attachments
  • 388d389 fix: disable unsafe editor link opens
  • a1a4cb5 feat: add sidebar navigation arrows
  • a7ed9ad fix: ignore stale code block controls
  • f8f08f4 feat: reuse type appearance controls for views
  • c0afae2 fix: repair blocknote patch metadata
  • 176f983 fix: render opencode text parts after tools
  • 01a87ed fix: ignore stale suggestion menu close
  • 18b4f9d feat: retrofit safe product analytics events
  • fd3afc2 feat: configure all notes file visibility
  • 0ad207e fix: reject unsafe editor serialization
  • 2e40945 fix: guard blocknote popover references
  • 54d53b8 fix: dedupe native menu state sync
  • 848d718 fix: repair empty editor block swaps
  • ec83e9b feat: show vault root in folder tree
  • ce859aa fix: stabilize inbox organize navigation
  • 1f4889f fix: keep vault loading shell visible
  • 2a2ea1b fix: uncap wide editor content
  • b2a50d9 fix: remove wide note max width
  • cca72a9 fix: pass 'en-US' to word-count toLocaleString in note subtitles (#438)
  • ef0e85b ci: add rpm bundle to linux release workflows
  • 2624d32 fix: keep large vault startup responsive
  • 9c42da5 Revise README for platform support and clarity
  • 454acb5 doc: README add installation via Homebrew (#338)
  • 2a691f6 fix: keep vault asset previews available after switches
  • c4de154 test: stabilize wikilink smoke insertion
  • 670aae9 fix: create type documents at vault root
  • f3b4e5e fix: preload Wayland client for Linux AppImage (#405)
  • 4c4f01a Add Vietnamese language support and update locale files (#421)
  • 79d7eb9 feat: add comprehensive Traditional Chinese (zh-TW) locale support (#419)
  • d1ed826 fix: suppress watcher refresh after new note writes
  • 2e8286d fix: normalize Windows verbatim note paths
  • cb9ebaa fix: keep manual selection after inbox organize
  • c295c9f feat: add note width modes
  • a4b1108 fix: debounce rich editor serialization
  • 6f29542 fix: render mermaid diagrams from notes

Stable release โ€” manually promoted from main

Includes macOS (Apple Silicon and Intel), Windows x64, and Linux x64 bundles

Built from adcaa8a3 on 2026-04-30

Tolaria 2026.4.29

April 29, 2026 ยท stable-v2026.4.29

View on GitHub

What's Changed

  • dcd0d73 fix: open vault files externally
  • 0e8c8fb docs: add product analytics workflow
  • 42bdd55 fix: move mcp config copy to settings
  • 3a6c972 fix: allow pdf asset previews in csp
  • f53a374 fix: localize recent UI copy
  • 23145a0 feat: preview pdf files in app
  • 5b86b0b fix: validate active note cache refresh
  • dc1b178 docs: add localization developer workflow
  • 3dc520a feat: add safe note open cache
  • 792b300 fix: keep saved view reorder UI native
  • 6ee7f21 feat: add gemini cli agent support
  • 3db1ed9 fix: split ai permission tooltips
  • 7a7ef5d fix: improve ai permission toggle contrast
  • 4c42cf4 Updated release download link
  • 405b711 revert: restore editor side menu ordering
  • 83705e2 docs: add ADRs for gitignored visibility and saved view ordering (guard โ€” from commits d2c15b8, fd92ff5)
  • 4349271 fix: stabilize radix overlay presence
  • ec2e04a test: wait for date picker smoke note load
  • a17ec68 fix: tolerate stale vault watcher listeners
  • eda4d38 fix: let disk decide type file conflicts
  • f9b155b fix: repair malformed editor block entries
  • 4a62008 fix: clamp stale raw editor selections
  • a08cee7 refactor: share cli agent runtime scaffold
  • a7c480a fix: normalize stale vault entry metadata
  • f4790d5 fix: detect Windows npm ai agent shims
  • ed52a9e fix: preserve frontmatter date picker days
  • 2fcd808 fix: detect Windows npm ai agent shims
  • 9d15286 fix: stop orphaned mcp server processes
  • 537bd0f fix: normalize Windows vault image paths
  • 6482416 feat: add theme mode command actions
  • c6f3d9d fix: create type files in type folder
  • 65e54f1 fix: render saved view colors
  • 58f8a77 chore: ratchet codescene thresholds
  • 0bf280d fix: satisfy ai permission mode clippy
  • d2d4746 feat: add vault ai agent permission modes
  • 91db7c0 fix: pause saves without active vault
  • 87908d9 fix: allow guidance open path
  • 40544fc fix: detect nvm ai agent binaries
  • f34fdb0 fix: guard stale suggestion menu actions
  • e601a42 fix: surface ai agent final replies
  • de627c2 fix: normalize missing vault metadata
  • 46d9aae fix: dedupe editor toolbar state closes
  • 6b96b5c fix: reset editor selection before note swaps
  • 595c48c fix: apply settings theme changes immediately
  • fd92ff5 feat: allow manual saved view ordering
  • a39b346 fix: detect mise node for mcp setup
  • deac10c fix: detect nvm pi installs
  • 0e1e0ff fix: preserve ai composer line breaks
  • a645edb fix: repair malformed editor block ids
  • 48f1fb0 feat: add gemini cli external ai setup
  • 1aede09 fix: preserve wikilinks inside markdown tables
  • d51b76f fix: restrict sentry releases to stable builds
  • 8e66fb4 fix: preserve table math markdown
  • a2843a0 fix: persist immediate note creation before open
  • 38fb8a7 feat: copy mcp config from app
  • be5a8bb fix: make editor left handle draggable
  • ce040c7 test: cover table hover stability

Stable release โ€” manually promoted from main

Includes macOS (Apple Silicon and Intel), Windows x64, and Linux x64 bundles

Built from dcd0d738 on 2026-04-29

Tolaria 2026.4.28

April 28, 2026 ยท stable-v2026.4.28

View on GitHub

What's Changed

  • ced89a4 fix: render mermaid diagrams with lightbox
  • 20a9605 fix: update fallback vault git email
  • 2e33131 fix: refine Italian locale labels
  • d2c15b8 feat: hide gitignored vault content
  • 2fe6c5b fix: respect selected ai agent in right panel
  • 2a224f7 refactor: simplify note mutation flushing
  • b85d54b fix: preserve ai agent final result text
  • 9c05e17 fix: sanitize custom view filenames
  • cf6ad71 ci: de-duplicate coverage-backed test lane
  • db82aee refactor: consolidate ai agent session flow
  • c72d833 feat: add pi ai agent support
  • a3ca78f fix: guard git init parent folders
  • e912ab9 fix: use selected vault for mcp bridge
  • 49717dc feat: add opencode ai agent option
  • d9a0a04 chore: ratchet codescene thresholds
  • 0561fe6 fix: restore editor block handle reordering
  • 2f078fa feat: watch active vault filesystem changes
  • 98fde65 feat: render mermaid note diagrams
  • a5c4b8f fix: hide ai agent subprocess windows
  • 1301653 fix: avoid tooltip dropdown popper nesting
  • ee90b05 fix: guard inline input types
  • b6c11b1 fix: close claude print-mode stdin
  • 2fbdafa fix: set git identity before remote connect
  • 39f44b8 fix: copy fenced code blocks exactly
  • cb3274c fix: harden windows mcp setup
  • 76d8bba fix: remove hidden Claude permission bypass
  • 86853cf fix: allow Codex to edit active vault
  • 9a292d2 fix: map releases to Sentry
  • 4a22b02 test: harden locale catalog validation
  • 9cb0de3 fix: parse crlf frontmatter
  • 324af6b fix: normalize folder filtering across path separators
  • 926db0e feat: add lara-powered app localization
  • b1a9783 fix: keep raw editor full width

Stable release โ€” manually promoted from main

Includes macOS (Apple Silicon and Intel), Windows x64, and Linux x64 bundles

Built from ced89a42 on 2026-04-28

Tolaria 2026.4.27

April 27, 2026 ยท stable-v2026.4.27

View on GitHub

What's Changed

  • da13cb3 fix: satisfy editor find command contract
  • dbf8ba5 feat: add editor find and replace
  • 3e8a6e5 fix: render inline math while typing
  • 8141644 fix: revert note width modes
  • f8721f2 feat: add note width modes
  • fb39c66 fix: handle invalid Windows save paths
  • f1bed13 fix: refresh type state after type changes
  • 257cf6e fix: keep theme tooltip inside window
  • 908daaf feat: add basic file actions
  • d15437f test: cover consecutive IME composer input
  • 30281f8 chore: ratchet codescene thresholds
  • 4ef6edf feat: preview vault images in app
  • 918419e fix: respect macos control text bindings
  • 2704002 fix: remove note drag and drop flows
  • 9265b8f fix: stabilize AI composer text editing
  • 943fa85 fix: satisfy localization build
  • a2f8ba7 fix: complete app localization pass
  • 1d546dd fix: allow note drops to insert wikilinks
  • 63877e6 fix: store window state in logical points
  • 8896f1d fix: restore saved window size after launch
  • f523099 feat: add vault loading skeleton
  • 15f38f0 feat: support non-git vaults
  • cdd2dde feat: persist main window placement
  • 292d373 fix: prevent editor handling note wikilink drops
  • 1136c19 fix: clarify macos release artifact names
  • 8406042 fix: support native folder drops in AI inputs
  • f07cbbe test: reflect cloned getting started vault in smoke
  • 768da9f fix: prevent bottom bar wrap at narrow widths
  • f58e9d8 fix: allow editor runtime styles under CSP
  • 133242e fix: keep compact status bar on one row
  • aebd2be fix: refresh language settings draft
  • 60238fb fix: persist native language settings
  • 5336236 test: cover native command wrappers
  • f9719f1 feat: add app localization foundation
  • e4083de fix: detect claude cli on windows
  • 65a89f1 fix: detect codex from macos shell paths
  • 5b34ec2 feat: publish intel mac builds
  • e579979 fix: preserve composed ai input
  • c7edc71 feat: add note layout preference
  • 5fd8f8f feat: add markdown math support
  • 694419d fix: disable native text suggestions
  • e82fb2a test: cover table cell paste regression
  • 39234dc fix: block unsafe editor links
  • 36e8a62 fix: isolate blocknote side-menu clicks
  • d622b91 docs: ratchet codescene thresholds
  • 5a546b9 feat: add generic MCP config support
  • b8c1a09 fix: resolve ime selection typing
  • c2c56cf fix: harden inline wikilink ime handling
  • 449a62e fix: address unicode slug type check
  • 7d6fd5c fix: preserve unicode note title slugs
  • 75ed646 feat: drop notes into editors as wikilinks
  • a3096c5 fix: reflow status bar at narrow widths
  • 6105c75 refactor: fix hook dependency lint warnings
  • 92eee0d fix: keep editor selection stable around media blocks
  • f14fda0 fix: accept finder folder drops in ai composer
  • 31d12d8 test: stabilize smoke web server
  • 6a002f0 fix: guard missing inline input types
  • 9d30d11 fix: harden linux appimage startup
  • b709acd fix: type delete confirmation shortcuts
  • 080e349 fix: submit delete confirmation on enter
  • 51010ca fix: show manual update feedback
  • 15bc3a4 fix: disable command palette text correction
  • 3ebfa64 fix: allow runtime stylesheet injection

Stable release โ€” manually promoted from main

Includes macOS (Apple Silicon and Intel), Windows x64, and Linux x64 bundles

Built from da13cb38 on 2026-04-27

Tolaria 2026.4.25

April 25, 2026 ยท stable-v2026.4.25

View on GitHub

What's Changed

  • 8207b87 fix: include linux signatures in stable release
  • 602a099 fix: polish contribute dialog copy
  • 2315122 fix: clear stale editor selection on note switch
  • ab4fcdb ci: include linux alpha updater signatures
  • a56cb8c fix: allow raw editor styles under CSP
  • b93e6d4 ci: test linux alpha release artifacts
  • 3152ff2 fix: allow optional pending diff loaders
  • dd018cf fix: queue diff opening until tab activation
  • d0d9d90 test: stabilize H1 wikilink smoke
  • 944efad fix: load note windows without vault scan
  • ef4ad25 feat: add Refactoring support card
  • c427cd2 fix: guard native file drops
  • 151e993 chore: ratchet codescene thresholds
  • 60554d0 fix: handle IME composition in AI composer
  • 4929f11 fix: harden windows release and git subprocesses
  • 3f4e5b5 fix: refresh image asset scope after attachment writes
  • cd49c81 feat: add status bar theme toggle
  • b9f3dc9 fix: refine contribute panel actions
  • 122aba7 fix: load current note in new window
  • 05896bd fix: restore editor external link toolbar actions
  • 87a933f fix: replace silent catch blocks with warnings
  • 54c0efa feat: add dark mode foundation
  • bdde0c8 fix: bound note prefetch cache by size
  • a474303 fix: preserve back history after cmd-click wikilinks
  • 4701485 fix: keep empty title clicks in h1
  • 135a8a0 fix: handle nested release artifacts
  • 0f5d7d5 fix: restore folder boundary validation
  • d6b3c0a feat: add windows desktop release support
  • f896c01 fix: publish linux stable release artifacts
  • c3cff0c feat: replace feedback with contribute modal
  • 8c7f923 fix: gate macos shortcut constants for linux clippy
  • 38acebb feat: add linux desktop support
  • 622977a fix: restore clone modal invoke typing
  • 9ce1c6f refactor: restore clone modal code health
  • 4686563 fix: harden clone git repo flow
  • 564ee0a test: cover native command wrappers
  • 11655c0 fix: harden inbox auto-advance merge
  • daa1e3e fix: keep ai composer responsive after image paste
  • f2c83be fix: format MCP config tests
  • 6104402 fix: write Claude Code MCP config to .claude.json
  • 67c8598 fix: keep clone flows off the UI thread
  • 7e386ff docs: move contributing guide to repo root
  • 309b816 Add custom funding URL to FUNDING.yml
  • 9f6779e docs: add contributing guide
  • 843cedd fix: align auto-advance test bridge types
  • 05156ca feat: add inbox auto-advance setting

Stable release โ€” manually promoted from main

Includes macOS (Apple Silicon), Windows x64, and Linux x64 bundles

Built from 8207b87c on 2026-04-25

Tolaria 2026.4.24

April 24, 2026 ยท stable-v2026.4.24

View on GitHub

What's Changed

  • ba5c165 test: harden macos titlebar coverage
  • 2308b26 docs: add ADRs for cache concurrency and git signing fallback (guard โ€” from commits 42bb6c4, 6dbcc33)
  • b7f482b fix: respect macos header double click action
  • 33d7404 fix: keep blocknote tables editable after focus changes
  • 0ecac2a fix: allow unicode type filenames
  • 7c9f2b0 fix: guard editor selection churn around inline actions
  • 24e317c fix: handle unreadable non-utf8 files gracefully
  • 66c183f fix: keep IME composition stable in editors
  • dacf9bb fix: guard note loading without active vault
  • 3c92c20 fix: sync onboarding vault handoff
  • 61c3a3e docs: ratchet codescene thresholds
  • 2e7c94d fix: register created onboarding vaults
  • 98ade74 fix: avoid duplicate onboarding vault writes
  • 1877634 fix: persist onboarding vault selections
  • 57bbcdb fix: format cache hardening helpers
  • 42bb6c4 fix: harden vault cache updates
  • 070cd3a test: stabilize telemetry onboarding smoke
  • accc627 fix: restore vault images and default folders
  • 941f12a test: clear vitest cache before coverage
  • 4710a2d fix: reuse local smoke server by default
  • 65a4212 fix: satisfy arrow ligature type checks
  • 4ed0289 Revert "test: simplify main entrypoint setup"
  • 4ad32fa test: simplify main entrypoint setup
  • c9623d5 feat: add arrow ligatures in both editors
  • 7728645 fix: anchor settings default agent dropdown
  • 5b8aa8d fix: guard pull refresh during unsaved editor edits
  • 21b6d89 fix: support symlinked vault notes
  • 11fc123 fix: guard folder picker after update install
  • d98fa94 fix: retry commits when signing helper is missing
  • add3c40 fix: thread vault image path through tab swaps
  • fb0d550 fix: make starter vault images portable
  • 6adf7fd fix: capture react root errors in sentry
  • 3b4d959 fix: finish empty Claude Code runs
  • bb1b186 fix: stabilize smoke dev server watch
  • 6dbcc33 fix: create repos despite commit signing
  • 4944365 fix: detect local Claude Code installs

Stable release โ€” manually promoted from main

Requires Apple Silicon (M1/M2/M3)

Built from ba5c1650 on 2026-04-24

Tolaria 2026.4.23

April 23, 2026 ยท stable-v2026.4.23

View on GitHub

What's Changed

  • c4c6bb6 fix: restore folder row toggle
  • 35dd2dd docs: add/update ADR for note retargeting (guard โ€” from commit 2c9361d)
  • 89141ba chore: ratchet codescene thresholds
  • 2b9294f style: format note move backend
  • a756af5 fix: keep note drop targets active during drag
  • b01b156 fix: align folder rows with sidebar items
  • 2c9361d feat: retarget notes to types and folders
  • 8b73ef5 feat: add sidebar folder rename and delete actions
  • a6a727a fix: align inspector create-type typing
  • bf13eed fix: handle filename collisions in create flows
  • a27a70e fix: allow PostHog and Google Fonts in app CSP
  • ca92bf4 fix: restore keyboard shortcut typing
  • 9fda0a6 fix: make note renames crash-safe
  • 0ffb7c6 Ignore history shortcuts while editing
  • 633d9f1 Add security policy and private reporting guidance
  • ba3d413 fix: recover from missing note paths
  • f328692 fix: satisfy clippy for MCP status
  • b0b476c fix: harden external AI tool setup
  • dac696b fix: guard toolbar popover anchors
  • cda87ee feat: add sidebar folder rename and delete actions
  • 33324a5 fix: harden mcp bridge and vault boundaries
  • f28626b fix: finish claude agent streams
  • 1bc2e3d docs: add ADRs for startup and linkify lifecycles (guard โ€” from commits 59268ac, bf44264)
  • 8e6bdab docs: ratchet codescene thresholds
  • d52362a fix: repair tiptap patch integrity
  • bf44264 fix: silence duplicate linkify init warnings

Stable release โ€” manually promoted from main

Requires Apple Silicon (M1/M2/M3)

Built from c4c6bb6c on 2026-04-23

Tolaria 2026.4.21

April 21, 2026 ยท stable-v2026.4.21

View on GitHub

What's Changed

  • 1b3a444 fix: show welcome on fresh install without missing vault
  • c4da7f1 fix: narrow raw mode sync override
  • c5fe291 fix: sync inspector edits into raw editor
  • 59268ac fix: guard empty vault path during startup
  • 3e4e2eb refactor: simplify breadcrumb and note-list search ui
  • 0537525 Rename 'Documentation' section to 'Tech Docs'
  • 0c0354b Updated README badges
  • 6023e95 fix: serialize vitest coverage files
  • 88d5694 fix: retry flaky vitest coverage teardown
  • db6b388 fix: keep vitest coverage shards off workspace
  • ad9901b fix: stabilize coverage suite reruns
  • b785c53 test: increase strategic coverage
  • 8ae1ade test: cover live sidebar type picker sync
  • 35b0356 fix: adapt save reload callback
  • d3d663a fix: reload vault entries on tauri startup
  • 8f62435 test: cover journal vault scan
  • 0e54173 test: cover explicit journal visibility
  • a6f1524 ci: reject placeholder telemetry secrets
  • 4cd5bae fix: sync sidebar types with live vault state
  • fb1265e test: stabilize note list search timing
  • ca89662 fix: sync raw editor frontmatter state
  • 97f285e ci: upload coverage to codecov
  • 4bd4ef4 Added release badge in README
  • be29880 Added walkthroughs to the README
  • 7be5519 fix: sort alpha releases chronologically
  • 8cefbe9 fix: refine derived inverse relationship labels
  • dd0a55b docs: add ADR for external vault refresh after pulls and agent edits (guard โ€” from commit 0020ade)
  • 610276b docs: ratchet codescene thresholds
  • e6c968e fix: satisfy note list keyboard build
  • 367a66f fix: debounce note list search
  • 6a40469 fix: harden startup telemetry urls
  • ec8b637 fix: hide uncloned getting started vault

Stable release โ€” manually promoted from main

Requires Apple Silicon (M1/M2/M3)

Built from 1b3a4443 on 2026-04-21

Tolaria 2026.4.20

April 20, 2026 ยท stable-v2026.4.20

View on GitHub

What's Changed

  • 3ee42fb test: align create-note smoke placeholder
  • eacf05a fix: reload notes after agent edits
  • a199fad fix: widen editor focus block typing
  • e956c80 fix: keep editor sync from clobbering live inserts
  • 7a6e386 fix: reopen active note after pull updates
  • e0e2dc4 test: add pull refresh regression
  • 0020ade fix: tighten pulled note refresh flow
  • 503e482 fix: normalize inverse relationship labels
  • 0d0e6af fix: keep vault menu remove action in row
  • dbaf361 test: fix starter-vault app shell coverage
  • d3741c8 test: fix starter-vault shell regression
  • b90d2f8 fix: reorder welcome onboarding actions
  • 9536efe fix: persist AI panel chats across reopen
  • c86a6ab docs: add/update ADR for starter vault local-first remote flow (guard โ€” from commit 374b4f6)
  • 1d7c027 Updated Tolaria Icon
  • 74e50c6 fix: hide stale getting started vault entries
  • 8b97ef7 feat: refresh welcome screen branding
  • 08855ce fix: defer git history during note switching
  • 03042bb fix: normalize shipped telemetry secrets
  • cee4bef fix: harden shipped telemetry config

Stable release โ€” manually promoted from main

Requires Apple Silicon (M1/M2/M3)

Built from 3ee42fb8 on 2026-04-20

Tolaria 2026.4.19

April 19, 2026 ยท stable-v2026.4.19

View on GitHub

What's Changed

  • f223d4f refactor: curate demo-vault-v2 fixture
  • 2f693c4 fix: dedupe new type palette action
  • 44f0c7c feat: open favorites in neighborhood mode
  • ea14f1a fix: use rendered release note html
  • db21ae4 feat: improve release history page
  • 8019c4f fix: defer missing vault startup state
  • 0d552e1 fix: satisfy note-open perf build checks
  • 977f559 fix: stop note navigation from scaling with vault size
  • 261a5be chore: ratchet codescene thresholds
  • 8d3cce7 fix: satisfy neighborhood history build checks
  • e059482 fix: unwind neighborhood history on escape
  • b98d412 fix: stop seeding title during property init
  • 098dc42 test: add isolated vitest coverage runner
  • 326ccb0 test: stabilize vitest coverage artifacts
  • c2bbdb0 test: stabilize git default branch in helpers
  • 039f9e4 fix: cache inspector link lookups
  • 8581a1b fix: organize seeded claude shim files
  • 2c5cb59 Removed old Project spec reverence
  • 348b627 Updated README
  • f5cc5ff fix: satisfy clippy and stabilize app startup test
  • 374b4f6 feat: keep getting started vaults local by default
  • 36c20f3 fix: hide unavailable getting started vault
  • 8551d81 Deleted old unused font
  • d5497d7 Match getting started subtitle copy
  • 046afe0 Simplify Getting Started vault subtitle
  • cb1cc4b fix: include inverse neighborhood groups
  • 00cb938 fix: add cmd o quick-open alias
  • 80c1327 fix: keep neighborhood reverse matches path-aware
  • 9534449 fix: hide absent neighborhood groups
  • 2d5361b fix: keep keyboard note switching snappy
  • b22da65 fix: keep note switches instant
  • 862af86 fix: preserve image selection while hovering toolbar
  • 9ecefc9 feat: add stable landing page download link
  • 9693fe2 fix: restore type filter icon colors
  • 92ea32c feat: add neighborhood browsing mode
  • 2e2bd2f fix: preserve native welcome vault creation
  • 3556d93 test: format vault command assertions
  • feef938 fix: align fresh vault seed files
  • 67a9930 feat: add empty vault creation flow
  • aed4d05 docs: ratchet codescene thresholds
  • cac7f12 fix: stop duplicate native quick prompt paste
  • 72b5b52 feat: add view note-list controls
  • 7deeb49 feat: add number property type
  • 8c0a2e7 fix: share onboarding drag shell
  • c4e66dc fix: make onboarding window draggable
  • c0bb722 fix: reuse note content cache for rapid note switches
  • bc11c86 fix: stabilize ai mode paste editing
  • 502ecf0 test: stabilize wikilink smoke coverage
  • 8bbbba9 fix: correct vault path type guard
  • 86adf86 fix: restore bottom bar vault switching

Stable release โ€” manually promoted from main

Requires Apple Silicon (M1/M2/M3)

Built from f223d4f6 on 2026-04-19

Tolaria 2026.4.18

April 18, 2026 ยท stable-v2026.4.18

View on GitHub

What's Changed

  • cec1627 fix: preserve image toolbar hover bridge
  • b001834 fix: show Note metadata in autocomplete
  • ed9ceff fix: align Notes counts with explicit type
  • e18491b fix: preserve untitled rename session continuity
  • fd0cfc7 fix: exclude attachments from all notes totals
  • 6541ce5 test: stabilize wikilink smoke timing
  • 4456801 fix: keep h1 typing responsive
  • db7aaf1 fix: restore note type during vault repair
  • 54b2616 fix: restore manual commit dialog when autogit is off
  • 6a90e9f fix: correct editor layout diff callback type
  • b79c78a fix: save raw note changes before switching notes
  • 48a8882 Reorder CodeScene badges in README
  • 9827670 Added codescene badges
  • 857d55a fix: stop cmd+s from renaming note titles
  • b78dfad fix: resume onboarding after telemetry on fresh start
  • 9ac51ba test: pin app test active vault
  • 1fee994 test: cover mock vault config path
  • 764bbf0 test: scope inbox sidebar assertion
  • ff05ba0 chore: ratchet codescene thresholds
  • 347df47 fix: stabilize smoke vault harness

Stable release โ€” manually promoted from main

Requires Apple Silicon (M1/M2/M3)

Built from cec1627a on 2026-04-18

Laputa 0.20260410.666

April 10, 2026 ยท v0.20260410.666

View on GitHub

What's Changed

  • 0aa3d15 fix: tighten settings panel organization toggle typing
  • 7bc7443 feat: add explicit note organization setting
  • 0e1d98a fix: ellipsize long property values
  • f37d111 fix: replace breadcrumb shadow with border
  • 3c51a18 feat: add created dates to note list rows
  • acd9add feat: add feedback modal flow
  • 7dace14 fix: align favorites sidebar rows
  • 09f5ab9 fix: hide view counts on hover
  • 7304c3c fix: move cmd+e to toggle organized
  • 378990c fix: restore filter field dropdown scrolling
  • f745bc4 chore: ratchet codescene thresholds to 9.68/9.33
  • b13d223 fix: support localized ai panel shortcut
  • c6d1034 fix: keep date filter rows aligned
  • 165f53f fix: refresh changes after frontmatter edits
  • 31c8ac4 fix: make ai panel shortcut command-only
  • dd78e25 fix: keep note list icons inline
  • cb2e28f fix: hide legacy title chrome for frontmatter titles
  • d13e181 fix: narrow pending tab swap target path
  • 4634949 fix: swap note content after pending navigation
  • 90fbe82 fix: hide stale title chrome while notes load
  • 64e923a fix: type property chip icon helper
  • 3ac2326 fix: restore built-in relationship chip icons
  • f4b59c9 chore: ratchet CodeScene thresholds to 9.68/9.32
  • 21ad9ad fix: unclip view filter field combobox
  • 8b4ab4a feat: preview relative date filters
  • 680a561 feat: enhance note list property chips
  • cffac28 feat: add searchable filter field combobox
  • c3a9400 fix: make AI panel shortcut command-only
  • 3feb167 fix: surface status in note list chip picker
  • 459145b fix: improve note icon property editing
  • 24f6a01 fix: hide legacy title section for H1 notes
  • 6640691 style: format search title lookup
  • 429aba7 fix: use h1 titles for displayed note names
  • ad46eb0 fix: serialize single-item yaml lists as blocks
  • 5c5d40f fix: require cmd-click for editor links
  • b06d084 docs: clarify CodeScene boy scout workflow
  • 7da50be fix: isolate pre-push smoke server
  • 8f614e4 fix: isolate smoke lane dev server
  • c0a5e8e fix: restore tauri runtime compatibility
  • 528c711 fix: narrow commit url before opening
  • 9078544 refactor: improve CodeScene hotspot health
  • e7fe938 test: keep the smoke gate on stable app flows
  • 616952b test: stabilize smoke lane and timer-heavy tests
  • e3eb774 test: stabilize the pre-push smoke lane
  • be57656 test: stabilize the smoke lane
  • f66c8cf fix: stabilize note list hotspots
  • 8141b8f refactor: split note list hotspots
  • 0cc21e6 docs: add ADRs 0046โ€“0049 for starter vault clone, regex filters, relative date filters, per-note icon (guard โ€” from commits ef4a512, b0b6a4f, 037fd39, 771409d)
  • ef4a512 feat: clone the starter vault on demand
  • 037fd39 feat: support relative date view filters
  • b0b6a4f feat: add regex mode for view filters
  • d33117d test: stabilize untitled draft title regression
  • 751d1e3 test: cover AI panel shortcut regression
  • 63eedbd fix: clear missing active vault paths
  • b674d20 fix: stop writing empty suggested properties
  • f00eb65 fix: tighten relationship chip typing
  • 927aa5c feat: show icons on relationship chips
  • f0ac684 fix: allow CodeScene recovery mode
  • 7e48b81 fix: tighten note icon typing
  • 771409d feat: add note icon property support
  • 2eb8e02 fix: stop syncing title frontmatter on note open
  • 31e41e8 fix: avoid duplicate list property drag tab index
  • 9cc3bcf feat: customize inbox note list columns
  • 6c67b39 fix: narrow deleted preview active tab path
  • 8218bcf feat: show deleted notes as restorable changes
  • 59205c4 fix: keep view filter values as plain text
  • c68c0a6 test: slim the pre-push smoke lane
  • b384cbf chore: enforce main-only workflow and adopt AGENTS.md
  • 578f369 chore: ratchet CodeScene thresholds to 9.45/9.29
  • cbad383 style: satisfy rustfmt pre-push check
  • 6a02317 fix: correct editor breadcrumb props typing
  • a12b350 fix: hide title section for untitled drafts
  • c403522 docs: rewrite vault AGENTS.md template โ€” vault-agnostic, H1-as-title convention
  • 4a4ce4a fix: open editor immediately when clicking suggested property slots
  • 387ca56 docs: add/update ADRs for H1-as-title and Trash removal (guard โ€” from commits d50f347, 9c87eca, d0c3a6b)
  • e0ea0dd chore: restore ui-design.pen (Pencil design file โ€” not stale)
  • c9da52a docs: restore VISION.md โ€” product vision, strategy and design principles
  • c5f6e15 chore: remove remaining stale screenshots
  • 89f655c chore: remove stale docs and assets (PROJECT-SPEC, ROADMAP, VISION, Design System Proposal, iPad Prototype, screenshots, untitled notes, prompt.txt, ui-design.pen)
  • ceda8ab fix: suggested property slots now reliably open editor after click
  • 95edc7f docs: require completion comment on Todoist task before /laputa-done (QA, refactoring, ADRs, code health)
  • 8fe5340 docs: require pre-task code health check โ€” refactor before feature work if below gate
  • 8b98e77 fix: sync custom properties to VaultEntry on frontmatter changes
  • ca507f6 fix: forbid lowering CodeScene thresholds in CLAUDE.md
  • f756e6a feat: add note count chips to sidebar view entries
  • 0d08a80 style: cargo fmt on mod_tests.rs
  • 3411f4e fix: stabilize flaky SearchPanel keyboard tests with act() wrapping
  • e2890ec fix: don't bake demo-vault-v2 path into CI builds
  • 8bd26b5 fix: sanitize gray_matter YAML output to handle unquoted colons and hash comments in list items
  • 6762c5c style: cargo fmt
  • d284bef fix: add hasH1 to mock entries for build compatibility
  • 9c87eca feat: auto-rename untitled notes + Rust title resolution tests
  • d50f347 feat: H1-as-title โ€” title resolution, TitleField hiding, breadcrumb filename
  • 0b58fd6 fix: change AI panel shortcut from Cmd+Option+I to Cmd+Shift+L
  • 0c5db9e fix: remove remaining trash navigation command and header title
  • d0c3a6b refactor: remove Trash system โ€” delete is now permanent with confirm modal
  • 53072eb fix: Cmd+Option+arrow navigation now follows the visible note list order
  • 463c9bd fix: show Add button immediately in suggested relationship slots
  • b9ad9d4 fix: align suggested property slots with real properties in Inspector
  • 768b4c7 fix: add bottom padding to Favorites list matching top padding
  • 4573ea8 fix: default sidebar section to Inbox on app launch and vault switch
  • 4bbd1f4 style: apply rustfmt to classify_file_kind tests
  • 2a5386a fix: pass forceRawMode through ActiveTabBreadcrumb to BreadcrumbBar
  • ef17e7b fix: hide Raw toggle for non-markdown files forced into raw editor
  • 61a83f4 fix: wikilink filter values now match frontmatter format with alias support
  • d235f9b fix: wikilink autocomplete in FilterBuilder no longer clipped by dialog
  • d06dea9 fix: always show note title in breadcrumb bar when raw/diff mode active
  • 9ee6691 fix: make Select scroll buttons functional by using overflow-hidden on Content
  • b10cf8d fix: show types with 0 notes in sidebar by iterating typeEntryMap
  • 27b53d8 fix: wrap title + editor in editor-content-wrapper for consistent horizontal padding
  • f902b23 style: fix rustfmt formatting in trash.rs
  • b4f2fe0 feat: auto-purge notes trashed 30+ days ago on app launch
  • 64238e5 fix: exclude non-markdown files from Inbox view
  • c8b26b1 feat: show YAML name field as title for .yml files in breadcrumb bar
  • 7c1269c feat: replace native date picker with shadcn/ui Calendar + Popover in filter builder
  • 95742c3 feat: GitHub Desktop-style Changes view โ€” filenames, status icons, auto-diff
  • fea8038 feat: disable BlockNote/Mantine editor animations and transitions
  • e98576d fix: resolve TypeScript errors in Sidebar and NoteList
  • de8a246 feat: remove AI Provider Keys section from Settings
  • c282244 feat: reactive vault state โ€” editor changes propagate immediately to all UI
  • bf530c8 fix: include non-.md files in vault cache incremental updates
  • db31c11 test: update Sidebar test to match new behavior โ€” types with 0 notes shown
  • 5db899a fix: wrap SearchPanel Enter keyDown in act() to prevent flaky test
  • 8e9a1ba feat: add body content filter support in Rust backend
  • 1145f4a feat: add organized toggle to breadcrumb bar and command palette
  • 49d7353 refactor: replace relationship-based inbox logic with _organized property
  • bfe06ae feat: add + button to TYPES header for creating new types
  • f44c831 fix: use full vault reload after view create/delete for reliable FOLDERS update
  • 7d16c75 fix: rustfmt formatting in discard_file_changes
  • a3da859 feat: add per-file discard changes in Changes view
  • 8b60c98 fix: coerce claudeCodeStatus/Version nullโ†’undefined for AppCommandsConfig
  • 2f0be6e fix: add claudeCodeStatus/claudeCodeVersion to AppCommandsConfig (TS error)
  • 66a7540 fix: update pnpm lockfile for @blocknote/core patch (CI frozen-lockfile fix)
  • 29bc072 feat: add Claude Code detected/missing badge to status bar
  • 3d6f16f feat: add body content filter for Views (contains/does not contain)
  • e6274e8 feat: add suggested property/relationship slots in Inspector
  • 97dc6e9 feat: move Info section below Backlinks in Inspector, add Phosphor icon
  • 2978149 fix: rename "Link existing" to "Add relationship" in Inspector
  • 8ae5b7c feat: enrich getting-started-vault with real PKM example notes (Luca's system, guided Welcome)
  • e1aa57f fix: wikilink autocomplete triggers mid-text, not only on empty lines
  • c07bdfd refactor: simplify getting-started-vault (3 types: Note/Topic/Person, no prefixes in filenames, Welcome as home)
  • ee3415c feat: redesign welcome screen with three vault options
  • 9a82e9a feat: include Type definitions in command palette's dynamic commands
  • 1d301ea fix: apply rustfmt formatting to vault module
  • ec16e75 feat: add getting-started-vault with onboarding content
  • 162aea6 fix: add listPropertiesDisplay to remaining VaultEntry literals
  • e70b5aa fix: add listPropertiesDisplay to mock entries for type check
  • 8d90b84 feat: add type-specific property chips in note list
  • 0be1060 fix: remove Update channel from Settings, keep only Release channel
  • b6517e2 fix: rename SECTIONS to TYPES in sidebar header
  • 0e71403 fix: enforce priority sort in laputa-next-task (p1 before p3/p4)
  • 7cd813e fix: update vault entries immediately after view create/delete
  • df8ed50 fix: remove Inbox period filter pills, show all notes by default
  • f163d63 fix: prevent CI runner vault path from leaking into distributed builds
  • c5b151a fix: remove Quarter filter pill from Inbox, keep Week/Month/All
  • f1476e1 test: add Playwright smoke test for filter wikilink autocomplete
  • 08e2803 feat: add wikilink autocomplete on [[ in view filter value field
  • 49df920 docs: add mandatory UI components rules to CLAUDE.md โ€” always use shadcn/ui, never raw HTML
  • b84dc12 fix: add type="button" to EmojiPicker buttons to prevent form submission
  • ee5fd00 fix: parse date strings in view filter before/after operators
  • 8433aad feat: rebuild FilterBuilder with shadcn/ui components
  • d610a43 style: apply rustfmt to views migration code
  • 0270e29 feat: move view storage from .laputa/views/ to views/ in vault root
  • 734f13a feat: add edit button (pencil) on hover for sidebar view items
  • d3dd0e6 fix: show view emoji icon in sidebar instead of default funnel
  • fbf8909 fix: use substring match for contains/not_contains on relationship fields
  • e0cd537 fix: resize Create View dialog and make filters scrollable
  • de033c7 fix: match view items to section items style in sidebar
  • b44a6c7 fix: move separator outside SECTIONS group โ€” between groups, not inside
  • 81142cf fix: equalize top/bottom padding on all sidebar group headers
  • 252618b chore: ratchet CodeScene thresholds to 9.56/9.33
  • 8c4652a fix: lower CodeScene thresholds to match current remote scores
  • 9a1ca42 fix: align FOLDERS header padding with FAVORITES/VIEWS/SECTIONS in sidebar
  • 0ed72c5 fix: path display below title โ€” focus-only visibility + robust path computation
  • 8cbbe1e fix: editor title textarea clips wrapped lines โ€” add field-sizing + robust auto-resize
  • 269cb58 feat: unify sidebar group headers โ€” all caps, chevron, collapsable with separators
  • 05a4194 feat: release channels (alpha/beta/stable) via PostHog feature flags
  • cd3747c feat: implement PostHog event tracking plan
  • 8cb32ed feat: migrate from @sentry/browser to @sentry/react
  • fc1d74b fix: editor title wraps to multiple lines instead of overflow hidden
  • da51174 fix: note path below title โ€” show only on focus, remove duplicate filename
  • e6e8e8a feat: selected type section uses type color โ€” filled icon, colored chip, tinted bg
  • f185f22 fix: parse numeric YAML values as numbers so _favorite_index persists
  • b695a63 feat: add Cmd+D keyboard shortcut to toggle favorite
  • aadc704 fix: rework Custom Views โ€” 5 QA bugs fixed
  • 3e18a34 chore: add .env.example, gitignore .env.local
  • 5fbb026 fix: breadcrumb action buttons always right-aligned
  • 6608730 chore: ratchet CodeScene thresholds to 9.72/9.34
  • b406067 chore: lower CodeScene average threshold to match remote score
  • 13c3fe2 fix: use useState for prevTitle tracking in TitleField
  • 1fc8652 chore: claude code loops forever โ€” waits 10min when no tasks instead of exiting
  • 3e1ece2 docs: add ADR 0041 for fileKind/all-files-in-vault-scanner; update README index for 0038โ€“0041 (guard โ€” from commit d037272)
  • 790ef77 feat: add Custom Views UI โ€” create dialog, filter builder, sidebar integration
  • 0e68f0b fix: apply rustfmt to favorite test assertion
  • 592cef4 feat: add favorites โ€” sidebar section, star button, frontmatter-backed, drag-to-reorder
  • b7c4071 chore: remove laputa-task-done system event notification
  • fda54c9 fix: apply rustfmt to trashed_at serde attribute
  • 55352c0 feat: normalize system properties to _archived, _trashed, _trashed_at
  • 0fb115b feat: show vault-relative path below title in editor
  • cd39070 fix: remove H1 heading from new note editor body
  • ccf1b85 fix: apply rustfmt formatting to vault scanner code
  • d037272 feat: show all files in folder view, open text files in raw editor, gray out binary
  • c7f857f fix: use is_some_and instead of map_or for clippy compliance
  • 620515e feat: add custom views frontend โ€” types, sidebar section, filter evaluation
  • a34274d feat: add custom views backend โ€” YAML parser, filter engine, Tauri commands
  • 927e0e1 fix: show note title instead of filename in search results
  • d65bea0 fix: apply rustfmt formatting to git dates code
  • 30f8820 feat: use git history for note creation/modification dates
  • 292f751 fix: add favorite/favoriteIndex to all VaultEntry mock data
  • 0889d74 feat: add favorites section with star button, frontmatter persistence, and drag-to-reorder
  • c85d12a refactor: remove expand/collapse from sidebar type sections
  • fd24777 fix: refresh folder tree after creating a new folder
  • 57b89fc fix: reassign AI panel shortcut from Cmd+I to Cmd+Option+I
  • 49aff89 feat: pre-assign type when creating note from type section
  • c64a3e5 fix: use percentage heights instead of 100vh to fix status bar visibility in native app
  • a353509 fix: reduce editor minimum width and padding at narrow sizes
  • a525eca fix: make commit button always visible in status bar
  • 06bde75 fix: rustfmt formatting for fallback YAML parser
  • ba056a6 fix: vault scanner fallback parser for malformed YAML frontmatter
  • 3cefc75 fix: remove overflow:hidden from status bar to prevent commit button clipping
  • 13e0281 fix: prevent BlockNote from altering list markers and inserting HTML entities
  • 37f32de fix: rustfmt formatting for create_vault_folder
  • 01fdadf fix: address folder tree QA feedback โ€” recursive filtering, folder creation, path display, remove flatten banner
  • 1488f6e fix: vault selection dropdown hidden behind sidebar
  • 8a17421 chore: update ui-design.pen
  • 81f9995 chore: fix CodeScene ratchet thresholds to match remote API scores
  • 4eca9ca fix: prevent infinite render loop when creating notes
  • 8365186 fix: active section badge shows primary background instead of gray
  • 10c4d79 fix: add error handling to createNoteImmediate to prevent crashes
  • fa37f6a fix: wikilink autocomplete uses relative path, prevent silent rename
  • 06485d5 fix: eliminate scroll stutter and fix breadcrumb shadow consistency
  • f8d94c3 fix: prevent status bar overflow from hiding commit button
  • e7c7c49 fix: use floor instead of round in CodeScene ratchet
  • e19476b chore: ratchet CodeScene thresholds to 9.85/9.39
  • 997fa47 chore: round down CodeScene thresholds to match actual scores
  • b9dd9eb fix: normalize property row and chip heights for consistent layout
  • 1e71869 chore: ratchet CodeScene thresholds to 9.85/9.39
  • 407d78c chore: fix ratchet thresholds โ€” round down to match actual scores
  • 4022129 style: cargo fmt โ€” fix pre-existing Rust formatting
  • 5a791d8 test: add Playwright + Vitest tests for raw editor type propagation
  • e1efcf6 fix: propagate frontmatter changes from raw editor to vault entries
  • f899046 docs: task not done until git push succeeds โ€” fix pre-push failures before marking done
  • 44f5943 fix: use next_back() instead of last() on DoubleEndedIterator (clippy)
  • 93b8300 feat: detect external file renames and offer wikilink update via banner
  • 3ede96a feat: subfolder support โ€” path-based wikilink resolution and cross-folder backlinks
  • 4dd30c5 feat: move filter chips to bottom of note list with gradient fade
  • 5db92fa fix: remove duplicate invoke import in App.tsx
  • e693ac2 feat: show blocking modal when vault has no git repo, offer auto-init
  • 8dd7501 test: add folder tree and filtering tests; docs: ADR-0033
  • 19326a7 feat: add FOLDERS section to sidebar with collapsible tree
  • 19795b6 feat: show Initialize/Invalid properties prompts for notes without frontmatter
  • 5fe18c0 feat: scan subdirectories and expose folder tree for sidebar
  • 5e060c2 docs: task-done notification is informational only โ€” no Brian approval needed
  • f3c97bb fix: disable Tauri native drag-drop to restore BlockNote block dragging
  • 1b4341b feat: show note title in breadcrumb bar when scrolled past title
  • c30a4ae feat: add markdown syntax highlighting in raw editor
  • 3418b18 feat: use JetBrains Mono for the raw editor
  • 46089ee docs: add ADR-0031, ADR-0032; update README index (guard โ€” from commits b229d59, 682470f)
  • fb8160c chore: ratchet CodeScene thresholds to 9.85/9.39
  • 552e085 fix: lower AVERAGE_THRESHOLD to 9.38 (actual score is 9.3884, threshold was set too high)
  • ee41060 docs: compress CLAUDE.md (176 โ†’ 130 lines) โ€” remove garbled section, deduplicate QA scripts
  • c938e10 test: remove non-core Playwright tests to bring suite under 10 minutes
  • c59b8cf chore: ratchet CodeScene thresholds to 9.84/9.39
  • f6b9997 fix: unify property panel chip sizes and ellipse long text values
  • 27ec739 chore: lower CodeScene thresholds to 9.83/9.38 after feature additions
  • 9743f46 fix: update SearchPanel arrow-key test to fire keyDown on input element
  • 8d08545 chore: ratchet CodeScene thresholds to 9.84/9.39
  • b10e090 feat: simplify breadcrumb bar โ€” remove left-side content and border
  • 9e849e4 fix: align breadcrumb bar, properties header, AI header to 52px
  • d3e2d45 feat: add Cmd+Shift+I shortcut to toggle properties panel, default closed
  • b229d59 feat: replace NoteWindow with full App instance for note windows
  • d137c3a fix: remove vertical padding between collapsed sidebar sections
  • 72b1562 docs: require Todoist comments on every task state transition
  • 084820c docs: Playwright only for core flows, < 10 min budget, cosmetic changes use Vitest
  • 56ceee2 docs: QA phase 2 uses pnpm tauri dev instead of DMG, remove Brian review phase
  • f595ee9 feat: ratchet CodeScene thresholds โ€” never regress, auto-update on each push
  • f9f48bd docs: simplify product rules โ€” remove keyboard-first/retrocompat (spec responsibility), clarify vault usage
  • bb5fa28 feat: add /laputa-next-task and /laputa-done slash commands, clean CLAUDE.md
  • e7a5ee1 docs: add native app QA phase to CLAUDE.md (Claude Code tests before Brian)
  • 8656980 docs: clarify task pickup priority in CLAUDE.md, simplify self-dispatch (no skip logic)
  • 2a88681 docs: restructure CLAUDE.md into 4 clear sections (workflow/process/product/reference)
  • 9d4736c feat: Claude Code self-dispatches next task autonomously after each completion
  • 873f290 feat: pre-populate commit dialog with heuristic message from git diff
  • 99d1987 fix: remove left indent from title when no emoji icon present
  • 18fd740 fix: move 'Add icon' button above title when no emoji (Notion-style)
  • 682470f feat: move Changes and Pulse from sidebar to bottom status bar
  • f2a26cc chore: update ui-design.pen
  • d756273 fix: double editor column min-width from 400px to 800px
  • 196ed61 fix: align title section with editor body text and stabilize top margin
  • add2876 fix: ensure resize handle receives pointer events along full panel height
  • 6aab170 fix: enforce min-width per column with cascade shrink on window resize
  • 9e883ca docs: add ADR-0029, ADR-0030; update README index (guard โ€” from commits 1c5e216, a59640)
  • 60796dc fix: resize handle fills full panel height via self-stretch
  • 2dad6c9 fix: make breadcrumb bar draggable as window drag region
  • 1751240 fix: remove broken category nav strip from emoji picker
  • a81a362 fix: shorten Pulse view time filter labels to save space
  • 1c5e216 refactor: split useCommandRegistry into domain command builders
  • 2cc0458 fix: Properties panel โ€” hash-based tag colors, single-item tags, chip consistency
  • b1d2c71 fix: title H1 layout โ€” no emoji gap, add-icon above title, larger font
  • 7019cd4 fix: replace monospaced ALL CAPS labels with Inter sentence case
  • 4180599 test: add Playwright smoke test for Properties panel visual style
  • 08bcbc0 fix: align Properties panel visual style to design (pills, truncation, labels)
  • 730b56e feat: separate Backlinks and History with horizontal dividers in Inspector
  • 9df41c3 refactor: remove Anthropic API integration, CLI agent only (ADR-0028)
  • fc44277 fix: title H1 style with inline emoji layout
  • a42a15c refactor: extract useConflictFlow, useAppSave, useVaultBridge from App.tsx
  • 334ad09 refactor: extract github.rs from git.rs, move tests to vault.rs
  • 80fbf15 refactor: split commands.rs into commands/ module (ai, git, system, vault, mod)
  • c9715d7 docs: ADR timing rule โ€” create in same commit as code, never before
  • e061785 Revert "docs: ADR-0028 โ€” CLI agent only, remove API key (supersedes ADR-0027)"
  • 2f6b537 docs: ADR-0028 โ€” CLI agent only, remove API key (supersedes ADR-0027)
  • 82d3c60 docs: forbid vault modifications for testing โ€” use demo-vault-v2 only
  • 6a74f53 docs: update ARCHITECTURE.md / ABSTRACTIONS.md / GETTING-STARTED.md post-ADR audit
  • c3bd063 docs: audit ARCHITECTURE.md, ABSTRACTIONS.md, GETTING-STARTED.md โ€” remove stale theme/tab/favorites refs
  • 1971019 docs: backfill ADRs 0026โ€“0027, fix README index, remove duplicate ADR files
  • c6b09c5 docs: backfill ADRs 0016โ€“0020 (historical decisions)
  • edc3c35 docs: backfill ADRs 0021โ€“0025 (push-to-main, BlockNote, repair vault, cache location, type field)
  • 0ab7665 docs: backfill ADRs 0011โ€“0015 (historical decisions)
  • 9b442b7 docs: backfill ADRs 0016โ€“0020 (telemetry, canary channel, CodeScene gates, GitHub OAuth, keyboard-first)
  • dc05eff docs: backfill ADRs 0006โ€“0010 (historical decisions)
  • da52a99 docs: backfill ADRs 0011โ€“0015 (MCP server, Claude CLI agent, remove theming, git cache, auto-save)
  • c3da107 docs: backfill ADRs 0006โ€“0010 (flat vault, title sync, underscore convention, keyword search, dynamic relationships)
  • 99fe614 docs: improve /create-adr command โ€” adr-tools inspiration, superseding flow, Nygard best practices
  • 1e004e4 docs: add /create-adr Claude Code command + slim ADR section in CLAUDE.md
  • 04ff69a docs: slim ADR section in CLAUDE.md (format lives in README) fix: SearchPanel test โ€” fireEvent.keyDown on window not document chore: ignore src-tauri/gen/ in eslint flat config (Tauri iOS generated files)
  • b8c2e8a docs: update ADR template โ€” align with Fowler article (status lifecycle, advice field, decision bold)
  • c909870 docs: add Architecture Decision Records (ADRs) โ€” 5 backfill + process in CLAUDE.md
  • 165ce53 fix: align pre-commit average threshold display and gate to 9.33 (was showing 8.9, checking 9.31)
  • 960ccde docs: update CI comment โ€” average code health now 9.37 (was stale 8.9)
  • d7855b9 refactor: fix import ordering (cargo fmt)
  • 294df70 docs: update iPad prototype report โ€” verified build + UI rendering on simulator
  • 59e3d4b feat: add iPad/iOS prototype via Tauri v2 mobile target
  • bfbc9d4 revert: remove pinned properties feature
  • 71f6f4c refactor: reduce complexity in parsing.rs and noteListHelpers.ts (gate: 9.31 โ†’ 9.33)
  • 98debe1 test: fix act() warnings in useVaultSwitcher โ€” settle async effect (option D)
  • 5ec508b test: add Playwright smoke test for canary release settings
  • 2799d8f feat: add canary release channel and local feature flags
  • 929a96a fix: simplify Playwright telemetry tests to avoid mock override issues
  • ae5cc42 fix: set default mock telemetry_consent to false to unblock Playwright
  • d82dc27 fix: add telemetry fields to mock save_settings handler
  • e23c703 docs: add telemetry section to ARCHITECTURE.md and ABSTRACTIONS.md
  • ed01dc3 feat: integrate Sentry crash reporting + PostHog analytics
  • 2fd5ce2 feat: add telemetry consent dialog + Settings privacy toggles
  • d7166ea feat: add telemetry consent fields to Settings (Rust + TypeScript)
  • 3028a36 fix: tolerate flaky Playwright tests in pre-push hook
  • 76c10ea fix: allow flaky Playwright tests to pass pre-push hook
  • 08672db test: increase Playwright timeout from 15s to 20s (reduce flaky failures)
  • b315ada test: increase editor visibility timeout in latency smoke test
  • c4d954a test: stabilise flaky type-change E2E test (add settle time after note selection)
  • 8bfdb5b style: fix rustfmt blank line in frontmatter.rs
  • b5c1369 fix: resolve clippy type_complexity for extract_fm_and_rels return type
  • 3cd097d docs: update ABSTRACTIONS.md with _pinned_properties format
  • cd7a570 feat: add Rust backend for pinned properties + refactor hook complexity
  • aaa4691 fix: guard against undefined pinnedProperties + lint fixes
  • 8046e54 fix: remove duplicate imports in EditorContent and NoteItem
  • 473239b test: add tests for usePinnedProperties hook and frontmatter sync
  • ae2260c feat: drag-and-drop reordering for pinned properties bar
  • d263e43 feat: pinned properties โ€” inline bar in editor + values in note list
  • caaa582 fix: narrow onCreateAndOpen type guard in SearchDropdownWithCreate
  • ad9d0e5 refactor: RelationshipsPanel โ€” extract shared hooks to reduce complexity (avg: 9.36, gate: 8.90 โ†’ 9.31)
  • c8bb3fe test: skip relationship wikilink E2E test (single-note race condition)
  • 0d32735 test: fix E2E timing for single-note model
  • c6cb1ea test: update smoke tests for single-note model (no tab bar)
  • b3a98ce style: fix rustfmt blank line in menu.rs
  • 1bea9d4 fix: remove stale tab props from NoteWindow editor
  • 5b1ecd7 refactor: remove tab bar โ€” single note open at a time
  • 971564e docs: add storage decision rule โ€” vault vs app settings (follows vault vs installation-specific)
  • 3e9c3bd docs: add underscore convention for system properties + update design principles
  • 3f4ce6a test: fix E2E test โ€” search for 'reload' instead of removed 'reindex'
  • 0ee8d38 style: rustfmt search.rs
  • a22fd73 fix: resolve clippy single-element-loop in build.rs
  • c079067 refactor: remove QMD semantic indexing โ€” keep keyword search only
  • 63054f7 docs: add Boy Scout Rule to CLAUDE.md โ€” leave every touched file better than found
  • e47625f ci: add Average Code Health gate (โ‰ฅ8.9 floor, target 9.5) to CI, pre-commit, pre-push
  • 8a86995 refactor: move vault UI config from ui.config.md to localStorage
  • 67e620c style: rustfmt use statement
  • 1984b8e refactor: remove theming system entirely
  • 8bf8688 test: add sidebar emoji icon rendering tests
  • 6187eee feat: add filter pills (Open/Archived/Trashed) to All Notes view
  • e74d4c8 fix: inbox sidebar ordering, filter chip wrapping, and editor banner architecture
  • e84d21d feat: show emoji icon in sidebar note items
  • 5504941 fix: align type selector chip left using grid layout matching property rows
  • c372193 style: apply rustfmt to vault_config.rs
  • fdf8af2 fix: store ui.config.md at vault root instead of config/ directory
  • c11a983 fix: use CSS grid for 50/50 label/value layout in properties panel
  • 85efe31 fix: match TitleField font-size/weight to BlockNote H1 and fix left alignment
  • 2a419ff fix: remove incorrect wikilink assertion from snippet smoke test
  • 00adf23 test: add smoke test for focus-event UI freeze regression
  • 5a376f9 fix: eliminate UI freeze on app focus by moving git commands off main thread
  • a1ca7e3 fix: note list resolves relationships by title/alias matching unified resolveEntry
  • 5a578f6 fix: remove vertical padding from PropertyRow to match InfoRow density
  • 93b6541 fix: force WKWebView pseudo-element style recalc on theme CSS var changes
  • a43a98e refactor: NoteList.test.tsx -- deduplicate makeEntry helpers and bulk action tests (CodeScene: 7.78 to 10.0)
  • b8e3b88 style: rustfmt formatting for mod_tests
  • 586e488 fix: note list shows incomplete relationships when opening from sidebar
  • 51fc929 fix: update smoke tests to find Changes badge in secondary sidebar area
  • 2d0d310 feat: move Changes and Pulse to secondary bottom area in sidebar
  • dd2a020 style: rustfmt import formatting
  • 6aca4e8 fix: remove invalid weight prop from lucide AlertTriangle icon
  • caa81ae feat: handle git divergence, conflicts, and manual pull from within Laputa
  • afc8fd5 test: add Playwright smoke test for Open in New Window command
  • 6cc07fa fix: use lowercase titleBarStyle for Tauri v2 WebviewWindow
  • 26f0909 feat: open note in new window (Cmd+Shift+Click / Cmd+Shift+O)
  • b532439 fix: reduce Properties row gap to match Info section density
  • 515e771 feat: adopt relationship chip style for type selector in Properties panel
  • 8bd6df2 fix: enforce 50/50 label/value layout in Properties panel with ellipsis
  • 8155b94 feat: add Inbox sidebar section showing unlinked notes
  • 27f8c95 feat: auto-save notes with 500ms debounce after last keystroke
  • d05b435 test: verify bullet-size and bullet-color live-reload via editor buffer
  • 4362405 fix: hide system properties (trashed, archived, icon) from Properties panel
  • 968d907 fix: show Note type in sidebar instead of excluding it as default/fallback
  • 8f6da24 fix: live-reload theme CSS vars on editor save and frontmatter changes
  • 7db3c2f fix: show all relationships for topics in note list
  • abe465c feat: show note emoji icon in tab bar, breadcrumb, and pinned cards
  • fa6f0fc fix: remove broken snippet visibility test + add data-testid to snippet
  • 5940181 fix: make snippet smoke test selector more specific
  • 2214a5c fix: align TitleField with editor by sharing scroll container
  • 2f43b4b feat: show note emoji icon in wikilinks, relationships, and backlinks
  • a1600d5 test: update smoke tests to use TitleField instead of H1 sync
  • 0bda7f4 style: rustfmt formatting for rename.rs assertions
  • 15b11d1 fix: decouple H1 from title sync + non-blocking TitleField rename
  • f94d8c6 fix: remove trashed/archived fields from frontmatter on restore instead of setting false
  • fc77ce6 fix: sync raw editor + suppress toast overwrite on trash/archive actions
  • 75ad88f docs: require explicit Todoist move to In Review in task completion flow
  • a4d9807 fix: remove legacy _themes/ dir creation, seed type defs at vault root
  • bc58424 test: add Playwright smoke tests for emoji picker rework
  • a9229d4 feat: full Unicode emoji picker with name search and continuous scroll
  • 027a85f fix: match filter pills row height to breadcrumb bar (45px)
  • ce7b5f9 ci: raise hotspot code health threshold to 9.5
  • 9c0e391 fix: update trash smoke test for new Archive action in trash view
  • 2b78689 feat: add filter pills (Open/Archived/Trashed) with count badges to note list
  • b846de1 fix: sync title on reopen of already-open tabs (desync detection)
  • d9fd65c fix: read owner/cadence from properties in ai-context
  • 9aa16b8 refactor: remove owner/cadence from Frontmatter, source created_at from filesystem
  • ddbbebb feat: add emoji icon picker for notes stored in frontmatter
  • 0897cc5 docs: update CLAUDE.md โ€” CodeScene threshold 9.2/9.2, fix port/finish-signal for no-worktree workflow
  • dec9fe6 docs: add Kent Beck Test Desiderata to TDD section in CLAUDE.md
  • 4cfd31f style: rustfmt formatting
  • c02584f fix: remove unused import and dead code from title sync refactor
  • 0ac8ad8 test: Playwright smoke test for title/filename sync + update docs
  • 77b6961 feat: TypeScript calls sync_note_title on note open
  • 9112a24 feat: title/filename sync on note open + always write title in rename
  • 663e956 refactor: extract_title reads from frontmatter title, not H1
  • e74d0e4 fix: rustfmt formatting in mod_tests.rs
  • 7976d9f refactor: extract vault/mod.rs into submodules โ€” fix CodeScene hotspot health
  • 3890960 style: rustfmt repair_vault tests
  • ee9af1e fix: repair vault now flattens type folders and migrates legacy frontmatter
  • 4d61774 fix: smoke tests skip Theme entries in note list to avoid type selector issues
  • 164b76d fix: resolve demo vault path relative to project root โ€” fix smoke test failures
  • f9e89e4 fix: make CodeScene pre-push gate informational โ€” remote API lags local changes
  • 4a69fc1 fix: correct CodeScene API key in pre-push hook โ€” use code_health not average_code_health
  • bc4e637 style: rustfmt seed.rs and getting_started.rs
  • bb9fef9 refactor: improve code health for vault/mod.rs and Editor.tsx โ€” fix CodeScene hotspot score
  • db0589c fix: update Repair Vault for flat vault structure โ€” no theme/ or config/ dirs
  • 07a6ef0 feat: persist editor mode (raw/preview) across note switches
  • af46c04 style: rustfmt vault mod.rs
  • 6371e80 fix: uniform StringOrList normalization for all frontmatter string fields
  • fb82582 refactor: extract welcome/loading screens in App.tsx โ€” reduce main component complexity
  • 427672c test: add Playwright smoke test for split-usenoteactions refactoring
  • 56b0a86 test: add unit tests for useNoteCreation and useNoteRename hooks
  • 71ccae1 refactor: extract frontmatterOps, update imports for useNoteCreation/useNoteRename split
  • 54e769f style: rustfmt vault mod.rs
  • f5d0bd0 fix: add missing VaultEntry fields (belongs_to, status, owner, cadence)
  • 49ab915 fix: use contains() instead of iter().any() for clippy manual_contains
  • 22d002c refactor: split NoteList.tsx god component into focused modules
  • 9f81a00 Resolve merge conflict: keep split vault module from origin/main
  • b5eb781 style: apply rustfmt to mod_tests.rs
  • c921403 fix: resolve clippy warnings from vault module split
  • 6b6bd46 refactor: split vault/mod.rs monolith into entry, frontmatter, file modules
  • 6520e36 fix: clippy manual_contains lint in vault frontmatter filter
  • cd0152c refactor: split useNoteActions into useNoteCreation + useNoteRename โ€” CodeScene 7.92โ†’9.38
  • 144a621 fix: frontmatter parsing fails when unknown fields have list values
  • a12ad57 fix: flat vault type resolution โ€” remove type/ prefix from links and protected folders
  • 3fb7cf6 refactor: split DynamicPropertiesPanel into focused sub-components โ€” reduce 699-line catch-all (#197)
  • 23d0417 feat: ensure .DS_Store in .gitignore for all new vaults
  • 1932b35 fix: cargo fmt formatting
  • ede51e2 fix: correct reloadVault type in useFlatVaultMigration
  • 7f1f81c test: add Playwright smoke tests for flat vault migration
  • d9e25be docs: update ARCHITECTURE.md and ABSTRACTIONS.md for flat vault
  • a8989e1 feat: add migration wizard for flat vault
  • db94b8b feat: add dedicated TitleField above editor
  • ed33058 refactor: reorder wikilink resolution for flat vault
  • 6460eae feat: add vault_health_check command
  • c7892fc refactor: restrict scan_vault to root + protected folders only
  • a33d1a0 style: rustfmt formatting fix
  • 9ceb005 fix: fall back to sub-heading text when snippet has no paragraph content
  • a27904a fix: render deleted notes banner outside Virtuoso for proper visibility
  • 582b181 feat: show deleted notes in Changes view
  • da3ec34 fix: make snippet Playwright test more robust for CI
  • 50826df fix: strip list markers from snippets + bump cache version for full rescan
  • ac035e4 fix: prevent crash when creating note from relationship input
  • 76c988d fix: resolve duplicate option match in changing-type smoke test
  • ddab886 fix: force WebKit reflow for pseudo-elements on theme CSS var changes
  • 90a3ff8 refactor: flatten vault structure โ€” simplify migration API and flatten demo vault
  • 19830c1 fix: disable Tauri native drag-drop to unblock HTML5 DnD (tabs, blocks)
  • a333a63 fix: use first available note in rename smoke test instead of hardcoded 'Refactoring'
  • b916204 fix: prevent image drop overlay from breaking internal DnD and block handle
  • 968328b test: update changing-type smoke test for flat vault (no file movement)
  • 526965e style: cargo fmt
  • 0d23d9f refactor: remove dead code from flat vault migration
  • 094e806 feat: title = filename โ€” wikilink resolution + slug collision detection
  • 69f50e5 feat: flatten vault structure โ€” remove type-based folders
  • c431c1a test: fresh-install regression QA smoke tests for 7 Done tasks
  • b05f9ad docs: remove 'Current state' section from VISION.md
  • 37a2bd5 docs: fix Mermaid syntax error in Vault Cache diagram
  • 42f27ee docs: compress CLAUDE.md 360โ†’93 lines โ€” remove verbose explanations, keep rules
  • 2b33536 docs: convert remaining ASCII diagrams to Mermaid + add Mermaid rule to CLAUDE.md
  • 1b0f7d7 docs: add Mermaid diagrams to ARCHITECTURE and ABSTRACTIONS
  • 8e0bf67 ci: add .codesceneignore โ€” exclude tools/, e2e/, tests/, scripts/
  • 68bbb19 ci: add average_code_health gate (โ‰ฅ8.8) to pre-push hook
  • 3436a48 refactor: extract useLayoutPanels hook from App.tsx โ€” reduce god component churn (#195) (#196)
  • e81faf2 refactor: extract useAppNavigation hook from App.tsx โ€” reduce god component churn (#194)
  • 848d3c1 refactor: extract useDeleteActions hook from App.tsx โ€” reduce churn surface (#193)
  • 6acc802 test: extract useBulkActions hook and add unit tests (#192)
  • f5db984 test: add useEditorSaveWithLinks tests, remove dead useDropdownKeyboard (#191)
  • 19e386c chore: skip flaky theme-live-reload tests (dark theme mismatch)
  • 1a05f5d fix: use note-list-container scoped selector in reopen-closed-tab smoke test
  • 0e265dc feat: add Playwright smoke tests, data-tab-path attr, store full VaultEntry in closed tab history
  • 8ab8315 feat: add Cmd+Shift+T shortcut, menu item, and full wiring
  • ab1a1fb feat: add closed tab history and reopen-closed-tab support
  • 1ed9d0f style: format trash.rs with cargo fmt
  • f53829f docs: add trash management design file and update ARCHITECTURE.md
  • 5fa928a fix: update Playwright smoke test selectors for trash management
  • 4dd10dc feat: add Empty Trash menu bar item and Playwright smoke test
  • e2b2abc feat: trash management โ€” bulk restore, delete permanently, empty trash
  • ce85d35 feat: add batch_delete_notes and empty_trash Rust commands
  • 6429551 test: mark pre-existing ai-notes-visibility WS port conflict as fixme
  • 9fef255 test: mark pre-existing theme-live-reload tests as fixme
  • af0c217 test: add Playwright smoke test for clickable editor empty space
  • 7a919ff fix: make empty space below editor content clickable to focus editor
  • 2c0ad91 fix: block vault API in theme-live-reload smoke test
  • ae92e05 style: format Rust theme modules with cargo fmt
  • a9411c1 test: add Playwright smoke test for theme properties defaults
  • e2c6f54 fix: write all theme.json defaults to vault theme frontmatter
  • ce6a61c test: add Playwright smoke test for note list preview snippets
  • 7249a9e fix: update note list snippet on save so all notes show preview
  • 33c4daa fix: sync raw editor (CodeMirror) content to BlockNote on mode switch
  • fe37bb4 feat: wire create-open relationship note to all panel contexts
  • 4a973e9 feat: add 'Create & open' option to relationship input dropdowns
  • b02227a fix: case-insensitive type entry lookup + Playwright smoke test
  • aaa5bc2 fix: sidebar section header reflects type icon, color, and label
  • 5107cd1 test: add real filesystem vault integration tests
  • 891e298 fix: update fix-note-filename-on-rename smoke test for title-sync rename
  • 12a5a7a fix: add missing old_title_hint arg to tests added on main
  • d1775ff style: cargo fmt on rename.rs
  • 7f2aaf5 fix: remove needless borrow flagged by clippy in rename.rs
  • 4405ecc test: Playwright smoke test for rename-wikilink-update
  • 1e1eb4f test: unit tests for rename-wikilink-update feature
  • d28c461 feat: wire H1 sync and frontmatter title change to full rename flow
  • 04f5803 feat: add old_title_hint to rename_note for H1 sync rename support
  • c5b5831 test: Playwright smoke test for serializer blank lines fix
  • a90ca8b fix: post-process BlockNote serializer to remove extra blank lines
  • 2bca5a2 test: add Playwright smoke tests for wikilink insertion and navigation
  • ee94ecb fix: unify wikilink resolution and disambiguate duplicate titles
  • 1486bae fix: image drop overlay no longer triggers on internal drags (tabs, blocks)
  • 92f0f96 test: Playwright smoke test for note filename rename on save
  • e0bf514 feat: rename file on save when title slug doesn't match filename
  • 761d6dc fix: rename_note handles filename-slug mismatch and collisions
  • 5f08e8e test: Playwright smoke test for changing-type data corruption regression
  • 7005f54 fix: mock move_note_to_type_folder collision handling + Rust collision content test
  • 265f7b3 fix: prevent data corruption when changing note type โ€” preserve tab content instead of re-reading from disk
  • 8a8fa80 style: rustfmt formatting fix
  • 4c7e64d fix: bump cache version + handle Yes/No in TS frontmatter parser
  • e891ff6 test: Playwright smoke test for create note crash fix
  • 3084702 fix: prevent crash in handleCreateNoteImmediate โ€” slugify fallback + try/catch
  • 89ae7e5 test: Playwright smoke test for theme live reload on save
  • 517a2af fix: live-reload CSS vars when saving active theme note in editor
  • 484324a test: add Playwright smoke test for rapid note switching latency
  • a2e65b3 test: add unit tests for prefetch cache, optimistic rollback, rapid switching
  • d8b61dd feat: optimize note open and trash/archive latency
  • db66e7c fix: scope Playwright selectors to dialog overlays to avoid sidebar matches
  • a760594 style: apply cargo fmt to is_file_trashed tests
  • 73060f3 fix: exclude trashed notes from search results and autocomplete
  • 46f289d fix: simplify cache-invalidation smoke test โ€” container visibility only
  • 182f88c chore: rotate Tauri signing keypair โ€” fix CI release builds
  • d6d35b3 fix: handle Archived/Trashed Yes/No string values in frontmatter parser
  • a73f181 fix: add reload_vault to vault API proxy for browser mock
  • 656679e style: apply cargo fmt to new tests
  • ba5ba58 fix: reload vault invalidates cache and rescans from filesystem
  • bc2d54d fix: resolve TypeScript overload errors in zoomCursorFix
  • 1354e50 test: add Playwright smoke test for CodeMirror cursor at non-100% zoom
  • 0082c02 fix: bypass CodeMirror posAtCoords for accurate cursor at non-100% CSS zoom
  • e3d616c fix: embed conversation history in AI agent chat messages
  • afe5494 ci: retrigger release โ€” fix Tauri signing key secret
  • e414d3b test: fix flaky command palette smoke test โ€” use reindex instead of settings
  • d3657d8 docs: consolidate VISION.md into docs/ โ€” remove duplicate root file
  • 664426d fix: prune stale cache entries on vault open, not just cache write
  • 0755c4a fix: add 1 retry for Playwright smoke tests to handle server startup timing
  • fdb3fdf style: rustfmt vault/mod.rs test formatting
  • 010d2c3 fix: disk-first writes in useEntryActions, document three-layer model
  • dedb5b2 feat: wire Reload Vault into Cmd+K palette and menu bar
  • 587eb02 feat: add reload_vault_entry Tauri command
  • 9cc9ff8 refactor: remove hardcoded RELATIONSHIP_KEYS โ€” detect wikilink fields dynamically
  • 3e05a94 test: add Playwright smoke test for exact-match search ranking
  • 55e479b feat: flip canonical type field โ€” make type: primary, Is A: the alias
  • 02611f6 feat: move vault cache to ~/.laputa/cache/ and make writes atomic
  • b025211 test: add Playwright smoke test for exact-match search ranking
  • 4649662 fix: ensure exact title match always ranks first in search
  • dd1595c style: apply rustfmt to rename.rs
  • ab1cb62 test: add Playwright smoke test for move-note-to-type-folder
  • 873f85a feat: move note to type folder when Is A changes
  • 2d2c162 feat: add move_note_to_type_folder backend command
  • b53a158 docs: add Refactoring strategic context to VISION.md
  • 3d5423a docs: add Phase 1b โ€” Tauri dev QA for filesystem/native tasks
  • 4ce9167 feat: exact-match-first ranking in search and wikilink autocomplete
  • dd7f0f9 docs: strengthen Phase 1 QA requirements in CLAUDE.md
  • 6801546 docs: add 'why this, why now, why us' section to VISION.md
  • 3dc1ae5 docs: clarify that evergreen notes are one output type, not the only one
  • 749647b feat: fast note open โ€” use allContent cache to skip IPC disk reads
  • cfedcfe docs: add purpose-driven notes and evergreen notes to VISION.md
  • 8ce0706 docs: rewrite VISION.md as a coherent product narrative
  • f8f8d54 docs: add capture/organize philosophy and Inbox to vision and roadmap
  • ca65abd docs: add ROADMAP.md with strategic directions
  • d9f8d42 docs: expand VISION.md with product trajectory and updated principles
  • ea26e0a fix: use vault path for resolveNewNote, resolveNewType, resolveDailyNote
  • 4787673 docs: add design principles and semantic field conventions
  • 8eac9f9 fix: show all scalar properties in Properties panel โ€” remove Owner from RELATIONSHIP_KEYS, remove notion_id from SKIP_KEYS
  • 71810a7 fix: resolve AI chat empty body race โ€” read contextPrompt from closure, not stale ref
  • 87090ce feat: show type instances in inspector Properties panel
  • bb42ebb docs: update 'Is A' โ†’ 'type:' throughout โ€” type: is now canonical
  • f2a9f02 fix: resolve AI chat empty body via || fallback + defensive body + Rust strip_frontmatter
  • 12fe497 fix: auto-save unsaved notes before trash/archive
  • 78954d8 style: rustfmt assert formatting
  • 3c711cb fix: parse lowercase 'archived' frontmatter field
  • 9af329f test: add Playwright smoke test for AI chat empty body fix
  • 48b6434 fix: strip frontmatter from AI context body field โ€” fixes empty body bug
  • 270856f chore: extend .gitignore with runtime and generated artifacts
  • 09a8b55 chore: rotate Tauri signing keypair
  • 944bd8f chore: remove stale files and planning docs from repo
  • d41fe30 fix: AI chat receives live editor content instead of stale disk content
  • 5290e18 fix: CodeMirror cursor placement at non-100% zoom levels
  • d37c752 fix: pass active note content directly to AI context builder
  • 9c7f05f fix: embed conversation history in prompt instead of broken --resume
  • c47a671 fix: AI chat receives note body from open tabs instead of empty allContent
  • 43629ca fix: AI-created notes now visible โ€” onVaultChanged fallback for missed file ops
  • 35afd09 fix: AI chat wikilinks โ€” system prompt + integration tests
  • fe2cef0 fix: use --resume for AI chat conversation continuity
  • e29360e style: cargo fmt config_seed.rs and getting_started.rs
  • 2d41496 fix: clippy doc_lazy_continuation in config_seed.rs
  • f136fd5 docs: add config/ vault type to architecture and abstractions
  • c1e11f4 feat: add Repair Vault command and MCP configFiles
  • 50e4a63 feat: add config/ vault type with agents.md migration
  • dc22a2d fix: MCP install command always visible in Cmd+K regardless of mcpStatus
  • f2ec2ab feat: make MCP restore command always available in Cmd+K
  • 0d4ca63 fix: auto-save structural UI changes to disk immediately
  • 5324f72 fix: scope qmd update/embed to current vault collection only
  • 9911261 fix: wikilink clicks in AI chat now open note in tab
  • 924fb59 fix: add missing ws dependency for smoke tests
  • d3a2951 docs: update ARCHITECTURE, ABSTRACTIONS, GETTING-STARTED to reflect current codebase
  • 41cc824 test: add Playwright smoke test for AI note visibility and tab opening
  • a0eb1a2 test: add unit tests for detectFileOperation and parseBashFileCreation
  • 415bbb5 fix: AI-created notes now trigger vault refresh and auto-open in tab
  • fe9ebc9 fix: remove --resume from AI chat to fix conversation history
  • a7928ea feat: restore MCP UI-steering tools (highlight_editor, refresh_vault)
  • 872ccf1 test: add Playwright smoke test for wikilink rendering in AI chat
  • f54929c feat: render [[wikilinks]] as clickable links in AI chat
  • 36065b0 fix: clippy errors โ€” reduce visibility of internal functions, fix PI approx
  • 1dccc02 feat: reindex vault command, indexing status bar, sync-triggered reindex
  • 47fe307 feat: add last_indexed_commit persistence to indexing backend
  • 4c28fa8 fix: rustfmt import formatting in commands.rs
  • 6e102b9 test: Playwright smoke test for push error UX
  • 902a545 feat: surface actionable push error messages in frontend
  • a4dac66 feat: add GitPushResult with error classification for push failures
  • bd6487c style: rustfmt formatting fix in cache test
  • 875d817 fix: add visible key to frontmatterToEntryPatch maps
  • 21bfaa8 fix: include full conversation history in AI chat requests
  • 7610f1b test: fix Sidebar tests after Favorites removal
  • 95f6c05 refactor: remove Favorites and Untagged from sidebar
  • 3f6b5b9 refactor: rustfmt formatting fixes
  • ddd6592 test: Playwright smoke test for trash โ†’ Changes badge
  • 7a7ba60 fix: refresh Changes panel after trash/archive operations
  • 7f6f5c2 โšก Pulse: fix slow note open โ€” O(1) map lookup, no reloadVault on click
  • ef42086 style: rustfmt vault_config.rs
  • e5aaacd fix: add missing visible field to buildNewEntry in useNoteActions
  • 78c4597 test: add Playwright smoke test for visible type property
  • 486b0e9 feat: migrate hidden_sections from ui.config to visible property on Type notes
  • 4df386d refactor: remove hidden_sections from VaultConfig and delete useSectionVisibility
  • 48c3bd1 feat: add handleToggleTypeVisibility to useEntryActions
  • f7ac01a feat: filter sidebar sections by Type entry visible property
  • a7d94b3 feat: add visible field to VaultEntry for Type note sidebar visibility
  • 1817cb3 ๐Ÿ› Auto-untrack .laputa-cache.json and .laputa/settings.json from git
  • 66f5844 โšก Pulse: lazy pagination with IntersectionObserver infinite scroll
  • 5fdece6 ๐Ÿ’… Pulse: add right border, collapse commit files by default
  • 99faee6 fix: address clippy lints in title_case_folder
  • d81e211 test: add regression tests for hyphenated folder sidebar duplicates
  • 40b5d31 fix: normalize hyphenated folder names in infer_type_from_folder()
  • bfc79c8 refactor: apply rustfmt formatting
  • 1c2552a fix: vault cache misses files in new directories, breaking theme restore
  • 8712ce8 fix: write .gitignore on vault init to exclude .DS_Store
  • f4af2b4 refactor: split Rust backend into sub-modules โ€” git, theme, github, frontmatter, commands
  • 282c3be chore: exclude tools/, scripts/ from CodeScene analysis
  • ebdc39b fix: latest.json must point to .tar.gz not .dmg for Tauri in-app updater
  • b0b0464 feat: add Playwright smoke test infrastructure for task-scoped QA
  • aaecd9a ci: import Apple certificate before Tauri build so beforeBuildCommand can codesign
  • e7f43d5 fix: sign qmd binaries with Developer ID + hardened runtime for notarization
  • c876997 docs: add mandatory Playwright Phase 1 QA step before laputa-task-done
  • 049b4a9 fix: bundle qmd source in tools/qmd/ so CI can compile it
  • 7c90675 ci: add bun setup step to release workflow (required by bundle-qmd.sh)
  • eda8bc3 fix: align ws-bridge.js imports with simplified vault.js API
  • 5d4c372 refactor: split InspectorPanels.tsx into focused modules โ€” reduce 538-line file to focused per-panel components (#189)
  • c2b54e7 test: add configMigration tests โ€” cover all migration branches (#188)
  • 817055a fix: make qmd/search work on fresh installs โ€” auto-install, fix permissions, sign binaries
  • a2f58e1 style: rustfmt search.rs
  • 3306d5f feat: bundle qmd binary with app โ€” search works on fresh installs
  • a3148de fix: rank command palette results by match score, not section order
  • 66c086f fix: move Go Back/Forward to Go menu, add toggles to Note menu
  • 51ccece fix: always show Resolve Conflicts in Cmd+K โ€” show toast when no conflicts
  • f8e5cbf refactor: extract hooks and components from NoteListInner for code health
  • a3e3d9a style: rustfmt git.rs pulse functions
  • 559c585 feat: add Pulse โ€” vault activity feed showing git commit history
  • 3431b79 style: apply rustfmt to vault_config.rs
  • 6b13120 feat: move vault UI config from localStorage to vault files
  • 87e28b0 feat: add vault_config module and view field to VaultEntry
  • 239ff7f fix: pass undefined to useRef for strict TypeScript compat
  • a364cbc feat: expose all theme.json properties in theme editor
  • 338f073 style: apply rustfmt to menu.rs
  • 03d4d51 fix: move view-toggle-backlinks to simple event map for type safety
  • a966b2c feat: reorganize menu bar with Go, Note, and Vault menus
  • 0eedf0c test: add color detection tests to propertyTypes
  • 3f9c7b7 feat: add color swatch + picker for property values
  • 9f35f04 fix: enable line wrapping in raw editor
  • da01d2e fix: make Restore Default Themes command always enabled in Cmd+K palette
  • 85234b1 feat: enable full shell access for AI agent + simplify MCP tools
  • f864bc4 style: rustfmt collect_wikilink_inner signature
  • 5189ed6 fix: strip wikilink brackets from note list preview snippets
  • d584959 feat: Add 'Restore Default Themes' command for vaults missing theme structure
  • e817d08 fix: rustfmt formatting in git.rs
  • eeada90 fix: stub WebSocket in test setup to prevent Node 22 + undici crash
  • 795badf fix: detect and resolve rebase conflicts in sync conflict resolution
  • 1056a15 fix: rustfmt formatting in trash regression tests
  • f3d197a fix: trashed notes reappear after restart due to frontmatter key casing mismatch
  • 1c7ee05 refactor: extract usePropertyPanelState hook into dedicated file (#187)
  • db1ae9b fix: stub fetch in test setup to prevent jsdom@28 + Node 22 undici crash
  • 1694676 feat: wikilink pills in message bubbles, noteList context injection
  • 9d8cf4d refactor: remove dead useMcpRegistration hook, add design file
  • 4dbcc7c feat: detect MCP server status and show warning in status bar
  • 1f1e115 fix: pass initial value to useRef for strict TS build
  • c127130 test: add tests for WikilinkChatInput and buildContextSnapshot
  • 5a2bcec feat: add wikilink autocomplete, animated border, structured context wiring
  • 3ab3ca2 feat: add reasoning streaming, markdown response, structured context snapshot
  • 8029e07 fix: use generic Error type in setup.ts to avoid NodeJS namespace
  • 3893d01 fix: restore drag-to-reorder for sidebar sections
  • 93d598d fix: MCP UI tools (highlight, open_note) now work in real-time
  • a2f1ab9 style: apply rustfmt to theme.rs
  • f99b9d0 fix: auto-provision theme files on vault open for any vault
  • 389e9d4 fix: show 'Installing search...' when qmd missing instead of 'Indexing...'
  • 9599dda fix: replace 'Index error' with graceful handling on fresh installs
  • 5dbdf50 style: apply cargo fmt to test assertions
  • cfe5d99 fix: apply rustfmt to claude_cli.rs
  • cc19d83 feat: make AI chat tool use blocks expandable with input/output details
  • 49092ea feat: render markdown in AI Chat assistant responses
  • 3f2a151 feat: replace app icon with new Laputa cloud logo
  • c887a0c fix: trash/archive banner appears immediately without reopening note
  • 7cbe9b9 fix: display correct app version as build number in status bar
  • f4c832a fix: use type-only import for DecorationSet (verbatimModuleSyntax)
  • beac078 feat: replace raw editor textarea with CodeMirror 6
  • 2548a80 fix: use git ls-files --unmerged for reliable conflict detection
  • d81eedf fix: open newly created theme in editor after New Theme command
  • 6475160 fix: check-for-updates command always visible in Cmd+K, handles all update states
  • deabb13 refactor: remove AI model indicator from status bar
  • 21e0cb6 fix: handle Escape at panel level and manage focus across active states
  • 4041655 fix: auto-focus AI Chat input on panel open and close on Escape
  • 79e8c9f fix: handle EADDRINUSE in MCP server ws-bridge โ€” allow Claude Code to start when port is taken
  • 0eeb45e feat: add Check for Updates command to native menu and Cmd+K palette
  • 4499fe0 feat: persist note list sort preference in type file frontmatter
  • 995c81e fix: restore theming system after dark-editor merge regression
  • f91c6f1 refactor: extract useEditorSaveWithLinks and useNavigationGestures from App.tsx (#186)
  • 44256ba style: cargo fmt git.rs
  • 835578e fix: add useIndexing import and hook call, wire indexingProgress and onRemoveVault to StatusBar
  • 48b61d6 chore: add sync-conflict-resolution design file
  • c3722ba feat: add sync conflict resolution โ€” resolve merge conflicts in-app
  • 351a91c style: cargo fmt --all
  • 35aea7a style: rustfmt lib.rs
  • 4a88cb3 fix: add missing X import and onRemoveVault prop to StatusBar after rebase
  • afa51bf feat: auto-index vault on open + qmd auto-install + status bar progress
  • d227cb4 style: rustfmt vault_list.rs
  • fbbfe0e feat: vault management โ€” remove vault from list and restore Getting Started
  • 851e482 feat: sort picker shows custom frontmatter properties (#185)
  • fe8c9f5 feat: show archived note indicator banner in editor (#183)
  • 7bd19f0 feat: add command palette toggles for all BreadcrumbBar panels (#184)
  • 3d6e237 fix: show all direct relationship properties in note list sidebar (#182)
  • 1681193 feat: trashed notes read-only with visible banner in editor (#181)
  • aa0f657 fix: remove persistLastVault assertions from onboarding test
  • e769de3 fix: remove stale persistLastVault and unused imports after rebase
  • 1b6d7e5 fix: persist vault list across app updates
  • b473d70 fix: persist last vault path so app reopens correct vault after update
  • 3e83d31 feat: add "New Type" command to command palette (Cmd+K)
  • 68d28bc test: add asserting wikilink navigation E2E test โ€” screenshot.spec.ts test had no expect() calls (#180)
  • 30f3cdf feat: add 'Check for Updates' command to command palette
  • 39161c8 feat: rename demo vault from 'Demo v2' to 'Getting Started', remove 'Laputa' vault entry
  • a293512 fix: use compile-time env!() macro for BUILD_NUMBER instead of runtime std::env::var
  • 1d4036e fix: bundle mcp-server into release app so AI Chat works (#178)
  • e2e5bef style: fix rustfmt formatting in cache test assertions
  • b649cba fix: sync changes badge count with list by invalidating stale vault cache
  • 5f1a3ae fix: correct git_uncommitted_files call after rebase conflict
  • 7543f37 fix: add aria-label to InlineRenameInput for test accessibility
  • e0b6e84 style: apply rustfmt to cache.rs test
  • 05c6863 feat: add Rename section to sidebar context menu
  • 5a7f5f7 fix: update_same_commit picks up modified files, not only new ones
  • 21d99fa style: apply rustfmt to theme.rs and vault/cache.rs
  • cf8142b fix: remove unused is_new_file_status function
  • f289ede fix: add isDark to useThemeManager return value
  • f467037 fix: remove stale deriveThemeVariables call and update test assertions after conflict resolution
  • f152e03 test: add theme command registry tests and minor fixes
  • 7169634 wip: themes-editable โ€” theme management system WIP (13 files, 1014 insertions)
  • d1d5677 chore: sync Sidebar.tsx dragHandleProps removal from main
  • 4a0ce39 chore: sync SidebarParts dragHandle removal from main
  • f4d3640 fix: position context menu and customize popover at right-click coordinates
  • ef675da chore: remove dragHandleProps from SectionContent destructuring
  • 2bd41bc chore: remove remaining dragHandleProps from SortableSection
  • fea24f1 style: remove drag handle icon from sidebar sections
  • cd1cda7 style: align section icons with main nav items in sidebar
  • 74038af style: remove letter-spacing from status/property labels in inspector
  • 4474492 style: reduce editor body font to 15px, apply -0.5 letter-spacing to h2/h3/h4
  • 60dbfad fix: defer H1 selection to second rAF so content swap completes first
  • b043a7e fix: register Cmd+\ keyboard shortcut to toggle raw editor mode
  • c78d4b3 fix: editor background matches vault theme in dark mode
  • ecd19c5 feat: raw editor mode โ€” plain textarea with frontmatter + wikilink autocomplete
  • 80b150f feat: auto-focus editor with H1 title selected on new note creation
  • 677585f fix: use globalThis instead of global in test setup (TS build compatibility)
  • bfd8717 feat: responsive tab width โ€” shrink tabs to fit window
  • 13ee62c feat: dark theme applies to editor content area
  • 81990f0 docs: never open PRs โ€” push directly to main always
  • 312abc4 feat: toggle archive/trash shortcuts โ€” Cmd+E unarchives, Cmd+โŒซ restores (#175)
  • 0b86070 fix: back/forward nav arrows reopen replaced tabs instead of skipping them (#174)
  • 0846183 fix: use openExternalUrl for release notes link in Tauri app (#171)
  • 8aee131 fix: customize icon & color works for types without Type entry (#173)
  • e58f521 fix: back/forward nav arrows reopen replaced tabs instead of skipping them (#172)
  • 986965a feat: note templates per type (๐Ÿ’ก Note templates per tipo) (#170)
  • 7d563b2 feat: contextual AI chat on open note (Cmd+I) (#169)
  • 8895415 feat: add daily note command โ€” Cmd+J creates or opens today's journal note (#168)
  • 9ec0e8a fix: show new (untracked) notes in Changes view (#161)
  • 8e2ca1e feat: enhance backlinks panel with collapsible section and paragraph context (#167)
  • ee69721 feat: allow custom sidebar label for type sections (#165)
  • 568f0ae fix: increase tab max-width and add ellipsis truncation (#166)
  • 2bcb36c feat: clicking section group header toggles collapse/expand (#164)
  • 1a18de2 feat: show dynamic build number in status bar (bNNN format) (#163)
  • 36a421d fix: preserve scroll position independently per editor tab (#162)
  • 5937a44 ci: exclude Tauri boilerplate from Rust coverage check
  • 5fb7b12 fix: use camelCase arg keys for Tauri theme commands (#160)
  • e0c5753 feat: replace Anthropic API with Claude CLI for AI chat and agent panels (#159)
  • 0b93630 feat: keyboard-first navigation โ€” menu bar shortcuts, note list nav, inspector Tab/Enter (#158)
  • 5782bd9 fix: move update banner to bottom, white text on blue background
  • 5ba45fc feat: add 'Open Vaultโ€ฆ' command to command palette (Cmd+K)
  • 01d827f docs: add keyboard-first principle โ€” every feature must be testable without mouse
  • 5efb0e4 fix: remove http:default capability (plugin not installed)
  • 366991d fix: switch to newly created theme after createTheme (New Theme command had no visible feedback)
  • eac2962 fix: add http:default capability to allow fetch to external APIs (Anthropic CORS fix) (#157)
  • b6c826b fix(test): mock WebSocket in executeToolViaWs test to avoid jsdom/undici unhandled rejection
  • cb214ea fix: make 'New theme' command work in Tauri app (#156)
  • 264d4af fix: call Anthropic API directly instead of /api/* dev proxy (#155)
  • 3d0b493 docs: require QA on pnpm tauri dev, not browser mode
  • fdb6a73 design: merge theming-system frames into ui-design.pen
  • cae821e feat: vault-native theming system with live reload (#154)
  • 06e42b1 fix: resolve TypeScript build errors in AI agent files
  • 690dd6d feat: wire AiPanel into EditorRightPanel with undo + coverage exclusions
  • e405ea7 feat: wire AI agent panel to Claude API with tool calling
  • b610f1c fix: resolve wikilink paths and show entry title in Getting Started vault (#153)
  • 2137de8 feat: seed AGENTS.md in Getting Started vault and expose via vault_context MCP tool (#152)
  • f3d0681 feat: auto-initialize git repo on Getting Started vault creation (#151)
  • 9d0c549 fix: drag-and-drop images into editor โ€” add drop overlay and copy-to-attachments (#150)
  • aeb4f64 feat: AI agent panel UI โ€” 3-layer panel with action cards and WebSocket activity hook (#149)
  • e1e4b23 fix: derive sidebar type sections dynamically from vault entries
  • daae171 docs: add VISION.md โ€” core principles and long-term direction
  • 324e389 fix: tags in properties โ€” X button doesn't reserve space, fades in on hover without expanding pill (#148)
  • c1a3208 style: fix rustfmt formatting in lib.rs
  • ab4a243 fix: shift tab bar right when sidebar+notelist collapsed to avoid traffic lights overlap
  • 793c3dc test: add spawn_ws_bridge test to push Rust coverage above 85%
  • 2bd9cd9 docs: update architecture with full MCP server tool surface and auto-registration
  • d7f1fb3 feat: MCP server foundation with full tool surface and auto-registration
  • 9f3c36e docs: add design file for notes-type-icon-search fix
  • eb574ca fix: show type icon and label for "Note" type in search and autocomplete
  • cbfcb9d fix: show actual type icons in Properties panel TypeSelector (#147)
  • 75f68a8 fix: hide type note from note list, make header clickable to access it
  • e0b8f66 ci: trigger release with GitHub Pages updater endpoint
  • 3e87cd7 fix: serve latest.json via GitHub Pages for auto-updater endpoint
  • 12f1e1e fix: expand tilde in vault paths before passing to git and file system ops
  • c2e0640 feat: update app icon (green cloud + home)
  • fac1fef feat: type-aware commands in Command Palette (New/List [Type])
  • 9338356 design: command palette type-aware autocomplete mockups
  • 7a606f0 fix: search results โ€” type icon on left, type label aligned right (#138)
  • 184055c feat: update app icon (tree/house cloud design)
  • 4e93e1e design: merge github-oauth-fix frames into ui-design.pen
  • 18cef0b fix: inline GitHub OAuth device flow in Connect GitHub modal (#136)
  • 074c222 style: cargo fmt (#135)
  • 9385cbd fix: use Tauri opener plugin for GitHub OAuth browser launch
  • 4cf8697 design: add GitHub OAuth device code UI frames
  • ef3e397 ci: trigger release with correct Developer ID certificate
  • b03d6df ci: temporarily disable notarization (awaiting new certificate)
  • 2aef467 feat: integrate welcome screen with tests and fix App tests
  • 99fcd27 feat: add Rust backend for Getting Started vault creation
  • 54e5b2a docs: add design file for Getting Started vault welcome screens
  • 33b851c design: merge tags-property-type + zoom-shortcuts frames into ui-design.pen
  • cc00e7f fix: useRef type for debounce timer (TS 5.9 compatibility)
  • fb4896f feat: zoom in/out keyboard shortcuts (Cmd+=, Cmd+-, Cmd+0) (#134)
  • 8388029 fix: use number | undefined for debounce timer ref (TS strict compat)
  • 84c9f26 feat: add tags (multi-select) property type (#133)
  • 222a9ff design: merge relationship-x-cosmetic frames into ui-design.pen
  • c3e9804 fix: useRef type for debounce timer (pre-existing build error on main) (#132)
  • acd4112 fix: remove invalid notarization field from tauri.conf.json (Tauri v2 uses env vars)
  • 89fbe15 ci: fix notarization โ€” use Tauri v2 env vars (APPLE_CERTIFICATE + APPLE_SIGNING_IDENTITY)
  • ce83151 ci: trigger release with notarization
  • 3182fbe ci: add Apple notarization to release workflow (awaiting certificate)
  • a1ece6f feat: sync note title with H1 heading (predictive title)
  • 0948bdb fix: property panel responsive layout + status dropdown click regression
  • cbbea2c fix: properties panel bar height matches breadcrumb bar
  • d889c4f fix: search results โ€” type icon on left, type label aligned right
  • e541c1f fix: reverse relationships โ€” remove header, arrow prefix, dotted underline on hover
  • c1819c4 fix: type selector dropdown shows colored icons per type
  • fe79e61 fix: relationship item input height consistency + X button overlay on hover
  • 0cfce65 fix: tags X button appears on hover without expanding pill width
  • 2f56fad fix: make new note editor immediately interactive
  • 52e1e3f fix: multiselect uses only Shift+click; add Cmd+Del/Cmd+E bulk actions
  • 44f49e2 fix: restore status dropdown click + color picker per status value
  • 2ff5467 fix: add traffic light clearance to note list header when sidebar is collapsed
  • 5e6d2fd fix: update Tauri signing pubkey (new keypair, password stored securely)
  • ac81eaf fix: update Tauri signing pubkey to match new keypair (empty password)
  • 05aa6f6 fix: update Tauri signing pubkey (regenerated keypair with empty password)
  • 55018b8 fix: use TAURI_KEY_PASSWORD secret for signing (was hardcoded empty string)
  • c3f71f7 chore: add .claude-done for pencil-ui-design-light-mode verification
  • 21c0c12 design: add theme Light to 25 dark-mode frames, remove before variants
  • 29fddea design: fix search panel overlay layout positioning
  • a3b7305 fix: use portal-based positioning for property panel dropdowns (#130)
  • c03bc89 design: update new-note-creation.pen for unsaved state
  • 30ca211 feat: in-memory unsaved state for new notes (Cmd+N)
  • f3dcaad feat: replace search result snippet with metadata subtitle
  • 6e359d5 design: search results subtitle with metadata frames
  • 2479173 chore: add src-tauri/target to .gitignore
  • e9f42f7 fix: remove accidental src-tauri/target symlink from repo
  • 43e8fc7 fix: property dropdowns adapt to narrow panel width
  • 15089a6 fix: unify status dropdown and make color swatch visible (#128)
  • 9de3cec fix: multiselect range includes anchor note and prevents text selection (#127)
  • a990b24 fix: raise property type dropdown z-index above BlockNote editor
  • d202268 perf: optimize pre-push hook from ~12min to ~30s
  • e5f3746 fix: deduplicate search results by path in useUnifiedSearch
  • 142ff54 fix: apply 3 pending fixes directly to main
  • 707546c fix: remove unsupported --silent flag from vite build in pre-push hook
  • 91cff38 ci: replace remote CI with local pre-push hook
  • 95cbf1a ci: trigger GitHub Actions run
  • 47acd1c feat: status color picker โ€” assign persistent color per status value (#120)
  • 4e6bbf4 fix: revert notelist subtitle to show snippet instead of metadata (#118)
  • a5c2d26 fix: unify type selector dropdown to match add-property style (#123)
  • 5941f16 refactor: decompose Editor.tsx, NoteList.tsx, Sidebar.tsx โ€” CodeScene hotspots (#126)
  • 190ae64 refactor: clean up ui-design.pen โ€” remove befores, integrate design files (#122)
  • 80dd525 refactor: extract SearchResultItem and SearchResultsList from SearchContent (#124)
  • f3629e2 feat: add multi-select notes with bulk archive and trash actions (#125)
  • 6602763 ci: auto-update open PR branches when main advances
  • eee0316 fix: use Tauri opener plugin for git commit link in status bar (#117)
  • c4c806c ci: switch from self-hosted to macos-15 GitHub runners
  • 175bcb3 ci: add Rust dependency cache to speed up PR checks
  • 6baa779 feat: new note creation โ€” unsaved/in-memory state before first save (#112)
  • 87f847b feat: type-aware property value inputs โ€” date picker, boolean toggle, status dropdown (#110)
  • 268b87c ci: isolate pnpm store per runner to prevent concurrent corruption
  • cdb9de5 fix: remove duplicate type icon in add-property input (#107)
  • 82b60f1 fix: resolve Calendar identifier conflict in DynamicPropertiesPanel
  • f019389 chore: remove coverage report and screenshot from git tracking (should be gitignored)
  • 02a04ec refactor: extract useEditorTabSwap hook from Editor โ€” reduce complexity (#102)
  • 9145023 test: fix 5 failing tests after react-day-picker addition (#101)
  • 8e5cbb2 feat: note subtitle โ€” show metadata (date + word count) (#94)
  • c177dd2 fix: hide empty Backlinks, Relations, and Referenced By sections (#99)
  • ba2c1e5 feat: git status bar โ€” show last commit link, remove branch name (#92)
  • fc1badc revert: remove titlebar color darkening โ€” superseded by custom drag region (#88)
  • 5dddf53 design: add 4 full-layout frames showing app in different states (#96)
  • 97d23cb feat: replace custom date picker with shadcn/ui Calendar + Popover (#98)
  • f351ed9 feat: use light type color as background for note type labels (#93)
  • 943f6e3 feat: structured design system in ui-design.pen (#95)
  • c0240c5 design: merge add-property-inline frames into ui-design.pen
  • f842f2b feat: redesign Add Property as inline horizontal form with type selector (#100)
  • 72295da design: merge status-property-dropdown frames into ui-design.pen
  • 2907bc5 feat: status property โ€” Notion-style dropdown with color chips (#97)
  • 8fbaff7 fix: defer vault entries update via startTransition for instant tab creation (#90)
  • 9817842 fix: add devtools feature to tauri for open_devtools() support
  • bd65a4b design: design system proposal + canvas reorganization
  • 410f8b9 fix: restore properties panel header height to match tab bar (52px) (#87)
  • cb8efa7 fix: resolve custom type color and icon in all autocomplete contexts (#84)
  • 25a2970 fix: deduplicate inspector panels (Relations, Backlinks, Referenced By) (#82)
  • e961584 feat: darken title bar headers for visual separation from content (#85)
  • 369ecdc feat: auto-pull vault changes from Git (background sync + conflict handling) (#79)
  • c85e343 feat: smart property display โ€” type-aware rendering with display mode override (#83)
  • 7ca5ee4 refactor: reorganize all 65 frames in ui-design.pen into logical grid (#86)
  • ac4db43 perf: speed up Cmd+N note creation from ~150ms to ~16ms (#81)
  • 9e90968 chore: remove merged feature design files (frames live in ui-design.pen)
  • 4224a91 docs: update design workflow โ€” light mode, frame layout, cleanup on merge
  • 0d6f83d feat: remove native titlebar, implement custom drag regions
  • a6d8cc2 feat: unified search panel โ€” progressive keyword+semantic results (#80)
  • 7bcf8bc ci: re-trigger release after fixing Tauri signing key secret
  • 8b8cfee fix: add missing outgoingLinks field to person mock entries
  • 27f0adc feat: populate macOS menu bar with native menus (File, Edit, View, Window) (#77)
  • 98f0e68 feat: back/forward navigation between opened notes (#75)
  • 5f0de00 fix: wrap Enter key assertion in waitFor to handle async state propagation in SearchPanel test
  • 3a85d47 fix: resolve conflict markers in InspectorPanels.tsx โ€” take unified NoteSearchList approach
  • e473b41 feat: unify note search into shared NoteSearchList + useNoteSearch
  • 292cc68 fix: use self-hosted runner for CI test job to avoid billing costs (#67)
  • 462b920 fix: show type label for all notes in wiki-link autocomplete (#76)
  • 48cf359 feat: relations autocomplete shows note type badges (matching wiki-link UX) (#74)
  • 05ac689 fix: allow standard text shortcuts in command palette input (#73)
  • 6e23fc2 fix: restore Cmd+1/2/3 layout shortcuts (regression from App.tsx refactor) (#71)
  • 5384679 fix: cargo fmt
  • 2c8befa fix: make backlinks update reactively when wikilinks are added or removed
  • fa49059 fix: remove double border-radius causing rounded corners below macOS title bar (#72)
  • 2903196 feat: full-text search with qmd backend and SearchPanel UI (Cmd+Shift+F) (#64)
  • 6b0ee4b test: add tests for @mention autocomplete
  • 4fd1d97 feat: add @mention autocomplete for Person entries
  • 4ff3472 design: person-mention wireframes
  • 2f76895 feat: add optimistic error recovery for note creation (#69)
  • ca9ede5 fix: relation chips now show type color instead of default blue (#68)
  • f84ebbe refactor: split mock-tauri.ts into focused modules (8.81 โ†’ 10.0) (#65)
  • e48ac6a refactor: improve code health in github.rs, mock-tauri.ts, lib.rs (#63)
  • 558f50e refactor: extract hooks from App.tsx to improve code health (#62)
  • 131fe7d design: merge full-text-search frames into ui-design.pen
  • af0492b fix: exclude title heading and wikilinks from word count
  • 0e144b5 fix: pass modifiedFiles to NoteList so Changes view filters correctly
  • 3f79d16 fix: use Tauri opener plugin for URL property clicks
  • c33495a fix: debounce Cmd+N to prevent slow note creation on rapid keystrokes
  • e9e50a7 fix: align Type row padding with other property rows in Properties panel
  • a95625e fix: apply text-[12px] to URL values in Properties panel
  • e40c461 fix: apply rustfmt formatting
  • 1cabd55 fix: use strip_prefix instead of manual slice to satisfy clippy::manual_strip
  • 6438c15 wip: fix rename for empty notes + add regression tests (uncommitted on process death)
  • 154aab5 test: add command palette and fuzzy match tests
  • f51f061 docs: add design file for flat list autocomplete UI
  • 765f26c feat: replace grouped autocomplete with flat list and type badge
  • 5d24fda feat: add command palette with Cmd+K shortcut
  • f8edad2 design: command-palette wireframes
  • 23afa89 fix: derive green pallino from git status instead of in-memory tracker
  • 7ed9e30 fix: deduplicate autocomplete suggestions and disambiguate same-title notes (#54)
  • 4b4b64d fix: use type-defined colors and icons in Relations/Backlinks/ReferencedBy panels (#49)
  • 2d9593c fix: use type-defined colors and icons in Relations/Backlinks/ReferencedBy panels
  • dd6eb34 docs: add current state snapshot to VISION.md
  • 4e02644 docs: add product vision document
  • 76504d3 design: merge differenzia-pallino frames into ui-design.pen
  • 048391a fix: restore modifiedFiles/changes-filter support alongside getNoteStatus
  • 4f03751 feat: distinguish new notes (green dot) from modified notes (orange dot)
  • 0e9de3c design: merge vista-changes frames into ui-design.pen
  • 875d2fb design: icon-picker-sezioni wireframes (3 frames)
  • 4c6bc91 feat: expand icon picker with ~290 icons, search, and scrollable grid
  • 68b5b5f test: add tests for Changes view + design wireframes
  • 7b02dc1 feat: add Changes view for pending modifications
  • 236ac1c fix: use consistent 12px text size for property values in Properties panel
  • 0d6b285 feat: raise CodeScene code health threshold to 9.2
  • 55aff60 design: merge url-property-click frames into ui-design.pen
  • dd9b306 feat: make URL properties clickable with hover underline
  • cb623c6 design: url-property-click wireframes (3 frames)
  • f9008fc design: merge relations-edit frames into ui-design.pen
  • d2b2ae5 design: relations-edit wireframes (3 frames)
  • 4c6a0d4 feat: replace read-only Type field with editable dropdown selector
  • 00b0c1d feat: make relations editable with add/remove controls
  • f507998 fix: remove .claude-done from tracking, add to .gitignore
  • 11a9f37 docs: add design file placeholder for window-frame-border
  • 61b727b fix: add 1px inset border between macOS window frame and app content
  • d2c8d25 fix: exclude YAML frontmatter from word count in Inspector panel
  • 399e30c fix: serialize env-var tests with mutex to prevent race in parallel CI
  • c3b894e fix: widen savePending type in useCommitFlow to accept Promise
  • ec06d5a fix: require 2+ chars before showing wikilink autocomplete, limit to 20 results
  • b8273e7 fix: refresh dirty state after rename so indicator reflects reality
  • 91d0149 fix: use correct GitHub OAuth App client_id for device flow
  • 526cb55 test: add tests for string error display and double-click prevention
  • e770a5a fix: improve device flow 404 error with setup instructions
  • 16ae4bd fix: surface actual error messages in GitHub OAuth login flow
  • 4089e0e test: add edge case tests for tab drag-and-drop reorder
  • 8164576 fix: use refs in useTabDrag to prevent stale closures on drop
  • fbb1811 fix: remove broken Create New Vault button, unify with Open Local Folder
  • 059990f fix: remove vault.rs accidentally restored by cherry-pick
  • 4b5812a fix: prevent editor from reverting content after Cmd+S save
  • fafa876 fix: remove duplicate image upload in useImageDrop, fix build errors
  • 367eff3 ci: re-trigger after threshold update [skip codescene]
  • 635112b fix: remove broken Create New Vault button + update tests
  • 68bc72a fix: cargo fmt on migration.rs tests
  • f2268a4 test: add unit tests for vault/migration.rs to restore Rust coverage to โ‰ฅ85%
  • 80a2e4d fix: remove stale modifiedFiles prop from useNoteListData call site
  • ad10550 fix: remove unused fileBuffer variable in e2e test
  • d5484ff ci: re-trigger after threshold update [skip codescene]
  • c6f0bdb fix: lint errors - move vaultPathRef update to useEffect, format vault.rs
  • 7a58291 test+design: add E2E drag-drop tests and design wireframes
  • 8a5df70 feat: add drag & drop image support in editor
  • ee85bfb chore: mark wikilink-underline task done
  • eb67253 design: wikilink underline color fix wireframe
  • 3ce3e4e fix: wikilink underline now follows type color
  • 96bc494 ci: re-trigger after threshold update [skip codescene]
  • 2c553e8 fix: cargo fmt git.rs + remove unused modifiedFiles dep from useMemo
  • 1dedd04 design: commit & push bug fix wireframes
  • 0aa5d7e fix: commit & push now saves pending content and refreshes modified files
  • 81b9857 style: rustfmt โ€” remove trailing blank line in tests module
  • 98d0b39 fix: close mod tests block in lib.rs (unclosed delimiter from rebase)
  • 2ed9daf ci: re-trigger after threshold update [skip codescene]
  • aba23b3 ci: trigger CI check
  • 1149c05 style: rustfmt formatting fixes for CI
  • 4a26066 test: add HTTP mock tests for github.rs and ai_chat.rs to fix coverage
  • 1b22a12 test: add E2E tests for settings GitHub OAuth flow
  • f78f5d5 refactor: extract sub-components to improve SettingsPanel code health
  • ecdf759 design: add settings-github-oauth.pen wireframe file
  • 868e430 test: add tests for GitHub OAuth device flow types and Settings UI
  • 2a831e6 feat: replace GitHub token field with OAuth device flow login
  • 7a66fd4 fix: add migration module with migrate_is_a_to_type โ€” was missing after vault.rs refactor
  • e4060e3 ci: re-trigger after threshold update [skip codescene]
  • 2582250 fix: use inner doc comment to fix clippy::empty_line_after_doc_comments
  • 6500e72 fix: restore save_note_content and missing pub fns from main merge
  • 0171209 docs: update ARCHITECTURE.md with vault module structure
  • 0eb0cfd refactor: split vault.rs into focused submodules
  • 31232db refactor: flatten extract_snippet and purge_trash complexity
  • 572113f ci: re-trigger after threshold update [skip codescene]
  • 536e7b6 chore: update docs and .claude-done summary
  • da8f652 fix: use vitest Mock type import to fix tsc build error
  • 5f1c022 design: modified notes indicator wireframes
  • ca22bca test: add tests for modified note indicators
  • 80096f2 feat: add modified note indicators in NoteList, TabBar, and StatusBar
  • 941c4c7 refactor: rewrite CLAUDE.md (107 lines, critical rules first) + add pre-commit hook
  • 75b9d9c docs: CI is a safety net, not discovery โ€” enforce local checks before pushing
  • d26cef9 ci: re-trigger after threshold update [skip codescene]
  • cbc37c9 fix: increase timeout for 9000-entry virtuoso test to 15s
  • 40061a5 docs: update architecture and add completion summary
  • fa0049f fix: use proper ESM imports in test setup for TypeScript compatibility
  • f6a4ab1 test+design: add virtual list tests and design wireframes
  • 9770763 feat: virtualize NoteList with react-virtuoso for large vaults
  • b8c3a73 refactor: extract wikilink utils to src/utils/wikilink.ts, fix NoteList useMemo deps
  • 35f34a5 docs: no CI gate shortcuts โ€” fix structural problems, not symptoms
  • a63a4a2 ci: lower hotspot health gate to 8.45 (project at 8.48, refactor in flight) [skip codescene]
  • ac362ef docs: two-stage QA protocol โ€” lockfile + native app on ~/Laputa
  • e968d2b docs: strengthen QA requirements โ€” native app on real vault mandatory for all tasks
  • 8343135 design: merge modified-notes-indicator frames into ui-design.pen
  • 9fb6c86 design: merge performance-note-list frames into ui-design.pen
  • a078392 design: merge relazioni-bidirezionali + wikilink-colorati frames into ui-design.pen
  • 99c41ce chore: add .claude-done summary
  • 9226d0c test: add E2E tests for vault picker local options
  • f525426 design: vault-picker-local wireframes (base copy)
  • 7c0111b test: add tests for local vault picker options
  • 1714362 feat: add local vault options to vault picker
  • 288003a fix: cargo fmt vault.rs formatting
  • 1d96106 test: add tests for ReferencedByPanel and useReferencedBy hook
  • bb64dc7 fix: cargo fmt vault.rs formatting
  • 57f00f8 feat: add Referenced By panel for bidirectional relationships
  • 5908161 design: wikilink-colorati wireframes
  • 7e65e0a design: Referenced By panel wireframes
  • 3d35eaf feat: color wikilinks by destination note type
  • 3869482 fix: cargo fmt vault.rs formatting
  • 2baff0a design: inspector before/after wireframe for Is a removal
  • 31f7941 test: add migration and type-field parsing tests
  • 4ad3777 feat: replace 'Is a' / 'is_a' with 'type' as the canonical frontmatter key
  • d5b89de design: click-opens-new-tab wireframes
  • da6da48 feat: click opens note in current tab, Cmd+Click opens new tab
  • 6e8c7a6 docs: fix design file instructions โ€” additive only, no cp ui-design.pen
  • 75a3e1e docs: add .claude-done completion summary
  • 1a57793 test: update E2E test for Cmd+S save + add design file
  • 6c2e1b7 fix: replace broken auto-save with explicit Cmd+S save
  • 50e505e design: merge properties-inspector frames into ui-design.pen
  • 2a7de36 docs: update abstractions for properties inspector Info section
  • 4438e9c fix: hide is_a/Is A from editable properties (already shown as TypeRow)
  • d2b97a2 feat: distinguish editable from read-only properties in inspector
  • 08a4c61 design: properties-inspector wireframes
  • d5fbff0 fix: resolve TypeScript build errors and add E2E test
  • 180ade7 fix: implement auto-save for editor content
  • 1e19f22 ci: optimize self-hosted build โ€” incremental Rust, drop Swatinem cache
  • d1d10af ci: use self-hosted mac-mini runner for macOS build
  • b37b9e5 ci: build only for Apple Silicon (aarch64), drop x86_64
  • 6a794f9 ci: retry after billing fix
  • fc7b874 ci: simplify release โ€” drop lipo/re-signing, use per-arch dmg
  • 1029d45 ci: fix signing โ€” hardcode empty password, update pubkey
  • 8ec33d2 ci: regenerate Tauri signing keypair (no password)
  • 67d5015 ci: fix signing key password secret name
  • 509ef9e ci: fix signing key secret
  • 17443fd fix: set proper bundle identifier for release builds
  • f9aa24d fix: wire useViewMode into App and fix filterEntries arity
  • 9aa00c9 feat: auto-build, GitHub Release, and in-app updater (#14)
  • 29eb458 fix: rustfmt build.rs
  • 61a596f fix: rustfmt formatting
  • 62860b3 docs: update ARCHITECTURE.md with release/update system
  • 9df9130 design: auto-build-release wireframes
  • ca7e1da test: updater component tests
  • 4106bea feat: in-app update notification UI
  • 62c52c7 ci: github pages with release history
  • 4b8d974 ci: auto-release workflow on merge to main
  • d14f6f5 fix: resolve all ESLint errors (lint now exits 0)
  • b88329e design: merge fix-note-mutation, vault-from-github, sidebar-collapsable frames into ui-design.pen
  • 0e628c1 fix: use Cmd+1/2/3 shortcuts and register real Tauri menu accelerators
  • fc5a97e test(e2e): add Playwright tests for sidebar collapse states
  • c9cc47d test: add tests for useViewMode and useAppKeyboard view shortcuts
  • eb8584f feat: add macOS View menu with panel visibility items
  • c346fac feat: collapsible sidebar and note list with โŒฅ1/2/3 shortcuts
  • 3086233 design: collapsible sidebar wireframes
  • 2f8f594 design: fix improve-sort wireframes โ€” sort dropdown with direction arrows
  • 79f5da0 fix: remove unused DEFAULT_DIRECTIONS import from NoteList
  • 23a69d7 design: improve-sort wireframes
  • 8d0fe8b test: add tests for sort direction behavior
  • b91aded feat: add sort direction (asc/desc) to note list sorting

Requires Apple Silicon (M1/M2/M3)

Built from 0aa3d156 on 2026-04-10

Laputa 0.20260407.620

April 7, 2026 ยท v0.20260407.620

View on GitHub

What's Changed

  • 0d9af0f chore: ratchet CodeScene thresholds to 9.45/9.29
  • 1ca2662 style: satisfy rustfmt pre-push check
  • eb2758c fix: correct editor breadcrumb props typing
  • 7d308a6 fix: hide title section for untitled drafts
  • 74850b5 docs: rewrite vault AGENTS.md template โ€” vault-agnostic, H1-as-title convention
  • e486e86 fix: open editor immediately when clicking suggested property slots
  • 132618e docs: add/update ADRs for H1-as-title and Trash removal (guard โ€” from commits 377a3f8, 7daf689, e581ad3)

Requires Apple Silicon (M1/M2/M3)

Built from 0d9af0fb on 2026-04-07

Laputa 0.20260406.619

April 6, 2026 ยท v0.20260406.619

View on GitHub

What's Changed

  • d29d5a0 chore: restore ui-design.pen (Pencil design file โ€” not stale)
  • 084c58f docs: restore VISION.md โ€” product vision, strategy and design principles
  • 63d85bf chore: remove remaining stale screenshots
  • 17d6701 chore: remove stale docs and assets (PROJECT-SPEC, ROADMAP, VISION, Design System Proposal, iPad Prototype, screenshots, untitled notes, prompt.txt, ui-design.pen)

Requires Apple Silicon (M1/M2/M3)

Built from d29d5a03 on 2026-04-06

Laputa 0.20260406.612

April 6, 2026 ยท v0.20260406.612

View on GitHub

What's Changed

  • 80914e1 style: cargo fmt on mod_tests.rs
  • 94d07f0 fix: stabilize flaky SearchPanel keyboard tests with act() wrapping
  • ef0709a fix: don't bake demo-vault-v2 path into CI builds
  • eac3b12 fix: sanitize gray_matter YAML output to handle unquoted colons and hash comments in list items
  • 25d9da5 style: cargo fmt
  • e366c84 fix: add hasH1 to mock entries for build compatibility
  • 7daf689 feat: auto-rename untitled notes + Rust title resolution tests
  • 377a3f8 feat: H1-as-title โ€” title resolution, TitleField hiding, breadcrumb filename
  • 901326d fix: change AI panel shortcut from Cmd+Option+I to Cmd+Shift+L

Requires Apple Silicon (M1/M2/M3)

Built from 80914e1e on 2026-04-06

Laputa 0.20260405.605

April 5, 2026 ยท v0.20260405.605

View on GitHub

What's Changed

  • 2cd192f style: apply rustfmt to classify_file_kind tests
  • 46106da fix: pass forceRawMode through ActiveTabBreadcrumb to BreadcrumbBar
  • 0051559 fix: hide Raw toggle for non-markdown files forced into raw editor
  • 3f19528 fix: wikilink filter values now match frontmatter format with alias support

Requires Apple Silicon (M1/M2/M3)

Built from 2cd192fa on 2026-04-05

Laputa 0.20260404.589

April 4, 2026 ยท v0.20260404.589

View on GitHub

What's Changed

  • 3c4f6cc fix: coerce claudeCodeStatus/Version nullโ†’undefined for AppCommandsConfig
  • 313b11f fix: add claudeCodeStatus/claudeCodeVersion to AppCommandsConfig (TS error)
  • df1cff9 fix: update pnpm lockfile for @blocknote/core patch (CI frozen-lockfile fix)
  • 2b419b4 feat: add Claude Code detected/missing badge to status bar
  • f8d080e feat: add body content filter for Views (contains/does not contain)
  • 9f90516 feat: add suggested property/relationship slots in Inspector
  • ef02882 feat: move Info section below Backlinks in Inspector, add Phosphor icon
  • 1d3927c fix: rename "Link existing" to "Add relationship" in Inspector
  • 2feff35 feat: enrich getting-started-vault with real PKM example notes (Luca's system, guided Welcome)
  • 6f66cf0 fix: wikilink autocomplete triggers mid-text, not only on empty lines
  • aaa46f8 refactor: simplify getting-started-vault (3 types: Note/Topic/Person, no prefixes in filenames, Welcome as home)
  • f384b6f feat: redesign welcome screen with three vault options

Requires Apple Silicon (M1/M2/M3)

Built from 3c4f6cca on 2026-04-04

Laputa 0.20260404.583

April 4, 2026 ยท v0.20260404.583

View on GitHub

What's Changed

  • c0a64e1 fix: apply rustfmt formatting to vault module
  • fe85d1f feat: add getting-started-vault with onboarding content
  • 9db5f5c fix: add listPropertiesDisplay to remaining VaultEntry literals
  • 13c0802 fix: add listPropertiesDisplay to mock entries for type check
  • 4c44f8e feat: add type-specific property chips in note list

Requires Apple Silicon (M1/M2/M3)

Built from c0a64e18 on 2026-04-04

Laputa 0.20260404.580

April 4, 2026 ยท v0.20260404.580

View on GitHub

What's Changed

  • f68436c fix: remove Inbox period filter pills, show all notes by default
  • 7c03c50 fix: prevent CI runner vault path from leaking into distributed builds
  • 24911b6 fix: remove Quarter filter pill from Inbox, keep Week/Month/All
  • 51914db test: add Playwright smoke test for filter wikilink autocomplete
  • e4ffeec feat: add wikilink autocomplete on [[ in view filter value field

Requires Apple Silicon (M1/M2/M3)

Built from f68436c2 on 2026-04-04

Laputa 0.20260404.576

April 4, 2026 ยท v0.20260404.576

View on GitHub

What's Changed

  • 0d91e29 style: apply rustfmt to views migration code
  • 77d59e3 feat: move view storage from .laputa/views/ to views/ in vault root
  • f37de38 feat: add edit button (pencil) on hover for sidebar view items
  • 51ce27f fix: show view emoji icon in sidebar instead of default funnel

Requires Apple Silicon (M1/M2/M3)

Built from 0d91e29e on 2026-04-04

Laputa 0.20260403.570

April 3, 2026 ยท v0.20260403.570

View on GitHub

What's Changed

  • a5652b3 fix: path display below title โ€” focus-only visibility + robust path computation
  • 56faffd fix: editor title textarea clips wrapped lines โ€” add field-sizing + robust auto-resize

Requires Apple Silicon (M1/M2/M3)

Built from a5652b3f on 2026-04-03

Laputa 0.20260403.558

April 3, 2026 ยท v0.20260403.558

View on GitHub

What's Changed

  • 2bec65a chore: claude code loops forever โ€” waits 10min when no tasks instead of exiting
  • 4fe6f15 docs: add ADR 0041 for fileKind/all-files-in-vault-scanner; update README index for 0038โ€“0041 (guard โ€” from commit 284af17)

Requires Apple Silicon (M1/M2/M3)

Built from 2bec65a on 2026-04-03

Laputa 0.20260402.553

April 2, 2026 ยท v0.20260402.553

View on GitHub

What's Changed

  • c662b54 feat: show vault-relative path below title in editor
  • b467fd8 fix: remove H1 heading from new note editor body
  • 4d6f713 fix: apply rustfmt formatting to vault scanner code
  • 284af17 feat: show all files in folder view, open text files in raw editor, gray out binary
  • 2a21dc4 fix: use is_some_and instead of map_or for clippy compliance
  • 6946aad feat: add custom views frontend โ€” types, sidebar section, filter evaluation
  • 4ae0744 feat: add custom views backend โ€” YAML parser, filter engine, Tauri commands
  • 88a7926 fix: show note title instead of filename in search results
  • fd64288 fix: apply rustfmt formatting to git dates code
  • e2d0a46 feat: use git history for note creation/modification dates
  • 990470e fix: add favorite/favoriteIndex to all VaultEntry mock data
  • 33db648 feat: add favorites section with star button, frontmatter persistence, and drag-to-reorder

Requires Apple Silicon (M1/M2/M3)

Built from c662b54 on 2026-04-02

Laputa 0.20260401.537

April 1, 2026 ยท v0.20260401.537

View on GitHub

What's Changed

  • 85e8eb7 fix: rustfmt formatting for create_vault_folder
  • 6640e74 fix: address folder tree QA feedback โ€” recursive filtering, folder creation, path display, remove flatten banner

Requires Apple Silicon (M1/M2/M3)

Built from 85e8eb7 on 2026-04-01

Laputa 0.20260331.526

March 31, 2026 ยท v0.20260331.526

View on GitHub

What's Changed

  • 62e1dbb chore: ratchet CodeScene thresholds to 9.85/9.39
  • f15dc0e chore: fix ratchet thresholds โ€” round down to match actual scores
  • 491e5d3 style: cargo fmt โ€” fix pre-existing Rust formatting
  • 1199840 test: add Playwright + Vitest tests for raw editor type propagation
  • 39db25a fix: propagate frontmatter changes from raw editor to vault entries
  • 213e51c docs: task not done until git push succeeds โ€” fix pre-push failures before marking done
  • 9a25339 fix: use next_back() instead of last() on DoubleEndedIterator (clippy)
  • c4001ec feat: detect external file renames and offer wikilink update via banner
  • e3e60a2 feat: subfolder support โ€” path-based wikilink resolution and cross-folder backlinks
  • e43e2a7 feat: move filter chips to bottom of note list with gradient fade
  • 517f1c0 fix: remove duplicate invoke import in App.tsx
  • 635d793 feat: show blocking modal when vault has no git repo, offer auto-init
  • 093f1bc test: add folder tree and filtering tests; docs: ADR-0033
  • 7dc7897 feat: add FOLDERS section to sidebar with collapsible tree
  • 46a08c6 feat: show Initialize/Invalid properties prompts for notes without frontmatter
  • eb7a45a feat: scan subdirectories and expose folder tree for sidebar
  • e89dc65 docs: task-done notification is informational only โ€” no Brian approval needed
  • ce4736b fix: disable Tauri native drag-drop to restore BlockNote block dragging
  • 7d94bb2 feat: show note title in breadcrumb bar when scrolled past title
  • b78e422 feat: add markdown syntax highlighting in raw editor
  • 4d0e746 feat: use JetBrains Mono for the raw editor

Requires Apple Silicon (M1/M2/M3)

Built from 62e1dbb on 2026-03-31

Laputa 0.20260331.524

March 31, 2026 ยท v0.20260331.524

View on GitHub

What's Changed

  • 6764fd0 chore: ratchet CodeScene thresholds to 9.85/9.39
  • 59ed689 fix: lower AVERAGE_THRESHOLD to 9.38 (actual score is 9.3884, threshold was set too high)
  • 9b59c26 docs: compress CLAUDE.md (176 โ†’ 130 lines) โ€” remove garbled section, deduplicate QA scripts
  • ff1f166 test: remove non-core Playwright tests to bring suite under 10 minutes

Requires Apple Silicon (M1/M2/M3)

Built from 6764fd0 on 2026-03-31

Laputa 0.20260330.522

March 30, 2026 ยท v0.20260330.522

View on GitHub

What's Changed

  • bd13017 chore: lower CodeScene thresholds to 9.83/9.38 after feature additions
  • 2045e13 fix: update SearchPanel arrow-key test to fire keyDown on input element
  • d83121b chore: ratchet CodeScene thresholds to 9.84/9.39
  • acfceb3 feat: simplify breadcrumb bar โ€” remove left-side content and border
  • 2dd6a94 fix: align breadcrumb bar, properties header, AI header to 52px
  • 296d474 feat: add Cmd+Shift+I shortcut to toggle properties panel, default closed
  • 98a98ab feat: replace NoteWindow with full App instance for note windows
  • 2b85640 fix: remove vertical padding between collapsed sidebar sections
  • c3b397f docs: require Todoist comments on every task state transition
  • 6e0b578 docs: Playwright only for core flows, < 10 min budget, cosmetic changes use Vitest
  • 860efc1 docs: QA phase 2 uses pnpm tauri dev instead of DMG, remove Brian review phase
  • d05bc27 feat: ratchet CodeScene thresholds โ€” never regress, auto-update on each push
  • 7f0134a docs: simplify product rules โ€” remove keyboard-first/retrocompat (spec responsibility), clarify vault usage

Requires Apple Silicon (M1/M2/M3)

Built from bd13017 on 2026-03-30

Laputa 0.20260330.521

March 30, 2026 ยท v0.20260330.521

View on GitHub

What's Changed

  • 8fbf035 feat: add /laputa-next-task and /laputa-done slash commands, clean CLAUDE.md
  • 8597958 docs: add native app QA phase to CLAUDE.md (Claude Code tests before Brian)
  • 0ee4862 docs: clarify task pickup priority in CLAUDE.md, simplify self-dispatch (no skip logic)
  • e1def7f docs: restructure CLAUDE.md into 4 clear sections (workflow/process/product/reference)

Requires Apple Silicon (M1/M2/M3)

Built from 8fbf035 on 2026-03-30

Laputa 0.20260329.499

March 29, 2026 ยท v0.20260329.499

View on GitHub

What's Changed

  • 0488a3c refactor: extract github.rs from git.rs, move tests to vault.rs
  • a596406 refactor: split commands.rs into commands/ module (ai, git, system, vault, mod)
  • 89f53a1 docs: ADR timing rule โ€” create in same commit as code, never before
  • 3749770 Revert "docs: ADR-0028 โ€” CLI agent only, remove API key (supersedes ADR-0027)"
  • d7f18f7 docs: ADR-0028 โ€” CLI agent only, remove API key (supersedes ADR-0027)
  • f80339a docs: forbid vault modifications for testing โ€” use demo-vault-v2 only

Requires Apple Silicon (M1/M2/M3)

Built from 0488a3c on 2026-03-29

Laputa 0.20260328.498

March 28, 2026 ยท v0.20260328.498

View on GitHub

What's Changed

  • 93d5d58 docs: update ARCHITECTURE.md / ABSTRACTIONS.md / GETTING-STARTED.md post-ADR audit
  • 1ba74d4 docs: audit ARCHITECTURE.md, ABSTRACTIONS.md, GETTING-STARTED.md โ€” remove stale theme/tab/favorites refs
  • 5c0e7b2 docs: backfill ADRs 0026โ€“0027, fix README index, remove duplicate ADR files
  • bcd4b8f docs: backfill ADRs 0016โ€“0020 (historical decisions)
  • 2dd68c1 docs: backfill ADRs 0021โ€“0025 (push-to-main, BlockNote, repair vault, cache location, type field)
  • 4eca4cb docs: backfill ADRs 0011โ€“0015 (historical decisions)
  • 1ebd516 docs: backfill ADRs 0016โ€“0020 (telemetry, canary channel, CodeScene gates, GitHub OAuth, keyboard-first)
  • f61fc57 docs: backfill ADRs 0006โ€“0010 (historical decisions)
  • e2788d6 docs: backfill ADRs 0011โ€“0015 (MCP server, Claude CLI agent, remove theming, git cache, auto-save)
  • 42b76d8 docs: backfill ADRs 0006โ€“0010 (flat vault, title sync, underscore convention, keyword search, dynamic relationships)
  • dc57984 docs: improve /create-adr command โ€” adr-tools inspiration, superseding flow, Nygard best practices
  • bb1eebb docs: add /create-adr Claude Code command + slim ADR section in CLAUDE.md
  • 341590c docs: slim ADR section in CLAUDE.md (format lives in README) fix: SearchPanel test โ€” fireEvent.keyDown on window not document chore: ignore src-tauri/gen/ in eslint flat config (Tauri iOS generated files)
  • bc08345 docs: update ADR template โ€” align with Fowler article (status lifecycle, advice field, decision bold)
  • 99ae826 docs: add Architecture Decision Records (ADRs) โ€” 5 backfill + process in CLAUDE.md

Requires Apple Silicon (M1/M2/M3)

Built from 93d5d58 on 2026-03-28

Laputa 0.20260327.497

March 27, 2026 ยท v0.20260327.497

View on GitHub

What's Changed

  • c9c8380 fix: align pre-commit average threshold display and gate to 9.33 (was showing 8.9, checking 9.31)
  • 8031337 docs: update CI comment โ€” average code health now 9.37 (was stale 8.9)

Requires Apple Silicon (M1/M2/M3)

Built from c9c8380 on 2026-03-27

Laputa 0.20260325.489

March 25, 2026 ยท v0.20260325.489

View on GitHub

What's Changed

  • 31d85a0 fix: add telemetry fields to mock save_settings handler
  • 3cb55fe docs: add telemetry section to ARCHITECTURE.md and ABSTRACTIONS.md
  • 91854f8 feat: integrate Sentry crash reporting + PostHog analytics
  • a05a933 feat: add telemetry consent dialog + Settings privacy toggles
  • f47557c feat: add telemetry consent fields to Settings (Rust + TypeScript)

Requires Apple Silicon (M1/M2/M3)

Built from 31d85a0 on 2026-03-25

Laputa 0.20260325.488

March 25, 2026 ยท v0.20260325.488

View on GitHub

What's Changed

  • e96f266 fix: tolerate flaky Playwright tests in pre-push hook
  • 181c9fe fix: allow flaky Playwright tests to pass pre-push hook
  • b2e99d2 test: increase Playwright timeout from 15s to 20s (reduce flaky failures)
  • df7761b test: increase editor visibility timeout in latency smoke test
  • 94112ff test: stabilise flaky type-change E2E test (add settle time after note selection)
  • ec6d490 style: fix rustfmt blank line in frontmatter.rs
  • d108aa0 fix: resolve clippy type_complexity for extract_fm_and_rels return type
  • 259d5b6 docs: update ABSTRACTIONS.md with _pinned_properties format
  • 86a9f65 feat: add Rust backend for pinned properties + refactor hook complexity
  • 660208a fix: guard against undefined pinnedProperties + lint fixes
  • 6665d64 fix: remove duplicate imports in EditorContent and NoteItem
  • 1eecae0 test: add tests for usePinnedProperties hook and frontmatter sync
  • 5c76939 feat: drag-and-drop reordering for pinned properties bar
  • 47b5e45 feat: pinned properties โ€” inline bar in editor + values in note list
  • 1de22b0 fix: narrow onCreateAndOpen type guard in SearchDropdownWithCreate
  • 2be961c refactor: RelationshipsPanel โ€” extract shared hooks to reduce complexity (avg: 9.36, gate: 8.90 โ†’ 9.31)

Requires Apple Silicon (M1/M2/M3)

Built from e96f266 on 2026-03-25

Laputa 0.20260324.487

March 24, 2026 ยท v0.20260324.487

View on GitHub

What's Changed

  • 198ea1f test: skip relationship wikilink E2E test (single-note race condition)
  • 1b547d4 test: fix E2E timing for single-note model
  • 59ca7a7 test: update smoke tests for single-note model (no tab bar)
  • af147c4 style: fix rustfmt blank line in menu.rs
  • 97126c8 fix: remove stale tab props from NoteWindow editor
  • c4136d6 refactor: remove tab bar โ€” single note open at a time
  • 8b723b3 docs: add storage decision rule โ€” vault vs app settings (follows vault vs installation-specific)
  • e27b29e docs: add underscore convention for system properties + update design principles

Requires Apple Silicon (M1/M2/M3)

Built from 198ea1f on 2026-03-24

Laputa 0.20260324.486

March 24, 2026 ยท v0.20260324.486

View on GitHub

What's Changed

  • 8207ee4 test: fix E2E test โ€” search for 'reload' instead of removed 'reindex'
  • 2fdc122 style: rustfmt search.rs
  • 60d3b48 fix: resolve clippy single-element-loop in build.rs
  • ecbb94a refactor: remove QMD semantic indexing โ€” keep keyword search only
  • 50ad7e0 docs: add Boy Scout Rule to CLAUDE.md โ€” leave every touched file better than found
  • ea8d847 ci: add Average Code Health gate (โ‰ฅ8.9 floor, target 9.5) to CI, pre-commit, pre-push

Requires Apple Silicon (M1/M2/M3)

Built from 8207ee4 on 2026-03-24

Laputa 0.20260318.455

March 18, 2026 ยท v0.20260318.455

View on GitHub

What's Changed

  • 11c04f0 fix: remove broken snippet visibility test + add data-testid to snippet
  • e1e489f fix: make snippet smoke test selector more specific
  • e5177f5 fix: align TitleField with editor by sharing scroll container
  • 210f2f6 feat: show note emoji icon in wikilinks, relationships, and backlinks

Requires Apple Silicon (M1/M2/M3)

Built from 11c04f0 on 2026-03-18

Laputa 0.20260318.444

March 18, 2026 ยท v0.20260318.444

View on GitHub

What's Changed

  • e1c5452 fix: read owner/cadence from properties in ai-context
  • e6b3278 refactor: remove owner/cadence from Frontmatter, source created_at from filesystem
  • 76de05e feat: add emoji icon picker for notes stored in frontmatter

Requires Apple Silicon (M1/M2/M3)

Built from e1c5452 on 2026-03-18

Laputa 0.20260317.441

March 17, 2026 ยท v0.20260317.441

View on GitHub

What's Changed

  • 414cb12 style: rustfmt formatting
  • 3a24178 fix: remove unused import and dead code from title sync refactor
  • e01403e test: Playwright smoke test for title/filename sync + update docs
  • a0874b2 feat: TypeScript calls sync_note_title on note open
  • a1688f8 feat: title/filename sync on note open + always write title in rename
  • 56b923c refactor: extract_title reads from frontmatter title, not H1

Requires Apple Silicon (M1/M2/M3)

Built from 414cb12 on 2026-03-17

Laputa 0.20260317.438

March 17, 2026 ยท v0.20260317.438

View on GitHub

What's Changed

  • 90dfbb2 fix: smoke tests skip Theme entries in note list to avoid type selector issues
  • 412a1e0 fix: resolve demo vault path relative to project root โ€” fix smoke test failures

Requires Apple Silicon (M1/M2/M3)

Built from d07a592 on 2026-03-17

Laputa 0.20260317.437

March 17, 2026 ยท v0.20260317.437

View on GitHub

What's Changed

  • b8ae756 fix: make CodeScene pre-push gate informational โ€” remote API lags local changes
  • 7620fe6 fix: correct CodeScene API key in pre-push hook โ€” use code_health not average_code_health
  • 08493f8 style: rustfmt seed.rs and getting_started.rs
  • 6dc6b5e refactor: improve code health for vault/mod.rs and Editor.tsx โ€” fix CodeScene hotspot score
  • beb49b6 fix: update Repair Vault for flat vault structure โ€” no theme/ or config/ dirs

Requires Apple Silicon (M1/M2/M3)

Built from b8ae756 on 2026-03-17

Laputa 0.20260316.433

March 16, 2026 ยท v0.20260316.433

View on GitHub

What's Changed

  • 01d7a20 test: add Playwright smoke test for split-usenoteactions refactoring
  • 19bbba9 test: add unit tests for useNoteCreation and useNoteRename hooks
  • 4d13212 refactor: extract frontmatterOps, update imports for useNoteCreation/useNoteRename split

Requires Apple Silicon (M1/M2/M3)

Built from 01d7a20 on 2026-03-16

Laputa 0.20260316.432

March 16, 2026 ยท v0.20260316.432

View on GitHub

What's Changed

  • 2f02840 style: rustfmt vault mod.rs
  • 1550c02 fix: add missing VaultEntry fields (belongs_to, status, owner, cadence)
  • 19d53da fix: use contains() instead of iter().any() for clippy manual_contains
  • 389424f refactor: split NoteList.tsx god component into focused modules
  • 15a7470 Resolve merge conflict: keep split vault module from origin/main

Requires Apple Silicon (M1/M2/M3)

Built from 2f02840 on 2026-03-16

Laputa 0.20260316.425

March 16, 2026 ยท v0.20260316.425

View on GitHub

What's Changed

  • f89b199 fix: cargo fmt formatting
  • 6a30016 fix: correct reloadVault type in useFlatVaultMigration
  • e7a9581 test: add Playwright smoke tests for flat vault migration
  • a207135 docs: update ARCHITECTURE.md and ABSTRACTIONS.md for flat vault
  • 6237efe feat: add migration wizard for flat vault
  • aad863e feat: add dedicated TitleField above editor
  • 38021d2 refactor: reorder wikilink resolution for flat vault
  • a88c9fc feat: add vault_health_check command
  • 40bf800 refactor: restrict scan_vault to root + protected folders only

Requires Apple Silicon (M1/M2/M3)

Built from f89b199 on 2026-03-16

Laputa 0.20260315.416

March 15, 2026 ยท v0.20260315.416

View on GitHub

What's Changed

  • acd048b test: update changing-type smoke test for flat vault (no file movement)
  • 9ce74e7 style: cargo fmt
  • deec1be refactor: remove dead code from flat vault migration
  • b2bb7cf feat: title = filename โ€” wikilink resolution + slug collision detection
  • 112f68c feat: flatten vault structure โ€” remove type-based folders

Requires Apple Silicon (M1/M2/M3)

Built from acd048b on 2026-03-15

Laputa 0.20260312.403

March 12, 2026 ยท v0.20260312.403

View on GitHub

What's Changed

  • 3207b0b chore: skip flaky theme-live-reload tests (dark theme mismatch)
  • 088c495 fix: use note-list-container scoped selector in reopen-closed-tab smoke test
  • 70f984c feat: add Playwright smoke tests, data-tab-path attr, store full VaultEntry in closed tab history
  • 0d6cce1 feat: add Cmd+Shift+T shortcut, menu item, and full wiring
  • 73278f3 feat: add closed tab history and reopen-closed-tab support

Requires Apple Silicon (M1/M2/M3)

Built from 3207b0b on 2026-03-12

Laputa 0.20260311.402

March 11, 2026 ยท v0.20260311.402

View on GitHub

What's Changed

  • 93dc454 style: format trash.rs with cargo fmt
  • 1b7b7f3 docs: add trash management design file and update ARCHITECTURE.md
  • 7e20a36 fix: update Playwright smoke test selectors for trash management
  • 61a145c feat: add Empty Trash menu bar item and Playwright smoke test
  • 9a7369c feat: trash management โ€” bulk restore, delete permanently, empty trash
  • 13d3b2d feat: add batch_delete_notes and empty_trash Rust commands

Requires Apple Silicon (M1/M2/M3)

Built from 93dc454 on 2026-03-11

Laputa 0.20260311.401

March 11, 2026 ยท v0.20260311.401

View on GitHub

What's Changed

  • 9994f23 test: mark pre-existing ai-notes-visibility WS port conflict as fixme
  • a496a11 test: mark pre-existing theme-live-reload tests as fixme
  • ed4926d test: add Playwright smoke test for clickable editor empty space
  • c158cbc fix: make empty space below editor content clickable to focus editor

Requires Apple Silicon (M1/M2/M3)

Built from 9994f23 on 2026-03-11

Laputa 0.20260311.400

March 11, 2026 ยท v0.20260311.400

View on GitHub

What's Changed

  • 12416b9 fix: block vault API in theme-live-reload smoke test
  • a25f9ee style: format Rust theme modules with cargo fmt
  • 8a48c21 test: add Playwright smoke test for theme properties defaults
  • 7c72494 fix: write all theme.json defaults to vault theme frontmatter

Requires Apple Silicon (M1/M2/M3)

Built from 12416b9 on 2026-03-11

Laputa 0.20260311.397

March 11, 2026 ยท v0.20260311.397

View on GitHub

What's Changed

  • ab02aa5 feat: wire create-open relationship note to all panel contexts
  • 4dd27cf feat: add 'Create & open' option to relationship input dropdowns
  • c499ef3 fix: case-insensitive type entry lookup + Playwright smoke test
  • b3bf2bf fix: sidebar section header reflects type icon, color, and label
  • 13622bc test: add real filesystem vault integration tests

Requires Apple Silicon (M1/M2/M3)

Built from ab02aa5 on 2026-03-11

Laputa 0.20260311.394

March 11, 2026 ยท v0.20260311.394

View on GitHub

What's Changed

  • 80ad5cf fix: update fix-note-filename-on-rename smoke test for title-sync rename
  • 068d70c fix: add missing old_title_hint arg to tests added on main
  • 86ffb43 style: cargo fmt on rename.rs
  • 3504bb2 fix: remove needless borrow flagged by clippy in rename.rs
  • f2136f1 test: Playwright smoke test for rename-wikilink-update
  • 75ca18d test: unit tests for rename-wikilink-update feature
  • 47c408d feat: wire H1 sync and frontmatter title change to full rename flow
  • 96d7df3 feat: add old_title_hint to rename_note for H1 sync rename support

Requires Apple Silicon (M1/M2/M3)

Built from 80ad5cf on 2026-03-11

Laputa 0.20260311.389

March 11, 2026 ยท v0.20260311.389

View on GitHub

What's Changed

  • 2745251 test: Playwright smoke test for changing-type data corruption regression
  • 14a4d37 fix: mock move_note_to_type_folder collision handling + Rust collision content test
  • 9199cea fix: prevent data corruption when changing note type โ€” preserve tab content instead of re-reading from disk

Requires Apple Silicon (M1/M2/M3)

Built from 2745251 on 2026-03-11

Laputa 0.20260309.385

March 9, 2026 ยท v0.20260309.385

View on GitHub

What's Changed

  • b86f6d5 test: add Playwright smoke test for rapid note switching latency
  • 3426cbc test: add unit tests for prefetch cache, optimistic rollback, rapid switching
  • 57ff0f1 feat: optimize note open and trash/archive latency

Requires Apple Silicon (M1/M2/M3)

Built from b86f6d5 on 2026-03-09

Laputa 0.20260309.382

March 9, 2026 ยท v0.20260309.382

View on GitHub

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

Laputa 0.20260307.348

March 7, 2026 ยท v0.20260307.348

View on GitHub

What's Changed

  • 548e569 style: cargo fmt config_seed.rs and getting_started.rs
  • 0cf8f55 fix: clippy doc_lazy_continuation in config_seed.rs
  • 72b88ce docs: add config/ vault type to architecture and abstractions
  • 8db9f61 feat: add Repair Vault command and MCP configFiles
  • fb2067e feat: add config/ vault type with agents.md migration

Requires Apple Silicon (M1/M2/M3)

Built from 548e569 on 2026-03-07

Laputa 0.20260307.341

March 7, 2026 ยท v0.20260307.341

View on GitHub

What's Changed

  • d29f919 test: add Playwright smoke test for AI note visibility and tab opening
  • 42e37e0 test: add unit tests for detectFileOperation and parseBashFileCreation
  • 0ad0fa9 fix: AI-created notes now trigger vault refresh and auto-open in tab

Requires Apple Silicon (M1/M2/M3)

Built from d29f919 on 2026-03-07

Laputa 0.20260307.339

March 7, 2026 ยท v0.20260307.339

View on GitHub

What's Changed

  • fcc264d feat: restore MCP UI-steering tools (highlight_editor, refresh_vault)
  • 382ba0a test: add Playwright smoke test for wikilink rendering in AI chat
  • 4719810 feat: render [[wikilinks]] as clickable links in AI chat

Requires Apple Silicon (M1/M2/M3)

Built from fcc264d on 2026-03-07

Laputa 0.20260307.337

March 7, 2026 ยท v0.20260307.337

View on GitHub

What's Changed

  • 20b4ba7 fix: clippy errors โ€” reduce visibility of internal functions, fix PI approx
  • de00ab6 feat: reindex vault command, indexing status bar, sync-triggered reindex
  • 5d8f514 feat: add last_indexed_commit persistence to indexing backend

Requires Apple Silicon (M1/M2/M3)

Built from 20b4ba7 on 2026-03-07

Laputa 0.20260306.333

March 6, 2026 ยท v0.20260306.333

View on GitHub

What's Changed

  • b7d2304 test: fix Sidebar tests after Favorites removal
  • 50b5fa9 refactor: remove Favorites and Untagged from sidebar
  • 963e7cf refactor: rustfmt formatting fixes
  • c9a5d20 test: Playwright smoke test for trash โ†’ Changes badge
  • 586e1fc fix: refresh Changes panel after trash/archive operations
  • 75d6762 โšก Pulse: fix slow note open โ€” O(1) map lookup, no reloadVault on click

Requires Apple Silicon (M1/M2/M3)

Built from b7d2304 on 2026-03-06

Laputa 0.20260306.331

March 6, 2026 ยท v0.20260306.331

View on GitHub

What's Changed

  • b9d94ab style: rustfmt vault_config.rs
  • 18b2aae fix: add missing visible field to buildNewEntry in useNoteActions
  • 1706300 test: add Playwright smoke test for visible type property
  • 628ab76 feat: migrate hidden_sections from ui.config to visible property on Type notes
  • d3896dd refactor: remove hidden_sections from VaultConfig and delete useSectionVisibility
  • 7289a60 feat: add handleToggleTypeVisibility to useEntryActions
  • 0cff626 feat: filter sidebar sections by Type entry visible property
  • 5a4c986 feat: add visible field to VaultEntry for Type note sidebar visibility
  • 540b140 ๐Ÿ› Auto-untrack .laputa-cache.json and .laputa/settings.json from git
  • 826cda8 โšก Pulse: lazy pagination with IntersectionObserver infinite scroll
  • 19583ea ๐Ÿ’… Pulse: add right border, collapse commit files by default

Requires Apple Silicon (M1/M2/M3)

Built from b9d94ab on 2026-03-06

Laputa 0.20260306.324

March 6, 2026 ยท v0.20260306.324

View on GitHub

What's Changed

  • fd34df8 ci: import Apple certificate before Tauri build so beforeBuildCommand can codesign
  • 244deeb fix: sign qmd binaries with Developer ID + hardened runtime for notarization
  • 70f94d3 docs: add mandatory Playwright Phase 1 QA step before laputa-task-done
  • bb20ef1 fix: bundle qmd source in tools/qmd/ so CI can compile it
  • 15a1ba6 ci: add bun setup step to release workflow (required by bundle-qmd.sh)
  • e2c6669 fix: align ws-bridge.js imports with simplified vault.js API
  • d4098d3 refactor: split InspectorPanels.tsx into focused modules โ€” reduce 538-line file to focused per-panel components (#189)
  • 1c3d677 test: add configMigration tests โ€” cover all migration branches (#188)
  • 3da0b0e fix: make qmd/search work on fresh installs โ€” auto-install, fix permissions, sign binaries
  • bc2f97d style: rustfmt search.rs
  • 2fb6a30 feat: bundle qmd binary with app โ€” search works on fresh installs
  • 0206fb3 fix: rank command palette results by match score, not section order
  • 51d1b28 fix: move Go Back/Forward to Go menu, add toggles to Note menu
  • 0183062 fix: always show Resolve Conflicts in Cmd+K โ€” show toast when no conflicts
  • 1c244a8 refactor: extract hooks and components from NoteListInner for code health
  • 9007550 style: rustfmt git.rs pulse functions
  • 3af9a09 feat: add Pulse โ€” vault activity feed showing git commit history
  • 348b265 style: apply rustfmt to vault_config.rs
  • 013cf0f feat: move vault UI config from localStorage to vault files
  • 418ea8a feat: add vault_config module and view field to VaultEntry
  • 1e3c296 fix: pass undefined to useRef for strict TypeScript compat
  • 32b4a90 feat: expose all theme.json properties in theme editor
  • 25260c7 style: apply rustfmt to menu.rs
  • ff3e7af fix: move view-toggle-backlinks to simple event map for type safety
  • 75878c8 feat: reorganize menu bar with Go, Note, and Vault menus
  • 8f0c6e0 test: add color detection tests to propertyTypes
  • adf45a5 feat: add color swatch + picker for property values
  • 96bc4e9 fix: enable line wrapping in raw editor
  • eab457b fix: make Restore Default Themes command always enabled in Cmd+K palette
  • 89da970 feat: enable full shell access for AI agent + simplify MCP tools

Requires Apple Silicon (M1/M2/M3)

Built from fd34df8 on 2026-03-06

Laputa 0.20260304.294

March 4, 2026 ยท v0.20260304.294

View on GitHub

What's Changed

  • 6d3d752 fix: pass initial value to useRef for strict TS build
  • 26181b5 test: add tests for WikilinkChatInput and buildContextSnapshot
  • 7efcaa1 feat: add wikilink autocomplete, animated border, structured context wiring
  • 197aad0 feat: add reasoning streaming, markdown response, structured context snapshot

Requires Apple Silicon (M1/M2/M3)

Built from 6d3d752 on 2026-03-04

Laputa 0.20260303.278

March 3, 2026 ยท v0.20260303.278

View on GitHub

What's Changed

  • 10e6d7b fix: handle EADDRINUSE in MCP server ws-bridge โ€” allow Claude Code to start when port is taken
  • 0c87e51 feat: add Check for Updates command to native menu and Cmd+K palette

Requires Apple Silicon (M1/M2/M3)

Built from 10e6d7b on 2026-03-03

Laputa 0.20260303.273

March 3, 2026 ยท v0.20260303.273

View on GitHub

What's Changed

  • e77208e style: cargo fmt git.rs
  • 8187076 fix: add useIndexing import and hook call, wire indexingProgress and onRemoveVault to StatusBar
  • fa3f9ad chore: add sync-conflict-resolution design file
  • bf63120 feat: add sync conflict resolution โ€” resolve merge conflicts in-app

Requires Apple Silicon (M1/M2/M3)

Built from e77208e on 2026-03-03

Laputa 0.20260302.262

March 2, 2026 ยท v0.20260302.262

View on GitHub

What's Changed

  • 97d2182 test: add asserting wikilink navigation E2E test โ€” screenshot.spec.ts test had no expect() calls (#180)
  • 80baa74 feat: add 'Check for Updates' command to command palette
  • f71e6d0 feat: rename demo vault from 'Demo v2' to 'Getting Started', remove 'Laputa' vault entry

Requires Apple Silicon (M1/M2/M3)

Built from 97d2182 on 2026-03-02

Laputa 0.20260302.256

March 2, 2026 ยท v0.20260302.256

View on GitHub

What's Changed

  • 249db95 fix: correct git_uncommitted_files call after rebase conflict
  • 3c27b63 fix: add aria-label to InlineRenameInput for test accessibility
  • a246de4 style: apply rustfmt to cache.rs test
  • 2793024 feat: add Rename section to sidebar context menu
  • f0ef9ca fix: update_same_commit picks up modified files, not only new ones

Requires Apple Silicon (M1/M2/M3)

Built from 249db95 on 2026-03-02

Laputa 0.20260302.255

March 2, 2026 ยท v0.20260302.255

View on GitHub

What's Changed

  • d2538e1 style: apply rustfmt to theme.rs and vault/cache.rs
  • 531666b fix: remove unused is_new_file_status function
  • e239d71 fix: add isDark to useThemeManager return value
  • e2f1fe2 fix: remove stale deriveThemeVariables call and update test assertions after conflict resolution
  • 8495f0e test: add theme command registry tests and minor fixes
  • 19bc3c6 wip: themes-editable โ€” theme management system WIP (13 files, 1014 insertions)

Requires Apple Silicon (M1/M2/M3)

Built from d2538e1 on 2026-03-02

Laputa 0.20260302.254

March 2, 2026 ยท v0.20260302.254

View on GitHub

What's Changed

  • 628d97d chore: sync Sidebar.tsx dragHandleProps removal from main
  • aa6b313 chore: sync SidebarParts dragHandle removal from main
  • b24ba8a fix: position context menu and customize popover at right-click coordinates
  • b3f47f4 chore: remove dragHandleProps from SectionContent destructuring
  • 6fcd055 chore: remove remaining dragHandleProps from SortableSection
  • 8747a84 style: remove drag handle icon from sidebar sections
  • 2eb3080 style: align section icons with main nav items in sidebar
  • 99b64c0 style: remove letter-spacing from status/property labels in inspector
  • b2a68a9 style: reduce editor body font to 15px, apply -0.5 letter-spacing to h2/h3/h4

Requires Apple Silicon (M1/M2/M3)

Built from 628d97d on 2026-03-02

Laputa 0.20260302.232

March 2, 2026 ยท v0.20260302.232

View on GitHub

What's Changed

  • a5e4efc fix: increase tab max-width and add ellipsis truncation (#166)
  • e4bab72 feat: clicking section group header toggles collapse/expand (#164)
  • f08b807 feat: show dynamic build number in status bar (bNNN format) (#163)
  • b521736 fix: preserve scroll position independently per editor tab (#162)

Requires Apple Silicon (M1/M2/M3)

Built from a5e4efc on 2026-03-02

Laputa 0.20260228.216

February 28, 2026 ยท v0.20260228.216

View on GitHub

What's Changed

  • bac5a91 design: merge theming-system frames into ui-design.pen
  • 67155db feat: vault-native theming system with live reload (#154)
  • b42a4d3 fix: resolve TypeScript build errors in AI agent files
  • e29be46 feat: wire AiPanel into EditorRightPanel with undo + coverage exclusions
  • bcfbc8e feat: wire AI agent panel to Claude API with tool calling

Requires Apple Silicon (M1/M2/M3)

Built from bac5a91 on 2026-02-28

Laputa 0.20260228.205

February 28, 2026 ยท v0.20260228.205

View on GitHub

What's Changed

  • 8106eb8 test: add spawn_ws_bridge test to push Rust coverage above 85%
  • 7feae25 docs: update architecture with full MCP server tool surface and auto-registration
  • cc08055 feat: MCP server foundation with full tool surface and auto-registration

Requires Apple Silicon (M1/M2/M3)

Built from 8106eb8 on 2026-02-28

Laputa 0.20260228.189

February 28, 2026 ยท v0.20260228.189

View on GitHub

What's Changed

  • ee42731 ci: temporarily disable notarization (awaiting new certificate)
  • 3c57b0f feat: integrate welcome screen with tests and fix App tests
  • bd0576c feat: add Rust backend for Getting Started vault creation
  • 57f0378 docs: add design file for Getting Started vault welcome screens
  • 1ff342a design: merge tags-property-type + zoom-shortcuts frames into ui-design.pen
  • da55318 fix: useRef type for debounce timer (TS 5.9 compatibility)
  • 384cffe feat: zoom in/out keyboard shortcuts (Cmd+=, Cmd+-, Cmd+0) (#134)
  • c0ce506 fix: use number | undefined for debounce timer ref (TS strict compat)
  • e9c8690 feat: add tags (multi-select) property type (#133)
  • f881c13 design: merge relationship-x-cosmetic frames into ui-design.pen
  • 92c7b00 fix: useRef type for debounce timer (pre-existing build error on main) (#132)
  • cafdc84 fix: remove invalid notarization field from tauri.conf.json (Tauri v2 uses env vars)
  • d87c80e ci: fix notarization โ€” use Tauri v2 env vars (APPLE_CERTIFICATE + APPLE_SIGNING_IDENTITY)
  • a67e0bd ci: trigger release with notarization
  • ed8a51a ci: add Apple notarization to release workflow (awaiting certificate)
  • fb763f5 feat: sync note title with H1 heading (predictive title)
  • a18a191 fix: property panel responsive layout + status dropdown click regression
  • 1efdbfb fix: properties panel bar height matches breadcrumb bar
  • 233497c fix: search results โ€” type icon on left, type label aligned right
  • 6ff3a19 fix: reverse relationships โ€” remove header, arrow prefix, dotted underline on hover
  • 42b463e fix: type selector dropdown shows colored icons per type
  • a6b92d5 fix: relationship item input height consistency + X button overlay on hover

Requires Apple Silicon (M1/M2/M3)

Built from ee42731 on 2026-02-28

Laputa 0.20260227.166

February 27, 2026 ยท v0.20260227.166

View on GitHub

What's Changed

  • cd1246d fix: multiselect uses only Shift+click; add Cmd+Del/Cmd+E bulk actions
  • 92c8dbd fix: restore status dropdown click + color picker per status value
  • 4672fcb fix: add traffic light clearance to note list header when sidebar is collapsed

Requires Apple Silicon (M1/M2/M3)

Built from cd1246d on 2026-02-27

Laputa 0.20260227.163

February 27, 2026 ยท v0.20260227.163

View on GitHub

What's Changed

  • d962cd9 fix: update Tauri signing pubkey (new keypair, password stored securely)
  • 88a8035 fix: update Tauri signing pubkey to match new keypair (empty password)
  • 035bd7f fix: update Tauri signing pubkey (regenerated keypair with empty password)
  • 9ce8905 fix: use TAURI_KEY_PASSWORD secret for signing (was hardcoded empty string)
  • f569750 chore: add .claude-done for pencil-ui-design-light-mode verification
  • 9cfa8a7 design: add theme Light to 25 dark-mode frames, remove before variants
  • 918b204 design: fix search panel overlay layout positioning
  • 177e593 fix: use portal-based positioning for property panel dropdowns (#130)
  • 959e497 design: update new-note-creation.pen for unsaved state
  • a2f1476 feat: in-memory unsaved state for new notes (Cmd+N)
  • 9d5c90f feat: replace search result snippet with metadata subtitle
  • e91a7ae design: search results subtitle with metadata frames
  • 47e38ba chore: add src-tauri/target to .gitignore
  • cbb88b3 fix: remove accidental src-tauri/target symlink from repo
  • 52b1693 fix: property dropdowns adapt to narrow panel width
  • 3d784ce fix: unify status dropdown and make color swatch visible (#128)
  • 480d124 fix: multiselect range includes anchor note and prevents text selection (#127)
  • b15a4d1 fix: raise property type dropdown z-index above BlockNote editor

Requires Apple Silicon (M1/M2/M3)

Built from d962cd9 on 2026-02-27

First alpha release

February 27, 2026 ยท v0.1.0

View on GitHub

What's Changed

  • feat: leaner note creation โ€” immediate creation + fix + buttons by @LucaRonin in #1
  • feat: rename note by double-clicking tab โ€” fix editor content disappearing by @LucaRonin in #2
  • test: bring frontend coverage to 84% (was 47%) by @LucaRonin in #3
  • fix: resolve all ESLint errors โ€” pnpm lint exits 0 cleanly by @LucaRonin in #5
  • fix: note mutation propagation โ€” sync in-memory entries after property/rename changes by @LucaRonin in #12
  • feat: vault from GitHub โ€” create or clone a vault from a GitHub repo by @LucaRonin in #13
  • feat: collapsible sidebar and note list (Cmd+1/2/3) by @LucaRonin in #11
  • feat: auto-build, GitHub Release, and in-app updater by @LucaRonin in #14
  • feat: auto-build, GitHub Release, and in-app updater by @LucaRonin in #15
  • feat: Properties inspector โ€” editable vs read-only distinction by @LucaRonin in #17
  • fix: remove broken auto-save, add explicit Cmd+S save, fix rename-before-save by @LucaRonin in #19
  • feat: Rimuovi proprietร  'Is a' โ€” type: come chiave canonica by @LucaRonin in #16
  • feat: click opens note in current tab, Cmd+Click opens new tab by @LucaRonin in #22
  • fix: vault picker โ€” aggiungi opzione crea vault locale by @LucaRonin in #18
  • feat: bidirectional relationships (Referenced By panel) by @LucaRonin in #25
  • feat: color wikilinks by destination note type by @LucaRonin in #26
  • perf: virtual list rendering for NoteList (react-virtuoso, 9000+ notes) by @LucaRonin in #27
  • feat: modified notes indicator (orange dot in NoteList, TabBar, StatusBar) by @LucaRonin in #28
  • feat: replace GitHub token field with OAuth device flow login by @LucaRonin in #20
  • feat: drag & drop image support in editor by @LucaRonin in #23
  • fix: commit & push now saves pending content and refreshes modified files by @LucaRonin in #24
  • Fix: wikilink underline follows type color by @LucaRonin in #30
  • refactor: split vault.rs into focused submodules (CodeScene 7.29 โ†’ 10.0) by @LucaRonin in #21
  • fix: image upload regression โ€” simplify useImageDrop to not duplicate BlockNote upload by @LucaRonin in #29
  • fix: remove broken Create New Vault button, unify with Open Local Folder by @LucaRonin in #34
  • fix: drag-and-drop tab order persistence by @LucaRonin in #35
  • fix: surface actual error messages in GitHub OAuth login flow by @LucaRonin in #36
  • fix: refresh dirty state after rename so indicator reflects reality by @LucaRonin in #37
  • fix: exclude YAML frontmatter from word count by @LucaRonin in #39
  • fix: require 2+ chars before showing wikilink autocomplete, limit to 20 results by @LucaRonin in #38
  • fix: add 1px inset border between macOS window frame and app content by @LucaRonin in #40
  • feat: editable relations in Inspector panel by @LucaRonin in #41
  • feat: URL properties open in browser on click, underline on hover by @LucaRonin in #44
  • feat: editable type picker in Properties panel by @LucaRonin in #42
  • refactor: raise CodeScene code health threshold to 9.2 by @LucaRonin in #46
  • fix: use consistent 12px text size for property values in Properties panel by @LucaRonin in #43
  • feat: Changes view โ€” clicking N pending shows modified notes by @LucaRonin in #45
  • feat: expand icon picker to 290 Phosphor icons with search and scroll by @LucaRonin in #47
  • feat: distinguish new notes (green dot) from modified notes (orange dot) by @LucaRonin in #48
  • fix: use type-defined colors and icons in Relations/Backlinks/ReferencedBy panels by @LucaRonin in #49
  • fix: use type-defined colors and icons in Relations/Backlinks/ReferencedBy panels by @LucaRonin in #50
  • fix: deduplicate autocomplete suggestions and fix arrow-key navigation by @LucaRonin in #54
  • fix: derive green pallino from git status instead of in-memory tracker by @LucaRonin in #52
  • fix: use Tauri opener plugin for URL property clicks by @LucaRonin in #51
  • fix: rename fails on empty notes โ€” handle empty frontmatter block by @LucaRonin in #55
  • fix: apply text-[12px] to URL values in Properties panel by @LucaRonin in #56
  • fix: align Type row padding with other property rows in Properties panel by @LucaRonin in #57
  • fix: debounce Cmd+N to prevent slow note creation on rapid keystrokes by @LucaRonin in #58
  • fix: pass modifiedFiles to NoteList so Changes view filters correctly by @LucaRonin in #53
  • fix: exclude title heading and wikilinks from word count by @LucaRonin in #59
  • feat: flat list autocomplete with type badge by @LucaRonin in #60
  • feat: command palette (Cmd+K) โ€” quick actions and navigation by @LucaRonin in #61
  • refactor: extract hooks from App.tsx to improve code health (8.95 โ†’ 10.0) by @LucaRonin in #62
  • refactor: improve code health in github.rs, mock-tauri.ts, lib.rs by @LucaRonin in #63
  • refactor: split mock-tauri.ts into focused modules (8.81 โ†’ 10.0) by @LucaRonin in #65
  • fix: relation chips now show type color instead of default blue by @LucaRonin in #68
  • fix: add error recovery to optimistic note creation by @LucaRonin in #69
  • feat: person mention โ€” @mention autocomplete linking to Person entries by @LucaRonin in #66
  • feat: full-text search with qmd backend and SearchPanel UI (Cmd+Shift+F) by @LucaRonin in #64
  • fix: remove double border-radius causing rounded corners below macOS title bar by @LucaRonin in #72
  • fix: backlinks update reactively when wiki-links are added or removed by @LucaRonin in #70
  • fix: restore Cmd+1/2/3 layout shortcuts (regression from App.tsx refactor) by @LucaRonin in #71
  • fix: allow standard text shortcuts in command palette input by @LucaRonin in #73
  • feat: relations autocomplete shows note type badges (matching wiki-link UX) by @LucaRonin in #74
  • fix: show type label for all notes in wiki-link autocomplete by @LucaRonin in #76
  • ci: switch test job from macos-latest to self-hosted runner by @LucaRonin in #67
  • feat: Unify note search/autocomplete into a single reusable component by @LucaRonin in #78
  • feat: back/forward navigation between opened notes by @LucaRonin in #75
  • feat: populate macOS menu bar with native menus (File, Edit, View, Window) by @LucaRonin in #77
  • feat: unified search panel โ€” progressive keyword+semantic results by @LucaRonin in #80
  • perf: speed up Cmd+N note creation from ~150ms to ~16ms by @LucaRonin in #81
  • refactor: reorganize ui-design.pen โ€” 65 frames into logical groups by @LucaRonin in #86
  • feat: smart property display โ€” type-aware rendering with display mode override by @LucaRonin in #83
  • feat: auto-pull vault changes from Git (background sync + conflict handling) by @LucaRonin in #79
  • feat: darken title bar headers for visual separation from content by @LucaRonin in #85
  • fix: deduplicate inspector panels (Relations, Backlinks, Referenced By) by @LucaRonin in #82
  • fix: resolve custom type color and icon in all autocomplete contexts by @LucaRonin in #84
  • fix: restore properties panel header height to match tab bar by @LucaRonin in #87
  • perf: defer vault entries update via startTransition for instant tab creation by @LucaRonin in #90
  • feat: status property โ€” Notion-style dropdown with color chips by @LucaRonin in #97
  • feat: redesign Add Property as inline horizontal form with type selector by @LucaRonin in #100
  • feat: structured design system in ui-design.pen by @LucaRonin in #95
  • feat: note type labels โ€” use light type color background by @LucaRonin in #93
  • feat: replace custom date picker with shadcn/ui Calendar + Popover by @LucaRonin in #98
  • design: add full-layout context frames to ui-design.pen by @LucaRonin in #96
  • revert: remove titlebar color darkening โ€” superseded by custom drag region by @LucaRonin in #88
  • feat: git status bar โ€” show last commit link, remove branch name by @LucaRonin in #92
  • fix: hide empty Backlinks, Relations, and Referenced By sections by @LucaRonin in #99
  • feat: note subtitle โ€” show metadata (date + word count) by @LucaRonin in #94
  • test: fix 5 failing tests after react-day-picker addition by @LucaRonin in #101
  • refactor: extract useEditorTabSwap hook from Editor by @LucaRonin in #102
  • fix: remove duplicate type icon in add property form by @LucaRonin in #107
  • feat: type-aware property value inputs (date picker, boolean toggle, status dropdown) by @LucaRonin in #110
  • feat: new note creation โ€” unsaved/in-memory state before first save by @LucaRonin in #112
  • feat: by @LucaRonin in #117
  • feat: add multi-select notes with bulk archive and trash actions by @LucaRonin in #125
  • refactor: extract SearchResultItem and SearchResultsList from SearchContent by @LucaRonin in #124
  • refactor: clean up ui-design.pen โ€” remove befores, integrate design files by @LucaRonin in #122
  • refactor: decompose Editor.tsx, NoteList.tsx, Sidebar.tsx โ€” CodeScene hotspots by @LucaRonin in #126
  • fix: unify type selector dropdown to match add-property style by @LucaRonin in #123
  • fix: revert notelist subtitle to show snippet instead of metadata by @LucaRonin in #118
  • feat: status color picker โ€” assign persistent color per status value by @LucaRonin in #120

New Contributors

Full Changelog: https://github.com/refactoringhq/laputa-app/commits/v0.1.0