• feat(web): memory viewer + design iteration-3 + markdown pass-2 (v0.20.7)

    vh released this 2026-07-07 02:11:29 -07:00 | 139 commits to main since this release

    Web-UI iteration-3 — three queued items landed together.

    (A) Design iteration-3 into static/index.html:

    • sparkline grid background ( + bg rect behind each
      relation-row spark polyline);
    • PAD strips → per-turn Δ bars: replace the vertical polyline strip
      (stripPoints/proj3 removed) with padDeltas→deltaStrip, a 12-cell HTML
      column of diverging bars (newest at bottom, magnitude→width, age→opacity);
    • mood orbit → dimetric open box (viewBox 124×140, az35/el25,
      D-right/A-left-back/P-up): ghost A×P wall + D×A floor +
      orbitProj/orbitShadowY/orbitWallPt/orbitAxisPt, JS-driven animated replay
      (orbitFrame per rAF via a singleton startOrbitAnim reading live ORBIT_HIST;
      reduced-motion → static final-state).

    (B) Memory viewer — a non-bifrost debug read on OUR own store, mirroring the
    #18-D2 affect read:

    • provider: RatatoskrMemoryStore.list_chunks + count_chunks + shared
      add_memory_read_route (GET /memory/chunks?agent_id=&end_user_id=), wired
      into build_memory_provider_app + the combined :8392 provider. end_user
      strict, agent_id lenient (an {end_user}-only chunk stays visible);
      {chunks,count,total}, empty match = 200 (not 404);
    • web: _memory_chunks_endpoint (GET /api/memory/chunks) supplies end_user_id
      server-side, forwards the browser agent_id, proxies to memory_read_url;
      create_app gains memory_read_url, entrypoint reads RATATOSKR_MEMORY_READ_URL;
    • pane: loadMemory/renderMemory/setMemHead — a live-polling MEMORY console
      pane (content·scope·origin·revision per chunk; count/total distinguish
      empty-store from scope-mismatch), polled on open + post-turn.

    (C) Markdown pass-2 in markdownSafe: GFM pipe tables (mdTable, alignment
    colons), indentation-nested lists (child list inside the open

  • ),
    ordered-list start=N numbering, streaming robustness (partial fence →
    code block; header-without-delimiter → paragraph until it streams in).
    esc-first → INV-004 held.

    Contract web_debug_surface.contract.md amended in-commit (create_app
    memory_read_url; dimetric-orbit + Δ-bar renderConsole POST-002; memory-viewer

    • markdown-pass-2 function contracts). 631 tests green; Playwright-verified
      all render paths (dark+light).
Downloads