Skip to content

Releases: cluster-127/mindfry

v1.9.0

25 Jan 18:29

Choose a tag to compare

v1.8.0 — Trauma-Aware Restart

25 Jan 17:21

Choose a tag to compare

MindFry v1.8.0 — Trauma-Aware Restart

"If you're going to fall, at least remember how."

What's New

MindFry now remembers how it was shut down and adapts its behavior on restart.

Crash Recovery

When MindFry starts, it checks for a shutdown marker:

State Detection Meaning
Normal Graceful marker found Clean restart, proceed normally
Shock No marker found Unclean shutdown (kill -9, crash, power loss)
Coma Marker found, >1 hour old Prolonged downtime, system was dormant
┌─ Initialization ─────────────────────────────────── 
│ 📁 Mounting Akashic Records... ✓
│ 🔍 Checking recovery state... ⚠ (SHOCK detected) 
│ 🧠 Initializing Psyche Arena... ✓ 
└──────────────────────────────────────────────────── 

Warmup Enforcement

During resurrection (snapshot loading), MindFry is cognitively unavailable:

  • PING and STATS — Always allowed
  • ❌ All other operations → ErrorCode::WarmingUp

This prevents half-recovered state corruption.


Performance

All new operations are sub-microsecond:

Operation Time
recovery_analyzer_analyze 1.21 ns
warmup_tracker_is_ready 1.19 ns
exhaustion_level_from_energy 715 ps

Technical Changes

New Files

  • src/stability/recovery.rs — RecoveryState, RecoveryAnalyzer, ShutdownMarker
  • benches/stability.rs — 10 new benchmarks

Modified Files

  • src/bin/server.rs — Startup recovery detection, shutdown marker write
  • src/protocol/handler.rs — Warmup enforcement with WarmupTracker
  • src/persistence/akashic.rsread_shutdown_marker() / write_shutdown_marker()

Tests

  • 89 tests passing (+6 recovery tests)

🚀 Upgrade

[dependencies]
mindfry = "1.8.0"

🔮 What's Next

  • v1.9.0: RecoveryState → temperature tier mapping
  • Warmup duration based on snapshot size
  • Resistance decay over time

📝 Commit Summary

feat: crash recovery and warmup enforcement (v1.8.0)

- Add recovery.rs with RecoveryState (Normal/Shock/Coma) and RecoveryAnalyzer
- Detect unclean shutdown (shock) and prolonged inactivity (coma) on startup
- Write graceful shutdown marker before exit
- Add WarmupTracker to CommandHandler with Ping/Stats exemption
- Return WarmingUp error during resurrection for non-exempt ops
- Add shutdown marker read/write to AkashicStore
- Add stability benchmark (10 benchmarks, all sub-microsecond)
- 89 tests passing

Full Changelog: v1.7.0...v1.8.0

v1.7.0

24 Jan 20:28

Choose a tag to compare

Full Changelog: v1.6.2...v1.7.0

v1.6.2

17 Jan 17:06

Choose a tag to compare

Full Changelog: v1.6.1...v1.6.2

v1.6.1

17 Jan 16:56

Choose a tag to compare

Full Changelog: v1.6.0...v1.6.1

Life Has Begun! 🌱

17 Jan 16:07

Choose a tag to compare

v1.6.0

🌱 Auto-Propagation - "Life Has Begun"

When stimulate(A) is called, energy automatically propagates through bonds.

Added

  • SynapseEngine Integration: Handler wires synapse.propagate() on stimulate
  • StimulateFlags: Control propagation behavior
    • 0x00 (default): Auto-propagate through bonds
    • 0x01 NO_PROPAGATE: Surgical mode (direct update only)
  • The Domino Test: A→B→C chain verification
    • A: +0.9 (direct)
    • B: +0.625 (hop 1, damped)
    • C: +0.250 (hop 2, damped) ✓

Technical

  • Used raw pointer trick to bypass RwLockWriteGuard borrow checker limitation
  • SAFETY: bonds are read-only during propagate, psyche is mutated

v1.3.0

17 Jan 13:54

Choose a tag to compare

v1.3.0 Release Notes

🧬 Phase 3: Persistence & Resurrection Protocol

MindFry now remembers who it is across restarts.


✨ Highlights

  • Cortex Persistence - Mood, personality, and decision state survive server restarts
  • Resurrection Protocol - Automatic restore from latest snapshot on boot
  • LineageIndexer - O(1) key-to-ID lookups via sled tree

🆕 New Features

Feature Description
MindFry::with_store() Attach persistent storage
MindFry::resurrect() Restore state from snapshot
LineageIndexer Fast key→ID lookup (insert/get/remove/rebuild)
Snapshot handler Real persistence to sled
Restore handler Client-triggered restore

🔧 Changes

  • Version: 0.1.0 → 1.3.0
  • License: MIT → BSL-1.1
  • Consciousness: Mood-coupled sensitivity (base 5.0, modifier 0.5x-1.5x)

📊 Stats

  • 70 tests passing
  • 0 clippy warnings (after fix)
  • Kill Test verified: Server resurrected with mood=0.75 preserved

🚀 Quick Start

import { MindFry } from '@mindfry/client';

const brain = new MindFry({ port: 9527 });
await brain.connect();

// Set mood
await brain.system.setMood(0.75);

// Create data
await brain.lineage.create({ key: 'session_123', energy: 0.9 });

// Take snapshot
await brain.system.snapshot('checkpoint_1');

// Later: Restore from snapshot
await brain.system.restore('checkpoint_1');
💾 Storage mounted: ./mindfry_data
🔄 Restoring from snapshot 'checkpoint_1'...
🧠 Cortex restored (mood: 0.75)Resurrection complete: 1 lineages, 0 bonds
🧬 Resurrection successful

📋 Known Limitations

  • QueryPattern handler (deferred)
  • Event subscription (deferred)
  • Physics tuning (deferred)

v1.0.0: feat: MFBP Protocol v1.0 - binary wire protocol

16 Jan 21:42

Choose a tag to compare

🦀 MAJOR: Rust Pivot

MindFry has been rewritten in Rust as a standalone Cognitive Database Engine.

Added

  • mindfry-core: Complete Rust implementation
    • PsycheArena: 32-byte cache-aligned Lineage storage with O(1) access
    • StrataArena: Ring buffer Engram history per lineage
    • BondGraph: Living bonds with Hebbian learning and decay
    • DecayEngine: Pre-computed LUT (256×32) for O(1) decay calculation
  • Benchmarks: Criterion benchmarks for decay and graph operations
  • Server binary: TCP server entry point (placeholder for MFBP)
  • CEREBRO Design Doc: GUI visualization specification

Changed

  • Technology: TypeScript → Rust
  • Architecture: Library → Database Engine
  • Positioning: "Memory Graph" → "Ephemeral Graph Database"

Moved

  • Original TypeScript implementation moved to legacy/ directory

Technical Decisions (Cluster 127)

Decision Choice
Protocol Custom TCP Binary (MFBP)
Persistence sled (Rust-native)
Target Dual (Server + WASM)
Integration Network (TCP)

v0.3.0 - Mythological Architecture

14 Jan 15:37

Choose a tag to compare

Mythological Architecture

🎭 Naming

Layer Name Role
Consciousness Psyche 🦋 Soul container
Maintenance Morpheus 💤 God of Dreams
Persistence AkashicRecords 📜 Eternal Memory

✨ New

  • Morpheus: Event-hinted background maintenance (prune, transfer)
  • AkashicRecords: Cold storage with access score decay
  • Shell layer stats in demo

📊 Metrics

Metric Value
ESM 24.89 KB
Tests 12/12

v0.2.1 Release Notes

14 Jan 14:52

Choose a tag to compare

mindfry v0.2.1 Release Notes

🚀 Highlights

High-performance consciousness-inspired memory graph with 25x memory reduction and zero idle CPU cost.

✨ Features

Core Architecture

  • Uint8Array Storage - 4 bytes per memory (vs ~100 bytes with objects)
  • Lazy Decay - Energy computed on-demand, no tick() needed
  • Priming-based Auto-Association - Automatic bonds on remember()

Performance Optimizations

  • Decay Lookup Table - Pre-computed exp() values (32 time × 256 rates)
  • Epoch-bounded TopK Cache - Only recompute when state changes
  • Bond Density Cap - Max 20 bonds per node

All notable changes to this project will be documented in this file.

[0.2.1] - 2026-01-14

Added

  • Decay Lookup Table: Pre-computed exp() values (32 time buckets × 256 rates)
  • Epoch-bounded TopK Cache: Only recomputes when state changes
  • Bond Density Cap: Max 20 bonds per node
  • Performance metrics in demo (JS Heap, Store Memory, Render Time)

Changed

  • getEnergy() now uses LUT instead of Math.exp()
  • topKConscious() cached and invalidated on epoch change
  • createBond() returns null if density cap exceeded

[0.2.0] - 2026-01-14

Added

  • Uint8Array Storage: 4 bytes per memory (25x reduction)
  • Priming-based Auto-Association: Automatic bonds on remember()
  • MemoryStore class: Low-level typed array backend

Changed

  • Lazy decay model: energy computed on-demand
  • recall() switched from async to sync iterator
  • API: remember(id, content, energy) instead of object config

Removed

  • tick() method (no longer needed)
  • Object-based Memory/Bond primitives

[0.1.0] - 2026-01-14

Added

  • Initial implementation
  • Memory/Bond primitives with object storage
  • Mind core with conscious/subconscious layers
  • Priming propagation
  • Time skip demo