test: expand storage-readiness coverage — 48.1%→59.8% broad, 74.3% narrow (#38)
* fix(daemon): avoid socket cancel on stop
Signal active sockets with shutdown only so pending I/O wakes without entering Boost.Asio's reactor cancel path during teardown.
* fix(metadata): open read pools read-only
* ci: fix coverage report generation
* fix(metadata): tag unscoped pool holders
* test(daemon): avoid ipc teardown takeover
* ci: skip plugin coverage objects
* fix(daemon): repair completed FTS5 ghosts
* build(vector): guard unusable FAISS headers
* ci: use clang gcov for coverage
* test(daemon): stabilize arm CI flakes
* Harden search and compression numeric config
* fix(daemon): reconcile orphan vector embeddings
* fix: address vector cleanup review comments
* chore(main): release 0.16.1
* Harden search ranking divisors
* Harden snippet distance and command registration
* test(storage): add readiness coverage gate
Document the distributed sync readiness surface and add direct adapter, refcount, and GC failure-path coverage.
* test(storage): cover strict resolver fallback
* fix(search): tighten retrieval ranking
Honor component weights in default RRF, over-fetch vector chunks before document aggregation, and persist topology centroids for sparse-guided routing.
* fix(search): route weak queries through topology
* fix(search): improve rerank and weak queries
Wire provider-backed cross reranking, add direct Simeon candidates for weak lexical pools, and report stage-level retrieval metrics.
* fix(storage): honor explicit plugin names
Add readiness coverage for factory, URL backend, and compressed storage failure paths.
* fix(storage): avoid remote size listing
* fix(api): rollback failed content adds
* test(storage): cover engine readiness
* test(storage): cover compressed readiness
* fix(core): harden delete and recovery paths
Route prune and local delete fallback through DocumentService so content, metadata, vectors, and KG cleanup stay consistent.
Treat transient SQLite quick_check lock failures as ResourceBusy, refresh IPC activity on streaming writes, and preserve reranker config in tuner seeding.
* test(storage): cover URL backend readiness
* fix(api): harden content rollback
* feat(storage): add list seam, URL listing, and write-edge coverage
* feat(api): reconcile ambiguous remote manifest writes
* feat(storage): add deep compressed scan validation
* test(storage): add plugin loader error path coverage
* fix(gc): prune reference rows after collection
* test(api,storage): add health, compact, gc, and verify edge coverage
* docs: update storage-readiness coverage to 71.8%
* test(metadata): add connection pool shutdown-while-leased coverage
* test(metadata): add tree builder snapshot root stability coverage
* test(vector): add before-init and after-close operation rejection coverage
* test(metadata): add database post-close, open-failure, and cache-clear coverage
* test(integrity): add P2P wrong-hash rejection + batch matrix resolution
* docs: audit and resolve all matrix rows — 18 fully covered
* test(metadata): add failed-migration and rollback coverage
* test(storage): add getBlockSize-invalid-key, empty-verify, PUT/DELETE retry coverage
* feat(storage): add file-open and rename failure hooks + ContentStore retrieve edge coverage
* docs: add broad-surface coverage with per-subsystem breakdown
* test(integrity): add chunk validator manifest validation coverage
* test(vector): add batch insert, delete, and update operation coverage
* docs: update integrity subsystem coverage to 46.4%
* docs: consolidate coverage report — clean matrix, remove boilerplate
* docs: update coverage with complete-suite numbers — 59.8% broad, 74.3% narrow
* test(storage): add URLBackend HEAD exists with 2xx coverage
* bump submodules
* fix: address PR review — curl_slist leak, ec ordering, CAS rollback, production hooks
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>