Skip to content

Releases: jsflax/Engram

v0.12.4

26 Feb 15:33

Choose a tag to compare

Fixed

  • Label atlas crash on large graphsrenderLabelAtlas created textures exceeding Metal's 16384px max dimension when users had many memories with long labels (e.g. height 22774). Atlas now falls back to 1x scale when 2x would overflow, with a hard cap at 16384.
  • Label truncation overflowextractLabel topic-prefix path could produce 50+ character labels (e.g. "visualizer-3d-rendering-core: ...") when topic names were long, wasting atlas row space. Labels now intelligently budget between topic and content, capped at 30 chars total.
  • Atlas texture storage mode — changed from .managed to .shared (correct for Apple Silicon unified memory)

Changed

  • Sparkle signing — replaced --deep codesign with explicit bottom-up signing of XPC services, fixing App Management TCC prompt on macOS Ventura+

v0.12.3

26 Feb 14:07

Choose a tag to compare

Fixed

  • Metal crash on minimize — MTKView continued rendering at 60fps when the window was minimized, producing zero-dimension drawables that triggered a Metal validation SIGABRT. Added dimension guards and pause/resume on minimize/deminiaturize.
  • Empty embedding SIGTRAPremember, merge, and consolidate silently stored Vector<Float>([]) when the CoreML embedding model failed to load. Later recall with a valid query vector hit a dimension mismatch in sqlite-vec, causing an uncatchable SIGTRAP in LatticeCore. These operations now fail with a clear error instead of storing empty vectors.

Improved

  • Recall quality — NLTagger POS-based content-word extraction for FTS queries (drops determiners, pronouns, prepositions), staleness penalty for never-accessed memories older than 14 days, weak-recall warning when average distance > 0.07, and graph traversal now filters connected memories by semantic relevance to the query
  • GPU compute edge stamping — edge cylinder geometry now stamped via Metal compute kernel, matching the existing node sphere pipeline
  • Log rotation — hooks, session-learner, and maintenance logs rotate at 256KB with one .1 backup

Added

  • Sidebar view — new left-side panel for graph controls and navigation

v0.12.2

25 Feb 23:02

Choose a tag to compare

Fixed

  • Sparkle auto-update brokensparkle:version (build number) was hardcoded to 1 for every release, so Sparkle never offered updates. Build number now auto-increments from the previous appcast entry.

v0.12.1

25 Feb 21:28

Choose a tag to compare

Changed

  • Raw Metal renderer — replaced RealityKit with a custom MTKView pipeline, eliminating 67.5% main thread blocking in re::DrawingManager::commitFrameInternal() and 13.5% VFX lock contention from ParticleEmitterComponent
  • GPU procedural nebulae — fBm noise billboards rendered entirely in Metal fragment shaders, replacing RealityKit particle emitters
  • Blinn-Phong lighting — sphere impostor nodes use analytical normal reconstruction with Blinn-Phong shading tuned for dark-background aesthetic
  • Opaque rendering — fog baked into base_color in shaders instead of .transparent blending, avoiding GPU depth sorting of 55K+ triangles
  • Search spotlight — suppressed recall glow on non-matching nodes for cleaner visual contrast
  • EngramModels library extraction — core model types (Memory, Edge, Checkpoint, HookState) moved into a separate SPM target; EngramKit re-exports via @_exported import EngramModels
  • Account UI — Apple and Google Sign-In via AuthenticationServices and GoogleSignIn-iOS, posting identity tokens to cloud sync backend
  • Streaming graph load — batched node loading off main actor for faster initial render
  • GraphRenderStore — bypass SwiftUI observation for 3D render data, reducing unnecessary view recomputation
  • Project labels in 3D view — project name labels rendered in the 3D scene with tighter clustering
  • Lattice dependency switched from local path to remote URL (0.4.0)

Fixed

  • Node flicker during force simulation convergence
  • FTS5 full-text search query handling
  • GPU compute label batch sizing and edge buffer synchronization
  • Drive-to-project camera animation

v0.12.0

22 Feb 13:42

Choose a tag to compare

Full Changelog: v0.11.0...v0.12.0

v0.11.0

21 Feb 23:33

Choose a tag to compare

Full Changelog: v0.10.0...v0.11.0

v0.10.0

21 Feb 06:00

Choose a tag to compare

Full Changelog: v0.9.1...v0.10.0

v0.9.1

20 Feb 17:08

Choose a tag to compare

What's Changed

  • Fixed session-learner infinite recursion — removing the threshold in v0.9.1 caused each learner's Stop hook to spawn another learner endlessly. Fixed with CLAUDE_MEMORY_LEARNER env var guard: set on spawn, checked at hook startup.
  • Removed session-learner threshold — the stop hook now always spawns the learner. No minimum productive tool call count required. The learner itself decides what's worth storing.
  • Improved session-learner prompt — "capture what was learned" with specific categories (debugging insights, architecture decisions, patterns, gotchas). Skips only genuinely trivial sessions.
  • Added --output-format text to CLI invocation for log observability.

Install / Upgrade

curl -fsSL https://raw.githubusercontent.com/jsflax/ClaudeMemory/main/scripts/install.sh | bash

Full Changelog: v0.9.0...v0.9.1

Full Changelog: v0.9.0...v0.9.1

v0.9.0

20 Feb 16:08

Choose a tag to compare

What's New

Fire-and-forget session learning

  • Stop hook now spawns a detached claude CLI subprocess instead of blocking the conversation with a nudge — eliminates Conductor UI collision entirely
  • Extracts richer session signals from transcript (files edited, bash commands, error count) for more informative learner prompts

Progressive t-SNE animation (Visualizer)

  • Nodes drift smoothly from force layout to semantic positions as t-SNE converges — no loading screen
  • New EmbeddingProjection target/display position pipeline with 60fps frame interpolation
  • New TSNEKernel with Accelerate-backed t-SNE and frequent intermediate emissions

Other improvements

  • update tool: new set_project parameter to move memories between project scopes
  • Uninstall script cleans up all installed components
  • Fixed Conductor UI collision by reordering session-learner nudge instructions

Install / Upgrade

curl -fsSL https://raw.githubusercontent.com/jsflax/ClaudeMemory/main/scripts/install.sh | bash

Full Changelog: v0.8.2...v0.9.0

v0.8.2

17 Feb 04:24

Choose a tag to compare

Full Changelog: v0.8.1...v0.8.2