titen-memory 0.7.1
Stable release · npm
latest
npm install -g titen-memory@0.7.1Install guide · Release page · npm package
The measurement release: the pooled-store condition on LongMemEval-S, with
two pre-registered falsifiers fired against Titen and published, plus the
#291 disputed-signal authorization fix and the evidence-depth tie-break.
Added
- The pooled-store measurement: quality, latency, and build cost at
production store shape. All 19,829 distinct LongMemEval-S sessions in one
single-subject store, all 500 questions against it, at four store sizes —
the condition every published number in this field (ours included) avoids by
giving each question its own ~50-session haystack. Pre-registered with five
falsifiers before the first scored run
(prereg,
report). The system under test
is the published npm tarball, not a checkout. - The 2026-08-07 agent-memory landscape survey,
superseding 2026-08-04 on the fame roster and correcting two of its claims,
and the performance-axis answer
recording which competitive axes were adversarially killed and why.
Changed
-
A ranking dead heat now breaks on authorized evidence depth before the
arbitrary statement fallback (#288).
Order changes only where weighted score and vector similarity are both
exactly tied; measured byte-identical on all 500 LongMemEval-S instances,
and published as capturing 0.0 of the reranking ceiling on that corpus
(report). -
The
disputedsignal now resolves through the caller's own authorization,
so a contradicting observation the caller may not read no longer marks the
claim (#291). The flag
was computed from a bareEXISTSoverclaim_sourceswith no join to
observations, while the citations beside it were filtered correctly. A
principal who could not read the contradicting source still saw the claim
demoted by the 0.05 conflict term and still received aconflicts[]entry
whoseevidence_idsomitted the source that caused it — told a contradiction
existed and told they could not see it. Fixed at all four query sites:
POST /v1/context/compile(lexical and vector candidates),GET /v1/context/:id, and the Memory Atlasconflict_freshnesslens. The
governance review queue was already correct and now shares the same predicate.Visible consequence: in a store that already holds a cross-scope
contradiction, claims that were demoted for callers who cannot read the
contradicting source stop being demoted. Theirscorerises by up to0.05,
theirscore_components.conflictreads1instead of0, they leave
conflicts[], and the resulting order can change. Nothing changes for a
caller who can read the source, and nothing changes for a claim whose own
statusisdisputed— that is the claim's own field, not an inference about
hidden evidence. There is no migration and no flag: the previous numbers were
the leak.Response shapes, routes, and field names are unchanged, so this is a patch
under the table in
release.md — the
minor slot signals shape breakage, and only values that were disclosing hidden
rows move here.
Fixed
- The Memory Atlas review queue no longer scans every observation in the
organization to decidehas_contradiction. It expressed the predicate as
claim_sources JOIN observations, and SQLite drove fromobservations,
evaluating the membership and retention subqueries for all of them once per
candidate. On a 424,168-claim store that is 79 s per compile against 17.8
ms. The shared predicate added above uses a nestedEXISTSso
claim_sourcesseeks its own primary key, and the review queue now uses it.
Found by benchmarking the change above; the dual-runtime contract suite passed
on both query shapes, because its stores hold tens of rows.
Evidence
docs/testing/2026-08-07-disputed-authorization.md
— n=500, ranked output byte-identical before and after (0/0/500, p = 1.0),
compile latency flat within repeat spread. It also states what it cannot show:
the corpus holds zero contradicting sources, so it cannot measure the fix
where the fix fires.