bitmosh.dev/Blog/Dev Log/2026-06-21
v1.8.0fossic

D2 close — fossic-similarity-hnsw substrate complete

Sibling crate ships with HNSW-backed semantic search via SimilaritySearchProvider trait, atomic disk persistence, background indexing, Python bindings, and full documentation.

v1.7.4fossic

Python Binding for HNSW Similarity Provider

Adds fossic.similarity.HnswProvider and SimilarityQuery to the Python package, exposing the full HNSW index API including background save scheduling and stream-pattern filtering.

v1.7.3fossic

Background Save Scheduling with Dirty-Flag Discipline

Adds AtomicBool dirty/save_pending fields, storm-prevention via optimistic stamp, and Weak<HnswProvider> drop semantics for background HNSW persistence scheduling.

v1.7.2fossic

HnswProvider Gains Atomic Disk Persistence

HnswProvider can now save its HNSW vector index and event-ID mappings atomically to disk and reload them on construction, with corrupt-file recovery and system event emission.

v1.7.0dfossic

Substrate extension patterns reference doc

New reference document covering seven canonical patterns for authors of sibling crates and substrate extensions, source-verified against v1.7.1.

v1.7.1fossic

HNSW provider core implementation live

HnswProvider fully implemented with stream-pattern filtering, fudge-factor candidate expansion, and 11 integration tests covering all edge cases.

v1.7.0fossic

D2 begins — fossic-similarity-hnsw crate scaffold

fossic-similarity-hnsw ships as a new sibling crate with HnswConfig, HnswError, and an HnswProvider skeleton implementing the actual SimilaritySearchProvider trait; BackgroundExecutor, TaskKind::Custom, and SystemStreamWriter are now exported from fossic for use by substrate extensions.

v1.1.9fossic

Bounded read docs across all four bindings

All four binding surfaces (Rust, Python, Node.js, Tauri IPC) now have documented bounded-read APIs with cursor resumption, streaming iterators, and SamplingMode; FOSSIC_V1_SPEC updated with canonical type definitions and a Phase 1–5 roadmap.

v1.1.8fossic

Tauri IPC bounded read commands

fossic-tauri v1.1.8 adds 7 bounded IPC commands covering range, correlation, causation, and aggregate reads — each with cursor-resumption support; streaming deferred to v1.2.x.

v1.1.7fossic

Node binding surface for bounded reads

fossic-node v1.1.7 exposes bounded read methods and streaming async iterables for all three read modes, with TruncationCursor, SamplingMode, and defaultMaxResults/defaultMaxBytes in OpenOptions from the start.

v1.4.0fossic

Phase 8 — ProjectRegistered + RelayHeartbeat event-sourced project discovery primitives

Two new system event types (ProjectRegistered, RelayHeartbeat) emitted to _fossic/system via a new registry.rs module. Substrate-side emit only — consumer coordination (fossic-coordinator) is future work. Python relay.py updated with startup emit and daemon heartbeat thread.

v1.1.6fossic

Python Binding Surface for Bounded Reads and Iterators

fossic-py gains ReadOutcome (tagged-union), TruncationCursor (opaque), SamplingMode (static constructors), bounded read methods, and three streaming iterator types — full parity with the Rust bounded read and iterator surface from v1.1.3–v1.1.5.

v1.3.1fossic

EveryNSeconds policy and recurring background GC

SnapshotPolicy::EveryNSeconds is now live — read_state schedules a background snapshot via the BackgroundExecutor during the next quiescent window; auto_gc_orphans now also schedules an hourly recurring GC task at store open.

v1.1.5fossic

Streaming Iterators with Pool-Safe Batching

Three streaming iterators ship for read_range, read_by_correlation, and walk_causation — each fetches 100 events per internal batch, releases the pool connection before yielding, and is fused so next() after None is always safe.

v1.1.4fossic

Bounded Aggregate Fold with Clone Snapshot

aggregate_bounded folds events against a budget, clones the aggregator at the cut point to finalize a partial result, and returns ReadOutcome<A::Output> with cursor: None — no resume in v1.1, deferred to v1.2.x.

v1.2.2fossic

Drop-Time GC Fallback (Phase 6 Close)

OpenOptions::auto_gc_orphans (default false) triggers gc_orphaned_snapshots at last-Store-clone drop time, purging snapshots for reducers no longer registered; Arc::strong_count guards against intermediate-clone false-fires.

v1.1.3fossic

Bounded BFS Causation Walk with Sampling

walk_causation_bounded ships with three sampling modes and level-boundary budget cuts; Rust-side BFS loop replaces recursive CTE to enable natural truncation points without materialising the full result.