What We Shipped

Every feature, improvement, and fix. Newest first.

Jun 23, 2026

Asset Viewer Header Puts Navigation and Rename Up FrontImprovement

The asset viewer header is easier to scan when you are moving through a library or checking versions.

  • Breadcrumb and filename share one row: the viewer now reads as Assets > file name, with the source badge and processed-version label beside the name instead of stacked above it.
  • Rename is next to the file name: local assets now have the rename pencil in the header, so Details opens straight into file facts instead of repeating the name.
  • History and Versions are one click away: desktop headers show labelled buttons, and mobile opens the same inspector sheet to the right tab.

Upload Docs Match The Formats Studio AcceptsImprovement

The public upload documentation now lines up with Studio's current asset type rules.

  • Supported formats are clearer: the docs list the image, video, document, spreadsheet, presentation, 3D, and spin-manifest formats Studio accepts.
  • Clipboard paste is described accurately: pasted assets keep the browser-provided clipboard format when available, with PNG as the fallback.
  • Size limits are split by asset type: images, videos, PDFs, 3D files, spreadsheets, documents, presentations, and spin manifests now show their own limits instead of one broad upload number.

Reference: PR #42, a862d65.

More Reliable Webhooks and UploadsFix

Several reliability fixes around webhook delivery and vendor uploads.

  • Disabled webhooks stop firing: once you disable a webhook (manually or after repeated failures), it stops sending requests to your endpoint and cancels any pending retries, instead of carrying on against a turned-off subscription.
  • Upload presign retries on blips: vendor product uploads now retry the presign step with backoff on a transient server or network error, so a cold-start blip no longer breaks an upload.
  • No cross-org upload bleed: switching organisations during a vendor batch upload no longer leaks the previous org's saved upload state, so each org restores only its own in-progress session.

Navigation and Activity Filter FixesFix

A few fixes for links and filters that behaved oddly on first load.

  • Activity filters survive loading: an admin opening /activity?category=admin_action keeps the admin-action filter instead of having it cleared before permissions finish loading, and a non-admin lands on the All tab with a populated feed rather than a silently empty list.
  • Forgot-password redirects when signed in: people who are already signed in and open the forgot-password page now go to the dashboard, matching sign-in and sign-up.
  • View All Tools goes to the right place: the footer link now opens the /tools listing instead of scrolling to the top of the homepage.

Workspace Controls Stay Put While They UpdateFix

A few workspace controls now behave more predictably while data or account state changes.

  • Supplier review tabs no longer flash away: switching submission status keeps the filter tabs visible and interactive while the new results load (62ba8ba).
  • Scheduled cancellations show the right billing action: when a plan is already set to cancel, Billing shows Resume without a redundant Cancel button or misleading success toast (5124a0a).
  • Product view URLs clean up stale saved-view tokens: applying or clearing a Products saved view now updates the browser URL directly, so old view= tokens do not stick around after the view has been reset (051f79a).
  • Asset thumbnails appear sooner above the fold: the first visible gallery and table thumbnails load eagerly, while off-screen thumbnails keep the lighter lazy path (adef57f).
  • Carousels and Shopify image cards have cleaner accessibility markup: carousel regions announce correctly again, and the embedded Shopify app no longer nests a button-like card around its own controls (94f9f39).

Jun 22, 2026

More of Studio Works With a Screen ReaderImprovement

A focused accessibility pass gave names and position information to controls that screen readers previously skipped over.

  • Named icon-only buttons: more than 10 icon-only buttons across the Sirv settings and orchestrator screens now announce what they do.
  • Labelled pricing sliders: each of the three sliders in the pricing calculator now has its own accessible name, so you can tell which value you are changing.
  • Resize handle reports its size: the docked side-panel resize rail now announces its current, minimum, and maximum size as you adjust it with the keyboard.

Asset Viewer Reworked With Deep Links and Mobile NavigationImprovement

The asset detail viewer has been rebuilt around shareable links, touch navigation, and a cleaner layout.

  • Deep links always open: a link like /assets?asset=<id> now fetches the asset and opens it even when it is not already in the current grid, with a loading skeleton and a clear not-found message instead of a broken view.
  • Move between assets on a phone: swipe left and right or tap the on-image arrows to page through assets, with big tap targets that are easy to hit.
  • Less clutter on small screens: secondary actions tuck into an overflow menu, and the details panel and pager arrows have been tidied up.
  • Better for screen readers: the dialog has a single heading, and tag remove buttons now carry proper labels.

Correct Credit Charges, Uploads, and Usage ChartsFix

A round of correctness fixes across billing, uploads, imports, and the usage charts.

  • Charged for what you generate: multi-image generate requests now bill for every image instead of charging for one when several images carried dimensions.
  • AVIF and HEIC uploads accepted: valid AVIF and HEIC files are no longer wrongly rejected at upload.
  • Today shows on usage charts: on the 90-day and all-time charts, the most recent day is always the rightmost bar instead of being silently dropped, so the chart matches your stat-card totals.
  • Naming patterns fail safely: a naming variable with an invalid character rule now returns a clear validation message instead of breaking the naming preview, test run, or apply.
  • Imports and search stay accurate: CSV imports with Sirv transform URLs, asset search paging, file-size limits, and duration and date displays all behave correctly.

Changelog Page Loads in ProductionFix

The changelog page was rendering empty in production because its entries were read from disk at request time, which serverless deployments don't ship alongside the function.

  • Entries always load: changelog content is now bundled with the server build, so the page shows every release in production just like it does locally
  • "New build available" works again: the in-app release notice relied on the same lookup and now reports the latest version correctly

Review and Asset Actions Match Your PermissionsFix

Two permission edge cases that left people looking at controls they could not use have been fixed.

  • Collection actions follow your permissions: the single-asset menu only shows Add to collection and Remove from collection when you have collections:write, so those items no longer appear and then fail.
  • One denied review queue no longer blanks the rest: the Submissions and Derivatives queues each check access on their own, so being denied on one no longer wipes the other review tabs or disables tab switching.

Studio Reliability Fixes Across Assets, Vendors, and Public PagesFix

A set of small but visible fixes landed across the Studio workflow, mostly around links, permissions, and state that should not surprise you.

  • Asset viewing is steadier: asset deep links now open even when the asset was not already loaded in the grid, the details panel sits below the action row, mobile actions use safer touch targets, and swipe/arrow navigation works on phones. Screen readers also get one clear asset heading and labelled tag-remove buttons.
  • Vendor and review flows are safer: vendor batch uploads no longer carry resumable state into the wrong workspace after an org switch, transient presign failures are retried, review tabs are gated by their own queue permissions, collection actions hide when you lack collection write access, and malformed naming-rule character sets return a validation error instead of a crash.
  • Public pages and account links are more accurate: the footer's "View All Tools" link now opens /tools, signed-in users are redirected away from the password-reset form, and public comparison/industry pages now use the current year, the correct 8x upscale claim, and real Core plan pricing.
  • Operations pages behave more predictably: disabling a webhook stops future deliveries and retries, admin activity filters are kept while permissions finish loading, usage charts keep today as the rightmost bar, and changelog pagination handles fractional page values cleanly.

Refs: 862973a, 63e8bda, ecf88ba, bf5986b, 849b57c, 3b486bd, 4ad2c39, fcb2057, 0c13c9f, d8d3bb6, 468259e, 78692f7, ad2e1f5, ec7ab28.