← All updates

CHANGELOG

v1.0.0-beta.201

Screen lookalike sending domains and plugin credential inputs. 60 changes in all: 15 new, 31 fixes, 3 docs and 11 behind the scenes.

The Aglyn Team · Sep 2026

Released to production on September 28, 2026 at 11:50 CDT. See every commit in this release on GitHub

New

  • Abuse: screen lookalike sending domains and plugin credential inputs
  • Abuse: one phishing screen for every tenant email, page and site name
  • Payments: card fraud signals reach the merchant; staff see a seller pattern
  • Billing: a fraud signal from Stripe files an urgent abuse row and moves no money
  • Marketing site: a held campaign reads "Held for review", and only staff can release it
  • Email: hold a young workspace's phishing-shaped email for staff review
  • Staff: cancel a workspace's subscription, and let a security lock stop billing
  • Media library: a file is found by the details it carries inside it
  • Legal: v9 — Terms and AUP name phishing, scams and impersonation
  • Marketing site: a campaign's screens and forms are tables served by their query
  • Media library: a replaced file is described by its own details; the API and MCP return them
  • CRM: fields use the list table, with reorder held while sorted or filtered
  • Outreach: each enrollment opens a detail view with the person's history
  • CRM: activity reads as collapsed, paged rows; card buttons sit in the header
  • Email: deliverability preflight on every send, and a sending-domain gateway ledger

Fixed

  • Abuse: the credential-input check's comment keeps the marketplace naming rule
  • Security rules: a page's served-clean review is server-owned
  • Payments: the seller read stays inside the destination-charge model
  • Lockdown: a suspended site's checkout is gated on the site it charges
  • Payments: every tenant card payment requests 3-D Secure through one seam
  • Database: trim the click-rollup rule's comment to keep the ruleset under 256 KiB
  • Jobs: the console's manual cron doors skip a locked site's rows
  • Billing: a held add-on increase refreshes the pending downgrade when it applies
  • Billing: request 3-D Secure on the card every subscription is paid from
  • Staff: the cancellation comment names the configured brand, not a literal
  • Billing: charge an upgrade immediately and grant it only once paid
  • Forms: the Forms list's counters, campaign flag and Updated stay true
  • CRM: the Fields table's filters and search are its Firestore query
  • Events: the public event list asks its query for published events
  • Console: list filters refuse by name and label what they filter
  • Console: query-served tables keep their query's order
  • Email: a suspended workspace sends nothing, on every outbound path
  • Tooling: the outreach backfill's fixture links name no Aglyn host
  • Database: the enrollment history rule fits the 256 KiB ruleset limit
  • Outreach: a person's page reads their mail gateway through the server
  • Database: trim two rules comments back under the 256 KiB ruleset limit
  • Console: every door that creates a Google account records where it came from
  • Tooling: the CRM list-field backfill knows the would-bounce email state
  • Scheduled jobs: the CRM task reminders run on Cloud Scheduler, not GitHub Actions
  • Console: a date filter's chip names the day the query reads
  • Console: an owner is never refused a plugin page before their role is known
  • Console: declare the gmail thread link a sequence person's page renders
  • Outreach: a person's activity and details cards link their help
  • Outreach: a person's page without its click rows says only that list is missing
  • Email: load the deliverability store under a partial email library
  • Email: keep plugin ids out of the shared engine's quoted strings

Documentation

  • Staff: the lockdown page spells canceled the American way
  • list pages name the filters their query serves; changed lists re-shot
  • CRM: the fields table says why matching its loaded rows is complete

Behind the scenes

  • Sites: the plugin-jobs spec's admin mock carries the job lockdown gate
  • Console: the adminAudit sweep reads a stamped doc(id).set() as stamped
  • Tooling: the Linear id ceiling reads AGL-3359
  • Console: the metadata route's read stores the search keys beside the record
  • Tooling: the Linear id ceiling reads AGL-3358
  • Console: every artifact rename and media edit restamps its list keys
  • Tooling: the Linear id ceiling reads AGL-3357
  • Tooling: the Linear id ceiling reads AGL-3354
  • Database: retire 20 composites no query reads since the list-query sweep
  • Tooling: the Linear id ceiling reads AGL-3339
  • Tooling: the Linear id ceiling reads AGL-3337

Share this article

The Aglyn Team

We're building the open web platform. Follow along as we ship — and tell us what you need.

Start building on Aglyn.

Free to start — design your first page and publish in minutes.