All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- edda watch — real-time TUI with peers, events, and decisions panels; now built into
eddabinary behindtuifeature flag (default on), with plain-text fallback when disabled (#34, #44) - edda ask — cross-source decision aggregator combining ledger, coordination, and transcript data (#54)
- edda init --no-hooks — auto-detect
.claude/and install bridge hooks;--no-hooksto skip (#50) - MCP server expanded from 3 to 7 tools:
edda_status,edda_note,edda_decide,edda_query,edda_log,edda_context,edda_draft_inbox(#37) - SQLite ledger — migrate from append-only JSONL to SQLite with hash-chain integrity (#27)
- Decisions table with auto-extraction from notes and supersede tracking (#28)
- Tantivy full-text search replacing FTS5, with fuzzy and regex support (#36)
- OpenClaw bridge — full 7-event hook support matching Claude bridge (#16, #19)
- Multi-agent coordination — auto-claim scope from edited files, decision conflict detection,
edda claim/edda requestcommands (#24, #121) - Late peer detection — inject coordination protocol when new peers join mid-session (#11)
- Context budget — reserved tail slots for critical protocol sections (#9)
- CLI commands —
edda bridge claude render-*,edda bridge claude heartbeat-*exposed as subcommands (#20) --jsonflag foredda draft list,edda draft inbox,edda conduct status- TUI: focus files, current task in peers panel; type-aware event display with color coding
- Auto-init
.edda/whenedda watchruns in uninitialized workspace (#45)
- Ledger storage switched from JSONL files to SQLite (breaking: old
.edda/ledger/events.jsonlno longer used) - Search engine switched from SQLite FTS5 to Tantivy
- OpenClaw integration consolidated into
integrations/openclaw/ - License changed to MIT OR Apache-2.0 dual license
- Session identity resolution via heartbeat inference (#145)
- L2 bindings visible in solo mode (#147)
- Git worktrees resolve to common root for consistent
project_id(#21) - Claims sorted by label for stable display order
- Ledger auto-creates schema on open to prevent missing table errors
edda initrepairs partial workspace (missing schema/HEAD)- Event dedup and
project_idindexing in search
- edda-tui standalone crate — TUI consolidated into
edda-clibehindtuifeature flag (#44) - JSONL dual-mode code,
refs/directory, andedda migratecommand (#40) - TypeScript orchestrator prototype (replaced by Rust
edda-conductor)
Initial release.
- 15 Rust crates: core, ledger, cli, tui, bridge-claude, bridge-openclaw, mcp, ask, derive, pack, transcript, store, search-fts, index, conductor
- Append-only hash-chained event ledger
- Claude Code bridge with 7 hook events
edda decide,edda note,edda ask,edda context,edda log,edda search- Draft proposal workflow (
edda draft propose/approve/reject) - Branch operations (
edda branch,edda switch,edda merge) - Multi-phase plan orchestration (
edda conduct)