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).