Back

Ines Marchetti

Changelog: the spring release

The short version

This is the largest release we have shipped since the workspace launched, and almost all of it came out of support threads rather than a roadmap document. Three things changed in a way you will notice within an hour of logging in: the routing layer got rebuilt, budgets became a per-workspace setting instead of an account-wide one, and exports learned how to run in batches without a browser tab standing guard over them.

Everything else is the long tail — twenty-odd fixes that each save somebody fifteen seconds a day. Those add up faster than the headline features do, so they get their own section at the bottom.

Routing, rebuilt

The old router picked a model per request. That was fine when a job meant one prompt and one output, and it fell apart the moment people started sending storyboards. A twelve-frame sequence would fan out to twelve independent decisions, and the frames would come back looking like they had been drawn by twelve different people.

Routing is now scoped to a job. You describe the job once, the router picks a family once, and every frame in that job stays with it unless you explicitly ask for a variant. Consistency went up sharply in our own tests and, more usefully, in the three studios who agreed to run the beta on real work.

// Pin an entire job to one family, then vary only what you mean to vary.
const job = await alcove.jobs.create({
  intent: 'storyboard',
  frames: 12,
  routing: { strategy: 'consistent', family: 'cinder' },
});

for await (const frame of job.stream()) {
  console.log(frame.index, frame.status, frame.assetUrl);
}

If you were relying on the per-request behaviour, pass routing: { strategy: 'per-request' } and nothing changes for you. We have no plans to remove it.

Budgets that belong to a workspace

Budgets used to live on the account, which made them useless for anyone running more than one project. A single overspending experiment could starve the work that was actually paying for the seat.

Now every workspace carries its own ceiling, its own alert threshold, and its own behaviour at the limit — stop, queue, or notify and continue. Admins can still set an account-wide cap on top, and workspace limits are clamped to it. The settings screen shows both numbers side by side so nobody has to guess which one bit them.

Batch exports

Exports run server-side now. Queue as many as you like, close the tab, and pick up the archive from the library when it lands. Large jobs are chunked, and a failed chunk retries on its own instead of taking the whole export down with it.

The formats we support did not change. The reliability did: the export failure rate in the last four weeks of the beta was under a tenth of what it had been the month before.

Everything else

  • Library search now matches on prompt text, not just asset titles.
  • Keyboard shortcuts work inside the prompt editor without stealing browser shortcuts.
  • Workspace invitations expire after fourteen days instead of never.
  • The API returns a structured error body on every 4xx, including the ones that used to return a bare string.
  • Webhook deliveries retry with a backoff and surface their history in settings.
  • Dark mode no longer flashes white on first paint.
  • Deleting a workspace asks you to type its name, because it turns out people do click that button by accident.

What we are working on next

Two things, both requested constantly: a proper diff view for prompt revisions, and shared presets that a whole workspace can pull from instead of everyone keeping their own copy in a note somewhere.

Neither has a date yet. When they do, they will show up here first.