Skip to content

Visual Intent Layer 0.4.0

Latest

Choose a tag to compare

@willa-code willa-code released this 20 Sep 14:24
· 3 commits to main since this release

Two features and nine fixes since 0.3.2, plus the repository's first LICENSE file.

Features

The surface is grounded in what you pointed at. Rows and records now carry the words you selected, the rectangle you drew and the element you pointed at, and a name the surface wrote is marked as the surface's own. Resolutions are an append-only log with a derived view, so a later act supersedes without erasing, and a written draft keeps its slot while an empty one is still re-pointed — pointing somewhere else can no longer destroy writing. The rail speaks plain words while the record keeps the precise ones, and the composer is docked at the rail's foot so no part of the artifact hides behind the thing written about it.

Delivery speaks once, and judgement is invited by evidence. The headline, the Agent disclosure, the Pass header, the attention count and every row now derive from one account over the stored delivery facts. Approve is put forward only when the Adopted Revision is later than the one the note named and no target blocks it, and each row says which revision a verdict would concern. The overflow and theme are keyboard-operable menus, the drawer declares itself nonmodal and behaves as one, and first-use guidance names acts rather than implementation.

Fixes

  • The stacked rail stays reachable at 900 CSS pixels and below: a bounded 40/60 split keeps the artifact in view while the rail becomes one scroll path, and at 600 pixels tall or less the head and footer join that path.
  • A recovered target names the node it actually matched and withholds Approve when that name differs from the one pointed at, until it is re-pointed.
  • A target inside a same-origin frame that has not loaded is named unloaded rather than cross-origin.
  • A linked stylesheet's own relative assets are served from the stylesheet's directory, so decorations the human is asked to judge are not silently missing.
  • open_visual_review returns revisionScope, so an agent can tell a complete file-derived revision from a partial one.
  • A refused visual-intent open stops the service instead of serving forever after printing its reason.
  • An existing but unreadable session or Check-In record refuses the launch by name, keeps its bytes, and is never replaced with empty state.

Docs and packaging

  • The README is now a front door in the shape of the Playwright MCP README: purpose, key features, requirements, standard config, per-client details behind collapsibles, and update and uninstall guidance.
  • The repository ships the canonical Apache-2.0 LICENSE file that package.json and the README already declared.
  • The verification map, design references and the ground-in-code audit are reconciled with their evidence.