Skip to content

0.3.0

Choose a tag to compare

@willa-code willa-code released this 18 Sep 12:04
· 54 commits to main since this release

The Annotation is the unit of work

0.3.0 rebuilds the Review Surface around durable Annotations. A Builder-Reviewer
points at visible targets, writes a note on each, and sends them as one versioned
Visual Intent Envelope. Each Annotation carries its own identity, target evidence and
note, and each is verified on its own.

  • Relational Intent by direct manipulation. Shift builds a set of targets;
    dragging one already in the set states one relation — ordering, alignment, equal
    spacing, containment, shared property, comparative size — as one sentence before
    anything is recorded.
  • Passes and reversible verdicts. A Pass is the unit of review with its own state
    and outcome. A verdict can be changed in one act, which reopens the Pass it closed.
    Another Pass carries the open Annotations into a new Pass; Not Fixed is the
    single "no", and a send the agent has not collected can be taken back.
  • Reaching inside the artifact. Targets can be pointed at inside open shadow roots,
    nested shadow roots and same-origin frames, and a drawn Area encloses what it
    geometrically encloses across a boundary. Where the surface cannot look in it states
    the boundary with its true cause instead of reporting the target as gone.
  • Honest outcomes. Resolution reports Matched, Recovered, Ambiguous (with
    candidates, never auto-selected), a state no longer on screen, a boundary this
    surface cannot read, or Deleted — and separately whether a target was written before
    the revision now on screen.
  • Check-In. Steering and interruption are seen when the agent checks in between its
    own steps. There is no push channel and no wake mechanism.

Install changed: it is your agent's job now

The product ships a standard local MCP server and no installer. visual-intent setup, the Harness Registry and the bundled Skill are gone (ADR-0031): every agent
that can register an MCP server ships a registrar more current than our copy of its
format, and our copy was the most drift-prone code in the repository.

Register the server with your own agent's mechanism:

# Claude Code
claude mcp add visual-intent-layer -- npx -y --package visual-intent-layer@latest visual-intent-mcp
# Codex
codex mcp add visual-intent-layer -- npx -y --package visual-intent-layer@latest visual-intent-mcp
# opencode
opencode mcp add visual-intent-layer     # then give it npx and the arguments above

pi works through pi-mcp-adapter with the same entry in the project .mcp.json, and
any host that can launch a local stdio server works. Registry-aware clients can find
the server as io.github.willa-code/visual-intent-layer.

Install it on the machine where you look at the screen. The Review Surface opens a
browser there and binds a loopback port there.

The running server now reports its own version in every open_visual_review result, so
a report about odd behaviour can name the build.

Breaking changes

  • visual-intent setup is removed. Re-register with your own agent's MCP command.
    An existing registration from setup still works — it points at the same server —
    but this release no longer reads, writes or repairs any Harness configuration.
  • The bundled Skill is no longer published. Its four triggers now live in
    open_visual_review's description, which is the only trigger surface a tool call has.
  • Envelope 0.4 is current. 0.2 and 0.3 envelopes still load and are read as the
    current version; 0.1 is refused by the validator, and its schema is kept only as a
    historical record of the wire shape.

Smaller things

  • The published tarball drops from 209 files to 179: dev tooling, the Skill and the
    packaged MCP snippet no longer ship.
  • Every published version is now an official release; the pre-release channel is
    retired.
  • A browser that cannot be opened is reported rather than killing the server process.

Full Changelog: v0.2.1...v0.3.0