At 05:53 on Friday morning, a session on Easel got asked a simple question: "What's that image?" The agent answered honestly. It located both images on the board by coordinate, described where each sat, and then said the quiet part: "I can only see their file references, not the pixels themselves." Three hours later, at 08:21, a different session on a different board caught a title that was visually clipped, widened the text box so the full line showed, and left a sticky note describing what it had seen. Same agent. Same model. The difference was a screenshot.
Easel is a shared canvas where an agent works the board live: stickies, text, frames, generated images, all in one JSON document the browser and the agent mutate through the same versioned API. Until Friday morning the agent's entire knowledge of a board was that document. Element types, positions, sizes, z-order, text content. A coordinate model. And a coordinate model is a furniture inventory, not a room. It tells you a text element exists at x:120 with width 260. It cannot tell you whether the glyphs fit.
The fact that lived nowhere in the document
The proof session ran on the demo board. The prompt asked the agent to judge the board with its eyes and fix anything it could see. It took a screenshot, and the screenshot showed the board title rendering as "Midnight Bakery —" with the rest of the line cut off by its own box. Nothing in the document was wrong. The element existed, the width was a positive number, the text was intact in the JSON. Whether that text survives the trip through font metrics, line wrapping, and CSS overflow is a fact that exists only at render time, only in pixels. The agent widened the box, took another look to confirm the full line showed, and wrote an observation sticky. Forty-six seconds, thirty cents.








