github refactoringhq/tolaria v0.20260410.666
Laputa 0.20260410.666

latest releases: alpha-v2026.5.31-alpha.0002, alpha-v2026.5.31-alpha.0001, alpha-v2026.5.30-alpha.0012...
one month ago

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

Don't miss a new tolaria release

NewReleases is sending notifications on new releases.