Merge remote-tracking branch 'origin/main' into codex/r2-local-publish
Rebuild browser WASM with the start check and the atomic writes from main
Merge remote-tracking branch 'origin/main' into claude/hnsw-search-width-26
Merge remote-tracking branch 'origin/main' into claude/path-finding
Merge pull request #34 from zegadb/claude/wal-before-memory-32
Make every write statement all-or-nothing behind the WAL (closes#32)
Require the toward Point on the start of an A* path
The straight-line check on roads leaving the start was skipped when the start had no Point. The checker now requires the field on the start's type, and at run time a start without its Point is an error.
Make every write statement all-or-nothing behind the WAL
A statement's writes now go through a journal: they apply under the graph lock, are appended to the WAL as one entry, and are taken back (graph, indexes, unique lookups, id counters) if the statement fails or the WAL refuses the entry. No reader sees a write the WAL did not accept, and a reopen agrees with the session.
Rebuild browser WASM from the adaptive search width engine
Adapt the HNSW search width to the query instead of a fixed ef of 768
The search starts at max(k, 32) and doubles until two successive widths return the same top k. The base-layer search is resumable, so a wider pass continues the narrower one and scores each vector at most once per query. Once half of the live vectors are scored, the search finishes as an exact scan reusing those scores, so it never costs more than a scan.
Adds a 20,000 x 32 test that bounds recall and vectors scored per query, and ignored 10k/100k and 1M benchmarks reporting recall, fraction of N, latency, build time and relative contrast. Refs#26.
Rebuild browser WASM with path finding