v0.7.0

<p>The registry search index is keyed by registry id, and a rebuild no longer takes quadratic time.</p>

5 October 2026

Changed

  • search_index documents use the record's registry.id as their rowid instead of a uuid column, so finding or deleting one is a rowid lookup instead of a table scan. registry.id is an explicit INTEGER PRIMARY KEY, because VACUUM renumbers an implicit rowid. Registry schema is 16, so every registry rebuilds on first boot.
  • Registry::set() is an upsert. A replace would mint a new id and orphan the record's search document.
  • FieldIndex::index() needs the registry row to exist first, and FieldIndex::remove() must run before the row is deleted.
  • Registry::rebuild() connects without bootstrapping, so an explicit rebuild no longer runs a silent one first.

Fixed

  • registry:rebuild took quadratic time on a large site. It now prints a live counter with a rate (Cli::status()) instead of a progress bar, since a total would need the registry to boot first.

Comments

No comments yet. Be the first!

Loading form…