6d84701a5f
db.Exec was being passed %s format specifiers directly in the SQL string, but db.Exec does not do printf-style formatting - it uses the variadic args as SQL parameter bindings. This caused the literal %s to be sent to SQLite, which failed with near percent: syntax error. Fixed by using fmt.Sprintf to interpolate the column expressions into the SQL string before passing to db.Exec. Added regression test that creates an old-schema database with edge columns (replies_to, relates_to, duplicate_of, superseded_by) and verifies migration 022 completes successfully. Fixes #809 Generated with Claude Code Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>