Desktop builds from every branch. Check the branch and result, expand any commit notes, then choose a download.
Filters search the full history. Enter an exact branch name, or click a branch below.
About these downloads
Choose notarized macOS builds when available. Signed builds may still be awaiting notarization. Downloads are ZIP archives, retained for 14 days. Only installers uploaded after October 2, 2026 at 16:37 UTC are public. A failed build can still have a usable installer from a successful packaging job.
PR, commit, and log links open GitHub and may require repository access. Notes are the commit author's description.
18 matching builds · Page 1
A person and an agent drawing on one canvas page each undo only their own change (DRA-309)
The note that an agent changed something comes from main, while the change
itself comes through the file's room, and either can reach the person's
window first. When the note came first, the window recorded the flash the
moment the room brought the change, before the canvas had drawn the view
that change adds. A view ignores flashes recorded before it appeared, so a
new artboard never washed. The flash is now recorded once the canvas has
rendered the change, by which point the new view is there to show it.
The activity proof's cleanup step now waits for the previous wash to end.
A change that lands within 400 ms of the same layer starting to wash joins
that wash, and the proof can get there that quickly. (DRA-309)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Quitting reaches an agent connection that is still opening its file
Liveblocks signs an agent's connection in through main while the file is
still loading, which makes it part of closing Draftly. The agent window
only showed the close handshake connections that had finished opening, so
quitting then reported that a file didn't get ready to close, and the
connection was never frozen, so its call could still write after closing
began. A loading connection is now part of the handshake from the start:
it freezes like any other, so nothing it does can land, and quitting lets
go of it before it has finished loading.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Merge branch 'worktree-agent-a35f0f7de49245078' into claude/dra-314-311-309-313-e7ff78
Every proof now starts agents with start_agent and names the agent and the
file on each call, through one small harness, and reads the tools' text
replies. The paired run starts two agents on one connection, as two subagents
of one client would, and now also proves that:
- both agents edit two files, one with no tab, while the person sees both and
what each is doing, and closing a tab never stops an agent
- a teammate in the file sees the agents as the person's agent user under the
person's name, and no window shows an avatar for an agent
- an agent's id outlasts a restart, and its undo from before says it isn't
available
- an agent saves a version that History can preview, and Draftly saves one
before an agent's first edit
- closing Draftly mid-screenshot closes the agent window and ends the call
Proofs of things that no longer exist are gone: workstream places and limits,
finishing, releasing and archiving, checkpoint notes, per-capture hidden
windows, and main's own agent sockets.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
set_styles_many refuses a layer named twice, saying to put its styles in one edit
The window gets the whole list of agents (name, latest status, last call and the files they have
open) and hears every change, so nothing polls. It also hears where an agent's change landed, for the
flash, without anything being broadcast to the file's room. Main has no agents to report yet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Main and the agent window agree on what they will ask each other for agent work
Before an agent reads or edits a file, the agent window opens a connection through main, which then
hands out tokens only for that connection's file until it closes. The window can also ask main to
keep recovery copies, save a version, rank layers or judge review marks, and it reports where an
agent's change landed and that a slow call is still working. Main can ask the window to picture an
artboard for the person's image-prompt suggestion. Until both sides are built, these answer plainly
that agents can't do this yet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Merge branch 'worktree-agent-adecc81c0b91f06e9' into claude/dra-314-311-309-313-e7ff78
People see an action's refusal beside the field it is about, so the message no longer starts with the
field's path; agents still get the field named separately.
Every action that takes the instances a layer was edited through now refuses a list that doesn't
show the layer. The window always names the instances it drew, so such a list can only be a
mistake, and editing on regardless would change the component for every instance.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Agent tools get a typed contract, separate from the code that runs them
A tool's contract is its name, description, input and kind, and can be read by main, which lists
the tools. Its kind sets the hints clients use, so only tools that delete or reach outside Draftly
look like they need the person's go-ahead. Every call names its agent, and every call that touches a
file names the file. Tools reply with text and pictures only, since clients drop one or the other
when a reply also has a structured result.
In the agent window a tool works on one agent's connection to one file, which runs actions as that
agent, keeps that agent's own undo, saves versions and draws artboards.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Edits get one typed path: named actions with checked inputs, run in one undo step (DRA-309)
An action is a contract (a namespaced name, a category, and plain-JSON input and result schemas)
plus an implementation that declares what it needs from the window it runs in. Ids in inputs and
results are branded, so a page id can't stand in for a layer id. Contracts can be imported by the
main process; implementations only run in a window.
run, runStep and their non-waiting forms always take the same steps: check the input, check the
caller may write (for a person, that their page is still there), finish any open draft, run any slow
preparation, write everything as one undo step on the caller's own session, then tell listeners.
Errors come back as a typed result whose code survives to whatever shows it.
The window side gives the pipeline its session, its CSS checks, the design page an edit names, and
the canvas editor it has mounted.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
The agent connection speaks MCP 2026-07-28 as well as older versions, and keeps nothing per connection (DRA-314)
The MCP server moves to version 2 of the MCP library. Each request builds its own server from the
credential checked for that request, so there are no sessions to run out of, time out or evict:
Claude Code connects with 2026-07-28, and Codex with 2025-06-18, on the same endpoint.
Host, Origin and the credential are still checked on every request, and at most 16 calls run at
once. A call counts until its reply has finished, since older clients get theirs as a stream; the
stream newer clients keep open for change notices doesn't count as a call. A call that runs past
ten minutes, or is still running when the app closes, is answered with an error and its tool is
cancelled.
generate_image is always listed and says plainly when image generation isn't set up, so every
request sees the same tools. Tests and proofs use the version 2 client, in both protocol eras.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>