v1.16.0
Released to production on November 6, 2026 at 19:12 CST. See every commit in this release on GitHub
New
- Commerce: reply to a quote's customer and let them write on the quote page
- Commerce: a storefront line takes up to 9,999, not 99
- Commerce: deliberate proof approval, reject with changes, proof sign-in control
- Commerce: product builder on storefront product pages
- Commerce: in-person card payments on the store's own Stripe account
- Besigner: table rows, columns and cell formatting on the canvas
- Commerce: a Photo fit setting on the Product grid and Related products
- Native: publishers set a listing's connection credentials in the apps
- Billing: the Connect destination carries direct-charge sale events
Fixed
- Commerce: sales, restocks and verified reviews drop the cached storefront
- Commerce: quote messages take a platform id; catalogs and Linear floor regenerated
- Commerce: back-in-stock alert in its own chunk
- Commerce: product builder back inside the plugin budget; declare its image sinks
- Commerce: customer message notice names no product
- Commerce: price quote editor add-on labels for the picked size
- Commerce: refund a direct sale that carried no platform fee
- Commerce: payments card describes Stripe billing a direct store
- Dependencies: upgrade DOMPurify to 3.4.17 for the SAFE_FOR_TEMPLATES bypass advisory
- Console: preview snapshots expire after a day and stay under 1 M characters
- Console: a background tab hands the shared Firestore cache to the visible tab
- Marketplace: realm plugin row reads the configured brand
- Marketplace: installed plugins read as on; listings name the plan
- AI: redesigns say why they fell back; contact pages and kept pictures pass
- Besigner: a signed plugin's own elements replace its generic entry
- Native: connection screens match Figma and say all of a failed sync
- Marketplace: connection card copy and picker labels read right
- Tooling: emulated console seals connections and signs realm trust locally
Performance
- Sites: change-driven tenant cache on a seven-day backstop
- Sites: tenant pages take a one-day ISR ceiling
- Sites: stop the per-request middleware trace reaching the log drain
- Sites: project the realm-install join to the fields it uses
- Sites: read the org once in the lockdown verdict, masked elsewhere
- Outreach: the sync job reads an organization's watched enrollments once per run
Documentation
- Commerce: picture cards, combos and free mockup requests
- Self-hosting: name AGLYN_DEBUG_MIDDLEWARE in the environment reference
Behind the scenes
- Console: the table-footer owed list drops the Inbox replies, now a shared thread
- Native: regenerate the contracts for the quote-message email
- Commerce: connect-mode gate coverage follows the shared account lookup
- Native: regenerate the contracts for the product builder fields
- Native: regenerate the contracts for the direct-charge payment fields
- Console: the video-upload gate spec reads the org through a field-masked getAll
- Sites: close the preview bar inventory declaration
- Sites: declare the preview bar's height style in the image-sink inventory
- Commerce: close the Photo fit setting
Share this article
We're building the open web platform. Follow along as we ship — and tell us what you need.