yams/CHANGELOG.md
2026-10-03 02:11:51 +00:00

46 KiB

Changelog

0.20.5 (2026-10-03)

Fixed

  • memory-sync: publish committed vectors and wrap the vector sweep (#266) (1b66715)
  • memory-sync: skip bad vector records instead of stalling the stage (#265) (44daa47)
  • test: make Tests green on every platform (#264) (1701bca)
  • unblock the 0.20.5 release (aarch64 budget, MSVC linkage, mobile configure, Windows MSI) (#263) (dc7a4fb)

0.20.4 (2026-10-02)

Added

  • cli: drive the packaged systemd user unit when it is installed (a8f8918)
  • packaging: ship the daemon as a systemd user unit (e389e38)
  • plugins: prefer a system ONNX Runtime, fall back to a bundled copy (fe07469)

Fixed

  • build: install the bundled ONNX Runtime symlinks target-first (e9d19ab)
  • ci: add the Arch repository to pacman.conf in the usage text (091cfe0)
  • ci: Arch usage snippet and publication sanity check (follow-up to #233) (4afb779)
  • ci: drop --force from wrangler r2 object put (a04c30c)
  • ci: point stable YUM and Arch usage at the stable repository (1df92a3)
  • cli: create the data directory before installing a per-user unit (647a34c)
  • config: stop pinning the daemon socket and PID file to shared /tmp paths (9af33b6)
  • extraction: build TextBasicHandler capabilities from one extension set (8a1f753)
  • extraction: stop the Windows lines: hang from a mismatched iterator range (992b746)
  • glint: load ONNX Runtime at runtime instead of linking it (cf02477)
  • init: fresh-install dimension alignment, sentinel, and single tuning prompt (#247) (77ead04)
  • memory-sync: publish topology edge endpoints and retract deleted topology (#250) (8aa2a33)
  • onnx: keep one CoreML model cache per ONNX Runtime version (7755f3e)
  • p2p: stop quarantining honest writers for concurrent-session races (#245) (e0d15dc)
  • p2p: stop the memory-sync apply/publish deadlock and report apply health (#243) (7be908e)
  • packaging: escape rpm macro names in spec comments (3c64e1f)
  • packaging: reach running user managers without a D-Bus user bus (999cafc)
  • release: ship the daemon in the MSI, unblock experimental publishing, find the Windows hang (#238) (d0b8610)
  • storage: give the compressed-storage wrapper a per-user scratch path (1231b4c)

0.20.3 (2026-09-30)

Added

  • daemon: expire idle session files from repair maintenance (f87b64e)
  • daemon: vacuum vectors.db from idle repair maintenance (6a71e79)

Fixed

  • cli: decode compressed content in yams get (73e5d38)
  • client: decode compressed transfers for every client (fb38c7c)
  • cli: show vector index as pending until vectors initialize (86699d8)
  • daemon: break the connection lifetime timer reference cycle (b421c12)
  • daemon: cancel in-flight request work when shutdown begins (6aacda7)
  • daemon: delete corrupt DB copies only after confirmed salvage (8da4df3)
  • daemon: destroy the SocketServer only after its handlers are gone (f8fce1d)
  • daemon: keep the session watcher progressing past a failing path (4f5d77e)
  • daemon: let connection handlers co-own the slot semaphore (037a33b)
  • daemon: name in-flight worker jobs in shutdown join diagnostics (df8097a)
  • daemon: quarantine malformed WAL/SHM instead of deleting them (fb3ed28)
  • daemon: rate-limit repeating warnings that flood the daemon log (bbec409)
  • daemon: report the startup integrity check as its own phase (0b1b162)
  • daemon: show host pressure and deferred work in daemon status (1fa2e92)
  • daemon: stop topology rebuild requests from spinning workers (8c24821)
  • daemon: sweep stale integrity-stamp temp and claim files (344f3c5)
  • lint: update RequestDispatcher allowlist lines after the p2p and shutdown merges (d32c9b6)
  • metadata: name the pool in slow connection-hold warnings (2ecdaef)
  • metadata: record snapshot membership in its own table (3637567)
  • metadata: summarize snapshots from membership (a57889e)
  • mobile: export only the yams_mobile_* C ABI from libyams_mobile (015a01b)
  • mobile: port bindings to current service APIs (c597f99)
  • p2p: count sessions the transport refuses as inbound failures (f72abc7)
  • p2p: record and report inbound session failures (bda974f)
  • search: stop the simeon-lexical build when shutdown begins (8aae924)

Performance

  • daemon: defer background work while the host is busy (963d9bd)
  • daemon: sample host pressure in the resource governor (52545d3)

Maintenance

  • release: pin the next release to 0.20.3 (f21f7b2)

Changed

  • cli: handle SessionCommand Mode::None explicitly (7f91141)
  • daemon: remove unused ClientConfig::acceptCompressed (17591fc)
  • graph: drop --impact and --affected-tests (79232e5)
  • ipc: route Connected->ReadingHeader through state impl (4be7145)
  • services: drop unused RetrievalService::cat (0d4e649)

0.20.2 (2026-09-25)

Added

  • search: apply lines: qualifiers to result snippets (8eae143)
  • topology: select the dirty-region expansion mode from config (39af8df)

Fixed

  • build: map aarch64/arm64 to Conan's armv8 arch setting (2ef70a6)
  • cancel reporting, download progress stages, topology expansion config, lines: search qualifier (9d88fbd)
  • downloader: emit the Resolving and Verifying progress stages (9ca69d4)
  • downloader: report a user cancel as OperationCancelled (322c908)
  • release: build the Arch aarch64 lane end to end (4d262dd)
  • release: let clang find Arch ARM's GCC for Boost's arm64 target (721965b)

Maintenance

0.20.1 (2026-09-25)

Fixed

  • ci: build aarch64 Arch packages on an Arch Linux ARM base image (e167498)
  • ci: repair Arch x86_64 and aarch64 release lanes (9bbcacf)
  • ci: stop package-validate from exiting silently on a missing build dir (89bf716)

0.20.0 (2026-09-24)

⚠ BREAKING CHANGES

  • plugins: code-symbol extraction is gone. Removed: the symbol_extractor_v1 plugin ABI, yams config grammar (list, download, path, auto-enable, auto-disable), the grammar steps in yams init, the meson option plugin-symbols, the conan option enable_symbol_extraction, and the Windows installer SymbolPlugin component. Databases migrate to schema 41; a v0.19 binary refuses to open them, and symbol data dropped by migration 40 cannot be recovered.

Added

  • cli: add yams p2p publish/read/status (ed87781)
  • cli: install daemon as systemd service (d192a72)
  • daemon: wire bounded sync lifecycle (780c602)
  • graph: mutual-kNN semantic edges, topology clusters in the KG, relational richness gate (b0ffee7)
  • memory-sync: add backend-agnostic sync loop (24a15e6)
  • memory-sync: add daemon config + service factory (347da90)
  • memory-sync: add metadata adapters (e3ce449)
  • memory-sync: add periodic sync service (b5d50bf)
  • memory-sync: add vector adapter (9fdf75e)
  • memory-sync: add version-vector + LWW data model (91c64d6)
  • memory-sync: authenticate records (4340a24)
  • memory-sync: log quarantine reasons and config summary (eea06a5)
  • memory-sync: manage session lifecycle (86fe2ff)
  • memory-sync: validate traceable record-only task revisions (7900979)
  • memory-sync: wire service into daemon config + lifecycle (bdc181b)
  • metadata: add local embedding derivation tokens (cbc4959)
  • metrics: surface WAL data-system optics in daemon status (5d967b9)
  • p2p: add authenticated direct replication (#68) (5a53cdf)
  • p2p: expose sync protocol status (9b10917)
  • retrieval: SGC topology smoothing, Matryoshka BQ prefix, and fragment outer-MaxSim (c3b667e)
  • search: optional graph-rerank community signal from topology (e3f7e42)
  • storage: add sync backend primitives (2261019)
  • storage: expose typed disk pressure policy (05202d4)
  • topology: binary snapshot serialization and zstd compression (8fdb4df)
  • topology: materialize clusters in the knowledge graph (14057af)
  • topology: wire SGC smoothing and BQ routing through typed config (b9ec471)
  • vector: binary quantization (BQ) pre-filter for cluster routing (052031a)

Fixed

  • address the review findings from the experimental->main promotion (1cfdf13)
  • bench: drop removed symbolRank option and tolerate duplicate-content corpora (e7bf9a0)
  • bench: reject unknown arguments (b1cefa4)
  • build: include <algorithm> where std algorithms are used (ac60e84)
  • build: link libFuzzer builds on Linux (e653b62)
  • build: restore clean test and benchmark links (7485b48)
  • bus: explicitly include <algorithm> for std::erase_if (fb5270e)
  • bus: keep the channel-registry mutation off the production API (cfaff94)
  • ci: repair audited platform regressions (3d4ed8f)
  • ci: repair audited platform regressions (09aa7ae)
  • ci: stabilize sanitizer validation (be24d07)
  • cli: discover daemon log via status (788140e)
  • cli: discover live daemon socket for p2p (9c413d2)
  • cli: preserve content bytes during hash hydration (11c3915)
  • cli: render disabled vectors and quiet data-dir alarm (ca3eb78)
  • common: make the lenient UTF-8 sanitizers emit well-formed UTF-8 (90dca11)
  • compression: check stored zstd sizes against the frame before allocating (f5e2936)
  • config: distinguish empty from unset env on Windows (8911c5f)
  • config: preserve empty Windows values (dd435ef)
  • config: revoke removed tuning overrides (45d617d)
  • config: stack daemon environment leases (03aed28)
  • config: track empty Windows values (aa8eaf8)
  • daemon: bypass strand close during global teardown (44939e5)
  • daemon: clarify IPC response mismatches (f2c051c)
  • daemon: complete pool futures on cancellation (3453db2)
  • daemon: deliver immediate in-process responses once (db4df71)
  • daemon: drop stale symbol extractor adapter include (24b376a)
  • daemon: drop stale symbol extractor adapter include (f9a4ccc)
  • daemon: harden async shutdown (5a24eff)
  • daemon: keep p2p status off sync lock (f8cb981)
  • daemon: preserve ingestion admission (1a2d0f9)
  • daemon: preserve stamp claim ownership (ee41571)
  • daemon: propagate startup failures (8ed1cc6)
  • daemon: retain async initialization completion ownership (32e1625)
  • daemon: serialize socket accept shutdown (8a097a9)
  • embedding: avoid deferred shutdown access before start (300695c)
  • embedding: reject stale prepared text snapshots (72a6e91)
  • extraction: keep HTML script/style and tag scans linear (5899d6f)
  • extraction: tighten UTF-8 detection and keep units after bad surrogates (2d4fca1)
  • fence enrichment completion and reconcile promotion prerequisites (#157) (e4b32e9)
  • graph: make isolated-node queries usable after the symbol graph removal (af058f1)
  • graph: make semantic_neighbor reciprocity mean mutual kNN (1a74d4c)
  • graph: scope health checks to graph data (#63) (291f872)
  • harden search, UTF-8, extraction and compression parsers; libFuzzer lane on Linux (bb0be0d)
  • ingest: preserve extractor metadata through enrichment (390431d)
  • ingest: read shared post-ingest content in place (5393a5a)
  • integrity: publish verifier pool shutdown under the queue mutex (b2a5d61)
  • ipc: validate memory sync operations against a named wire limit (41e86a6)
  • mcp: preserve embedded stdio buffers (8055563)
  • mcp: restore WASI final linkage (bdd7281)
  • memory-sync: bound reconciliation (ccbc7e7)
  • memory-sync: escape acknowledgement keys (d9f9142)
  • memory-sync: include spdlog in public header (b892ddd)
  • memory-sync: log quarantine from daemon, not header (85cd84e)
  • memory-sync: parse s3 URL via storage resolver (5b251a0)
  • memory-sync: require explicit shared corpus scope (94e948c)
  • memory-sync: serialize loop access + resume causal history (f5ff83d)
  • metadata: cancel integrity validation without quarantine (5a8cc0e)
  • metadata: guard snapshot pruning and topology count triggers (c401e04)
  • metadata: invalidate embeddings when extracted input changes (be5c834)
  • metadata: keep replica derivation readiness local (fddc257)
  • metadata: normalize extraction status (c56cae7)
  • metadata: reserve pool creation capacity (9ef69b7)
  • metadata: scope migration 40 deletes to symbol extractor output (5b88c11)
  • p2p: admit only non-negative integers in control frames (de9e324)
  • p2p: harden bootstrap trust (#72) (1c30839)
  • p2p: harden CLI status and operator/key-rotation flows (#76) (d012d95)
  • p2p: harden direct-P2P framing and ingress admission (#75) (89d9f7c)
  • p2p: harden transport availability (#71) (0eac7c2)
  • p2p: replicate content deletion (#69) (70a4977)
  • p2p: resume bounded history catch-up (#70) (dbe7aea)
  • p2p: serialize sync application (#73) (e954c6d)
  • p2p: validate connection-string hosts (b702cb4)
  • plugins: honor lifecycle RPC timeout (4e4c414)
  • preserve cancellation across worker restart (26a1716)
  • release: build Arch packages with the ONNX plugin (0288f02)
  • repair: refuse embedding repair without a resolved data directory (d4b4842)
  • rerank: sample MaxSim fragments across the whole document (715a042)
  • retrieval: harden one-shot output (#64) (cb95fef)
  • retrieval: preserve content identities in JSON results (67d2a6a)
  • retrieval: propagate metadata lookup failures (8d7629e)
  • search: keep operator queries valid FTS5 instead of passing them through (56fd053)
  • search: keep topology cluster edges out of relational graph richness (b2ee196)
  • search: make grouped FTS5 operator queries explicit (found by fuzzing) (ccc3104)
  • search: measure graph richness from relational edges only (e31eda4)
  • search: report the scoring mode of the wired cross reranker (4ff7279)
  • search: strip matched XML-style tag pairs in linear time (466927f)
  • setup: find the Conan toolchain for Fuzzing builds (717fd26)
  • storage: enumerate Windows long paths in the extended namespace (283148e)
  • storage: harden reference-counter schema migration errors (c37b201)
  • storage: retry reference counter init on transient DB lock (dcb6f71)
  • storage: scope Windows long paths to paths that need them (2ffe040)
  • storage: scope Windows long paths to paths that need them (329a602)
  • storage: sign S3 wire path verbatim (6372763)
  • topology: bind calibration to routing policy identity (07b9f6b)
  • topology: bind routing calibration to policy identity (d308932)
  • topology: bound snapshot decode against corrupt payloads (5267b32)
  • topology: harden snapshot codec, store, migrations and routing for v0.20 (21bcd0a)
  • topology: keep exhaustive routing when BQ cannot score a query (da3e398)
  • topology: keep rebuilding when the latest snapshot is undecodable (6e1a526)
  • topology: make SGC smoothing deterministic and skip ragged inputs (c990b48)
  • topology: make the latest pointer the storeBatch commit point (fff2424)
  • topology: rebuild stale memberships (#114) (5ccb46c)
  • topology: share one resident snapshot behind a lock (522c33a)
  • v0.20 pre-tag fixes (Arch ONNX packaging, migration 40 scoping, graph/topology defects) (2a1b5b3)
  • vector: bind rebuild readiness to epochs (b152429)
  • vector: build the topology ANN index with sqlite-vec's SIMD defines (c74629d)
  • vector: bump sqlite-vec-cpp for safe error formatting (2cff398)
  • vector: default the paging capability instead of requiring it (db6f663)
  • wal: keep WAL metrics noexcept and race-free (be95561)
  • wal: preserve damaged zero-prefix segments (a636204)
  • wal: require an explicit WAL directory and prune empty segments (9dc37e0)

Performance

  • bench: expose BQ routing work and new topology levers to benchmarks (8912d70)
  • carry #187 (SIMD fixes, x86 AVX2 dispatch, opt-in ONNX, Linux fixes) into experimental (eb9ff8c)
  • daemon: trust clean metadata restarts (b319f0d)
  • graph: stop loading document content for completion-only jobs (0707331)
  • search: favor lexical mixed defaults (#65) (32c8ccd)
  • search: flyweight string interning in TopologyRoutingSnapshotCache (1550dad)
  • search: optimize concept mining warmup (67b1f89)
  • search: refill chunk-crowded vector results (e4e50dc)
  • search: reuse Simeon scores within a request (62b789a)
  • SIMD fixes (ARM ODR, x86 AVX2 runtime dispatch), opt-in ONNX, Linux fixes (14caf49)
  • storage: slice-by-8 CRC32 on all crc paths, 13.7x faster (9ff5aa7)
  • topology: binary snapshot compression and BQ routing (3f3b94f)
  • topology: bypass metadata table triggers during snapshot sync and prune legacy metadata (dd8105f)
  • topology: emit profiling zones from topology and vector code (4bc65fe)
  • topology: streamline artifact construction (745818e)
  • vector: harden portable backends (#66) (0effb84)
  • vector: persist reusable warm starts (fbb8fcb)
  • vector: score Simeon PQ candidates with batched ADC scans (cddb9e7)
  • vector: use AVX2 on x86 through runtime CPU dispatch (2824cb8)

Changed

  • bench: isolate benchmark controls (4d7f15d)
  • bench: type run configuration (88a77ad)
  • cli: extract already-initialized init path (7ad0418)
  • cli: extract testable post-init guidance (15bbaa8)
  • cli: share time filters between get/list (728a304)
  • compression: remove the never-built LZMA compressor (15f3e3d)
  • config: centralize runtime paths (72c8d21)
  • config: consolidate embedding policy (8b501a3)
  • config: consolidate runtime tuning (30618eb)
  • config: unify environment policy (34a799d)
  • config: unify flat TOML lookups (e85339a)
  • daemon: apply Brick audit fixes to the PR #79 decomposition (#80) (901e594)
  • daemon: decompose ServiceManager responsibilities (#79) (6c1846b)
  • daemon: extract bootstrap status builder (#87) (0148a05)
  • daemon: extract post-ingest NL graph builder (#88) (63390a5)
  • daemon: narrow checkpoint WAL capability (#84) (2de6d91)
  • daemon: remove the symbol_concurrent tuning knob and stage metrics (66689cd)
  • dedup retry helpers + test fixtures (4c3eb3d)
  • deduplicate trim/escapeRegex/hasWildcard helpers (3b1c86f)
  • graph: drop helpers orphaned by the code-symbol graph removal (c42bd41)
  • graph: drop helpers orphaned by the code-symbol graph removal (30d383a)
  • graph: resolve explore through graph nodes and report removed impact (ec5b789)
  • metadata: extract content transaction seams (424d91f)
  • p2p: run handshake and delta exchange over a FrameSource (dc8dc76)
  • p2p: tighten tests, share helpers, and guard test hooks (#77) (af609a1)
  • plugins: centralize lifecycle policy (d03ffd0)
  • plugins: remove the symbol_extractor_v1 plugin ABI (c39ed84)
  • repair: share embedding candidate policy (#85) (dd43bd6)
  • search: extract auxiliary vector merge (#86) (3b22a30)
  • search: remove symbol-based result ranking (ac070d8)
  • symbols: remove in-tree tree-sitter symbol extractor plugin and tests (ee51abc)
  • symbols: remove symbol extraction subsystem and add migration 40 (9c7f780)
  • symbols: remove tree-sitter from conan and fix legacy symbol tests (32e57d7)
  • test: consolidate daemon harness (9c9e191)
  • vector: decouple embedding generator policy (#83) (9883a43)

0.19.0 (2026-07-31)

⚠ BREAKING CHANGES

  • ingest: callers using connectAsync or legacy MessageFramer and FrameReader helpers must migrate to connect, frame_message_into, feed, and get_frame.
  • search: removes query parser, result ranker, search filter, and SearchResults container APIs from yams_search.

Added

  • search: make topology-assisted retrieval the default (#57) (a3d065d)
  • search: trace bounded topology rescue (9618370)

Fixed

  • build: restore MSVC and Apple libc++ portability (25bce22)
  • ci: preserve staged hook inputs (7a86afe)
  • ci: stabilize sanitizer test paths (75ceff2)
  • cli: harden argument count arithmetic (a6117de)
  • daemon: make watcher and restart reliable (f53d063)
  • daemon: stop shutdown log storm (bb8fe66)
  • daemon: verify lifecycle process identity (dabb424)
  • graph: improve agent navigation (11b0241)
  • graph: propagate workspace scope through daemon (0b3317b)
  • graph: scope exploration to workspace (70d0236)
  • graph: scope explore to working tree (2345462)
  • grep: bound final result window (8d447f1)
  • harden buffer and parser contracts (4e566f6)
  • prune: prioritize extensionless signatures (6e84723)
  • release: harden runtime boundaries (cee3adc)
  • release: repair package repo publish (80738eb)
  • rm: make deletion safe and observable (91fb1a3)
  • search: cancel disconnected requests (10ff335)
  • search: correct code navigation (8ad4ab2)
  • services: saturate add deadline budget (8cc1533)
  • storage: harden manifest and graph cleanup (b31de9c)
  • synchronize daemon service publication (9855c7b)
  • test: use compat jthread shim in deadline test (4750aa5)

Performance

  • ingest: bound store batching (ed8492b)
  • ingest: harden daemon batching and shutdown (#58) (ae15bf3)
  • search: bound topology routing and harden runtime paths (#59) (7df64b1)

Changelog

This file is retained for release automation. Published releases and their generated notes are available at:

Curated project updates and benchmark commentary live in docs/newsletter.md.