Skip to content

dent8 v0.7.2

Choose a tag to compare

@github-actions github-actions released this 12 Jul 11:21

Install: cargo install dent8-cli --locked · pip install dent8 · npm install dent8 · prebuilt archives below. Docs: https://xyzzylabs.github.io/dent8/

The headline: dent8 ui — the stock binary now serves its own local, read-only memory dashboard (Memory / What-if / Health), read-only by construction.

Added

  • dent8 ui — a local, human-first memory dashboard (the first deliverable of
    ADR 0020, unfrozen): one command
    opens a dashboard in your browser, served straight from the stock binary, designed
    around the belief base rather than the plumbing. Four views:

    • Memory (the landing): a headline verdict (everything verified / N contested /
      N stale / integrity failed), stat tiles, and the believed facts as cards — the
      value shown large, a freshness color-bar down the side, authority + freshness badges,
      contested facts showing both rival values inline. Click any card for a slide-in drawer
      with the full integrity receipt (authority, hash, chain, corroboration, survived
      challenges, validity window) and the complete replay timeline.
    • Activity: every event across the log, newest first (rejected supersessions appear
      as the fact.challenge_rejected events recorded on their incumbents).
    • What-if: re-fold the log under a different trust policy and see now-vs-under-policy
      with per-fact diffs — deterministic, no model calls.
    • Health: a status-page rollup — a healthy/attention banner, integrity/witness/doctor
      status cards, and collapsible detail (doctor checks, witness coverage + TAMPER/ROLLBACK,
      native scan/reconcile per agent profile, and the raw runtime env under system details).

    Plus a light/dark toggle, deep-linkable tabs (#health etc.), and a click-to-pause live
    poll. Read-only by construction — every endpoint is a GET over the same op_*/snapshot
    code the CLI and MCP use, so no separate write path exists (the ADR's hard constraint);
    the transport is a minimal hand-rolled HTTP responder over tokio (zero new dependencies)
    that binds 127.0.0.1 only, refuses non-localhost Host headers (DNS-rebinding), and
    answers GET only. Fact values are HTML-escaped everywhere — agent-supplied text can never
    execute in the operator's browser. Default port 3368 ("dent" on a phone keypad);
    --port/--no-open to adjust. The Tauri desktop shell remains the later packaging step
    and will wrap this same surface.

Full changelog: https://github.com/xyzzylabs/dent8/blob/main/CHANGELOG.md