Skip to content

linkedparticles 1.138.1

Choose a tag to compare

@jeffgage jeffgage released this 24 Aug 06:08
· 10 commits to main since this release
5026146

linkedparticles 1.138.1 — the Particles Engine and surfaces

The state-holding Engine of the Particles reference
implementation and its surfaces: the append-only corpus, the
extraction pipeline with subject resolution, the
provenance-tracked belief store, the query/lint/review and
consolidation operations, the API, CLI, and MCP surfaces, the
web UI, and the deployable engine image.

This repository is a published view of a private development upstream,
advanced by per-release scrubbed exports. Pull requests are reviewed here
and land by import, with each author's identity and sign-off preserved
verbatim; CONTRIBUTING.md documents the flow.

Changes in 1.138.1:

Added

  • The memory benchmark's ablation knobs are now flags
    particles benchmark memory gains --top-k, --qa/--no-qa,
    --consolidation, --dedup-judge and --reuse-stores, so each ablation
    named in deferred list is one re-run with one knob flipped.
    --consolidation runs the dream cycle's pass list against each
    scratch store before retrieval (the §11 controlled instrument);
    --dedup-judge applies the co-evidential judge so the ranker collapses
    paraphrase pairs inside top-k. Both are recorded on the run tuple, so an
    ablation arm can never be mistaken for a headline run.
  • --reuse-stores replays a persisted store set instead of re-extracting,
    turning a read-side ablation arm from a full re-extraction into zero
    write-time LLM calls. A run given --store-dir now stamps that set with the
    write-side tuple that produced it, and --reuse-stores refuses a set built
    under a different dataset, question selection, extraction/embedding model, or
    write-time reconciliation config — a replay is only cheap if it is still
    comparable.
  • --no-qa reports the retrieval stage alone, which over reused stores
    makes no LLM call at all.

Changed

  • The benchmark's cost estimate covers the ablation passes. A
    --consolidation run projects its capped probe ceiling; a --dedup-judge
    run discloses the judge fan-out as an unbounded component it cannot project,
    and now requires confirmation on that basis alone rather than sailing past
    the call-count threshold at "~0 calls".
  • The recorded run tuple carries every knob an ablation can flip — the cap, extract-time duplicate suppression, exact-duplicate auto-merge,
    and the content-age decay rule in effect for CONVERSATION. Two arms of one
    ablation previously recorded byte-identical tuples.

Fixed

  • A memory-benchmark run now discloses when decay is inert. The shipped
    content_age_decay.sources table configures no CONVERSATION rule, so every
    particle the benchmark mints scored at recency factor 1.0 — a decay on/off
    comparison would have read as "decay changes nothing" when decay never ran.
    The run says so in its own quality notes.
  • run_consolidation accepts a per-store cycle-lock path. The lock's scope
    is the store, but it defaulted to one global path — so a caller holding many
    stores concurrently had every store after the first record skipped.

Particles: provenance-tracked, calibrated-confidence knowledge for AI agent systems — https://linkedparticles.org