0.5.2.11 Mar/22/2026
 - feat: Reframe ThoughtType
   - New `ThoughtType::Reframe` variant for reframing thoughts that were accurate but unhelpfully framed
   - Distinct from Correction (factually wrong) and Invalidates (correct but stale)
   - Added to Corrections section in `to_memory_markdown` output
   - Sound signature: E5→D5→B4 gentle falling pattern in mentisdbd
   - Added to dashboard TYPE_GROUPS (Correction/red group)
 - feat: Supersedes ThoughtRelationKind
   - New `ThoughtRelationKind::Supersedes` variant for typed semantic "this replaces that" edges
   - Complements Reframe: use Reframe as ThoughtType, Supersedes as RelationKind pointing to the old thought
 - feat: cross-chain thought references
   - `ThoughtRelation` now has an optional `chain_key: Option<String>` field
   - Intra-chain refs remain backward-compatible (chain_key = None, skipped in JSON)
   - Binary (bincode) serialization always includes all 3 fields; JSON omits chain_key when None
   - Legacy v0 chains without chain_key are migrated transparently via LegacyThoughtRelation
   - New `ThoughtInput::with_cross_chain_relation()` builder method
 - feat: schema V2
   - `MENTISDB_SCHEMA_V2 = 2` constant added; `MENTISDB_CURRENT_VERSION` bumped to V2
   - Registry version is normalized to current version on load
 - feat: bulk import from MEMORY.md format
   - New `MentisDb::import_from_memory_markdown(markdown, default_agent_id)` library method
   - Parses all 29 ThoughtType variants, ThoughtRole, importance, confidence, tags from bullet lines
   - Source `[#N]` indices are discarded; thoughts are re-appended in order on the target chain
   - New REST endpoint: `POST /v1/import-markdown` (+ legacy alias `thoughtchain_import_memory_markdown`)
   - New MCP tool: `mentisdb_import_memory_markdown`
   - New dashboard endpoint: `POST /dashboard/api/chains/{chain_key}/import-markdown`
   - Tests: round-trip export→import, default agent fallback, malformed-line skipping
   - Benchmark: `bench_import_memory_markdown` (100-thought bulk import)
 - feat(dashboard): refs and relations in thought detail modal
   - Positional refs (intra-chain indices) displayed as #N, #M list
   - Typed relations displayed as `kind → target_id (chain: other-chain)` with chain_key omitted when intra-chain
 - feat(dashboard): Import MEMORY.md button on chain detail page
   - "📥 Import MEMORY.md" button opens a modal with textarea + default_agent_id input
   - Calls `POST /dashboard/api/chains/{chain_key}/import-markdown`, shows imported count on success
 - docs(skill): MENTISDB_SKILL.md updated for 0.5.2
   - Reframe ThoughtType entry with when-to-use guidance
   - Back-referencing section: how to use refs and relations on LessonLearned, Correction, and Reframe thoughts
   - Supersedes vs Corrects vs Invalidates decision guide
   - Cross-chain references section with examples
   - Example: Reframe superseding an overly broad constraint (bad/good patterns)
 - chore: bump crate version to 0.5.2

0.5.1.10 MAR/22/2026
 - feat(dashboard): copy agent memories to another chain
   - New "📋 Copy to Chain…" button on the Agent detail page (next to "Export Memory…")
   - Opens a modal showing only chains where the agent does NOT already have thoughts (preventing diverged history)
   - User must type the exact target chain name before the "Copy Memories" button is enabled
   - All semantic fields are preserved (type, role, content, tags, concepts, confidence, importance); positional refs and relations are intentionally dropped
   - Agent display name and owner are propagated via the first copied thought so the target chain's agent registry is populated correctly
   - New backend: `POST /dashboard/api/agents/{chain_key}/{agent_id}/copy-to/{target_chain_key}`
   - Returns 409 Conflict if the agent already has thoughts on the target chain
 - fix(dashboard): skill diff version picker defaults to oldest → newest
   - "From version" selector pre-selects v1 (oldest); "To version" pre-selects vN (newest)
   - Both selectors now use consistent chronological (oldest-first) ordering

0.5.0.9 MAR/21/2026
 - deprecate(config): rename MENTISDB_DEFAULT_KEY to MENTISDB_DEFAULT_CHAIN_KEY
   - New canonical env var is MENTISDB_DEFAULT_CHAIN_KEY
   - MENTISDB_DEFAULT_KEY remains fully functional as a deprecated alias (backwards compatible)
   - Updated .env.example, start_mentisdbd, README.md, and rustdocs
 - feat(dashboard): agent thoughts explorer
   - Per-agent detail page now includes cross-chain links: "All <DisplayName>'s thoughts on <chain-key>" for every chain the agent participated in
   - Clicking the link opens a filterable thought explorer pre-filtered to that agent's contributions
   - `renderAgentThoughts(agentId, chainKey)` function added to the SPA; supports pagination and per-page controls
 - feat(dashboard): skill revoke / deprecate with GitHub-style confirmation
   - "Revoke Skill…" button in skill detail header triggers an overlay panel
   - User must type the exact skill ID before "Revoke Forever" is enabled (mirrors GitHub repository deletion UX)
   - New admin-only `POST /dashboard/api/skills/{skill_id}/revoke` and `POST /dashboard/api/skills/{skill_id}/deprecate` routes in the dashboard server; these manage skill lifecycle entries in the `SkillRegistry` (backed by `SkillRegistry::revoke_skill` and `deprecate_skill`) and are separate from the MCP/REST API endpoints exposed to agents
 - feat(dashboard): version number in navigation header
   - Brand now reads "🧠 MentisDB v0.5.0" — fetched from new `GET /dashboard/api/version` endpoint on page load
   - New endpoint returns `{ "version": "…" }` compiled in via `env!("CARGO_PKG_VERSION")`
 - feat(dashboard): chain list refresh button
   - "↺ Refresh" button in the Chains page header re-fetches counts from the server without a full page reload
 - fix(dashboard): `api_chains` now includes mid-session chains
   - Result set is the union of disk-registry chain keys and chains live in the `Arc<DashMap>` cache
   - Chains created mid-session via MCP (e.g. `foo-chain`) appear immediately without daemon restart
 - fix(dashboard): agent thought counts were stale
   - `api_agents_all`, `api_agents_by_chain`, and `api_get_agent` now compute thought counts live via `chain.thoughts().iter().filter(|t| t.agent_id == agent_id).count()` instead of reading the stored `AgentRecord.thought_count` field which can drift
 - fix(dashboard): `renderAgentThoughts` used wrong element ID
   - Function was targeting `document.getElementById('main')` but the SPA container is `<main id="app">`; corrected to `getElementById('app')`
 - fix(dashboard): `setActive` JS error in agent thoughts view
   - `renderAgentThoughts` was calling the non-existent `setActive('agents')` — replaced with the correct `updateNav()` call
 - fix(dashboard): skill diff version picker shows sequential numbers
   - `From` / `To` selectors now display `N: short-hash (date)` so the relative order of versions is unambiguous
 - fix(dashboard): agent IDs in agents list are now clickable links
   - Each agent ID cell in the agents table renders as `<a href="#agents/{id}">` to navigate directly to the agent detail page
 - fix(startup): per-agent thought counts in startup report were stale
   - `print_agent_registry_summary` now counts live via the same filtered-iterator pattern used by dashboard handlers
 - fix: silence `DeviceSink` drop log from rodio 0.22
   - Calling `.log_on_drop(false)` on the `DeviceSink` suppresses the "Dropping DeviceSink, audio playing through this sink will stop" message on daemon exit
 - fix: resolve clippy errors in bench and tests
   - `benches/http_concurrency.rs`: filled all missing `MentisDbServerConfig` fields in the struct literal
   - `tests/mentisdb_tests.rs`: replaced four `vec![…]` array literals that hold only stack types with plain `[…]` arrays (`clippy::useless_vec`)
 - chore: bump crate version to 0.5.0
 - feat: HTTPS/TLS support for mentisdbd
   - Added HTTPS listeners for both MCP (port 9473) and REST (port 9474) alongside existing HTTP listeners
   - Auto-generates a self-signed TLS certificate on first startup via `rcgen`, saved to `~/.mentisdb/tls/cert.pem` and `~/.mentisdb/tls/key.pem`
   - Certificate includes SANs: `my.mentisdb.com`, `localhost`, `127.0.0.1`
   - `my.mentisdb.com` is a public DNS A-record → 127.0.0.1; use it as a friendly hostname for the local daemon once the cert is trusted
   - New env vars: `MENTISDB_HTTPS_MCP_PORT` (default 9473, 0=disabled), `MENTISDB_HTTPS_REST_PORT` (default 9474, 0=disabled), `MENTISDB_TLS_CERT`, `MENTISDB_TLS_KEY`
   - Added `start_https_mcp_server` and `start_https_rest_server` public API functions
   - `MentisDbServerConfig` extended with `https_mcp_addr`, `https_rest_addr`, `tls_cert_path`, `tls_key_path`
   - `MentisDbServerHandles` extended with `https_mcp: Option<ServerHandle>`, `https_rest: Option<ServerHandle>`
   - Daemon startup prints HTTPS endpoints, TLS cert path, per-OS cert trust commands, and `my.mentisdb.com` tip
 - feat: Startup jingle (PC-speaker style, `startup-sound` feature)
   - 4-note square-wave sequence on daemon start: C5 → E5 → D5 → B5 ("men-tis-D-B")
   - Implemented via `rodio` (CoreAudio / ALSA / WASAPI); feature-gated as `startup-sound` (on by default)
   - Jingle plays after the banner and configuration block are fully flushed to stdout, so visual output is always complete before sound
   - Silence with `MENTISDB_STARTUP_SOUND=0` / `false` / `no` / `off`
   - `MENTISDB_STARTUP_SOUND` added to the Configuration printout and `.env.example`
 - feat: Per-thought-type sound signatures (`MENTISDB_THOUGHT_SOUNDS`)
   - When enabled, a distinct ≤200ms square-wave sequence plays every time a thought is appended, keyed to its `ThoughtType`
   - 28 unique signatures; sequences are tuned to evoke the thought type (e.g. `Surprise` mirrors the Metal Gear Solid "!" alert: C5→E5→G5→C6)
   - Implemented via an `on_thought_appended: Option<Arc<dyn Fn(ThoughtType) + Send + Sync>>` callback on `MentisDbServiceConfig`; fired asynchronously via `spawn_blocking` so audio never blocks the append path
   - Defaults to `false` (opt-in) to avoid annoying users; toggle with `MENTISDB_THOUGHT_SOUNDS=true`
   - `MENTISDB_THOUGHT_SOUNDS` added to the Configuration printout and `.env.example`
 - ux: Reorder daemon startup output — useful info first, branding last
   - Endpoint catalog is now printed first (MCP / REST / HTTPS addresses)
   - Chain summary, Agent Registry summary, and Skill Registry summary follow
   - ASCII banner, version line, and Configuration block move to the bottom so operators see actionable info immediately
 - ux: ASCII-table startup summaries with ANSI colour
   - Chain Summary, Agent Registry, and Skill Registry are rendered as bordered ASCII tables using box-drawing characters
   - Column headers are printed in cyan; section separators and borders use dim styling
   - Agent Registry groups agents by chain key with a full-width pink section label row per chain
 - ux: Startup summaries show all configured env variables
   - Every supported `MENTISDB_*` env var is listed in the Configuration block, including those that were previously omitted
 - fix: Chain Summary now reads live thought and agent counts instead of stale registry values
   - Each chain is opened via `MentisDb::open_with_storage` at print time; stale registry values are only used as a fallback when a chain cannot be opened
 - fix: Off-by-one in `persist_chain_registration` — registry always stored N-1 thoughts
   - `persist_registries()` was called before `self.thoughts.push()` so `thought_count` written to `mentisdb-registry.json` was the pre-append count
   - Moved `persist_registries()` to after `self.thoughts.push()` so the persisted count always equals the post-append chain length
 - feat: `refresh_registered_chain_counts()` — startup registry repair
   - New public function that opens each registered chain, reads live `thought_count` and `agent_count`, and rewrites the registry JSON only when at least one entry has drifted
   - Called at daemon startup after chain migrations so any counts corrupted by the previous off-by-one bug (or by chains appended outside the daemon) are corrected on first boot
 - chore: Add `.env.example` documenting all supported environment variables with comments
 - feat: Web dashboard — admin UI embedded in the mentisdbd binary
   - Self-contained HTML/CSS/vanilla-JS single-page app served at `http://<host>:9475/dashboard`; no npm, no Node.js, zero new crate dependencies
   - HTML/CSS/JS live as real tracked files in `src/dashboard_static/` and are compiled into the binary via `include_str!` — diffs and IDE tooling work normally
   - Chain Manager: lists all chains with live thought/agent counts; click any chain to open the Thought Explorer
   - Thought Explorer: paginated table (25/50/100 per page) with 28-ThoughtType grouped multi-select filter (All/Clear per colour group); coloured type badges; click any row to open a full-detail modal (all fields, refs as links, content in scrollable pre block)
   - Agent Manager: agents grouped by chain; status badges; per-agent detail page with editable Display Name / Description / Owner fields, Revoke/Activate toggle, ed25519 public key add/revoke, and recent-thoughts preview
   - Skills Registry: lists all skills with status and version count; per-skill view with Rendered / Source / Diff tabs; inline markdown renderer; version selector; coloured unified-diff viewer comparing any two versions
   - PIN protection: set `MENTISDB_DASHBOARD_PIN` to gate all dashboard routes behind a login page; auth via `mentisdb_pin` cookie or `Authorization: Bearer <pin>` header; unset = open (suitable for localhost deployments)
   - New env vars: `MENTISDB_DASHBOARD_PORT` (default 9475; 0 = disabled), `MENTISDB_DASHBOARD_PIN` (default unset)
   - Dashboard URL printed in startup endpoint catalog; both env vars listed in Configuration block
   - `src/server.rs`: `MentisDbService.{chains,skills}` made `pub(crate)`; `MentisDbServerConfig` + `MentisDbServerHandles` extended with dashboard fields; `start_dashboard_server()` added; dashboard shares the same live `Arc<DashMap>` chains and `Arc<RwLock<SkillRegistry>>` as the REST service
 - fix: Chain Summary stale thought/agent counts resolved at startup
   - `refresh_registered_chain_counts` runs before servers start and writes live counts to the registry
   - `print_chain_summary` now reads directly from the refreshed registry (no redundant chain re-opens)
   - `api_chains` dashboard endpoint now uses `get_or_open_chain()` for all chains (eliminates stale fallback from registry)
 - fix: Thought detail modal missing ID, hash, and creation date
   - Frontend now reads `thought.id` (with fallback to `thought.thought_id`) and `thought.hash` (with fallback to `thought.thought_hash`)
   - Hash value is now copyable via a clipboard button (⎘ → ✓ on click)
 - feat: Chain browser sort order toggle + Genesis/Head navigation
   - New "⬇ Newest first / ⬆ Oldest first" toggle button (default: newest first)
   - "⏮ Genesis" and "Head ⏭" jump buttons for fast navigation
   - Backend: `ThoughtsQuery.order` param; `paginated_thoughts()` accepts `reverse: bool` flag
 - ux: Startup endpoint catalog shows friendly `my.mentisdb.com` URLs alongside `127.0.0.1` addresses
 - fix: Agent detail Owner field not displaying saved value
   - Frontend was reading `agent.agent_owner` but `AgentRecord` serializes the field as `agent.owner`
 - feat: Agent list table now shows Owner and Thoughts columns
 - chore: Bump dependencies — diffy 0.3→0.4, axum-server 0.7→0.8, rcgen 0.13→0.14, rodio 0.17→0.22
   - rodio 0.22 breaking changes: `OutputStream`/`Sink` removed; new API uses `DeviceSinkBuilder::open_default_sink()` + `Player::connect_new()`; `Source` trait: `current_frame_len`→`current_span_len`, `channels()`/`sample_rate()` return `NonZero<u16>`/`NonZero<u32>`
   - bincode reverted to 2.0.1 (3.0.0 dropped serde compatibility)
 - chore: MENTISDB_SKILL.md updated to v3 — 10 new undocumented agent patterns documented from borganism-brain chain analysis

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<HashMap>` 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<BufWriter<File>>`
   - `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

