46 KiB
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
- release 0.20.2 (698c3cb)
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 inyams init, the meson optionplugin-symbols, the conan optionenable_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.