From 07fa5c0efd1b9a64d386331ff6a73d1576088257 Mon Sep 17 00:00:00 2001 From: mvschwarz Date: Wed, 5 Aug 2026 06:07:32 -0700 Subject: [PATCH] =?UTF-8?q?0.8.0=20=E2=80=94=20annotations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A human and an agent can now mark up the same screen, which is the gap the three existing primitives left: focus says what the user is looking at, drive operates the surface, and neither lets either party say 'this part, here, is wrong.' Minor rather than patch: new verbs, new capabilities, a new contract document and three new surface->shell messages. All additive, so contractVersion stays 0.1 — a surface built on 0.1 stable items is unaffected and a surface that adopts nothing behaves exactly as before. README updated BEFORE the tag, deliberately. v0.6.0 was tagged at a tree that still held every defect a cold build then found, and main-correct-with-the-tag- wrong is the worse state because the tag is what gets pinned. --- README.md | 43 ++++++++++++++++++++++++++++++++++++++++--- package.json | 2 +- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0bc12e2..e549aa0 100644 --- a/README.md +++ b/README.md @@ -73,12 +73,49 @@ watch a live-updating surface work. ## Status -Package 0.7.1. Contract v0.1 — unchanged, because everything below is additive +Package 0.8.0. Contract v0.1 — unchanged, because everything below is additive or a behaviour fix, and the contract version only moves on a breaking change. Pre-release. -**All three agent primitives are now in the SDK.** An agent can see what changed, -see what the user is looking at, and operate the surface they have open. +**All three agent primitives are in the SDK**, and a human and an agent can now +mark up the same screen. An agent can see what changed, see what the user is +looking at, operate the surface they have open, and point at the part of it that +is wrong. + +### What is new in 0.8.0 + +**Annotations.** A human or an agent can draw on a surface and say what should +change — circle, box, arrow, text, with the two authors rendered differently +because who marked something is part of what it means. + +**The shell draws them, over the stage.** That is the design decision the rest +follows from: a feature that required surfaces to cooperate would work on none of +the surfaces that already exist, which is the population that matters. A surface +written before this release is annotatable and needs no change. + +Three optional messages exist for surfaces that want to be *more* correct, and a +surface that sends none of them still gets a working board: + +- A surface holding several documents behind one id can say which board it is + showing, so marks drawn on one page do not hang over another. +- A surface that renders its real content in a same-origin nested frame can name + that frame, so an agent naming an element anchors to the document the human is + looking at rather than to the surface's own chrome. +- A surface that moves something can ask for a re-measure. An element that *moves* + changes no size and no scroll, so nothing else fires — the mark would sit at the + old geometry still reporting itself anchored. + +**An anchor that loses its element says so.** It is drawn dashed and badged rather +than quietly relocated to whatever now occupies that space, because a mark that +slides is worse than one that admits it lost its target. + +Marks are held in memory unless the runtime is started with `--annotations `, +and the board says **"session only"** rather than "persisted" when nothing is +storing them. See `contract/annotations.md`. + +**Also:** a failing provider install during provisioning now prints what npm said. +It ran under `--silent`, which suppresses errors as well as progress, so a failure +aborted the install with no text to act on. ### What is new in 0.7.1 diff --git a/package.json b/package.json index f332de1..19ed013 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@openrig/studio", - "version": "0.7.1", + "version": "0.8.0", "description": "SDK for building agent-driven mini-apps: thin surfaces paired with agents, running in a shared shell.", "type": "module", "scripts": {