0.9.0-beta.21Beta

Released

Added

  • Agents can run a script over your document (run_script). For work that would take many calls or some arithmetic, such as numbering 500 layers, lining up a grid or checking every text against a rule, an agent can now send one JavaScript script. It runs in Polyform's sandbox, with no network, files or anything of the app's, for at most 30 seconds, 20,000 calls and 64 MB. Everything it changes is one undo step labelled with the agent's name, which you can roll back from the Changes tab like any other step. If it fails, runs out of time or memory, or you press Esc, nothing it did is kept. While it runs, your own edits wait. Agents need the edit permission for it, and it is refused when Polyform is view only. The scripted task suite's 500-layer rename (T19) now takes one call instead of seven.
  • Agents can see which fonts are here before writing text (get_fonts). It lists the fonts Polyform ships, the families installed on your PC with their styles, and every family your document uses, each marked as shipped, installed or missing. Text in a missing font keeps its name but draws in Inter, so an agent can now pick a font you have instead of finding out after the write. For one family it also lists the faces and, for a variable font, its axes and OpenType features.
  • Agents can flatten, carve, set ruler guides and crop images. edit_document gains flatten and carve, which bake layers into one editable vector exactly as Object → Flatten and Carve do, and guides, which sets a page's ruler guides. An image fill an agent writes can carry a crop and exposure, contrast and saturation, as the Inspector's do. Each is part of the agent's undo step and can be rolled back from the Changes tab, which now names changed ruler guides. An agent's guides are undoable; the guides you drag from the rulers still are not.
  • Agents can lock a layer's proportions, as the lock beside width and height in the Inspector does. A new check now fails the build when an Inspector control can set something no agent can, unless the gap is written down with its reason (today only a 3D model's view and lighting).
  • Review an agent's changes while it is still working. While an agent is connected, the chip on the canvas shows Changes · 6 (the steps of its session still to review) before Hold, and opens the Changes tab on that session. A session that is still connected says LIVE, the step the agent is on says "In progress", and each change shows up as it lands. Rolling back works mid-session. If one of the agent's changes is still being made (an image import or a trace, say), Polyform waits for it to land first, and holds the agent's next change until the rollback is in. The agent is told as before. If the change still hasn't landed after 10 seconds, nothing is rolled back and the status line says so. (#218)

Changed

  • A rollback that waits for an agent's change now names the row in the status line: "Rolling back “Laying out the nav” once the agent finishes the change it’s making…", "Restoring …" for Restore, and "Rolling back 4 steps by Claude Code …" for a whole session. A second click says which rollback is waiting ("One at a time: try this one after it."), and after 10 seconds the line says "Didn’t roll back “…”: the agent was still making a change after 10 seconds. Nothing changed." (#220)
  • A step the agent carried on with after you rolled it back says so. Its new row in the Changes tab has a third line, "Carried on after your rollback at 16:58", and a screen reader hears it with the row. (#220)
  • When a rollback had to wait and something new came to build on it, the Roll back dialog says why it is asking (again). An info box at the top reads "The history changed while this waited: 1 more step builds on it now." (or "You edited 2 of its layers meanwhile."), and the choices are worked out afresh. It now asks only when something new does build on the row; before, any change landing during the wait reopened the dialog. (#220)

Fixed

  • The agent chip could end in a lone " · ". When the chip was at its widest (held, with Changes showing and the note open), the agent's step gave way but the dot before it stayed: "AI is held — it is waiting for you ·". The dot, the step and its "4 of 6" now go together. (F-346)
  • An agent rewriting an image fill dropped its crop and adjustments. Writing the same image again now keeps them unless the agent clears them on purpose.
  • An agent could change every object in the Polyform window by naming __proto__ as a layer id. edit_document took that id, and constructor and the other names every object inherits, for a layer: an update wrote its name onto all of them, and a move put a function into the page's layers. Those ids are now refused like any id that names no layer. Nothing like it was seen in use. (F-343)
  • Save As, Save a Copy and New Project could write into another project's folder, in beta.20 and earlier. Picking the name of a project that was already there asked nothing: its design and undo history were replaced, and its other pages, images and comments were left mixed into the copy. Polyform no longer writes a project into a folder that has files in it, or into a link or another project's folder. It names the folder, says why, and lets you choose another name. Save As onto the project's own folder is still a plain save. polyform new refuses the same folders. (F-344)