0.4.3.8 MAR/16/2026 - chore: Add Makefile - Added `Makefile` to the standalone repository root with targets: `build`, `build-mentisdbd`, `release`, `fmt`, `check`, `clippy`, `test`, `bench`, `doc`, `publish`, `publish-dry-run`, `install`, `clean`, and `help` - `bench` target pipes Criterion output through `tee` to `/tmp/mentisdb_bench_results.txt` so benchmark numbers are captured alongside the live terminal display - `install` target installs the `mentisdbd` daemon binary via `cargo install --path .` 0.4.2.7 MAR/16/2026 - repo: Move MentisDB into its own standalone Git repository - Split the `mentisdb/` subtree out of the former `cloudllm` monorepo and preserved the MentisDB commit history in the new repository - Updated crate metadata to point at the standalone `CloudLLM-ai/mentisdb` repository - Replaced the old local `../mcp` path dependency with the published `cloudllm_mcp` crate so `mentisdbd` builds and runs from the standalone checkout - api: Make skill uploads warning-clean under strict Clippy - Replaced the long `SkillRegistry::upload_skill(...)` parameter list with a public `SkillUpload` request type - Updated server, tests, and benchmark call sites to use the new upload request builder methods - Fixed the remaining Clippy findings in `server.rs` and `skills.rs` so `cargo clippy -- -D warnings` passes on the standalone repository - chore: Track standalone repo build artifacts more cleanly - Added a root `.gitignore` for `target/` and editor backup files - Added `Cargo.lock` to the standalone repository so the daemon build resolves against a checked-in lockfile 0.4.1.6 MAR/16/2026 - feat: Agent registry public key support - Added `AgentPublicKey { key_id, algorithm, public_key_bytes, revoked }` to the per-chain agent registry - Added `mentisdb_add_agent_key` MCP tool and `POST /v1/agents/{id}/keys` REST endpoint for key registration - Added `mentisdb_revoke_agent_key` MCP tool and `DELETE /v1/agents/{id}/keys/{key_id}` REST endpoint for key revocation - Public keys are serialized and persisted alongside the agent registry record - Ed25519 (`ed25519-dalek 2`) is the first supported algorithm; algorithm field is open for future extension - feat: Skill registry delta/diff versioning - First version of each skill is stored as full raw content; subsequent versions store only unified diff patches via `diffy` - Added `SkillVersionContent` enum (`Full { raw }` / `Delta { patch }`) replacing the embedded `SkillDocument` in `SkillVersion` - Added `version_number: u32` (zero-based monotone index) to `SkillVersion` and `SkillVersionSummary` - Version reconstruction applies the patch chain from v0 forward; all read and export paths go through `reconstruct_raw_content` - Content integrity hash is now SHA-256 of the full reconstructed raw content string - feat: Ed25519 cryptographic skill upload signing - Agents with registered public keys must provide `signing_key_id` and `skill_signature` (64-byte Ed25519) on every skill upload - Agents without registered public keys may upload without signatures for backward compatibility - Signature is verified against the agent's active public key in the agent registry before the upload is accepted - `signing_key_id` and `skill_signature` are stored on each `SkillVersion` for auditability - Added `verify_ed25519_signature` to the server layer using `ed25519-dalek 2` - feat: Skill registry V1→V2 startup migration - `migrate_skill_registry(chain_dir)` migrates the persisted `mentisdb-skills.bin` from registry V1 (full document per version) to V2 (delta content model) - Migration is idempotent; returns `None` if the registry is already at the current version or does not exist - `mentisdbd` runs skill registry migration at startup, after chain migration and before opening the skill registry - Panics on unrecoverable migration failure to prevent serving stale data - feat: Add `SkillRegistryMigrationReport` public type reporting migration outcome - perf: Replace outer `RwLock` with `DashMap` for concurrent chain lookup - Hot path for `get_chain` now acquires only a per-shard read lock instead of a global write lock - New chains are inserted using `entry().or_try_insert_with()` for shard-level atomicity; no global async lock held during chain open - Benchmark: `DashMap` delivers 750–930 read req/s at 10k concurrent tasks vs previous sequential bottleneck - perf: Add write buffering to `BinaryStorageAdapter` - Replaced per-append `File::open` with a lazily-initialized `Mutex>` - `auto_flush = false` batches writes and flushes every `FLUSH_THRESHOLD = 16` appends or on `Drop` - `auto_flush = true` (default) flushes immediately after each append, preserving full crash durability - feat: Add `MENTISDB_AUTO_FLUSH` env var and `MentisDbServiceConfig::auto_flush` builder - Set `MENTISDB_AUTO_FLUSH=false` (or `0`) for high-throughput write workloads at reduced durability - Defaults to `true` for backward-compatible crash-safe behavior - Config field exposed via `with_auto_flush(bool)` builder method on `MentisDbServiceConfig` - bench: Add Criterion benchmark suite (22 benchmarks) - `benches/thought_chain.rs`: 10 benchmarks covering append throughput, query latency, and traversal patterns - `benches/skill_registry.rs`: 12 benchmarks covering skill upload, search, delta reconstruction, and lifecycle operations - Baselines committed; run with `cargo bench` - bench: Add harness-free HTTP concurrency benchmark - `benches/http_concurrency.rs`: starts `mentisdbd` in-process on a random port, measures write and read throughput at 100 / 1k / 10k concurrent Tokio tasks with p50/p95/p99 latency reporting - test: Expand skill registry coverage for delta versioning and signing - docs: Update MENTISDB_SKILL.md with Fleet Orchestration and multi-CLI sub-agent guide - Added 9-subsection Fleet Orchestration section: PM pattern, agent registration, parallel dispatch, context window protocol, anti-patterns, and self-improving fleet guidance - Added concrete spawning examples for GitHub Copilot CLI (`task` tool + `mode="background"`), Claude Code (parallel `Task()` calls), OpenAI Codex CLI (`--dangerously-auto-approve-everything` + shell backgrounding), and Qwen Code (`spawn_agent`) - Added universal 6-step PM pattern table applicable to any CLI - docs: Document `MENTISDB_AUTO_FLUSH` in README daemon configuration section - Added durability vs. throughput trade-off explanation and two example launch commands - docs: Update WHITEPAPER with delta versioning and cryptographic authorship sections 0.4.0.5 MAR/13/2026 - feat: Complete the MentisDB skill registry release - Added the built-in `MENTISDB_SKILL.md` plus versioned uploaded skill documents for specialist agents - Finished the MCP and REST skill registry surfaces for list, manifest, upload, search, read, version listing, deprecate, and revoke flows - Tightened MCP tool metadata so live tool discovery advertises the full skill query parameter set - feat: Speed up durable memory queries with append-maintained indexes - Added indexes for agent id, thought type, and role to narrow candidate thoughts before full query filtering - Added timestamp-window position bounds so UTC `since` and `until` searches avoid scanning the full chain - feat: Add direct thought lookup and append-order traversal APIs - Added direct lookup by stable thought id, chain index, and content hash, plus explicit genesis vs head semantics - Added forward and backward chunk traversal from thought anchors or logical `genesis`/`head` boundaries, with reusable search filters - Added numeric traversal time windows using `start + delta` in `seconds` or `milliseconds` for MCP and REST callers - Exposed the new lookup and traversal surface through MCP and REST, separate from graph/context traversal - docs: Sync daemon and protocol documentation with the shipped server surface - Updated the daemon endpoint catalog, crate README, MCP spec, and REST spec to include the skill registry APIs and built-in skill endpoint - Clarified the current skill registry model: daemon-global storage with uploader validation against a chain agent registry - Documented head-vs-genesis semantics and the distinction between append-order traversal and graph/context traversal - feat: Default `MENTISDB_VERBOSE` to `true` when unset - Daemon now logs interaction events to the console out of the box without requiring explicit env configuration - `MENTISDB_VERBOSE=0` or `MENTISDB_VERBOSE=false` disables console interaction output - feat: Add file-backed interaction logging via `MENTISDB_LOG_FILE` - Set `MENTISDB_LOG_FILE=/path/to/mentisdb.log` to append all interaction events to a durable file - File logging is independent of `MENTISDB_VERBOSE`: operators can run a silent console with a durable file log, verbose console with no file, or both simultaneously - Log file path is displayed in daemon startup configuration output alongside other active env settings - Added `log_file` field to `MentisDbServiceConfig` with a `with_log_file` builder method - feat: Colorize daemon startup configuration output - Env variable names and their resolved values are now color-coded in the startup banner for easier visual scanning - test: Expand coverage for the new registry and query behavior - Added crate tests for skill import/export, persistence, lifecycle operations, and query timestamp windows - Added server tests for live skill registry MCP/REST flows and embedded skill retrieval - Moved skill parser tests into integration test files under `tests/` for consistency with crate standards 0.3.0.4 MAR/12/2026 Note: historical entries below use the original ThoughtChain / thoughtchaind names because they describe earlier releases. The project is now being rebranded to MentisDB / mentisdbd. This release also records the project rename from ThoughtChain to MentisDB. - feat: Introduce ThoughtChain schema version `1` - Added explicit `schema_version` to durable thought records - Added optional `signing_key_id` and `thought_signature` fields for future signed-agent provenance - Added a stable signable thought payload path so signatures can target canonicalized thought data - feat: Move shared-agent metadata into registries - Added per-chain `AgentRegistry` sidecars for display names, owners, aliases, public keys, and agent activity metadata - New thoughts now store stable `agent_id` attribution while registry metadata resolves `agent_name` and `agent_owner` at read time - Query, memory export, JSON rendering, and `thoughtchain_list_agents` now resolve identity metadata from the registry instead of scanning or duplicating inline agent profile fields - feat: Add a global ThoughtChain registry and richer discovery metadata - Added a durable registry of chains with chain key, schema version, storage adapter, storage location, thought count, and agent count - `thoughtchain_list_chains` and `GET /v1/chains` now return richer chain summaries instead of only chain keys - Server chain discovery overlays live in-process counts on top of persisted registry metadata - feat: Add automatic migration from legacy schema version `0` - `thoughtchaind` now scans discovered chains at startup, migrates legacy JSONL and binary chains to version `1`, archives the old files, and reports progress in stdout - Migration logic lives in the library so it is reusable from tests and future tooling, not only from the daemon - Added migration coverage for both legacy JSONL and binary chains - feat: Add a versioned skill registry with adapter-based import and export - Added a binary `mentisdb-skills.bin` registry with explicit registry versioning, schema versioning, integrity hashes, uploader attribution, timestamps, immutable skill versions, and lifecycle status - Added structured skill adapters for Markdown -> Skill, JSON -> Skill, Skill -> Markdown, and Skill -> JSON - Added indexed registry search by skill id, name, tags, triggers, uploader identity, status, format, schema version, and upload time window - feat: Expose the skill registry through MCP and REST - Added MCP tools and REST endpoints for `list_skills`, `skill_manifest`, `upload_skill`, `search_skill`, `read_skill`, `skill_versions`, `deprecate_skill`, and `revoke_skill` - `read_skill` now returns explicit warnings that skill files may contain malicious or untrusted instructions - Added the embedded `mentisdb_skill_md` surface for the official built-in MentisDB skill file - feat: Make binary storage the default for new chains - `BinaryStorageAdapter` is now the default storage backend for new chains - Added `THOUGHTCHAIN_DEFAULT_STORAGE_ADAPTER` and retained `THOUGHTCHAIN_STORAGE_ADAPTER` as a compatibility alias - Added bootstrap-time storage adapter override support so callers can explicitly create JSONL or binary chains - Fixed adapter filename resolution so JSONL and binary chains always reopen using the correct file extension - feat: Make the daemon/server stack the default crate experience - `thoughtchain` now enables the `server` feature by default so `cargo install thoughtchain` and `cargo run --bin thoughtchaind` work without extra feature flags - Updated workspace manifests and launcher scripts to rely on the default server-enabled build - docs: Refresh installation, daemon, protocol, and design documentation - Updated README quick-start guidance to emphasize `cargo install thoughtchain`, `thoughtchaind`, and `nohup thoughtchaind &` - Updated MCP and REST protocol docs for schema `1`, registry-backed chain discovery, binary-default storage, bootstrap adapter overrides, signature fields, and the new skill registry - Updated the white paper to describe registries, schema versioning, migration, and the signing-oriented data model - test: Expand coverage for the new schema and migration model - Added coverage for stable signable payload generation - Added coverage for v0 to v1 migration - Added server coverage for registry-backed chain summaries, bootstrap adapter overrides, and the skill registry endpoints 0.2.1.3 MAR/11/2026 - feat: Add env-controlled verbose interaction logging to `thoughtchaind` - Added `THOUGHTCHAIN_VERBOSE` with support for `1`, `0`, `true`, and `false` - When enabled, the daemon logs each ThoughtChain read and write interaction with chain key, touched agents, thought types, roles, tags, and concepts - Startup configuration output now shows the effective verbose setting - test: Add coverage for verbose env parsing in server configuration 0.2.0.2 MAR/11/2026 - feat: Add retrospective memory support - Added `ThoughtType::LessonLearned` - Added `ThoughtRole::Retrospective` - Markdown memory export now surfaces non-default roles such as retrospectives - feat: Add guided retrospective append APIs - Added MCP tool `thoughtchain_append_retrospective` - Added REST endpoint `POST /v1/retrospectives` - Retrospective append defaults to `LessonLearned` and always stores thoughts with role `Retrospective` - feat: Add shared-daemon discovery APIs - Added MCP tool `thoughtchain_list_chains` - Added MCP tool `thoughtchain_list_agents` - Added REST endpoint `GET /v1/chains` - Added REST endpoint `POST /v1/agents` - docs: Update daemon and protocol documentation - Updated `thoughtchain/README.md` with retrospective guidance and MCP setup for Codex, Claude Code, Qwen Code, and GitHub Copilot CLI - Updated the white paper and protocol docs to explain retrospective memory, lessons learned, and shared-daemon discovery - test: Add coverage for retrospective type/role queries, discovery endpoints, and server append behavior 0.1.0.1 MAR/11/2026 - feat: First public release of `thoughtchain` - Standalone Rust crate for semantic, hash-chained memory in long-running and multi-agent systems - Append-only, adapter-backed storage with explicit integrity verification - `StorageAdapter` abstraction for pluggable persistence backends - `JsonlStorageAdapter` as the current default backend - Stable crate metadata prepared for crates.io publishing - feat: Semantic thought model for durable agent memory - Rich `ThoughtType` taxonomy covering preferences, insights, facts, plans, corrections, checkpoints, summaries, surprises, and more - `ThoughtRole` separates semantic meaning from runtime roles such as memory, summary, compression, checkpoint, handoff, and audit - Stable thought ids, timestamps, importance, confidence, tags, concepts, refs, and typed relations - Shared-chain agent attribution via `agent_id`, `agent_name`, and optional `agent_owner` - feat: Query, replay, and export capabilities - Query by text, type, role, tags, concepts, agent ids, importance, confidence, and date range - Prompt-oriented catch-up rendering for session resumption - `MEMORY.md`-style Markdown export generated from chain walks and filters - Chain head inspection and integrity checks for durable memory operations - feat: Server support and standalone daemon - `thoughtchain::server` module behind the `server` feature - MCP server surface for remote agents - REST server surface for services, dashboards, CLIs, and generic HTTP clients - `thoughtchaind` binary to run ThoughtChain as a long-lived process - Env-configurable host, ports, default chain key, and storage directory - docs: Fully documented public API - Rustdoc coverage across public functions, enums, structs, and implementations - Added protocol documentation in the parent repository for both MCP and REST use - test: Dedicated crate test coverage - Separate tests under `thoughtchain/tests` - Coverage for persistence, integrity, querying, export behavior, and server routing