Skip to content

Releases: shanmukh05/trisynapse-memory

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 12 Sep 08:49

v0.2.0

This release refactors the engine architecture around a durable Memory Log and rebuildable Indexes, adds complete algorithmic specifications, transitions from deltas to memory records, replaces Episode Recall with Group Summaries, and unifies ingestion and indexing pipelines.

✨ Highlights

  • Memory Log and Indexes architecture: Clear separation between the durable, sequential Memory Log (engine/memory_log), Ingest pipeline (engine/ingest), and rebuildable Indexes (engine/indexes).
  • Comprehensive Algorithm Specifications: New docs/algorithms.md details the exact mathematical formulas for BM25, cosine vector similarity, weighted Reciprocal Rank Fusion (RRF), margin-based confidence scoring, and citation grounding.
  • Group Summaries & Facts: Prompts and records transition to evidence-grounded facts (facts.md, image_facts.md) and scoped group summaries (group_summary.md) with explicit group_id routing.
  • Unified Multi-Item Ingestion: Python add_raw_source(), add_many(), and REST endpoints /api/v1/memory/raw-sources and /api/v1/memories/many streamline raw source and batch writes.

🚀 New Features

  • Formal Algorithms Documentation (docs/algorithms.md): Complete mathematical definitions, state transitions, retrieval fusion algorithms, context budget packing, and grounding invariants.
  • Group Summaries: Group summary index and APIs (GET /api/v1/groups, GET /api/v1/groups/{group_id}) replace episode recall across SQLite tables, background jobs, Studio inspection, and routing seeds.
  • Raw-Source & Multi-Item APIs: Added add_raw_source() and add_many() on MemoryEngine, /api/v1/memory/raw-sources and /api/v1/memories/many in REST, and updated add() / addBatch() in the TypeScript client.
  • Embedding Index Inspection: Renamed vector helper to "Embedding index" across Studio and catalog APIs (/api/v1/memory/vectors/projection), reflecting rebuildable secondary index semantics.

🔧 Improvements

  • Studio Memory Viewer: Tabs updated to "Memory log", "Documents", "BM25", "Embedding index", "Group summaries", "Claims", and "Graph". Filtering now supports group id and source id.
  • Benchmark Adapters: Updated LoCoMo, LongMemEval, HaluMem, and MemoryDoc benchmark adapters to the memory log, group summary, and fact models.
  • Studio E2E & Browser Tests: Playwright accessibility and interaction tests updated and verified across desktop and mobile/narrow viewports.
  • Clean Wheel & Distribution Bundles: Wheel and source distributions verified to include hashed Studio production assets, canonical logos, and updated versioned prompt templates.

⚠️ Breaking Changes

  • Engine Package Structure:
    • engine/trace/ moved to engine/memory_log/
    • engine/formation/ moved to engine/ingest/
    • engine/recall/ moved to engine/indexes/
  • Terminology & Schema:
    • MemoryDelta and delta-based terminology transitioned to MemoryRecord in the memory log.
    • batch_id renamed to group_id across models, query filters, REST parameters, and the TypeScript SDK.
    • episode_recall replaced with group_summary in prompts and catalog routes.
  • REST API:
    • /api/v1/batches replaced by /api/v1/groups.
    • Batch memory creation route updated to /api/v1/memories/many.

📦 Other Changes

  • Python dependencies locked in uv.lock, package metadata bumped to 0.2.0 across pyproject.toml, packages/js-sdk/package.json, packages/studio/package.json, and installers (install.sh, install.ps1).

Full Changelog: v0.1.3...HEAD

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 26 Aug 16:19

v0.1.3

This release makes Trace and Recall inspectable in Memory Viewer, lets Python applications register trusted extension packs for new source kinds and retrieval branches, and adds a short starter notebook for the production engine.

✨ Highlights

  • Studio’s home is Memory Viewer: Trace, BM25, vectors, claims, Episode Recall, and the retrieval graph are catalog-driven tabs rather than a hardcoded page list.
  • Python applications can pass trusted extension packs into MemoryEngine.open(extensions=[...]) to add source handlers, Formation processors, Recall channels, and retrieval branches.
  • Playground and API search can run without writing a Query Run (persist=false), so inspection does not fill query history.

🚀 New Features

  • Extension packs. Register a SourceHandler, FormationProcessor, RecallChannel, or RetrievalBranch through ExtensionSpec. Recall records stay in core SQLite storage, must cite active Trace, and rebuild when storage_revision changes (rebuild_extension()). Weighted RRF remains the default FusionStrategy; callers can also replace the post-fusion CandidateReranker. CLI and REST do not auto-discover plugins.
  • Memory catalog and inspect APIs. GET /api/v1/memory/catalog lists helpers, retrieval branches, and extension health. Companion routes cover documents, BM25 terms, claims, vector projections/neighbors, and the retrieval graph. Python exposes memory_catalog() and the same inspect methods; the TypeScript client adds getMemoryCatalog().
  • Retrieval graph view. GET /api/v1/memory-graph?view=retrieval shows the followed_by and about_same_entity neighborhood the graph route actually walks, with neighbor expansion for large stores.
  • Non-persistent search. MemoryEngine.search(..., persist=false), POST /api/v1/search with persist: false, and search({ persist: false }) in the TypeScript client skip writing a Query Run. Default remains true.
  • Custom source kinds. SourceInput.kind is an open string, so an extension can introduce a new kind without a closed enum. The TypeScript SourceKind type accepts the same.
  • Starter notebook. notebooks/starter.ipynb ingests data/sample/, lists Trace and Recall, and runs search and query against a local store.

🔧 Improvements

  • Studio playground search uses production retrieval with persist=false, then “Open as Query” is the only path that writes history.
  • Unknown Recall helpers still render from generic items[] using the declared visual family (timeline, table, postings, embedding, cards, graph).
  • Existing QueryPlanner and RouteRegistry APIs remain for ranking the built-in candidate index; new end-to-end channels should use extension packs.

📦 Other Changes

  • Studio graph views no longer depend on Cytoscape.
  • Research benchmark notebooks under notebooks/ are replaced by the starter notebook. Packaged benchmark adapters remain in the Python library.

Full Changelog: v0.1.2...HEAD

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 23 Aug 17:25

v0.1.2

This release replaces hash-chain “verification” with store validation, adds profiled and token-aware retrieval, and publishes the TypeScript client as @trisynapse/trisynapse-memory. Existing 0.1.x stores migrate automatically; several CLI, REST, and SDK names change.

✨ Highlights

  • Retrieval can pick a profile, enable specific routes, and budget answer context by tokens instead of item count alone.
  • verify / verify_trace() become validate / validate_store(), which check SQLite, sequence continuity, and retained source blobs.
  • The TypeScript package is renamed and published to npm as @trisynapse/trisynapse-memory.

🚀 New Features

  • Retrieval profiles and routes. Configuration now includes retrieval_profile, enabled_routes, and route_weights. Profiles include auto, balanced, precise, broad, mixed, code, table, image, document, and conversation. Python callers can supply a QueryPlanner and RouteRegistry.
  • Token-aware grounding. max_context_tokens and per_source_context_tokens cap how much evidence enters an answer. Optional tiktoken extra and token_counter_for() provide model-aware counting; applications can pass a custom TokenCounter.
  • Richer observations. REST and the TypeScript client accept modality, source_type, and retrieval_fields on observation writes. Search hits include locators, confidence, temporal anchors, and metadata.
  • Benchmark controls. trisynapse-memory bench run and the REST benchmark API accept sampling (auto, stratified, sequential) and an optional independent judge model.
  • npm publishing. Tagged releases publish @trisynapse/trisynapse-memory (prereleases get the next tag) and smoke-test an exact-version install.

🔧 Improvements

  • Lexical search tokenizes Unicode prose, code identifiers, and CJK text without a language-specific segmenter.
  • Query planning recognizes multi-hop questions in addition to fact, temporal, list, and inference.
  • CLI long-running work shows progress; pass --no-progress to disable it.
  • The interactive terminal runs ingestion, search, query, and model actions without freezing the UI, and streams query stages as they complete.
  • Studio retrieval settings expose profile and token-budget controls. Health copy now reports store readiness instead of “Trace verified.”
  • Release asset lists stay limited to installers, distributions, checksums, and release.json.

🐛 Bug Fixes

  • Query answers reject malformed citation ID lists instead of accepting an invalid grounded response.

⚠️ Breaking Changes

  • CLI: trisynapse-memory verify is now trisynapse-memory validate.
    • Migration: Update scripts and docs to call validate.
  • Python: MemoryEngine.verify_trace() is now validate_store(). TraceVerification is now StoreValidation. PrivacyFilter and RedactionResult are no longer exported. __version__ still comes from trisynapse_memory, but trisynapse_memory._version is gone.
    • Migration: Switch to memory.validate_store(). Import planner/route/token types from trisynapse_memory. Do not import deleted modules such as engine.privacy, engine.trace (the old module), or _version.
  • REST / Studio / JS health: trace_valid is now storage_ready. /api/v1/check and /api/v1/metrics no longer return a full trace-verification object.
    • Migration: Read storage_ready. Use validate_store() / GET /api/v1/check for the new StoreValidation fields.
  • Trace records: Deltas are no longer hash-chained. MemoryDelta no longer includes prev_hash or hash. RemoveResult no longer includes old_root_hash or new_root_hash. privacy_scope remains only for store compatibility and does not filter.
    • Migration: Open the store with 0.1.2; the engine drops legacy chain columns. Stop depending on root hashes or hash-chain verification.
  • TypeScript package: @trisynapse/memory is now @trisynapse/trisynapse-memory.
    • Migration: npm install @trisynapse/trisynapse-memory and update imports.

📦 Other Changes

  • Optional extra: pip install 'trisynapse-memory[tokens]' for Tiktoken-backed counters. The all extra includes it.
  • scripts/version.py maps PEP 440 prereleases to npm SemVer (0.2.0rc1 → 0.2.0-rc.1) and adds a npm subcommand.
  • Engine internals are split into formation, providers, recall, retrieval, and trace packages. Public imports from trisynapse_memory are unchanged except as listed above.

Full Changelog: v0.1.1...HEAD

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 16 Aug 14:48

v0.1.1

Patch release that republishes installers at 0.1.1 and simplifies the tagged release pipeline.

🔧 Improvements

  • Installers now pin trisynapse-memory[all]==0.1.1 on macOS, Linux, and Windows.
  • Tagged releases always build and publish the current tree instead of trying to reuse an existing PyPI artifact.

📦 Other Changes

  • Removed the one-off PyPI artifact download helper used only by the previous release workflow.

Full Changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 16 Aug 14:39

v0.1.0

First public alpha of Trisynapse Memory: a local-first Trace & Recall engine that stores source evidence, retrieves the useful parts, and answers with citations.

✨ Highlights

  • One engine shared by Python, the trisynapse-memory CLI, REST, Memory Studio, and the TypeScript client.
  • Unified ingestion for conversations, documents, code, web pages, tables, images, and structured records.
  • Grounded answers that cite Trace evidence, or abstain when confidence is too low.

🚀 New Features

  • Python API. MemoryEngine can add observations, ingest mixed sources, search, query, forget, and physically remove memory in a namespace.
  • CLI and terminal. trisynapse-memory initializes a local store, ingests sources, searches and queries, and opens an interactive terminal when run with no arguments.
  • REST API and Memory Studio. trisynapse-memory serve --studio exposes the same store over HTTP, with Studio for sources, queries, memory graphs, and model settings.
  • TypeScript client. @trisynapse/memory talks to a local or remote server with typed helpers for health, memory, search, and query.
  • Source pipeline. Files, directories, archives, Git URLs, public web pages, and images (through a vision-capable completion model) keep locators such as pages, symbols, line ranges, rows, and cells.
  • Providers. Local embeddings work with no completion API key. Optional completion providers support generation and image understanding.
  • Operations. Backup, restore, durable ingestion jobs, snapshots, store verification, and installer scripts for macOS, Linux, and Windows.

🐛 Bug Fixes

  • Fixed Memory Studio fallback when the built UI assets are missing.
  • Fixed macOS installer variable expansion so the POSIX installer can resolve the published package version.

📦 Other Changes

  • Release workflow builds and publishes trisynapse-memory==0.1.0 to PyPI and attaches installers, checksums, and release.json to the GitHub release.

Full Changelog: https://github.com/shanmukh05/trisynapse-memory/commits/v0.1.0