Skip to content

v2.8.1

Choose a tag to compare

@CodeAbra CodeAbra released this 03 Aug 01:25
· 50 commits to main since this release

Fixed

  • Recall no longer serves confident noise on topics the store barely
    covers, and its reason string cannot lie. When the candidate head's
    cosine spread collapses (nothing to distinguish), the degree term is
    dampened proportionally instead of silently deciding the ranking, and
    the response carries a flat_cosine hint — hints are now actually
    serialized over the recall RPC (they were declared in the tool schema
    but never sent). The aaak overlap matches cues against content fields
    only — entity anchors and doc names — never machine tokens or
    bookkeeping tag values, so a cue word like "user" cannot bias every
    record of one role; entity anchors stay dormant until the capture path
    writes them. reason is assembled during scoring with weighted terms
    and the full multiplier trail (trigram, fts, lex fusion, tier,
    temporal, profile gain, stability, valence, corrector anchoring), so
    the printed arithmetic reconciles with the served score.
  • Served recall ordering is now deterministic. Equal-scored hits used to
    inherit candidate scan order (Python's sort is stable), so the same cue
    could return a different ordering across calls; the supersede-cap window
    had the same tie sensitivity, which could shift served scores. Every
    serve path — pipeline, bank fallback, and the daemon's authority merge —
    now sorts through one shared helper that breaks ties on record_id, and
    a guard test keeps score-only sorts out of those files. Reported by
    @danielhertz1999-bit.
  • FHRR bundle golden parity now states its platform tolerance instead of
    encoding one machine's libm rounding: components whose mean angle sits
    on a quantisation boundary (byte inputs make that exact) may differ by
    exactly one step, components with a near-zero resultant are skipped
    (atan2 is undefined there), everything else stays byte-exact — so
    formula and rounding-mode regressions still fail. Goldens unchanged.
    Measured and reported by
    @danielhertz1999-bit.
  • A read-only reader holding a stale snapshot now raises the typed fence
    error the caller expects, rather than the older integrity shape. The
    crash-recovery test covering it had been red since the fence was typed.

Changed

  • The Rust workspace is rustfmt clean, so formatting can be enforced in
    CI from here on.
  • Two test-suite races removed: the multiprocess WAL test no longer
    depends on process interleaving, and detection-arena isolation is
    measured with a fresh process per arm.