Commit Graph

22 Commits

Author SHA1 Message Date
Test
a0fc97e5cf feat: release channels (alpha/beta/stable) via PostHog feature flags
- Add `release_channel` to Settings (Rust + TypeScript)
- Add channel selector in Settings panel (alpha/beta/stable)
- Pass `release_channel` as PostHog person property on identify
- Add `isFeatureEnabled()` helper: alpha always true, beta/stable
  use PostHog flags with hardcoded fallback defaults
- Update `useFeatureFlag` to delegate to PostHog-backed evaluation
  (localStorage overrides still work for dev/QA)
- Create ADR-0042 (supersedes ADR-0017)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 21:22:28 +02:00
Test
4fe6f15aa1 docs: add ADR 0041 for fileKind/all-files-in-vault-scanner; update README index for 0038–0041 (guard — from commit 284af17) 2026-04-03 11:47:26 +02:00
Test
4ae07446a8 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
Test
e2d0a46608 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
Test
33db64822d 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
Test
5ce1431522 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
Test
093f1bc9dc 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
Test
c29206da3b docs: add ADR-0031, ADR-0032; update README index (guard — from commits 98a98ab, 6d405a7) 2026-03-31 08:01:19 +02:00
Test
14b5c34b94 docs: add ADR-0029, ADR-0030; update README index (guard — from commits 1ae1377, a59640) 2026-03-30 08:01:55 +02:00
Test
d9254ffaf5 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
Test
3749770598 Revert "docs: ADR-0028 — CLI agent only, remove API key (supersedes ADR-0027)"
This reverts commit d7f18f79c1.
2026-03-28 18:50:27 +01:00
Test
d7f18f79c1 docs: ADR-0028 — CLI agent only, remove API key (supersedes ADR-0027) 2026-03-28 18:44:46 +01:00
Test
5c0e7b2987 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
Test
bcd4b8fd99 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
Test
2dd68c170e 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
Test
4eca4cb545 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
Test
1ebd5163f1 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
Test
f61fc57aa6 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
Test
e2788d65b5 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
Test
42b76d85d0 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
Test
bc08345021 docs: update ADR template — align with Fowler article (status lifecycle, advice field, decision bold) 2026-03-28 10:13:23 +01:00
Test
99ae8260cb 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