You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Migration safety: rebuild FTS after incompatible-index wipe, fail fast on embedder feature gap (#210)
* fix(history): rebuild FTS from DB when on-disk index was wiped or empty
Opening a store over a foreign/incompatible tantivy index (e.g. the retired
Python impl's index with a different schema) makes open_or_recreate wipe it to
a fresh empty index. rebuild_fts had no call sites, so all indexed history was
silently lost and never repopulated.
open_dir now surfaces whether it took the recreate path; HistoryStore::open
repopulates any index that was recreated or is empty while its source table
still holds rows, from the DB, synchronously (small corpus), logging counts.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
* fix(run): fail fast on embedder feature-gap before opening the store
create_embedder's error (e.g. fastembed without the local-embed extra) was
swallowed by .unwrap_or(None) at the async_main call site, so startup proceeded
to open and wipe the FTS and only died later in create_projectors under a
misleading Discord-token hint.
Extract a testable resolve_embedder seam and call it in run_inner BEFORE
Familiar::load_from_disk opens the store: on error, log the real message
(which names the fix) and exit 1. The embedder is threaded into async_main.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
* fix(activities): de-flake c1 wake test — raise recv_wake hang-guard to 30s
recv_wake's 1s timeout is only a hang-guard (every caller .expects Some; none
asserts None), but the runner does several spawn_blocking DB round-trips before
publishing the wake, which can outlast 1s on a loaded current-thread test
runtime — turning the guard into a false failure (~67% under CPU load). Raise
the bound to 30s; a genuinely-stuck test still fails, the race is gone.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
* style: rustfmt import ordering in commands/run.rs
Co-Authored-By: Claude Opus 4.8 <[email protected]>
---------
Co-authored-by: Claude Opus 4.8 <[email protected]>
0 commit comments