v5.0.0 — mark a page by moving things and striking things out
Breaking
- Stop is withdrawn. Asking the agent to stop a round mid-flight could not
do the one thing it promised — interrupt the turn — so it is out rather than
half-working. Thecancelledcommand,/api/cancel, thecancelsentinel
and theCANCELLEDstream event are gone, andcheckalways exits0. A
round already on disk with statuscancelledstays terminal, so nothing in
your project needs migrating. What it would have to do to come back is written
down indocs/review-wishlist.md. - Host profiles move to
plugins/vstack/host-profiles/.hosts/now holds
only the adapter markdown that maps review operations to a product's tools.
This is inside the plugin, so an installed copy updates itself.
Added and fixed
- Linked now means a session is listening. The workspace used to show Linked
on evidence a session could produce without receiving anything. A stream
watcher now opens with aHANDSHAKEline naming a command, and its heartbeat
only starts onceackanswers it; unanswered, the watcher exits after two
minutes (--handshake-timeout <seconds>). Presence also requires rounds to
move: one queued and unclaimed for 90 seconds drops the link, because a
watcher whose events nobody reads should look the same to you as no watcher at
all. A watcher covering no review reportsUNLINKEDrather thanLINKED. - The cog says which version you are on. It shows the version the workspace
loaded with and the one the server is running now, and offers a reload when
they differ — so a tab left open across an update says so. - An answer written on a comment carried in from an earlier version is kept.
Replies and note edits copy the comment into the current version first, so the
answer lands in the file the workspace reads back. - Two new ways to mark up a page: Move and Delete. A toolbar beside the page
holds Comment, Move and Delete — what Annotate draws with, on keysc,m
andd. Neither new tool needs a note: the mark is the instruction, and
anything you type adds to it. Both outline whatever the pointer is over, so
the element the gesture will take is settled before you press.- Move draws an arrow from a thing to where it should go. It records the
element you dropped it on and which side of it — inside, before, or after —
so your agent is told "after the Cancel button" rather than "180px right",
which stops meaning anything the moment the page reflows. - Delete strikes out what should go. Drag across text and exactly those
words are marked for removal; the strike finds them again by their text when
the page is rebuilt, so it stays on them. Click an element instead and the
whole thing is marked.
- Move draws an arrow from a thing to where it should go. It records the
- A watcher finds a review whose page lives outside the directory it was
started from. A review's files sit beside the page under review, and
watch --allfound them by walking the directory it ran in. A page written to
a temp directory took its files with it, so the watcher walked straight past a
running review and the workspace said Unlinked while a session was in fact
listening. Serving now leaves a pointer where it was run from, and the watcher
follows it. - A watcher that covers no review says so. It reports
UNLINKEDinstead of
LINKED, because nothing is listening to any workspace at that point whatever
the handshake proved. A handshake also carries the token it printed, so one
watcher's answer no longer brings a different watcher live.