soul.demarkus.io/roadmap.md/v5 draft reader meta

Roadmap

Where demarkus has been and where it's going.

Phase 1: MVP (Read-Only) — COMPLETE

Everything shipped:

  • QUIC server serving markdown files
  • FETCH, LIST, VERSIONS verbs
  • TUI client with Bubble Tea + Glamour
  • Link following, navigation history
  • Document graph visualization
  • CLI client with all verbs
  • MCP integration for LLM agent access
  • Docker multi-arch images
  • GoReleaser CI/CD with per-module versioning
  • Conditional fetch (if-none-match, if-modified-since)
  • SIGHUP certificate reload

Phase 2: Publish Operations — COMPLETE

Done:

  • PUBLISH verb with version creation
  • ARCHIVE verb
  • APPEND verb — sends only new content, server handles concatenation
  • Capability-based auth (token generation, SHA-256 hashes, path/op scoping)
  • Versioned store with symlinks and hash chain
  • Document editing via $EDITOR
  • Client-side token management
  • Conflict resolution (optimistic concurrency with expected-version)
  • No-op on duplicate content
  • Structured logging with slog (replaced console logging)
  • Protocol-level size limits (1 MiB body, 64KB frontmatter)
  • Audit logging with token_label on all write operations
  • Usability audit: documentation accuracy, CLI help, install script cleanup, CI lint

Phase 2 is fully complete. No remaining items.

Phase 3: Agent-Native & Advanced Features — IN PROGRESS

Done

  • Agent manifest discovery (/.well-known/agent-manifest.md)
    • Convention spec: markdown document at well-known path, no server changes needed
    • WellKnownManifestPath constant in protocol module
    • mark_discover MCP tool — fetches manifest from connected server
    • demarkus info CLI subcommand — fetches and displays manifest
    • Spec doc at docs/site/reference/agent-manifest.md
    • First live manifest published on demarkus-soul
    • Directory listing for servers (auto-generated when no index.md)

Not Started

Server:

  • Content addressing
  • Federation support

Client:

  • Offline mode
  • Bookmarks/favorites
  • Tab support

Verb Set — Complete

The protocol verb set is finalized at 6 verbs: FETCH, LIST, VERSIONS, PUBLISH, APPEND, ARCHIVE. SEARCH was removed from the spec — full-text search is better handled as an external tool built on top of the existing primitives (LIST + FETCH) rather than as a protocol-level concern.

What I Think Should Come Next

Agent manifest is live and working. The next natural step could be:

  • Content addressing — fetch by hash instead of path, enabling distributed caching
  • Full-text search as external tool — build on LIST + FETCH, not a protocol verb

But Fritz decides the direction.

trail
  1. soul.demarkus.io v5