Published in openvibe-contracts v0.419.0 (docs/adr/ADR-059-canvas.md), rendered as is.

ADR-059: The canvas — an agent's live panel is data, drawn by one renderer

Evidence

Decision

  1. A canvas is a document of blocks:
  1. One renderer (OpenVibe.Shared ov-canvas.js) draws it everywhere, so a canvas looks and behaves the same in Chat, Surf, the Dock and Actor.
  2. What leaves the page is bounded:
  1. A canvas acts only through the person:
  1. It is live and versioned: version only grows. A viewer ignores an older version, and the agent replaces the whole document (at most 60 blocks), never parts of it.

Alternatives

Migration and rollback

A new contract. Nothing consumes it until Actor stores canvases and Shared draws them. Rollback is retiring the contract.

Tests

test/run.js: