Critical Bugfix
v1.0.76 migrate --rehash inserted rows into refinery_schema_history without the applied_on field, leaving it NULL. The refinery-core 0.9.1 rusqlite driver reads this field as String (NOT NULL), crashing with InvalidColumnType(Null at index: 2) on any subsequent migration. All migrations were blocked (exit 20).
How to Upgrade
cargo install sqlite-graphrag --version 1.0.77 --force
sqlite-graphrag migrateNo manual SQL intervention needed — v1.0.77 automatically detects and fixes NULL rows.
Changes
Fixed
run_rehashINSERT now always includesapplied_onwith RFC3339 timestamp viachrono::Utc::now()sanitize_null_applied_onhelper runs UPDATE on NULL rows before any migration runner callremove_vec_virtual_tables_without_modulecleans orphan vec0 virtual tables viaPRAGMA writable_schemawhenvec0module is absent (LLM-only build)debug-schemano longer crashes on databases withapplied_on = NULL— field changed fromStringtoOption<String>
Added
null_rows_fixedfield inmigrate --rehashJSON responsenull_rows_fixedandvec_tables_removed_via_writable_schemafields inmigrate --to-llm-onlyJSON response- 4 unit tests + 2 integration tests covering the fix
- ADR-0027 documenting the G40 root cause and resolution (EN + PT-BR)
Documentation
- CHANGELOG, MIGRATION, TESTING, AGENTS, COOKBOOK, DOCUMENTATION_FRAMEWORK updated
- 3 JSON schemas updated (migrate-rehash, migrate-to-llm-only, debug-schema)