Commit Graph

261 Commits

Author SHA1 Message Date
can1357 c36826cbac chore: bump version to 17.1.1 2026-07-24 09:18:41 +02:00
can1357 5e63cc5696 chore: bump version to 17.1.0 2026-07-24 02:49:18 +02:00
can1357 639bac596d chore: bump version to 17.0.9 2026-07-23 14:40:52 +02:00
can1357 9b54d9e9ac chore: bump version to 17.0.8 2026-07-23 00:41:54 +02:00
can1357 7d404686c2 chore: updated changelogs + remove summarization marker 2026-07-22 23:59:32 +02:00
can1357 0002905ec5 chore: untrack node_modules symlinks and harden ignore pattern
- An eval-worktree cherry-pick swept 16 packages/*/node_modules symlinks into the index; 'node_modules/' with a trailing slash only matches directories, so symlinked installs bypassed the ignore. Dropped the slash and removed the tracked links.
2026-07-22 21:43:22 +02:00
can1357 eadfc9a4ec Merge PR #6280: perf(mnemopi): run recall vector kernels natively (@wolfiesch) 2026-07-22 21:13:24 +02:00
can1357 b9072f1991 fix(extensibility): validate Type.Unsafe against the draft-2020-12 upgraded schema
Aligns the shim's runtime safeParse/__validator with the wire/tool-call
path, so legacy draft-07 documents (tuple items) accept the same values
validateToolArguments does. Adds a regression test.
2026-07-22 21:13:21 +02:00
Wolfgang Schoenberger 72394db605 test(mnemopi): refresh bench artifact on an idle host and sync changelog claims 2026-07-22 05:30:52 -07:00
Wolfgang Schoenberger 8047bedaa4 test(mnemopi): record bench host metadata and allow archive-deployed sha 2026-07-22 05:11:36 -07:00
Wolfgang Schoenberger 4ffe1822d4 refactor(mnemopi): keep only production-backed native kernels after wrapper-level benchmarking 2026-07-22 04:45:13 -07:00
Wolfgang Schoenberger 3c84e2c410 fix(mnemopi): clamp native limits, preserve JS lowercase semantics, wrapper-level bench 2026-07-22 04:10:17 -07:00
Wolfgang Schoenberger 6b9726552b chore(mnemopi): add changelog attribution links 2026-07-22 03:21:13 -07:00
Wolfgang Schoenberger 29338e1508 test(mnemopi): refresh bench artifact at final kernel revision 2026-07-22 02:44:31 -07:00
Wolfgang Schoenberger 4de678f44d chore(mnemopi): add changelog entries for native vector kernels 2026-07-22 02:32:35 -07:00
Wolfgang Schoenberger c11083c15b test(mnemopi): refresh native vector bench artifact 2026-07-22 02:30:25 -07:00
Wolfgang Schoenberger 46e296637f refactor(mnemopi): use Bun.spawnSync for bench sha capture 2026-07-22 02:29:55 -07:00
Wolfgang Schoenberger 86ef6636c8 test(mnemopi): benchmark every swapped native vector kernel with adaptive iterations 2026-07-22 02:28:30 -07:00
Wolfgang Schoenberger 85fae69281 style(mnemopi): format native vector parity test 2026-07-22 01:58:23 -07:00
Wolfgang Schoenberger 7542b31ee8 perf(mnemopi): add crossing-inclusive native vector kernel benchmark
dim=384 (fastembed bge-small), stride=48B binarized, counts 10/100/1k/10k,
20 warmup + 200 timed iterations per cell, run at 22a5fb3d9. Native wins at
every measured size: cosine batch 1.4-2.9x, vectorIndexTopK 1.6-2x, Hamming
batch 4.5-10x; no break-even crossover above count=10.
2026-07-22 01:25:08 -07:00
Wolfgang Schoenberger 22a5fb3d9f perf(mnemopi): use native batch vector kernels in recall hot loops
Swap the batch-shaped scoring loops to the pi-natives kernels behind the
existing TS function signatures, so every caller keeps its guards and
observable behavior: mmrRerank (default Jaccard path), searchExactVectorIndex,
clusterBySimilarity, BinaryVectorStore.search, and FastBinarySearch.search.
cosine_similarity_pairs now takes Float64Array so f64 vectors round-trip
without f32 narrowing. Scalar one-off call sites stay in TS (query-cache
cosine probe, shmr centroid/confidence loops, recall per-row cosine map,
custom-similarity mmrRerank). Adds a seeded parity suite: 1e-9 relative
tolerance for floats, exact equality for Hamming distances and pair lists,
identical MMR index sequences across lambda/topK grids.
2026-07-22 01:24:37 -07:00
can1357 7b141199d5 chore: bump version to 17.0.7 2026-07-21 22:11:51 +02:00
can1357 aa1b89db49 chore: bump version to 17.0.6 2026-07-20 23:46:18 +02:00
can1357 9fd6e97113 chore: bump version to 17.0.5 2026-07-18 23:51:40 +02:00
can1357 0ca454befa chore: bump version to 17.0.4 2026-07-18 06:41:08 +02:00
DarkPhilosophy 7ca0235616 fix(mnemopi): normalize the default model cache root 2026-07-18 02:55:00 +03:00
DarkPhilosophy e6d3064bef fix(mnemopi): compose cache heals and route the embed worker through them
Review follow-ups:
- The corruption retry now goes THROUGH the sidecar heal, so a cache
  broken in both ways (truncated model blob AND stale/missing
  config/tokenizer sidecars) recovers in one pass instead of the retry
  escaping with a sidecar error.
- defaultLocalModelInitializer is exported from core as the shared
  initializer and the coding-agent embed worker now uses it instead of
  calling FlagEmbedding.init directly, so omp's subprocess embeddings
  inherit both heals; fastembed/onnxruntime still load only in the
  child address space.
2026-07-18 02:35:39 +03:00
DarkPhilosophy eed5da008e test(mnemopi): pin the corruption retry contract end-to-end
defaultLocalModelInitializer (exported @internal for tests; production
seam stays setLocalModelInitializer) now provably retries
FlagEmbedding.init EXACTLY once after a Protobuf-corruption failure,
quarantining the cached file in between, and surfaces the error without
looping when the retry fails too. The heal callsite now passes
options.cacheDir so containment checks the caller's cache root, not
only the global default.
2026-07-18 02:25:05 +03:00
DarkPhilosophy 61cdedec02 docs(mnemopi): changelog entry for corrupt-model self-heal 2026-07-18 02:22:12 +03:00
DarkPhilosophy 6cc0c71d1d fix(mnemopi): self-heal a corrupt cached embedding model on init
A truncated model_optimized.onnx (observed live: 5.7MB file from June,
'Protobuf parsing failed' on every load) blocks local embeddings
forever: the downloader treats the existing file as complete, so every
init re-parses the same broken bytes and local recall/retain loses its
embedder. defaultLocalModelInitializer now quarantines the exact file
named by the loader (atomic rename to *.corrupt-<ts>) and retries init
ONCE so the model re-downloads.

The extracted path is error-message content: it is honored only when
it resolves inside the fastembed cache directory, so a dependency
emitting an unexpected message can never rename an arbitrary file.

Contract tests: protobuf failure quarantines exactly the named cache
file and reports retry-safe; unrelated errors touch nothing; a missing
file (concurrent heal) stays retry-safe; a path outside the cache root
is refused untouched.
2026-07-18 02:21:17 +03:00
can1357 2c225a0d00 chore: bump version to 17.0.3 2026-07-17 21:38:00 +02:00
can1357 d527259c26 chore: bump version to 17.0.2 2026-07-17 07:40:54 +02:00
can1357 9fd19696e2 chore: bump version to 17.0.1 2026-07-16 04:56:03 +02:00
can1357 44b73b7deb fix(mnemopi): recover direct runtime load failures 2026-07-16 03:32:02 +02:00
can1357 358879afca merged PR #5432: fix(mnemopi): pin Windows ORT DLL path 2026-07-16 03:32:02 +02:00
can1357 59657c0dbc fix(mnemopi): select trim candidates transactionally 2026-07-16 03:32:02 +02:00
can1357 5be1af81d8 merged PR #5434: fix(mnemopi): protect durable working memory from trim and cascade linked artifacts 2026-07-16 03:32:02 +02:00
can1357 1c9291b6e6 chore: bump version to 17.0.0 2026-07-15 19:17:34 +02:00
can1357 7d02778c60 chore: bump version to 16.5.2 2026-07-15 00:04:32 +02:00
can1357 14b5da76a9 chore: bump version to 16.5.1 2026-07-14 19:21:54 +02:00
roboomp d866eb8589 fix(mnemopi): protect durable working memory from trim and cascade linked artifacts
Working-memory TTL trim treated every consolidated_at IS NULL row as
scratch, so restored or imported durable rows disappeared on the next
write, and the trim delete left annotations, embeddings, facts, and
memoria projections orphaned.

- Exclude IMPORTED-tier rows from the trim eligibility query so restored
  banks survive a later remember()/rememberBatch().
- Stamp imported working-memory rows as consolidated in importFromDict so
  restored backups are durable regardless of trust tier.
- Add purgeWorkingMemoryArtifacts() and route trim, forgetWorking, and
  force-import overwrite through it to cascade annotations, embeddings,
  facts (source_msg_id), memoria_* (source_memory_id), gists, and the
  graph edges tied to those memory/gist/fact node ids.

Fixes #4819
2026-07-14 16:54:33 +00:00
roboomp 2997037ffa fix(mnemopi): pinned Windows ORT DLL path
- Resolved ONNX Runtime from fastembed's own dependency graph.
- Prepended the cached DLL directory before loading the native binding.
- Added regression coverage for inherited stale runtime paths.

Fixes #4849
2026-07-14 16:52:41 +00:00
can1357 a3960bb4e1 chore: bump version to 16.5.0 2026-07-14 01:32:16 +02:00
can1357 01d3fc9b6b chore: bump version to 16.4.8 2026-07-12 20:48:09 +02:00
can1357 f933f02fcf chore: bump version to 16.4.7 2026-07-12 13:06:27 +02:00
can1357 12466ecf40 chore: bump version to 16.4.6 2026-07-12 02:50:43 +02:00
can1357 3d1f9a4a3c chore: bump version to 16.4.5 2026-07-11 19:50:41 +02:00
can1357 cf1b3fc3fb chore: bump version to 16.4.4 2026-07-11 12:30:26 +02:00
can1357 f7930048d5 chore: bump version to 16.4.3 2026-07-11 07:55:17 +02:00
can1357 fd2d4616a6 chore: bump version to 16.4.2 2026-07-11 00:17:35 +02:00