v1.0.0-beta.235
Released to production on October 9, 2026 at 04:08 CDT. See every commit in this release on GitHub
New
- Native: staff mail and audit trails, refunds, send rate, hosts (AGL-3667) (#1308)
- Email: getting-started emails link their docs and match the house design (AGL-3692) (#1295)
- Native: billing shows the campaign email ceiling, spend alerts and seats by site (AGL-3671) (#1306)
- Staff: a read-only, audited media library on the staff org and site pages (AGL-3660) (#1291)
- Weglot: the settings card's help links Weglot's own settings heading
- Native: staff churn, gateway ledger, server config, tax purchases
- Live chat: a merchant's own Tidio or LiveChat chat on their site
- Native: plugin settings screens from the console's own schemas
- Commerce: review platforms plugin — Trustpilot and Yotpo review invitations
- Native: a member's page emails a reset or sets a password
- Native: built-in themes, font browser and font installer on Android
- Commerce: optional Shipping cost on a hand-entered shipment
- Weglot: translate a merchant's site with their own Weglot key
- Ad conversions: merchant ad tags and server-side conversions, consent-gated
- AI: "Aglyn AI requests" on the staff account and org pages, every read audited
- Content: the /blog index leads each post's card with its cover
- Commerce: a new product starts at a default price, and may be saved without one
- Couriers: send a DoorDash courier for a store's own local deliveries
- Console: staff accounts open newest first and show profile photos
- Console: staff overview shows a Users count, org rows link to the org
- Native: the product editor's options and variant matrix on Android and desktop
- Console: activity and audit rows read as words and open one details dialog
- a store or blog start lists its real products and posts (AGL-3676) (#1283)
- Commerce: fulfillment networks send paid orders to ShipMonk
- Email: getting-started emails, sent once per crossing by an hourly sweep (AGL-3692) (#1269)
- Native: register cashier PINs and shifts on Apple and Android
- Native: install a site's own fonts on iPhone, iPad and Mac
- Native: the customer texts switch is native on Apple and Kotlin
- Native: built-in themes and a searchable font browser on iPhone, iPad and Mac
- Native: order notes and the restock answer on Apple and Android
- Native: datasets, logic and the marketplace on Android and desktop
- Native: the dataset model's pure half and the record routes the apps write through
- Native: the Apple apps open on the Aglyn logo, not a blank screen
- Commerce: the Apple app adds, edits and restocks products through commerce's routes
- Native: the Apple kit reads orders and products as the console does
- Commerce: the Apple order screen refunds and resends the receipt
- Native: the Apple plugin host knows Aglyn staff, staff cards and staff screens
- Native: the Plugins screens switch workspace and site plugins natively
- Native: spec writes go through FirestoreWriter; domain names the badge
Fixed
- Commerce: the beta.235 guards the merged commerce PRs tripped
- Ad conversions: give the tiktok and pinterest fields docs sections of their own
- Platform: docs excerpt wrapper without JSX, so server loaders parse it
- Site data: compile JSX in specs so server.ts can load the docs excerpt
- Review platforms: its catalog row takes order 37, not couriers' 32
- Signup: a sign-up through auth.aglyn.com keeps its acquisition (AGL-3706) (#1292)
- Documentation: help anchors and the Assist index skip sections held in HTML comments (AGL-3702) (#1290)
- admin bar no longer covers an overlay site header; media libraries never hang on an unanswered read (AGL-3660) (#1302)
- Console: preconnect only Auth and Firestore, not reCAPTCHA hosts
- Weglot: type the site-integrations spec's readers as the real reader type
- Weglot: site integrations spec types its config readers, so typecheck passes
- Weglot: annotate the throwing reader in the site-integrations spec
- Console: every card's help opens a docs section of its own
- AI: accurate guided-start copy, Media upsell, full job kinds
- AI: the upsell's help names the configured add-on, not ours
- Console: preview and view links always open in a new tab
- Sites: blog cover tile spells backgroundColor, not the bgcolor alias
- Commerce: the POS page fits the window, footer and padding included
- Live chat: pin the plugin's package versions to beta.235
- Live chat: commit the plugin's .swcrc so its build can run
- Live chat: staff keep the host catch-all write on the chat settings
- Accounting: name the Codat-reached ledgers in the switchboard copy
- Ad conversions: set-firestore-ttl applies the two Ad conversions TTL policies
- Native: saving a member's access keeps their site grants; per-site access
- Commerce: review platforms' seam and email spec typecheck on main
- Commerce: review platforms' tsconfig paths and Yotpo URLs pass the guards
- Console: the staff org plugin zone keeps its place among the columns
- Console: every help tooltip says something of its own
- AI: a generic head noun names a site's kind when nothing specific competes
- Couriers: brand-free retry copy; package declares firebase-admin and beta.235
- Weglot: host declarations name the platform, not the brand
- Ad conversions: Meta's events edge is not a console path; egress rows read the brand
- AI: a site's search listing reads as one sentence
- AI: the look's row is active while the look is designed
- AI: a Free site start is held to its whole worst case before it starts
- AI: a site's kind weighs specific words over generic ones and reads its audience
- Console: staff org, account and site cards balance instead of leaving a hole
- Couriers: couriers join the workspace-locked list; docs name DoorDash Drive only
- Couriers: type the delivery transactions' answers; specs without jest-dom
- Native: the Kotlin contract values split into parts under the JVM's 255-slot limit
- Commerce: declare firebase for the tax card, regenerate native contracts
- Commerce: tax card says when Stripe Tax leaves it unused; Faire gets label cost
- Commerce: the Apple register's menu shows its icon and name on a Mac
- Native: the iPhone tab bar keeps five tabs and order actions never split a word
- Sites: the org-erasure audit row is bounded by its shape, not a flat 1 KiB
- Native: the AI plugin's spec opens in Xcode; Kotlin knows the power icons
- Native: a rebuilt Mac app no longer hangs on its launch screen
- Native: the register calls itself "Aglyn POS" wherever it names the app
Performance
- Console: start Firebase before hydration and overlap the shell's realm fetch
Reverted
- Sites: hand the org-erasure audit-row spec back to the beta.232 session
Changed
- Platform: the AI plugin words its own audit rows through the activity seam
Documentation
- AI: a guide for every AI feature, and every AI tooltip links its own section
- Commerce: review platforms' cards open on their own help sentence
- Ad conversions: each vendor's card opens its own guide section
- Live chat: open the set-up section with a sentence the card's help can show
- Native: tick Kotlin for sites, setup, content, media, artifacts and forms
- Ad conversions: server-side conversions guide held unlisted until AD_CONVERSIONS_TOKEN_KEY is set
- Native: tick the Kotlin parity row for datasets
Behind the scenes
- align four specs with what the batch merge shipped
- Tooling: raise the Linear ceiling to AGL-3715, read in Linear 2026-10-09
- Console: exempt the site-kind table spec's community briefs
- Tooling: record the brand literal the staff org page dropped
- Native: run the Kotlin and Swift tests on every PR (AGL-3704) (#1293)
- UI components: allowlist the dependency-free new-tab helper on the jsx barrel
- Weglot: record the weglot plugin's eager-bundle budget
- Review platforms: record the review-platforms plugin's eager-bundle budget
- Ad conversions: record the ad-conversions plugin's eager-bundle budget
- Couriers: record the couriers plugin's eager-bundle budget
- Tooling: the plugin help section prose is generated docs prose
- AI: allow British 'neighbors' in the SEO word list
- Commerce: review platforms' package carries the repo version, beta.235
- Commerce: review platforms' server spec runs in the node environment
- Console: the audit and activity specs read the shared words
- Weglot: regenerate the native derived values for release_weglot
- Weglot: regenerate the native contracts for the new plugin
- Weglot: the plugin's package rides the repo version, beta.235
- Weglot: CSP specs run in node and enable the plugin for the workspace
- Weglot: sync the apps' next tsconfigs for the new plugin
- Weglot: keep emotion's head styles between runtime specs
- Ad conversions: package version follows beta.235
- Ad conversions: plugin lists, TTL policies and egress hosts name Ad conversions
- Native: regenerate Kotlin contracts after the ShipMonk merge
- Couriers: declare beta.235 lib versions after the rebase
- Couriers: regenerate native contracts and lib deps after the rebase
- Native: regenerate the contract values after the parts split
- wip(console): one row per mirrored activity event, paused mid-work
- Commerce: run the ShipMonk specs under node with a key that reads valid
- Dependencies: Bump handlebars from 4.7.9 to 4.7.10
- Console: the community sweep knows the native Support screens' forum link
- Native: the list-plan tests read every declared query
- Native: the Swift list-plan test reads every declared query
- Native: regenerate the realm host exports for the new aglyn exports
- Console: the dataset write specs know the native record edit and delete
- Dependencies: Bump next from 16.3.7 to 16.4.0
- Native: the Apple planner replay reads every recorded declaration by name
- Native: regenerate contracts for the inventory-sync plugin
- wip(native): console screens from specs
Share this article
We're building the open web platform. Follow along as we ship — and tell us what you need.