v1.0.0-beta.220
Released to production on October 1, 2026 at 17:58 CDT. See every commit in this release on GitHub
New
- Billing: every price and band holds its margin in Vercel's dearest region
- Security: the media CDN rate limit enforces a 429 past 1,500 a minute per address
- CRM: a Nurturing lead stage for leads automated email is reaching
- Billing: every plan's included bandwidth stays above water past Vercel's 10M requests
- Examples: two consumer apps, and the proof builds and runs them
- Plugins: a plugin's band can be billed beside storage and bandwidth; the estimate, the invoice sweep, the summary and the staff rows read it from the declaration
- Plugins: the CRM and the data plugin measure their own month in the usage sweep; plugin bands are summed from their host counters
- Plugins: a plugin measures its own usage in the monthly sweep; the AI plugin bills its overage there
- Plugins: a plugin's bands warn the workspace through the usage-alerts sweep
- Plugins: a plugin adds its own line to a workspace's usage budget; the AI's spend guards are the AI plugin's
- Firewall: count the media CDN per IP at the edge, in log mode
- Billing: an Update payment method button on Billing, where failed-payment mail and the past-due banner now land
- Plugins: a plugin reports the section experiments it runs to the besigner's Interactions section
- Plugins: a plugin counts its own site beacons; the collector hands them over after its gates
- Plugins: each plugin declares the streams its mail is sent under; the topic catalog is the Email plugin's
- Plugins: a campaign is a container kind its plugin declares; records are filed under it through core's generic seam
- Billing: page views past the plan's allowance bill at $0.36 per 1,000
- Notifications: every notification carries an alert level, and the bell and the notifications page color rows by it
- Notifications: a site manager's notice can name its site with {site}
- Commerce: a site user's purchases are drawn by commerce in the drawer's siteMember zone
- UI components: a spec can count what one keystroke re-rendered
Fixed
- Abuse: the phishing screen reads what a reader sees, and a prefilled sign-in link
- Abuse: the phishing screen reads a document-share page whole, and off-site redirects
- Documentation: claims match what ships
- AI: a copy whose source lacks what the plan adds is built from it
- Legal: the npm registry entry names no brand literal
- Legal: declare the npm registry the dist-tag tool reads
- AI: a template, layout or component job builds what its plan creates
- AI: a template prints no slug, timestamp or address in its copy
- Tooling: the emulator sweep runs the CRM plugin's member-alias spec
- Billing: the usage sweep visits a workspace with no sites, so its org-level usage is metered
- Releases: the second dist-tag waits out the biggest packages
- Shared libraries: the svg-icons build never packs the previous release's manifest
- Shared libraries: shared-util-tools ships no direct eval
- Shared libraries: the published editor's inspector renders in a browser
- Shared libraries: a framework peer is a range a consumer can satisfy
- Shared libraries: the logic packages install without the Firebase SDK
- Marketing site: the overlay beacon brings the Admin SDK with its own module, so no app loads the data layer lazily
- Notifications: the level legend and its comments spell gray and white-labeled the American way
- Lockdown: a staff feature pause sends one email that names each feature the way a customer would
- Marketplace: the extended payout notice says each payout lands 14 days after the sale, until the workspace is 30 days old
- Risk: site managers told a review opened are told it closed
- Risk: a card-testing warning always arrives whole, never folded into the hourly digest
- Email: a site's mail to its visitors is sent under the site's own name, not "Aglyn"
- Commerce: a reservation's "Paid today" is what the guest's card was charged, lodging tax included
- Visitor records: a site hears once that it reached its lead or member safety limit, not every month it stays there
- AI: the subprocessor list says a generation job sends the site's pages, not its screens
- CRM: a site's leads by first sighting have their index, both directions
- Billing: the monthly usage summary waits for the closed-month sweep
- Tooling: the emulator sweep runs the CRM plugin's alias spec
- Console: closed pinned abuse rows read closed; notice line says what landed
- Brand: an entitled org that has set no brand mails in the platform's
- Scheduled jobs: the monthly usage summaries run on Cloud Scheduler, not GitHub Actions
- Commerce: store emails and notices name the store, the order and what is true
- Bookings: booking emails tell the time in the booking's zone, named, and say who it is with
- Alerts: staff alerts name the workspace or site and say what happened without the title
- Sites: site-limit, form and lead notices name the site and say what is lost
- Notifications: a self-sent email's switch says what governs it, and settings name the four alert steps
- CRM: CRM and AI mail names the workspace, the person and the real due time
- Marketplace: a review verdict names the plugin and version and says what happened to it
- Risk notices: every hold, lock and review notice names its site and says only what happens
- Team: team and SSO notices name the workspace and say what to do
- Billing: billing mail names the workspace and says what each event means
- Email: a workspace notice and a staff alert open with their subject
Performance
- Email: a keystroke on the audience rule form draws the field it lands in
- Forms: a keystroke in a create drawer draws the field it lands in
- Commerce: a keystroke in a catalog editor redraws its own field, not the card
- Commerce: a keystroke in the product editor redraws its own field, not the dialog
- Outreach: a keystroke on Compliance redraws its own field, not the page
- Outreach: a keystroke in the sequence editor redraws its own field, not every step
- Besigner: a keystroke in the Properties dialog redraws its own field, not every row
Changed
- CRM: a delivered campaign reaches the leads through the record seam
- Plugins: the Forms and Automation page zones are declared by the plugins that draw them
- Plugins: a deleted campaign comes off the CRM's leads and contacts through the detacher the CRM registers
- Marketing site: the automation editor lists a site's overlays through the source the marketing plugin publishes
- Plugins: a plugin reads the campaigns it files under where the container kind's declaration says
- AI: the AI's palette generator, page-width recorder and overage drill live in the AI plugin
- Console: the Billing usage page meters each counted plugin band per site from its declaration
- Plugins: the staff usage rows serve every field a plugin's cost axis reads, records or hands its staff columns
- AI: assist credits are the AI plugin's
- Plugins: the listing price floor is the marketplace's; the processing rates every sale shares are named for a sale
- Platform: the visitor's arrival touch is named for the web's UTM labels it carries
- Platform: the enrollment basis is named for the consent rule it is, not for the Email plugin's lists
- Plugins: a captured person is filed under what the capture surface is filed under, by container kind
- Marketing site: what a campaign caused and earned is the marketing plugin's model
- Marketplace: the marketplace learns which datasets a workspace installed through the data plugin's list source
- Plugins: a picker lists another plugin's records through the list source its owner publishes
- Platform: core keeps no copy of the CRM's console addresses
- Data: the AI reads datasets through the data plugin's index and figure readers
- Bookings: a booking files its meeting through the record-timeline seam, and finds no CRM in core
- CRM: the CRM's organization hub is served by the console's generic org route
- Plugins: a plugin's quota is labeled by its plugin, and the record timeline files on a person
- CRM: email capture is the CRM's; reading a received email is the platform's
- CRM: a send's engagement is stamped by the record system, through its seam
- CRM: the CRM's reports math and its old address book link are the CRM's
- Commerce: the shop starters are commerce's, compiled into the starter list like every plugin declaration
- Console: core's route table names no plugin's page; each plugin builds its own hub address
- Console: a site user's row opens their contact where the plugin that keeps contacts admits the reader
- Sites: site search finds the rows a page repeats over through the repeat-rows contract
- Data: /v1/datasets is the data plugin's resource, served through the /v1 registry
- Platform: a repeat's filter, sort and limit are the repeat's query, not a dataset's
- Data: a dataset's CSV writer is the data plugin's; core keeps the one CSV parser and escaper
- Data: the organization's datasets API is the data plugin's, at the same addresses
- Workflows: what only the automation engine reads leaves core actions.ts
- Variables: a site variable names no workflow; the computing plugin types it
Documentation
- AI: the dataset figure readers are named as the data plugin's
Behind the scenes
- Forms: form labels take their color from the theme's text token
- Tooling: raise the Linear id ceiling to AGL-3453, read from the workspace
- Releases: the consumer proof runs on the promotion PR and after publish
- Billing: the metering sweep records why moving a subscription onto a new default card is unmetered
- Tooling: the org document's AI cap switch is argued to stay, and plan-entitlements' remaining quota checks are the CRM lane's
- Tooling: raise the Linear id ceiling to AGL-3443, read from the workspace
- Tooling: raise the Linear id ceiling to AGL-3437, read from the workspace
- Platform: the spread-question fixture of the docs gate names no plugin seam
- Console: the record kinds one plugin's picker lists from another have a source once the console boots
- UI components: a keystroke-cost spec sets its fresh-registry timeout file-wide
Share this article
We're building the open web platform. Follow along as we ship — and tell us what you need.