Completed Plans
Archive of implementation plans that have been executed and shipped.
Content Addressing — COMPLETED ✓
Completed: March 2026
hash-based fetch, in-memory index, mirror foundation. All five implementation steps completed:
- ✅
content-hashadded to FETCH responses — SHA-256 of stripped body in metadata - ✅ Hash index in Store —
BuildHashIndex(),LookupHash(),UpdateHashIndex(),RemoveHashEntry() - ✅ Index updates on writes —
Write(),SetArchived()keep index synchronized - ✅ Hash-based FETCH —
isHashPath()validates/sha256-<64hex>,handleFetchByHash()retrieves by hash - ✅ Startup initialization —
BuildHashIndex()called on server startup
Key implementation details:
- Response metadata includes
content-hash: sha256-<64hex>(stripped body, not including store frontmatter) - Hash paths
/sha256-<hex>detected by pattern match in FETCH handler - Read auth checked after hash resolves to real path (auth bypasses prevented)
- Hash-based paths protected from writes (PUBLISH, APPEND, ARCHIVE reject them)
- Current versions only indexed (archived docs excluded)
- In-memory index rebuilt on startup from content directory
Files:
server/internal/handler/handler.go—content-hashin responses, hash path detection,handleFetchByHashserver/internal/store/store.go— hash index struct,Build/Lookup/Update/Removemethodsserver/cmd/demarkus-server/main.go—BuildHashIndex()call on startup- Tests in
handler_test.goandstore_test.go
Foundation for: Federation (mark_index/mark_resolve), content-addressed mirroring, distributed caching
Federation — COMPLETED ✓
Completed: March 2026 (Phase 3)
Agent-driven hash discovery, mark_index, mark_resolve. Built on content addressing.
Shipped:
mark_indexMCP tool — crawls source server, collects hashes, publishes index to hubmark_resolveMCP tool — resolves content by hash using hub indexclient/internal/indexpackage — Parse, Build, Merge for markdown hash index documents- Manifest check on index publish,
forceoverride,dry_runmode, 1000 doc cap - Enables hub-based discovery and content resolution
Persistent Graph — COMPLETED ✓
Completed: March 2026 (Phase 4)
Disk-backed graph store, incremental crawl, backlinks. Information is findable through connections.
Shipped:
client/internal/graphstorepackage — nodes, edges, etags, timestamps, atomic writes, schema versioningCrawlAndPersist— unified crawl + merge + save, nil-safe, shared across all clientsmark_backlinksMCP tool — reverse link lookup, "what links here?"- Graph export —
Store.Export()renders as publishable markdown,ParseExport()parses back - TUI graph view — Links (BFS), Backlinks (reverse edges), Topology (all nodes sorted by importance)
- Graph seeding — TUI graph loads instantly from stored graph while crawl runs in background
- Cell escaping — handles pipes and backslashes in titles, rune-safe UTF-8 truncation
Foundation for: Agent discovery, network topology mapping, content resilience