Commit Graph

21 Commits

Author SHA1 Message Date
lucaronin
3e1ece2588 docs: add ADR 0041 for fileKind/all-files-in-vault-scanner; update README index for 0038–0041 (guard — from commit d037272) 2026-04-03 11:47:26 +02:00
lucaronin
a34274db25 feat: add custom views backend — YAML parser, filter engine, Tauri commands
Introduce `.laputa/views/*.yml` for user-defined filtered note lists.
Rust backend: serde_yaml parsing, recursive AND/OR filter evaluation
with 10 operators (equals, contains, any_of, is_empty, before/after,
etc.), wikilink stem matching, and file CRUD. Three Tauri commands:
list_views, save_view_cmd, delete_view_cmd.

ADR 0040 documents the architecture.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 15:57:22 +02:00
lucaronin
30f8820a29 feat: use git history for note creation/modification dates
Replace unreliable filesystem ctime/mtime with git log timestamps.
A single batch `git log` walks the full commit history to extract
created_at (oldest commit) and modified_at (newest commit) for each
.md file. Falls back to filesystem dates for non-git vaults and
uncommitted files. Cache version bumped to 10 for full rescan.

ADR 0039 documents the decision.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 15:00:22 +02:00
lucaronin
0889d747fe feat: add favorites section with star button, frontmatter persistence, and drag-to-reorder
Adds FAVORITES sidebar section backed by _favorite and _favorite_index
frontmatter properties. Star button in breadcrumb bar toggles favorite
state. Drag-to-reorder updates _favorite_index on all affected notes.
Section auto-hides when empty.

ADR 0038 documents the decision to use frontmatter for portability.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:44:23 +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
8dd7501a2d test: add folder tree and filtering tests; docs: ADR-0033
Add FolderTree component tests (render, expand, collapse, select,
highlight) and folder filtering tests in noteListHelpers (path
matching, sibling exclusion, archive/trash filtering).

ADR-0033 documents the decision to scan all subdirectories and
expose folder tree navigation, superseding ADR-0006's scanning
constraint.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 11:19:31 +02:00
lucaronin
46089ee545 docs: add ADR-0031, ADR-0032; update README index (guard — from commits b229d59, 682470f) 2026-03-31 08:01:19 +02:00
lucaronin
9e883ca5b8 docs: add ADR-0029, ADR-0030; update README index (guard — from commits 1c5e216, a59640) 2026-03-30 08:01:55 +02:00
lucaronin
9df41c3287 refactor: remove Anthropic API integration, CLI agent only (ADR-0028)
Remove AIChatPanel, useAIChat hook, Rust ai_chat command, and
anthropic_key from settings. AI is now exclusively via Claude CLI
subprocess (AiPanel). Simplifies codebase and eliminates API key
management for users. ADR-0027 superseded.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 15:05:56 +02:00
lucaronin
e06178565a Revert "docs: ADR-0028 — CLI agent only, remove API key (supersedes ADR-0027)"
This reverts commit 2f6b53776f.
2026-03-28 18:50:27 +01:00
lucaronin
2f6b53776f docs: ADR-0028 — CLI agent only, remove API key (supersedes ADR-0027) 2026-03-28 18:44:46 +01:00
lucaronin
1971019106 docs: backfill ADRs 0026–0027, fix README index, remove duplicate ADR files
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 10:57:55 +01:00
lucaronin
c6b09c511a docs: backfill ADRs 0016–0020 (historical decisions)
0016: Vault repair and auto-bootstrap
0017: Auto-save with 500ms debounce
0018: In-app git divergence and conflict resolution
0019: MCP server for AI integration
0020: AI dual architecture (chat + agent)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 10:57:21 +01:00
lucaronin
edc3c35acd docs: backfill ADRs 0021–0025 (push-to-main, BlockNote, repair vault, cache location, type field)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 10:55:40 +01:00
lucaronin
0ab7665db0 docs: backfill ADRs 0011–0015 (historical decisions)
0011: Keyword search only (remove QMD semantic indexing)
0012: Underscore convention for system properties
0013: BlockNote as the rich text editor
0014: Wikilink-based relationship model
0015: Note type system (types as files)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 10:55:14 +01:00
lucaronin
9b442b7c57 docs: backfill ADRs 0016–0020 (telemetry, canary channel, CodeScene gates, GitHub OAuth, keyboard-first)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 10:53:46 +01:00
lucaronin
dc05effce2 docs: backfill ADRs 0006–0010 (historical decisions)
0006: Flat vault structure (title = filename)
0007: Opt-in telemetry via Sentry and PostHog
0008: Canary release channel for early testing
0009: Local feature flags (no remote dependency)
0010: CodeScene code health gates in CI and git hooks

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 10:53:06 +01:00
lucaronin
da52a99286 docs: backfill ADRs 0011–0015 (MCP server, Claude CLI agent, remove theming, git cache, auto-save)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 10:52:14 +01:00
lucaronin
c3da107102 docs: backfill ADRs 0006–0010 (flat vault, title sync, underscore convention, keyword search, dynamic relationships)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 10:51:47 +01:00
lucaronin
b8c2e8a83e docs: update ADR template — align with Fowler article (status lifecycle, advice field, decision bold) 2026-03-28 10:13:23 +01:00
lucaronin
c909870e3e docs: add Architecture Decision Records (ADRs) — 5 backfill + process in CLAUDE.md
- docs/adr/README.md: format spec, rules, index
- 0001: Tauri v2 + React stack
- 0002: filesystem as source of truth
- 0003: single note model (no tabs)
- 0004: vault vs app settings storage
- 0005: Tauri iOS for iPad (vs SwiftUI)
- CLAUDE.md: ADR process — when to read, when to create, when to supersede
2026-03-28 10:05:23 +01:00