Skip to content

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 10:39
· 92 commits to main since this release

Bug Fixes

  • advertise tools capability in server get_info (2f9fdc4)
  • atomic writes in init (protect user CLAUDE.md), saturating budget add, single config load in status (df2a54b)
  • add edge-hover emission with point-to-segment distance test in GraphCanvas (a8c2434)
  • clippy warnings — Phase 5 cleanup (d83e65d)
  • correct FTS join rowid mismatch and enable FK/WAL pragmas per connection (d9b1398)
  • correct version output for status subcommand and crates.io builds (e019cfb)
  • replace TODO placeholder in hivemind init template with descriptive comment (0471df8)
  • cli.rs formatting (f466a49)
  • check Claude config files directly for client detection (e2ce02c)
  • allow both localhost and 127.0.0.1 as CORS origins for dashboard (c321bbd)
  • rust formatting (f386cbb)
  • accessibility and anti-pattern fixes (94c984a)
  • create dashboard/dist placeholder in build.rs if missing (2b3237c)
  • collapse nested if to satisfy clippy::collapsible_if (769b8e9)
  • create index.html placeholder in build.rs so dashboard tests pass (4eeb354)
  • commit dashboard placeholder so cargo publish does not modify source tree (0a1b9e1)
  • update server.rs for rmcp 2.0 API changes (ca9890b)
  • register full binary path instead of bare 'hivemind' command (52f9f97)
  • rust formatting (d7252e2)
  • rust formatting (9dc769d)
  • hold XDG_MUTEX in opencode test to prevent env var race (81e8c37)
  • quote FTS5 queries and tolerate per-recall failures in session start (050f8d1)
  • share one sync trigger end-to-end, honor sync_on_store, load sync settings in stdio mode (7d7fa83)
  • keep DB handle alive past server await in non-sync branches (0cdf8e3)
  • refuse to overwrite malformed .claude/settings.json in init hook merge (dd767fe)
  • register claude MCP at user scope, detect user-scope config, escape codex TOML path (90cbe66)
  • honest status output, unauthenticated-bind warning, real notice page for unbundled dashboard (15bcbcd)
  • align client with implemented API (envelopes, unix dates, conflict fields, edge statuses) (c0558d0)
  • grant id-token permission for crates.io trusted publishing (820881d)
  • build dashboard before release binaries (1cf8d78)
  • correct commands path in plugin manifest (4327ede)
  • add repository field for cargo-binstall url template (bd4d7f4)
  • show loader instead of false 'unreachable' flash on first load (1396e8c)
  • graph never drew active edges due to stale 'accepted' status literal (e7283da)
  • update integration test for api::router's new events param (37c754e)
  • cargo publish verify failed because build.rs created dashboard/dist (d0f690e)
  • flaky test from unsynchronized HOME/XDG env mutation across modules (1484984)
  • don't pin node on a stationary click, only on an actual drag (5ede512)
  • correct drag coordinate math under pan/zoom, fix pin-state divergence on stationary click (8b3a689)
  • TagInput's blur handler called setTimeout directly in a template expression, which throws at runtime (401f11a)
  • Settings scrollbar hugged content width instead of the panel's right edge (a8f3c24)
  • right-align Export/Import buttons in Settings > Data (d20947f)
  • match session_start_log truncated to SessionStartResult::truncated() semantics (2283b70)
  • address whole-branch review findings (aggregation page cap, progress-bar NaN, unused import, activity window) (2e34436)
  • wire up graph search/filter and add hover tooltips (cc148b9)
  • reset mentions edge status to active on upsert self-heal (1624b34)
  • sanitize title brackets in mention autocomplete; remove dead code (545774c)
  • dedupe get_edges_grouped when both endpoints author a reciprocal link (1231e33)
  • style markdown tables and checklist items (e912b42)
  • fix draft loss on memory switch/reload, add conflict detection (2320ebb)
  • restore dashboard/dist/.gitkeep so a fresh clone compiles (afde61a)
  • migrate pre-taxonomy edge relationships to parent/child/sibling (d752d10)
  • preserve edge status and link_text on export/import round-trip (1167bc6)
  • correct arc sweep direction in 2-node cluster blob capsule (6c5e664)
  • dashboard refresh on cross-process writes (25da5c1)
  • final review polish for suggest sessions (d082f4d)
  • prevent raw-mode leak on TUI enter failure (655c866)
  • show refresh errors inline in status TUI (e1ae031)
  • correct memory count drift in up TUI feed (67609e5)
  • revert broken OSC 8 hyperlink, keep plain styled URL (a77a80b)
  • wrap long values in hivemind status instead of clipping (cedfbf2)
  • size status box to content width instead of wrapping (5f46edf)
  • size up box to content width instead of fixed 56 cols (571c20f)
  • collapse nested if into let-chain, silence clippy::collapsible_if (8c6a849)
  • correct opencode plugin package.json for npm publish (3358cc3)
  • split Status from Server line in hivemind up activity view (d47f0f9)
  • correct repo URL casing in opencode plugin package.json (5ba0106)
  • silence kill/kill -0 stdio in status's k handler (e9305d8)
  • actually install bundled skills, not just MCP+prompt (49be422)
  • remove dead alias lookup in resolve_target, fix misleading test name (9c3b7df)
  • distinguish daemon-not-running from protocol errors in query_status (c05ee2a)
  • thread live status updates into the daemon's event handler (3cd3179)
  • mark room inactive on agent-turn failure, matching the explicit reset path (a1ada6e)
  • service uninstall/status check matrix unit file existence, not current config, to avoid orphaning it (f2e3f10)
  • wire room-to-memory-layer mapping into the Chat path (baa3d93)
  • resolve clippy warnings (64a2fef)
  • fix silent DM/session hangs, add debug logging, session TTL, and status integration (f85226f)
  • explicit --dashboard/--matrix flags for service install (f2d6b80)
  • guard output.content before push in chat transform (6df3966)
  • reinstall now restarts already-running service unit (edd5a28)
  • validation, config-driven cardinality, partial mutation, unified matching (e6fde28)

Documentation

  • add license (f713029)
  • add HiveMind dashboard design spec (Vite + Vue 3 Composition API) (ff123bb)
  • add Bruno API collection for all REST endpoints (aa6028f)
  • add GitHub workflows design spec (CI + cargo publish) (460bf38)
  • add GitHub workflows implementation plan (b4400ab)
  • add cargo metadata (575f833)
  • expand README with how-it-works, context budget, on-demand recall, and hook comparison (5b3b5d5)
  • add FAQ section to README (f79b850)
  • add MCP installation instructions for OpenCode, Kimi, Codex CLI, Cursor, and Windsurf (74e69da)
  • add Troubleshooting section with hint explanations and client detection table (d583739)
  • add integration guide, update README for libsql sync and sync.oxhive.dev (3d17beb)
  • remove em dashes from README (7877077)
  • add bulk import and migration section to INTEGRATING.md (55a7f5c)
  • clarify hivemind init vs /init CLAUDE.md scope (43827d7)
  • clarify storage backend as libsql in intro (a5502e0)
  • shortened project description (0754ef9)
  • update README and justfile for stdio transport (8bedb43)
  • add claude mcp list verification hint to install section (f029521)
  • add ~/.claude/mcp.json reference to Claude Code install section (767c945)
  • replace em dashes with clearer punctuation throughout README (9513b83)
  • add plugin install instructions, demote mcp install claude to manual alternative (d25ebca)
  • correct DB paths, document migrate/session-start, hook flow, sync semantics, layers (f40e17c)
  • correct plugin install flow (marketplace add + plugin@marketplace) and client detection method (f5f95a8)
  • document dashboard api_url/cors_origin overrides (1d176c7)
  • recommend cargo-binstall as default install method (eb52b50)
  • add graph canvas interactivity design spec (pan/zoom/drag) (75530f5)
  • add tag namespace system design spec (colors, predefined values, project grouping) (af64157)
  • add tag namespace system implementation plan (2c10abb)
  • add boolean tag-based recall design spec (809c078)
  • add boolean tag-based recall implementation plan (b842fb6)
  • document boolean tag expressions in recalls and memory_search's tags param (1fa91cd)
  • tick completed checkboxes in boolean tag recall plan (60a86a6)
  • add memory-connections skill for memory_get_edges (37b0d69)
  • document npm plugin install for OpenCode (729770d)
  • document the Matrix chat interface (7c79b10)

Features

  • add deps and model types (Layer, MemoryType, MemoryEntry, NewMemory) (cf69cd1)
  • add SQLite schema (memories + tags tables) (6e350d4)
  • implement SqliteStore::store() (ecb7d96)
  • implement SqliteStore recall_by_id and recall_by_title (c94b453)
  • add HiveMind MCP server with memory_store tool (4da510c)
  • add memory_recall tool with id and title lookup (4177952)
  • wire stdio MCP transport — Phase 1 complete (425967e)
  • add FTS5 index (with sync triggers) and edges table to schema (a679313)
  • auto-connect memories by shared tags on store, return auto_connected count (cd78061)
  • implement SqliteStore::search() with FTS5 snippets (baa56ac)
  • implement SqliteStore::update() with merge_content and tag replace (fc30f09)
  • implement SqliteStore::delete() removing memory, tags, edges, and FTS (b338333)
  • add memory_search MCP tool (afe597b)
  • add memory_update MCP tool (ea5e376)
  • add memory_delete MCP tool with confirm guard (8058f41)
  • config module — 3-layer .hivemind.toml discovery and additive merge (1d490a9)
  • token budget counting via tiktoken-rs with 10% margin (9f038a2)
  • store resolve_recall (id/title/FTS) and count (a816e12)
  • session-start budget loop (resolve recalls, enforce token budget) (0b9614f)
  • hivemind_session_start MCP tool — token-budgeted session context (aa9f49b)
  • clap CLI skeleton; main dispatches no-arg=server, init, status (76249c0)
  • hivemind init — scaffold config files and CLAUDE.md integration (873e622)
  • hivemind status — preview session-start injection and budget (66ccfa1)
  • scaffold dashboard/ Vite+Vue3 project, remove static/index.html (04e4b4f)
  • add all --hm-* CSS design tokens and base styles (055b1b9)
  • add dashboard API layer (client + resource modules) (a11c20b)
  • add ui + memories Pinia stores (65a345c)
  • add graph + feedback Pinia stores (fad360f)
  • add shared components (LayerBadge, TagChip, FilterChip, CopyButton, Toast, EmptyState, SkeletonCard, ConfirmModal) (1d72864)
  • add AppSidebar + StatusRow components (a3e0b33)
  • App.vue shell with hash routing, init sequence, sidebar, and stub views (f56f974)
  • Memories view — list panel, cards, detail panel with inline editing (3276912)
  • GraphCanvas — D3 force simulation on canvas, node click + connect mode (f98b730)
  • Graph view — toolbar, pending bar, detail panel, overlays, legend (621ad06)
  • Feedback view — ConflictCard, FeedbackCard, tabbed conflicts/feedback (1cbad0d)
  • Settings view — server info, sync config, export/import, danger zone (431fe28)
  • add feedback and conflicts tables to schema (0819e8e)
  • read models for REST layer — Edge, FeedbackItem, ConflictItem (f4ddcb9)
  • store listing + edge CRUD (list_memories, list_edges, create_edge, set_edge_status) (ff83639)
  • store feedback CRUD and conflicts listing (3f97bf4)
  • REST API — /api/v1 memories, search, edges, feedback, conflicts, status (00923a0)
  • server/dashboard settings from global config with spec defaults (6eed5a8)
  • hivemind up/dashboard — HTTP MCP at /mcp, REST at /api/v1, dashboard server (f6a8261)
  • kv table, SyncSettings, ConflictItem.title (d0059f1)
  • store kv get/set, write_conflict, resolve_conflict, list_conflicts with status filter (f1ba1ee)
  • store memories_since + upsert_memory with last-write-wins conflict detection (44525f0)
  • sync push/pull endpoints, conflict resolve, settings/sync API (c7f0de3)
  • sync.rs client loop with push/pull, with_sync wired into memory_store (57d92c5)
  • spawn sync loop in hivemind up when sync.enabled (a533592)
  • dashboard sync UI — SyncSection fields, conflict mapping, sync status in sidebar (dae26db)
  • MCP prompt infrastructure — prompt_router + prompt_handler + enable_prompts in get_info (50c2fc6)
  • memory-list, memory-status, memory-search slash commands (3271f92)
  • memory-edit, memory-flag slash commands (6f5a6b0)
  • get_conflict_by_id store method + memory-merge slash command (bfd897b)
  • suggest-connections slash command (e9eb630)
  • review-feedback slash command (9ee82e3)
  • all_eight_prompts_are_registered test — Phase 6 complete (b13f90d)
  • add integration tests + expose library crate for external test access (ea8202d)
  • add hivemind mcp install subcommand (bae9d28)
  • add refinery migrations, auth for sync endpoints, memory_type support, and dead code cleanup (fb0e046)
  • add hivemind mcp install for opencode, kimi, codex, cursor, windsurf (144375f)
  • add hivemind service install/uninstall/status for systemd (Linux) and launchd (macOS) (875ec3e)
  • warn on hivemind up and status when hivemind init has not been run (bfabad8)
  • smarter hivemind init output — detect registered clients, hint mcp install if none found (8a29734)
  • warn on hivemind up/status when init done but no mcp client registered (919b35c)
  • add ensure_global_config helper to auto-create config on first run (7646ab8)
  • swap rusqlite+refinery for libsql with async migration runner (3587ddb)
  • migrate SqliteStore to async libsql, remove HTTP sync methods (7fe38b4)
  • update all callers to async libsql, replace SyncClient with db.sync() loop (892ae66)
  • add memory_store_edge MCP tool (7th tool per spec) (7c2f71c)
  • add hivemind version command and cargo-release setup (fcd57d6)
  • add spinner during hivemind init client detection, fix em dashes in output (48b7587)
  • add cors_origin config for remote dashboard deployments (3fd5f71)
  • add spinner and AI client list to hivemind status (df04ad9)
  • switch mcp install to stdio transport for all clients (68a8c66)
  • add Claude Code plugin with skills and MCP registration (bd32bf5)
  • move database to XDG data dir, add migrate subcommand (4f5e338)
  • add V2 migration (layers, conflict local_content, sync journal, meta) with table-driven runner (77d5f60)
  • persist layer and memory_type, make store() transactional, dedupe auto-edges (28420eb)
  • support title updates, recount tokens on update, return full entry from PATCH (21b5d3b)
  • validate edge creation (duplicate, missing endpoint, relationship) at both surfaces (69609f2)
  • expose layer and memory_type via MCP tools; point suggest-connections at memory_store_edge (b84cefe)
  • complete REST contract (delete-all, export/import, edge/feedback patch, status filters, resolution alias) (e629c14)
  • real conflict engine with write journal, post-sync detection, and content-applying resolution (37e6aa6)
  • report last_synced_at and pending conflict count in /api/v1/status (4f7e8fc)
  • add hivemind session-start subcommand for deterministic hook-based injection (67268bc)
  • hivemind init installs a Claude Code SessionStart hook (c61df0c)
  • neutral accent token, responsive shell, mono editor, actionable empty states (4b0f627)
  • create-memory modal and real flag-for-review action (55220bc)
  • honeycomb visual identity, spacing overhaul, fix global CSS reset bug (71d4c74)
  • silently auto-refresh on memory/edge changes, decouple placeholder from dist (5565cbb)
  • add Pan Mode toggle (spacebar/Escape) to graph canvas (ede542e)
  • add mouse-wheel zoom and Pan-Mode-gated canvas panning (16ab580)
  • add node dragging with permanent pinning to graph canvas (40c84e4)
  • lowercase tags on write, reject more than one project:* tag per memory (67d067a)
  • add GET/POST /api/v1/settings/tags for the tag namespace registry (304b834)
  • fetch tag namespace registry, color TagChip by namespace (3e90f74)
  • add shared TagInput component with namespace-aware autocomplete (862e65e)
  • use TagInput for tag entry in NewMemoryModal and MemoryDetail (1ffb126)
  • add Tag Namespaces settings section (colors, predefined values) (3da3618)
  • prefix Graph node labels with project tag when present (e7ecd22)
  • toast when adding a project tag replaces an existing one (6205503)
  • add boolean tag expression parser (AND/OR/NOT, parens) (c080960)
  • add SqliteStore::find_by_tag_expr for boolean tag queries (c106c77)
  • support boolean tag expressions in .hivemind.toml session-start recalls (610dc52)
  • add tags param to memory_search MCP tool (AND-only boolean tag filter) (694978a)
  • inline tag editing, confirm modal for project tag swaps (6b68b64)
  • move Settings sections into tabs (5ac246a)
  • light/dark/system theme toggle (6bd73c3)
  • show project tag first in memory tag lists (1ead964)
  • add session_start_log table (3af1428)
  • add session_start_log write/read methods (d78aad0)
  • log session_start runs to session_start_log (22a6097)
  • log session-start hook runs to session_start_log (a7e2f04)
  • add GET /api/v1/session-logs endpoint (8450bb6)
  • add analytics store and session-logs API client (24c59e2)
  • add Analytics view as default landing page (c363686)
  • add tag/type/project/activity charts to Analytics (7aab939)
  • add recall-sessions token breakdown to Analytics (b627ba3)
  • improve bar chart marks and add OxHive sidebar footer (22c8050)
  • render memory content as markdown by default (1cc7a75)
  • add link_text column and target index to edges (V4) (7d8f44b)
  • parse phrase mention links from content (e8298f3)
  • maintain mentions edges from content links on store/update (e9c1bff)
  • render mention links as in-app navigation (9fa62d2)
  • @-mention autocomplete for linking memories in content (f664579)
  • remove graph connect mode; mentions links replace it (2fe2d7c)
  • replace relationship vocabulary with parent/child/sibling (3ad95bb)
  • add memory_get_edges tool; update relationship docs to parent/child/sibling (eccb019)
  • per-kind mention link colors and two-stage kind picker (f1d14c0)
  • color graph edges by relationship kind (bc32322)
  • add Reset button and conflict banner to memory detail (fb2834b)
  • show a DRAFT indicator for memories with unsaved edits (9532ef1)
  • improve graph edges, clustering, and canvas performance (c49f9ee)
  • add reason column to edges (edf1065)
  • add update_edge and get_edge to store (0cf48dd)
  • pending status and reason on memory_store_edge (797feb1)
  • add memory_update_edge MCP tool (196cdf5)
  • typed JSON payloads on SSE events (51dd14e)
  • configurable agent command in global config (c0ddaf5)
  • suggest session manager with FIFO revise queue (60b3a44)
  • REST routes for suggest sessions (1a20b9e)
  • suggest session store and SSE dispatch (0a74254)
  • highlight selected edge on graph canvas (34303df)
  • suggest panel replaces pending bar (c9287d0)
  • add OpenCode plugin, namespace Claude skills by client (c62822c)
  • add TUI harness with panic-safe terminal restore (bf46183)
  • add shared TUI header widget (53903c2)
  • interactive TUI for hivemind status (3cb15fa)
  • interactive TUI for hivemind up (47125bb)
  • render TUI inline under prompt instead of full screen (2b4ff73)
  • right padding for TUI boxes, clickable dashboard link (78c32d5)
  • audit stale connections and anchor mentions in suggest prompt (9554e92)
  • suggestion sidebar works from any page, shows diff on approve (42b0a80)
  • create new memory inline in detail panel, not a modal (17c708b)
  • persist in-progress new-memory drafts like existing edits (9304fad)
  • copy-ID buttons, suggestion diff in content field, sidebar fixes (92b4c5f)
  • hivemind status kill shortcut (k), real detach for hivemind up (d) (0c87c3c)
  • parse [matrix] config and write login result (a3c4204)
  • room-to-memory-target mapping resolution (b33bf2a)
  • in-memory per-room session_id map (4718253)
  • !hm reset / !hm store control command parser (04ca7cb)
  • SessionStore trait + OS keyring backend + test fake (7441cf6)
  • agent-turn spawner for Claude Code and OpenCode (fbe32ba)
  • wire hivemind matrix login/run/status subcommands (a6d3a8b)
  • hivemind matrix login (2198acd)
  • status Unix socket + hivemind matrix status (ed8ab44)
  • daemon event loop (hivemind matrix run) (cab5ef9)
  • pidfile for hivemind matrix run, rename up's for clarity (9808aed)
  • hivemind service install manages a second unit when [matrix] is configured (1437a55)
  • !hm store calls memory_store directly via MCP, bypassing the agent (d9619cb)
  • dashboard auto-update (check, badge, changelog, one-click apply) (9f3c6cf)
  • download markdown button, raw view by default for new memories (10212fa)
  • support OpenCode as the suggest-session agent (4197020)
  • explicit [agent] kind config + surface it in status/dashboard (19f671e)
  • namespace definitions, fixed/suggestion values, agent guidance (5312cb4)
  • add kind and scope default namespaces (9da3fe1)

Refactoring

  • harden store with transaction, dedup tags, DRY recall, set server name (eba9855)
  • remove version subcommand, --version flag is sufficient (d882e4f)
  • extract StatusData from render_status (04ad05b)
  • extract test modules into sibling *_tests.rs files (241baf4)
  • split cli.rs and api.rs into granular modules (82124b9)

Testing

  • enforce foreign_keys in test helpers; cover FTS backfill on pre-FTS DBs (345c2b2)
  • add unit tests to raise coverage to 82% (was ~50%) (400d0ce)
  • add coverage for XDG path helpers and migration copy logic (88c5593)
  • push coverage to 70.84% across store, server, api, cli, config modules (82b67bc)
  • restore two-distinct-target coverage lost in relationship taxonomy rewrite (a95bf29)
  • strengthen status text regression coverage (c3a643f)
  • cover no_color path in header widget (52a549f)