09e715ff

By: Michael Lynch <git@mtlynch.io>

Replace memory store with SQLite, write imports directly to DB

- New SQLite schema (users, entries, comments, reactions tables)
  replacing the dummy visits table; rename date column to entry_date
  to avoid the reserved keyword
- sqlite.Store now implements handlers.Store via new read methods
  (ReadMediaEntries, ReadComments, ReadReactions)
- New write methods: InsertUser, InsertEntry, InsertComment, InsertReaction
- tinybeans.Convert now writes directly to SQLite, resolving the user ID
  mapping TODOs by inserting followers and using returned row IDs
- Import command writes metadata.db instead of metadata.json
- App server reads from SQLite directly, removing the JSON intermediary
  and the in-memory store; --metadata flag replaced with --db
- Deleted store/memory, tinybeans/jsonfile, and store/sqlite/visits.go

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Suite timing

Time to Start Worker time Duration Time to finish
Config 0s 1s 1s 1s
Eval 1s 34s 34s 36s
Build 2s 44s 16s 19s
Test - - - -
Deploy - - - -
Suite 0s 1m20s 35s 36s

Timeline

0s10s20s30s