verstak/internal/core
mirivlad d6f7f1a9b8 steps 8+9: worklog + FTS5 search
STEP 8 — Worklog:
- Migration 006: worklog_entries table (node_id, date, minutes,
  approximate, billable, summary, details)
- WorklogService: Add, Get, Update, Delete, ListByNode, SumMinutes,
  Report (text report generator with total time)
- CLI: verstak log add/list/report  (verstak log --help for usage)
- GUI tab: entries list with date/time/approx, add form with
  minutes+text+approx checkbox, total minutes counter

STEP 9 — FTS5 Search:
- FTS5 virtual table created lazily by search.Rebuild()
  (works with/without FTS5 compiled in — graceful fallback)
- SearchService: Index, Remove, Rebuild, Search (with FTS5 MATCH)
- CLI: verstak index rebuild — builds search index from node titles
- GUI search bar uses /api/search?q= (FTS5 when available,
  fallback to LIKE on node titles)

Acceptance: go build ./... pass, go test ./... pass (all packages).
2026-05-31 02:25:25 +08:00
..
actions step 7: actions — table, service, CLI, GUI tab + confirm dialog 2026-05-31 01:52:23 +08:00
config step 2: init command + SQLite storage + migrations + config 2026-05-30 18:58:47 +08:00
files steps 4-6 + doc overhaul: files, notes, GUI, plugins docs 2026-05-30 20:35:04 +08:00
nodes feat: node section assignment for sidebar filtering + search fix 2026-05-31 01:26:46 +08:00
notes feat: node section assignment for sidebar filtering + search fix 2026-05-31 01:26:46 +08:00
search steps 8+9: worklog + FTS5 search 2026-05-31 02:25:25 +08:00
storage steps 8+9: worklog + FTS5 search 2026-05-31 02:25:25 +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
worklog steps 8+9: worklog + FTS5 search 2026-05-31 02:25:25 +08:00
doc.go step 1: skeleton - go module, CLI stub with --version, structure 2026-05-30 18:42:19 +08:00