Skip to content

Foreman v1.5.6

Choose a tag to compare

@R3tter R3tter released this 02 Sep 20:33
62fd66a

Point at what's wrong, several things at a time

Commenting on a running page meant one element per turn: you clicked something, wrote a note, sent it, and the agent started work on that while the other four things you'd spotted waited behind it — which is the wrong shape for looking at a screen and finding a list. You can now keep picking. "Add another" stages a comment instead of sending it, a tray at the bottom counts what's waiting and lets you drop any of them, and one Send delivers the lot as a single turn with an optional note framing the whole set. The composer also stopped covering the thing it's about: it now opens anchored under the element you picked, with that element outlined, instead of docking across the bottom half of the frame — flipping above only when there's no room below. Two silent failures went with it. A comment aimed at a session that was mid-turn used to be dropped on the floor, and one aimed at a dormant session went nowhere at all; both now queue and resume the way every other composer in Foreman does, and a send that genuinely can't get through says so and leaves your comments staged rather than eating them. And when several comments carried screenshots, every one of them pointed at the last picture written — each now keeps its own.

Comment on the page your agent is actually driving

The agent browser on the canvas was something you could watch and click, but not talk about: to ask about a specific button you described it in words and hoped the agent found the same one. You can now pick an element straight out of the live view. Hovering highlights what's under the pointer, clicking captures it — tag, CSS path, size, rendered HTML and the computed styles that explain how it looks — and the message tells the agent it's already on that page, so it answers instead of navigating somewhere else and losing what you were pointing at. The pick is a pure read: nothing is injected into the page and nothing is drawn in it, so an agent working in the same tab never sees that it happened and no outline turns up in its own screenshots. If it picked something up while you were typing and navigated away, the message names the page the element actually came from rather than quietly implying otherwise.

The page's console, where the agent can read it

A page an agent was driving could throw on every render with nothing anywhere saying so — the errors were real, in a browser with no DevTools you'd think to open, and the agent had no way to read them either, because a snapshot reports the DOM and not the log. Warnings and errors from the page now collect behind a badge in the browser node's title bar, count up as they arrive, and travel with any comment you send about that page, source location included. Only warnings and errors are kept — the rest is the bulk of a dev server's output and none of it answers "is something broken here" — and a new page starts clean, whether you navigated or the agent opened a tab of its own.

Pin the size the agent measures the page against

The agent browser followed the node it was drawn in, so "check this at mobile" was a hope rather than an instruction — the agent looked at whatever width you happened to have dragged the node to. The node's header now has a viewport control: Fit still follows the node and is still the default, and Mobile, Tablet, Laptop and Desktop pin a real device size, with a second click on the one already pinned turning it on its side. The point is that the agent inherits it — its snapshots and its screenshots are taken at whatever is set here, which is what the browser's own device mode can't do for you, since that resizes what you see. A pinned size letterboxes the view here, and clicks still land where you aim them.

Reuse a commit message you've already written

The messages you write again and again are, by definition, already in the log — but reaching one meant scrolling the graph and retyping it. Both commit boxes, on the session's Diff tab and on the Git page, now have a history button that offers the repo's own recent subjects, filtered live by whatever you've typed. It matches anywhere in the line rather than just the start, since the repeated part is often in the middle; merge, revert and squash commits are left out because git wrote those, not you; and picking one drops it in the box to edit rather than committing anything. Separately, a half-written commit message no longer disappears when you glance at the Chat tab and come back — it's kept per session, and survives a restart.

Conversations that have ended stop looking live

When two sessions messaged each other the canvas drew a blue wire between them for half an hour, which meant a blue wire only ever told you "these two talked at some point recently" — not what a live-looking canvas appears to be saying. A wire that's been quiet for three minutes now cools to grey and fades, and its label says how long ago the last message landed, so a finished exchange reads as finished long before it disappears. The arrival dot stopped replaying, too: it used to travel the wire again every time you left the canvas and came back, so a conversation that ended half an hour ago animated as if it were happening. It now plays for messages that are actually new. Elsewhere, a failure in Foreman's own background work — a failed update check most often — could raise a toast carrying an entire HTTP response body and stretch it down the height of the window; those are now trimmed to something readable, and a routine update check that can't reach GitHub no longer announces itself at all.


macOS, Apple Silicon. Signed with a Developer ID certificate and notarized by Apple — opens normally with no Gatekeeper warning, and in-app silent auto-update is enabled.