Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions RELEASE-NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,46 @@ A plus in the panel's header starts a new session: the log clears and the next
message has nothing above it. Anything still running keeps running and stays in
the history list — the button clears the view, it does not stop the agent.

A message can carry pictures. Paste one into the box, drop one on the panel, or
pick them with the button in the row underneath, where Claude Code keeps it, and
each arrives as a numbered tile above the box. That number is the number the
agent is handed beside the picture, so the sentence can say which is which: the
layout from #1, the copy from #4. A paste writes its `#1` at the caret, since
one picture arriving where you are already typing has said which it is; a pick
or a drop is a handful chosen at a distance, so those only fill the tray, and
you click a tile to write its number or the x in its corner to drop it. Delete
a number out of the sentence by hand and its tile goes with it. A picture keeps
one number however often you point at it, and the numbering starts over once
nothing points at one, meaning an empty tray and no number left in the box.

The other direction comes with it. Whatever a tool hands the agent as an image
is drawn under the call that produced it, so a clone's working pictures — the
grid over the reference, the crops — appear in the transcript as they are made.
Comment on lines +121 to +123

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Limit the tool-image claim to Claude Code

When Codex is selected, tool-produced images do not appear under the call: codexEventsFromLine emits completed command and file calls without shots and has no branch that extracts image data, while only claudeStream.ts parses base64 image result blocks. This paragraph therefore promises behavior that the Codex-backed panel cannot provide; qualify it as Claude-only or add equivalent Codex transport support.

Useful? React with 👍 / 👎.

Nothing watches your project folder, and no tool had to be taught to do this.

Pictures also come off the canvas. Hover a mockup or a piece of brand material
and a + appears in its top-right corner; press it and that shape is in the tray
with its number already written into the sentence. A board is a page rather than
a picture, so the server draws it first and it comes over under its own
`<slug>/<file>.html`, which is the name the tile is captioned with, the name the
agent is handed, and the file it can go and open. Two fingers on the trackpad
over the button still pan the board, and a picture is attachable anywhere inside
its box rather than only where it has painted pixels, which for a logo on a
transparent ground is most of it.

A vector attaches by being drawn rather than refused. Every brand logo on these
boards is an SVG, and the CLIs read png, jpeg, gif and webp and nothing else, so
one sent whole would travel the entire way to be turned down at the far end. It
is drawn into a PNG in the browser instead, on the way in, at a 1024px long edge
— a vector has no pixels of its own to be scaled up past, and a 24px icon
attached at 24px is a picture with nothing in it. Nothing SVG-shaped reaches the
tray, the server or the agent.

Twenty pictures and 24 MB to a message, counted over the whole tray rather than
over the batch being added, and a file too big to fit is refused before it is
read rather than after. A run's copies of your pictures are deleted when it
Comment on lines +144 to +146

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Don't promise pre-read rejection for a near-full tray

When the tray already contains, for example, 23 MB and another 2 MB file is added, the early check in ChatPanel.tsx compares only the new batch with MAX_IMAGE_BYTES; it then calls readFile before the later whole-tray check rejects the addition. Thus a file that cannot fit is still read, contrary to this release-note guarantee and the memory-saving behavior it advertises.

Useful? React with 👍 / 👎.

ends.
Comment on lines +146 to +147

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Don't claim all image copies are deleted at run end

At run completion only the temporary imagesDir is removed; each attachment's base64 data remains in run.images, and /run/<id>/image/<n> continues serving it while the finished run remains among the server's retained runs. This is a misleading data-retention promise, especially for users attaching sensitive screenshots; state that only the on-disk copies are deleted, or actually discard the retained bytes.

Useful? React with 👍 / 👎.


The canvas is dark, and its panels are drawn in Vercel's Geist: its greys and
its accents, its icons, and Geist Sans and Geist Mono bundled so a board looks
the same offline as online. The chat panel, the inspector, the top bar and the
Expand Down
Loading