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.
260 matching builds · Page 8
Check that a room stays within a memory budget at the file size limit (DRA-489)
A new integration test pushes a realistic 47 MB file through a room, then
restarts the backend over the same storage with workerd's V8 heap capped.
Saving, reading back, sharing, copying and restoring the file must fit in
48 MB of heap, and an agent's join plus a version saved during a window's
first load must fit in 144 MB, a little over what a first load alone takes.
The test backend can now keep its storage between starts and cap the heap.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Name the children inspect_node lists the same way inspect_tree names rows (DRA-504)
Each import writes its record to disk before it uploads, so the test's one-second waits could run
out when the machine was busy and the test failed now and then. The waits now allow ten seconds;
what they check is unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Check that walking up from a layer agrees with the layer tree on whether it is in place (DRA-492)
Commands now ask whether a layer is in place by walking up from it, so the
random edit test checks that answer against the tree for every layer too.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Shorten the descriptions of the new path and batch inputs (DRA-502)
Every client reads all the tool descriptions each session, so the
sentences added for paths, items and topics say only what a caller needs.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Stop hashing the whole file for every screenshot, and prepare unchanged artboards once (DRA-493)
Every screenshot and every layer measure turned the whole file into one string
and hashed it just to print an eight character Snapshot tag. At the largest
size a file can be that took about 150 to 230 ms and tens of megabytes of
memory on the one turn every agent shares, and about 850 ms in a file four
times that size. The tag now comes from the artboard being drawn: a hash of
what it draws, worked out once per prepared artboard, which takes a couple of
milliseconds for a 930 layer artboard. It still means the same tag is the same
content, now also after a restart, and an edit to another artboard no longer
changes it.
Artboards an agent looks at again before the file changes are no longer
prepared again. The last few are kept for twenty seconds, and the images they
hold go back to main when they are let go. Preparing an artboard no longer
waits for another agent's picture to finish, since only drawing and picturing
need the window, and main is asked about fonts while the artboard is measured.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Name the image model that was busy, and stop listing it as available (DRA-503)
A generation refused as "The image service is busy" didn't say which model,
while list_image_models went on showing that model as available and as the
default, so the next call walked into the same refusal.
The message now names the model, and the refusal carries it. Draftly
remembers for a minute that the model turned a request away. During that
time list_image_models and get_image_model_options show it unavailable, with
how many seconds are left, the default moves to a model that is free, and
asking for the busy one is refused with the models to use instead.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Make get_review smaller and point at the layers an edit can change (DRA-505)
Of a 17.5 KB reply, 14 KB was Details repeating what the sentences already said: each mark's
comment, the reviewer, the note, the presentation's own summary and, for each likely layer, its
kind, text and probability. Details now carries what the sentences can't: the artboards by id and
name, each mark's boxes, and its likely layers as id, through and name. The sentences give a
layer's first words when its name doesn't already say them.
A mark's likely layers also used to be mostly containers, such as "div (div element)". Layers
that hold no others, like a heading, a button or an image, are now the only ones offered and the
only ones the ranking service is asked about, unless the mark touches nothing but containers.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Keep agents' idle connections open while they fit a memory budget (DRA-499, DRA-490)
Each agent connection holds its own copy of the file, about three and a
half times the file's stored size: roughly 125 MB at 85,000 layers. The
window allowed 16 of them whatever their size and closed any idle for
ten minutes, so large files were both heavy to hold and expensive to
reopen.
Connections now report what their copy and its undo take, and the agent
window keeps them within 1 GB. While there's room, an idle connection
stays open for up to an hour. When a new copy or a growing one pushes
the window over, the connections idle longest with nothing unsent close
first; if none can, a call that needs another copy is refused as busy,
as it was at the old limit. The fixed count rises to 32, which now only
bounds sockets for many small files.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Make create_token refuse a name that exists, and let update_token take a CSS name (DRA-507)
create_token used to change the existing token when its CSS name was already
taken, which reset a value a person had edited, three times in one session.
Agents did it because update_token only took an id for file tokens.
create_token now refuses a name that belongs to a token, Tailwind's or the
file's, and says to call update_token with that name. update_token accepts a
file token's CSS name as well as its id, and refuses a name that matches no
token or several.
The token form keeps its "change value" behaviour for a name in use, by
choosing between creating and updating itself, so the create-or-set action is
gone.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Save downloaded icon sets without waiting for the disk to flush them (DRA-495)
Icon sets can be fetched again, and a copy cut short by a crash already
counts as a miss and is fetched again, so writing one doesn't need to
wait for the disk.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Tell agents why Draftly turned their request away, and keep set-up agents working when the key changes (DRA-508)
Every refused request to the agent connection said the same thing, whether
the key was missing, from another installation, rotated, or revoked, or
Draftly was signed out. Agents then asked their person to paste a new key,
which was rarely the fix.
Each case now has its own reply with the step that puts it right, such as
signing in, restarting the agent so it picks up the rotated key, or turning
the connection back on. The reply also carries a short code. A problem
checking the key right now answers as unavailable rather than as a bad key.
Agents set up from Draftly hold the key in their own settings, so rotating
it used to break all of them until someone chose Update. Rotating the key,
or turning a revoked connection back on, now writes the new key into the
agents Draftly set up with an earlier key from this connection. Other
people's entries and Claude Desktop, whose key sits inside an installed
extension, are left as they were and still show as out of date.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Rebuild the homepage as a light, single-page story (DRA-509)
The old homepage was a dark carousel of shrunken screenshots behind Back
and Next buttons, so most visitors only saw the first slide. The new page
reads top to bottom: each section pairs the existing copy with a figure
that redraws Whisk's own interface at real size, from the homepage design
made in Whisk.
The page is written as React components styled with Tailwind, and is
rendered once at build time into plain HTML, so visitors download no
React. A small script fits the zoomed figures to the screen. The old
screenshots and thumbnails are gone, and the photos now come from
public/home.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Send each background job once, queue one job per team, and clean up what has finished (DRA-498)
Jobs waiting in the outbox were read, sent and marked one at a time, so
two runs at once could send the same job. A run now takes its jobs with
one statement and sends them in a batch, and puts them back if the queue
refuses them. Requests only look for jobs to send when they queued one,
instead of after every write.
A change to a team's membership used to queue a job for each of its files,
which for a large team meant rounds of queue consumers before revoked
access reached every room. It now queues a single job for the team, which
rechecks the rooms sixteen at a time, a thousand files to a run.
An hourly run removes finished jobs and operations, expired rate limits
and sign-outs (kept for 30 days past the token, in case the provider never
heard of the sign-out), and the records of files deleted a week ago.
Deleting a file now also removes its published copies from storage, which
had been left behind.
Existing databases need scripts/one-off/team-access-jobs-schema.sql run
once by hand.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Give the image cache, image imports and agent records their own disk queues (DRA-496)
They shared one queue, so a slow change to one made the others wait even though they never touch the same files. (DRA-496)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Say when a generated image isn't in the file yet, and try again to add it (DRA-484)
An agent started three generations in a very large file and later saw all three as done with an
image id, but one had never been added to the file's images: the file hadn't finished opening when
the add was tried. Only the generation call's own reply mentioned the failure, and only when the
image finished within its 40-second wait, so get_generations showed "done, not placed" and the
agent generated the image again.
The add is now tried three times inside the job, a little further apart each time. get_generations
reports inFile, and why not when it isn't, and tries the add again for any finished image the
file doesn't hold, so a file that has finished opening gets it. view_image can look at such an
image, and write_html can show it with data-image, adding it to the file first the way
create_image does. Images made for the file but not yet in it are mentioned in list_images's
description, since they can't be listed.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Keep list_pages, list_presentations and inspect_canvas replies small enough to read (DRA-487)
A page with hundreds of artboards, or a canvas of long notes, could make a
reply too large for an agent's client to accept, and nothing the agent could
do would shrink it. These three now stop at a size budget and give the offset
to carry on from, the way inspect_tree already does.
- list_pages shows each page's first 32 artboards with artboardCount, marks a
page that has more as truncated, and points to inspect_tree with the page's
id for the rest.
- list_presentations takes an offset and returns total and nextOffset.
- inspect_canvas cuts its shapes by size instead of only refusing a large read.
- The shared hard ceiling on a read drops from 128 KiB to 32 KiB. Claude Code
refused a 76,000 character reply, and ids and names cost two or three
characters a token against its 25,000 token limit.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Keep opening a slow file for an agent instead of giving up at 15 seconds (DRA-490)
An agent's connection treated the 15-second "slow to load" notice as a failure and threw the
half-loaded copy away, so every retry started over and a large enough file could never open.
It now keeps loading for up to two minutes, stopping early only when the file can't be opened
at all, and the call reports every few seconds that the file is still opening.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Two at a time made batches of images wait in line. The app reads this number from the
backend, so its queue grows to match without an app update.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The daily cap of 100 was getting in the way. IMAGE_GENERATION_DAILY_LIMIT can still set
a different number per deployment, and no more than two images run at once per account.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>