v1.0.0-beta.234
Released to production on October 8, 2026 at 20:09 CDT. See every commit in this release on GitHub
New
- Native: funnels are native on Apple and Kotlin, results to drop-off follow-up
- Native: components, layouts and templates on iPhone, iPad and Mac
- Monitoring: the probe tells Slack when a red target recovers
- Native: content collections and entries on iPhone, iPad and Mac
- Staff: send any system email, or a written follow-up, from an account's staff page (AGL-3691) (#1265)
- Stock photos: Pixabay stock photos for AI pages, via core seams (AGL-3660) (#1267)
- Native: site setup (details, SEO, tracking, theme, emails) on iPhone, iPad and Mac
- AI: designer layouts, full Free homes, budget-not-ceiling sections (AGL-3660) (#1264)
- Loyalty: a store connects its own Smile.io or Yotpo Loyalty account for rewards
- Commerce: a self-service kiosk orders and pays at the register
- Console: an account's audit tables sort by every column
- Commerce: the pickup and delivery queue pages, and the console sweeps know its cards
- Commerce: pickup and local delivery on a product's Buy button
- Commerce: buy online, pick up in store, and local delivery
- Commerce: store credit and rewards are off at the register while offline
- Commerce: the offline sync record is declared outside the media scan
- Commerce: the register keeps selling cash offline and syncs each sale once
- Native: CRM, Inbox, Emails, Marketing and Sequences are native on Apple and Kotlin (AGL-3669) (#1236)
- Commerce: orders, products, stock movements and shift history sort by every column (AGL-3680) (#1247)
- Loyalty: built-in points, referrals and store credit for online and POS sales
- Commerce: store credit from other plugins at checkout and at the register
- Platform: a checkout-credits seam for store credit another plugin keeps
- Console: activity, notification and invoice tables sort by every column (AGL-3680) (#1243)
- Native: bookings, events calendar, analytics, automation, notifications and their settings (AGL-3670) (#1241)
- AI: alert staff, Cloud Monitoring and Slack when Aglyn AI fails (AGL-3683) (#1246)
- Console: marketing, outreach, workflows and license tables sort by every column (AGL-3680) (#1252)
- CRM: every CRM table sorts by its column headers (AGL-3680) (#1248)
- Console: members tables sort by every column (AGL-3680) (#1242)
- Native: a site's forms and submissions on iPhone, iPad and Mac (AGL-3668) (#1239)
- CRM: a record says when its address belongs to a banned or locked account
- Console: staff tables sort by every column
- Staff: every writer stores the fields the staff tables sort by
- Console: email, inbox, forms, data and authors tables sort by every column
- Console: site artifact tables sort by every column
Fixed
- AI: a dismissal of the guided start never trades a typed brief for the starter (AGL-3660) (#1277)
- Accounts: the editor-hint bounce never leaves mid-provisioning
- AI: the welcome email settles header tokens and brand tints instead of refusing (AGL-3676) (#1278)
- Monitoring: a form check that lands mid-redirect polls again
- AI: Juniper Clay follow-ups — works over forms, counted galleries, starters, button tints (AGL-3660) (#1273)
- Commerce: an offline register asks the console again
- Monitoring: the editor-hint hop rides the probe bypass
- Monitoring: continue past "Email verified" the way a person does, not by reloading
- AI: a Free site start checks credits left; a job out of credits pauses with Resume
- Monitoring: a sign-up without a workspace fails the canary
- Monitoring: each leg logs the host it signed up on
- Monitoring: the sign-up canary walks a phone as well as a desktop
- Console: the import round-trip expects a layout written live, null stored
- Console: the layouts list leaves tombstones out on the query, so every page is full
- Loyalty: connecting a rewards account parks built-in points and disconnecting restores them
- Loyalty: the Rewards account card and vendor notes read without the product name
- Accounts: a phone password sign-up verifies on the auth host instead of looping
- Rendering: a Stack's divider draws between its children
- Commerce: keep the ledger join first on the location decrements
- Commerce: a buy-now order records the shipping address it was charged for
- Loyalty: the native contracts carry the Rewards email catalog
- Loyalty: each Rewards document id scheme lives in one named key function
- Loyalty: the org Plugins page shows the always-on Rewards switch on
- Loyalty: the Rewards package versions ride beta.232 like every other lib
- Loyalty: the org switchboard save carries the always-on Rewards plugin
- Console: the audit-write sweep names the staff backfill as patching existing rows
- Search: name tokens walk by codepoint, so an emoji name can be saved
- Workflows: webhooks list hides a URL's credential; no stale trigger promise
- CRM: the account-lock chip names the configured brand
- Workflows: an outbound webhook's body carries a text summary, so Slack accepts it
Documentation
- AI agents: a production promotion is merged by hand, auto-merge is turned off
- AI agents: a fix for a sign-up or access blocker ships to production the same hour
Behind the scenes
- AI: a live plan eval with the site's business profile (AGL-3661) (#1266)
- Tooling: the Linear ceiling read off the workspace, AGL-3692
- Auto merge: a green hotfix promotion merges itself into production
- Marketing site: the persona assertions read the greeting, not the random unsubscribe id
- Commerce: read the index file from disk in the pickup queue spec
- Tooling: the Linear ceiling read off the workspace, AGL-3689
- Commerce: drop an unused binding from the pickup webhook spec
- Commerce: specs for pickup and local delivery
- AGL-3616: live evals for build plan and edit job; plan the operation, not a form imitating it (#1238)
- green PRs into main merge themselves; production PRs never auto-merge (AGL-3685) (#1253)
- Native: regenerate the contracts for the email lane's sorts
Share this article
We're building the open web platform. Follow along as we ship — and tell us what you need.