Compare commits

...

26 Commits

Author SHA1 Message Date
Test
98effa9637 fix: resolve TypeScript errors in Sidebar and NoteList
Remove unused entries/selection/onSelect props from TypesSection caller.
Add kind narrowing guard for selection.type access in NoteList.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 01:38:18 +02:00
Test
e966f3a14b feat: remove AI Provider Keys section from Settings
The OpenAI and Google AI key fields were unused — no feature reads them.
Removes the UI section, KeyField component, and all related state/storage
code across frontend (types, hooks, mock handlers, tests) and Rust backend.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 01:34:30 +02:00
Test
4ac2d994c1 feat: reactive vault state — editor changes propagate immediately to all UI
Add title and sidebar_label mappings to contentToEntryPatch so editing
these frontmatter fields in the raw editor immediately updates the note
list, breadcrumb bar, sidebar sections, and inspector.

Also trigger reloadViews() when .yml view files are saved, so sidebar
view names update without a full vault reload.

ADR-0043 documents the reactive update model.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 00:06:52 +02:00
Test
043766f86e fix: include non-.md files in vault cache incremental updates
The cache's git helper functions (collect_md_paths_from_diff,
collect_md_paths_from_porcelain, git_uncommitted_files) filtered for
.md files only. This meant .yml view files created by save_view were
never detected by the incremental cache update, so they didn't appear
in vault entries until a full rescan.

Renamed the helpers to collect_paths_from_diff/collect_paths_from_porcelain
and replaced the .md filter with a hidden-segment filter, matching the
behavior of scan_all_files which already includes all non-hidden files.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 23:12:33 +02:00
Test
09e8d03851 test: update Sidebar test to match new behavior — types with 0 notes shown
The buildDynamicSections now includes type definitions with 0 instances.
Update the 'does not show section for type with zero active entries' test
to assert the new intended behavior: types with 0 notes appear in the
sidebar as long as their Type definition entry exists (not trashed/archived).
2026-04-04 23:08:39 +02:00
Test
9fa1c52a96 fix: wrap SearchPanel Enter keyDown in act() to prevent flaky test
The 'selects result on Enter' test could fail intermittently because
fireEvent.keyDown(window) fired before the useEffect re-registered
the keyboard handler after results loaded. Wrapping in act() ensures
effects are flushed before the event dispatches.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 22:25:55 +02:00
Test
d32b11f02e feat: add body content filter support in Rust backend
The frontend already supported body content filtering in Views, but the
Rust backend evaluate_condition() was missing the "body" field mapping.
This adds the mapping from "body" to entry.snippet and comprehensive
tests for contains, not_contains, combined filters, and is_empty.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 21:29:03 +02:00
Test
6b2d34fec4 feat: add organized toggle to breadcrumb bar and command palette
- CheckCircle button in breadcrumb bar toggles _organized property
- Green filled icon when organized, gray outline when not
- Command palette: "Mark as Organized" / "Mark as Unorganized"
- _organized hidden from Properties panel
- Handler follows favorite toggle pattern with optimistic updates

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 20:54:16 +02:00
Test
6693615791 refactor: replace relationship-based inbox logic with _organized property
Inbox now uses an explicit _organized frontmatter property instead of
inferring organization from relationships. This is simpler and gives
users direct control over inbox membership.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 20:45:25 +02:00
Test
e47c653b8b feat: add + button to TYPES header for creating new types
Matches the existing pattern in VIEWS and FOLDERS sections. The button
triggers onCreateNewType which opens the CreateTypeDialog.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 19:49:50 +02:00
Test
60ecc4dd0e fix: use full vault reload after view create/delete for reliable FOLDERS update
The previous approach used reload_vault_entry + addEntry wrapped in a
try/catch, which silently swallowed failures and left the .yml file
invisible in the FOLDERS view. Replace with reloadVault() which does a
full rescan and is guaranteed to include the new/deleted file.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 19:38:39 +02:00
Test
5323ec6ede fix: rustfmt formatting in discard_file_changes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 18:26:07 +02:00
Test
a007b37089 feat: add per-file discard changes in Changes view
Right-click a file in the Changes view to discard its uncommitted changes.
Shows a confirmation dialog before executing. Handles modified (git checkout),
untracked (delete), and deleted (git restore) files. Includes path traversal
safety checks in the Rust backend.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 18:16:52 +02:00
Test
3c4f6ccabd fix: coerce claudeCodeStatus/Version null→undefined for AppCommandsConfig 2026-04-04 16:46:25 +02:00
Test
313b11fb0e fix: add claudeCodeStatus/claudeCodeVersion to AppCommandsConfig (TS error) 2026-04-04 16:40:15 +02:00
Test
df1cff97b9 fix: update pnpm lockfile for @blocknote/core patch (CI frozen-lockfile fix) 2026-04-04 16:38:56 +02:00
Test
2b419b48a0 feat: add Claude Code detected/missing badge to status bar
Uses the existing check_claude_cli Tauri command to detect the claude
binary at app startup and shows a status badge — green/neutral when
found, orange warning when missing with a click-to-install link.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 16:31:05 +02:00
Test
f8d080e678 feat: add body content filter for Views (contains/does not contain)
Adds 'body' as a built-in filter field that searches note snippet text
(case-insensitive). Visually separated from property fields in the
FilterBuilder dropdown with a separator. Combines with other filters via AND.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 16:13:21 +02:00
Test
9f905169cb feat: add suggested property/relationship slots in Inspector
Properties panel shows Status/Date/URL slots as muted clickable rows when
not already present. Relationships panel shows Belongs to/Related to/Has
slots. Clicking a slot adds the property and auto-focuses the value field.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 15:42:10 +02:00
Test
ef0288268c feat: move Info section below Backlinks in Inspector, add Phosphor icon
Reorders Inspector sections to: Properties → Relationships → Backlinks → Info → History.
Extracts NoteInfoPanel into its own component with Info icon matching other section headers.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 15:15:43 +02:00
Test
1d3927ca2b fix: rename "Link existing" to "Add relationship" in Inspector
Aligns relationship button label with the "Add property" pattern used
elsewhere in the Inspector panel.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 14:45:02 +02:00
Test
2feff35764 feat: enrich getting-started-vault with real PKM example notes (Luca's system, guided Welcome) 2026-04-04 14:40:35 +02:00
Test
6f66cf0d9c fix: wikilink autocomplete triggers mid-text, not only on empty lines
Patches @blocknote/core SuggestionMenu plugin to fix multi-character
trigger detection. The original code used textBetween(from - len, from)
which included text before the trigger, causing [[ to only match at
line starts. Fixed to textBetween(from - (len - 1), from).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 14:33:52 +02:00
Test
aaa46f8d20 refactor: simplify getting-started-vault (3 types: Note/Topic/Person, no prefixes in filenames, Welcome as home) 2026-04-04 14:30:37 +02:00
Test
f384b6fad3 feat: redesign welcome screen with three vault options
Shows "Create a new vault" (empty + git init), "Open existing vault"
(folder picker), and "Get started with a template" (Getting Started
vault). Adds create_empty_vault Rust command for the new-vault flow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 14:25:52 +02:00
Test
de122ad045 feat: include Type definitions in command palette's dynamic commands
extractVaultTypes now also reads entries where isA === 'Type' and adds
their title, so "New <Type>" commands appear as soon as a Type is
defined — not only after an instance of that type exists.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 13:55:42 +02:00
549 changed files with 6226 additions and 1339 deletions

10
adr.md Normal file
View File

@@ -0,0 +1,10 @@
---
type: Type
"sidebar label": ADRs
icon: article
color: red
title: Adr
---
# ADR

View File

@@ -0,0 +1,5 @@
---
title: Custom views as .yml files with client-side filter engine
type: Note
status: Active
---

16
demo-vault-v2/.gitignore vendored Normal file
View File

@@ -0,0 +1,16 @@
# Laputa app files (machine-specific, never commit)
.laputa/settings.json
# macOS
.DS_Store
.AppleDouble
.LSOverride
# Thumbnails
._*
# Editors
.vscode/
.idea/
*.swp
*.swo

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 343
type: Note
status: Active
---

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 342
type: Note
status: Active
---

View File

@@ -1,6 +0,0 @@
---
title: Renamed Title XYZ
type: Note
status: Active
---
# Renamed Title XYZ

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 345
type: Note
status: Active
---

View File

@@ -1,6 +0,0 @@
---
title: Test Note ABC
type: Note
status: Active
---
# Test Note ABC

View File

@@ -12,8 +12,7 @@ secondary-foreground: "#111111"
muted: "#F5F5F5"
muted-foreground: "#666666"
accent: "#F0F0F0"
accent-foreground: "#111111"
destructive: "#CC0000"
accent-foreground: destructive: "#CC0000"
border: "#E0E0E0"
input: "#E0E0E0"
ring: "#000000"
@@ -47,8 +46,8 @@ font-size-base: 13px
editor-font-size: 15
editor-line-height: 1.6
editor-max-width: 680
title: Minimal
---
# Minimal
High contrast, minimal chrome. Monospace typography throughout.

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 10
type: Area
status: Active
---
# Untitled area 10

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 11
type: Area
status: Active
---
# Untitled area 11

View File

@@ -0,0 +1,10 @@
---
title: Untitled area 12
type: Area
status: Active
---
# Untitled area 12
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 13
type: Area
status: Active
---
# Untitled area 13

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 14
type: Area
status: Active
---
# Untitled area 14

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 15
type: Area
status: Active
---
# Untitled area 15

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 16
type: Area
status: Active
---
# Untitled area 16

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 17
type: Area
status: Active
---
# Untitled area 17

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 18
type: Area
status: Active
---
# Untitled area 18

View File

@@ -0,0 +1,6 @@
---
title: Untitled area 2
type: Area
status: Active
---
# Untitled area 2

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 3
type: Area
status: Active
---
# Untitled area 3

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 4
type: Area
status: Active
---
# Untitled area 4

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 5
type: Area
status: Active
---
# Untitled area 5

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 6
type: Area
status: Active
---
# Untitled area 6

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 7
type: Area
status: Active
---
# Untitled area 7

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 8
type: Area
status: Active
---
# Untitled area 8

View File

@@ -0,0 +1,8 @@
---
title: Untitled area 9
type: Area
status: Active
---
# Untitled area 9

View File

@@ -0,0 +1,8 @@
---
title: Untitled area
type: Area
status: Active
---
# Untitled area

View File

@@ -3,20 +3,12 @@ title: Untitled experiment 3
type: Experiment
status: Active
---
# Untitled experiment 2
## Hypothesis
## Method
## Results
## Conclusion

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 10
type: Note
status: Active
---
# Untitled note 10

View File

@@ -0,0 +1,11 @@
---
title: Untitled note 100
type: Project
status: Active
---
# untitled-note-100.md Renamed
Appended by raw editor test

View File

@@ -0,0 +1,10 @@
---
title: Untitled note 101
type: Note
status: Active
---
# Untitled note 101
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 102
type: Note
status: Active
---
# Untitled note 102

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 103
type: Note
status: Active
---
# Untitled note 103

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 104
type: Note
status: Active
---
# Untitled note 104My Custom H1 Heading

View File

@@ -0,0 +1,11 @@
---
title: Untitled note 105
type: Project
status: Active
---
# untitled-note-105.md Renamed
Appended by raw editor test

View File

@@ -0,0 +1,10 @@
---
title: Untitled note 106
type: Note
status: Active
---
# Untitled note 106
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 107
type: Note
status: Active
---
# Untitled note 107

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 108
type: Note
status: Active
---
# Untitled note 108

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 109
type: Note
status: Active
---
# Untitled note 109My Custom H1 Heading

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 11
type: Note
status: Active
---
# Untitled note 11

View File

@@ -0,0 +1,11 @@
---
title: Untitled note 110
type: Project
status: Active
---
# untitled-note-110.md Renamed
Appended by raw editor test

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 111
type: Note
status: Active
---
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 112
type: Note
status: Active
---
# Untitled note 112

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 113
type: Note
status: Active
---
# Untitled note 113

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 114
type: Note
status: Active
---
My Custom H1 Heading

View File

@@ -0,0 +1,11 @@
---
title: Untitled note 115
type: Project
status: Active
---
# untitled-note-115.md Renamed
Appended by raw editor test

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 116
type: Note
status: Active
---
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 117
type: Note
status: Active
---

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 118
type: Note
status: Active
---

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 119
type: Note
status: Active
---

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 12
type: Note
status: Active
---
# Untitled note 12

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 120
type: Note
status: Active
---
My Custom H1 Heading

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 121
type: Project
status: Active
---
Appended by raw editor test

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 122
type: Note
status: Active
---
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 123
type: Note
status: Active
---

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 124
type: Note
status: Active
---

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 125
type: Note
status: Active
---

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 126
type: Note
status: Active
---
My Custom H1 Heading

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 127
type: Project
status: Active
---
Appended by raw editor test

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 128
type: Note
status: Active
---
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 129
type: Note
status: Active
---

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 13
type: Note
status: Active
---
# Untitled note 13My Custom H1 Heading

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 130
type: Note
status: Active
---

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 131
type: Note
status: Active
---
My Custom H1 Heading

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 132
type: Project
status: Active
---
Appended by raw editor test

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 133
type: Note
status: Active
---
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 134
type: Note
status: Active
---

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 135
type: Note
status: Active
---

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 136
type: Note
status: Active
---
My Custom H1 Heading

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 137
type: Project
status: Active
---
Appended by raw editor test

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 138
type: Note
status: Active
---
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 139
type: Note
status: Active
---

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 14
type: Note
status: Active
---
# Untitled note 14My Custom H1 Heading

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 140
type: Note
status: Active
---

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 141
type: Note
status: Active
---
My Custom H1 Heading

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 142
type: Project
status: Active
---
Appended by raw editor test

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 143
type: Note
status: Active
---
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 144
type: Note
status: Active
---

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 145
type: Note
status: Active
---

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 146
type: Note
status: Active
---

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 147
type: Note
status: Active
---
My Custom H1 Heading

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 148
type: Project
status: Active
---
Appended by raw editor test

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 149
type: Note
status: Active
---
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,11 @@
---
title: Untitled note 15
type: Project
status: Active
---
# untitled-note-15.md Renamed
Appended by raw editor test

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 150
type: Note
status: Active
---

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 151
type: Note
status: Active
---

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 152
type: Note
status: Active
---
My Custom H1 Heading

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 153
type: Project
status: Active
---
Appended by raw editor test

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 154
type: Note
status: Active
---
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 155
type: Note
status: Active
---

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 156
type: Note
status: Active
---

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 157
type: Note
status: Active
---
My Custom H1 Heading

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 158
type: Project
status: Active
---
Appended by raw editor test

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 159
type: Note
status: Active
---
[[2024-03|March 2024]]
[[2024-03|March 2024]]

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 16
type: Note
status: Active
---
# Untitled note 16

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 160
type: Note
status: Active
---

View File

@@ -0,0 +1,5 @@
---
title: Untitled note 161
type: Note
status: Active
---

View File

@@ -0,0 +1,6 @@
---
title: Untitled note 162
type: Note
status: Active
---
My Custom H1 Heading

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 163
type: Project
status: Active
---
Appended by raw editor test

View File

@@ -0,0 +1,8 @@
---
title: Untitled note 164
type: Note
status: Active
---
[[2024-03|March 2024]]
[[2024-03|March 2024]]

Some files were not shown because too many files have changed in this diff Show More