Commit Graph

159 Commits

Author SHA1 Message Date
lucaronin
1bf5a7d6e4 fix: preserve resized tables across raw mode toggles 2026-04-12 11:45:59 +02:00
lucaronin
361898b187 refactor: rename app branding from Laputa to Tolaria 2026-04-12 01:35:34 +02:00
lucaronin
5b5f949c74 fix: initialize new notes with empty h1 focus 2026-04-12 00:58:11 +02:00
lucaronin
2ca8f1b2a6 fix: remove legacy title section fallback 2026-04-11 23:51:58 +02:00
lucaronin
eb65bb8f05 fix: dedupe new note command palette entries 2026-04-11 22:05:13 +02:00
lucaronin
ce84b34890 fix: restore cmd shift i properties shortcut 2026-04-11 20:59:16 +02:00
lucaronin
258b54b074 refactor: make shortcut QA modes explicit 2026-04-11 19:03:15 +02:00
lucaronin
32ee2b781b test: stabilize keyboard shortcut smoke 2026-04-11 17:36:23 +02:00
lucaronin
c78793cfe3 fix: verify editor-focused keyboard shortcuts 2026-04-11 17:23:20 +02:00
lucaronin
cd9e5fc403 fix: guard table resize against stale editor views 2026-04-11 16:37:44 +02:00
lucaronin
798a6b2125 refactor: make shortcut execution renderer-first 2026-04-11 15:42:53 +02:00
lucaronin
dbf54657f0 fix: harden untitled h1 auto-rename flow 2026-04-11 15:22:34 +02:00
lucaronin
0c365eb7dd test: cover raw editor keyboard toggle 2026-04-11 14:23:25 +02:00
lucaronin
20b789271d fix: verify view row hover state 2026-04-11 14:06:03 +02:00
lucaronin
e412fa8fd7 fix: restore breadcrumb action icon size 2026-04-11 13:33:42 +02:00
lucaronin
4b60b9539d refactor: centralize shortcut routing metadata 2026-04-11 12:59:11 +02:00
lucaronin
272f2c0b3c design: replace app icon with Tolaria drop icon 2026-04-11 12:12:12 +02:00
lucaronin
86306dc9de test: stabilize keyboard menu smoke bridge 2026-04-11 10:59:38 +02:00
lucaronin
b1bc056afb refactor: unify shortcut command routing 2026-04-11 10:39:08 +02:00
lucaronin
db4359981f fix: update rename filename wikilinks 2026-04-10 20:20:08 +02:00
lucaronin
eb67b98d96 test: scope quick open smoke locators 2026-04-10 18:14:52 +02:00
lucaronin
968c4d05a9 feat: add breadcrumb filename rename controls 2026-04-10 17:59:21 +02:00
lucaronin
1e36cd2855 test: cover typed note creation smoke paths 2026-04-10 16:27:36 +02:00
lucaronin
d86335c86d fix: harden immediate note creation 2026-04-10 15:47:45 +02:00
lucaronin
31c8ac4774 fix: make ai panel shortcut command-only 2026-04-09 13:16:35 +02:00
lucaronin
cb2e28f3d9 fix: hide legacy title chrome for frontmatter titles 2026-04-09 12:51:06 +02:00
lucaronin
24f6a014dc fix: hide legacy title section for H1 notes 2026-04-08 20:17:51 +02:00
lucaronin
429aba7ae7 fix: use h1 titles for displayed note names 2026-04-08 19:46:16 +02:00
lucaronin
5c5d40ff24 fix: require cmd-click for editor links 2026-04-08 19:06:21 +02:00
lucaronin
e7fe938b03 test: keep the smoke gate on stable app flows 2026-04-08 10:45:08 +02:00
lucaronin
616952bdaa test: stabilize smoke lane and timer-heavy tests 2026-04-08 10:22:47 +02:00
lucaronin
e3eb774757 test: stabilize the pre-push smoke lane 2026-04-08 10:01:34 +02:00
lucaronin
be57656d75 test: stabilize the smoke lane 2026-04-08 09:50:14 +02:00
lucaronin
ef4a51202c feat: clone the starter vault on demand 2026-04-07 23:28:02 +02:00
lucaronin
d33117de40 test: stabilize untitled draft title regression 2026-04-07 22:45:55 +02:00
lucaronin
751d1e3331 test: cover AI panel shortcut regression 2026-04-07 22:35:32 +02:00
lucaronin
8218bcf558 feat: show deleted notes as restorable changes 2026-04-07 20:09:04 +02:00
lucaronin
59205c4012 fix: keep view filter values as plain text 2026-04-07 19:40:54 +02:00
lucaronin
c68c0a6c10 test: slim the pre-push smoke lane 2026-04-07 19:22:11 +02:00
lucaronin
d0c3a6b889 refactor: remove Trash system — delete is now permanent with confirm modal
Remove all vestiges of the abandoned Trash system: trashed/trashedAt fields
from types, frontmatter parsing, sidebar filtering, editor banners, inspector
components, mock data, and all related tests. Delete is already permanent via
useDeleteActions with a confirmation dialog. Notes with trashed:true in
existing vault frontmatter are now treated as normal notes (the flag is
ignored by the parser).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 12:21:56 +02:00
lucaronin
0be1060d81 fix: remove Update channel from Settings, keep only Release channel
Update channel (Stable/Canary) was redundant since builds are flat.
Removed the UI dropdown, canary update logic in useUpdater, and
update_channel field from Settings type (TS + Rust). Release channel
(Alpha/Beta/Stable) remains as the sole selector.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 12:11:26 +02:00
lucaronin
f1476e13cc test: add Playwright smoke test for filter wikilink autocomplete
Verifies typing [[ in a view filter value field triggers the wikilink
autocomplete dropdown and that selecting a note inserts [[note-title]].

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 10:12:21 +02:00
lucaronin
cd39070569 fix: remove H1 heading from new note editor body
Title is already shown as a separate UI element above the editor,
so the H1 in the body was a visual duplicate. New notes now have
an empty editor body. Daily notes and type entries also no longer
get an H1 inserted.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 18:29:02 +02:00
lucaronin
49aff89de4 feat: pre-assign type when creating note from type section
When the user clicks "+" in the note list while a type section is
selected (e.g. Projects), the new note now gets that type pre-set in
its frontmatter. Previously, all notes were created as generic "Note"
type regardless of the selected section.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 10:06:40 +02:00
lucaronin
01fdadf425 fix: address folder tree QA feedback — recursive filtering, folder creation, path display, remove flatten banner
1. Folder selection now recursively includes notes from subfolders
2. + button creates a new folder with inline rename (Tauri command + UI)
3. Note list items show full path when note is in a subdirectory
4. Remove flat vault migration banner and all related code (Rust commands,
   hook, component, smoke test) — subfolders are now first-class

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 15:29:24 +02:00
lucaronin
4eca9ca8fd fix: prevent infinite render loop when creating notes
updateEntry's .map() always returned a new array even when no entry matched,
causing unnecessary state changes. During note creation, addEntry uses
startTransition (deferred) while markContentPending calls updateEntry
synchronously — the entry doesn't exist yet, so the no-op .map() produced a
new reference that cascaded into "Maximum update depth exceeded" (which
surfaced as React error #185 in the production WKWebView build).

The fix makes updateEntry bail out (return prev) when no entry was changed,
preventing the spurious state update. Also removes the defensive try-catch
from the previous fix attempt and cleans up an unnecessary setToastMessage
dependency.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 10:33:40 +02:00
lucaronin
5a791d8a26 test: add Playwright + Vitest tests for raw editor type propagation
Verifies that editing the type field in the raw editor (Cmd+\) immediately
updates the Properties panel type selector without navigation or reload.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 13:51:48 +02:00
lucaronin
c938e10c70 test: remove non-core Playwright tests to bring suite under 10 minutes
Removed 18 test files (73 tests) that don't meet core E2E criteria:

Pure cosmetic/UI-detail tests:
- clickable-editor-empty-space (cursor:text CSS)
- filter-pills-height (exact pixel height check)
- properties-panel-style (label casing, font sizes, styling)
- title-emoji-inline (flex layout, font size, alignment)
- title-field-alignment (CSS variables, separator border)
- type-icon-color-sidebar-label (icon color CSS variables)
- migrate-to-flat-vault (title field styling, H1 CSS hiding)
- image-drop-overlay-fix (drag overlay visibility)

Duplicate/redundant coverage:
- note-icon (fully duplicated by note-icon-emoji-picker)
- note-icon-emoji-picker (granular emoji picker, not core flow)
- emoji-icon-everywhere (emoji display locations)
- split-notelist-god-component (stale refactor validation)
- split-usenoteactions (stale refactor validation)
- open-in-new-window (command existence check)
- three-source-of-truth (covered by cache-invalidation-vault-open)
- show-type-instances-inspector (inspector detail)
- note-list-incomplete-relationships (complex async timing)
- note-list-preview-snippet (snippet formatting detail)

Suite: 195 → 122 tests, runtime: ~12.5m → ~9.6m (under 10m target)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 00:19:26 +02:00
lucaronin
2cc0458070 fix: Properties panel — hash-based tag colors, single-item tags, chip consistency
- Single-item tag arrays (e.g. Tags: [Has Pic]) now render as pills instead
  of plain text: detectPropertyType checks key patterns before value type
- Tags get deterministic hash-based colors (one color per tag name) instead
  of all-blue default — manual overrides still take precedence
- All chips (Type, Status, Date, Tags) share consistent sizing: 12px font,
  rounded-md, matching padding
- Type label font-size matches other property labels (was 10px, now 12px)
- Tag add button is solid muted pill instead of dashed circle

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 22:04:37 +02:00
lucaronin
b1d2c7168f fix: title H1 layout — no emoji gap, add-icon above title, larger font
- Remove reserved left space when note has no emoji icon (conditional render)
- Move "Add icon" button above the title row (Notion-style hover reveal)
- Increase title font size to 32px and top padding to 32px for proper H1 weight
- Update smoke test to validate no-emoji layout and new hover target

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 19:28:58 +02:00