verstak/internal/core
mirivlad 700e4dae5b fix: global search case-insensitive + keyboard layout swap
Unified search normalization across InternalLinkPicker and GlobalSearch:

1. GlobalSearch.svelte: multi-variant search (same as InternalLinkPicker)
   - expandKeyboardVariants() for RU/EN layout swap
   - Parallel Search queries with dedup by type+nodeId+targetId+title
   - 180ms debounce preserved

2. Backend: fix LOWER() in SQL for links/actions
   - Replace LOWER(column) LIKE with lowercased columns (title_lower, url_lower, etc.)
   - Migration 020: add lowercased columns + indexes for links and actions
   - BackfillLinksLower() + BackfillActionsLower() in storage.go
   - Update INSERT in bindings_links.go and action.go to populate lowercased columns

3. FTS5 search: Unicode case-insensitive
   - Index lowercased title/content/tags in search_index
   - sanitizeFTS() now lowercases query before MATCH
   - RebuildFTS() called after migrations

4. Case-insensitive search for nodes (already done in previous commit, verified):
   - title_lower column with Go strings.ToLower
   - Search() queries title_lower with lowercased query

All test suites PASS, full build OK.
2026-06-15 10:52:34 +08:00
..
actions fix: global search case-insensitive + keyboard layout swap 2026-06-15 10:52:34 +08:00
activity feat: ШАГ 1 — Bridge HTTP-сервер для браузерного расширения 2026-06-06 18:23:47 +08:00
bridge test(bridge): add integration tests for empty/undefined secret, full flow 2026-06-09 01:11:51 +08:00
browser feat: ШАГ 2 — Staging-таблица browser_events + Store 2026-06-06 18:27:00 +08:00
config feat: plugin install/uninstall lifecycle + UI buttons 2026-06-07 15:28:37 +08:00
files fix: stabilize markdown notes — internal link modal, rename UI, trash integration 2026-06-15 09:19:26 +08:00
nodes fix: verstak:// links in preview, case-insensitive search, keyboard layout swap 2026-06-15 10:39:44 +08:00
notes fix: stabilize markdown notes — internal link modal, rename UI, trash integration 2026-06-15 09:19:26 +08:00
plugins fix(plugins): empty Lua tables now serialize as [] instead of {} in luaValueToGo 2026-06-08 14:15:37 +08:00
search fix: global search case-insensitive + keyboard layout swap 2026-06-15 10:52:34 +08:00
storage fix: global search case-insensitive + keyboard layout swap 2026-06-15 10:52:34 +08:00
sync test: comprehensive sync package unit tests (37 new tests) 2026-06-03 09:16:38 +08:00
templates refactor: implement template-driven node tree and human-readable vault layout 2026-06-02 12:47:06 +08:00
util step 2: init command + SQLite storage + migrations + config 2026-05-30 18:58:47 +08:00
vault step 2: init command + SQLite storage + migrations + config 2026-05-30 18:58:47 +08:00
watcher feat: плагин-система Lua + Calendar reference plugin 2026-06-07 14:59:46 +08:00
worklog feat: edit and delete worklog entries 2026-06-05 00:48:12 +08:00
doc.go step 1: skeleton - go module, CLI stub with --version, structure 2026-05-30 18:42:19 +08:00
smoke_test.go fix: third stabilization pass — template children as nodes, atomicity, fs_path validation, sync_apply compat, smoke test 2026-06-03 02:05:53 +08:00