← All updates

CHANGELOG

v1.0.0-beta.13

An instance can override one inner element's attributes. 96 changes in all: 9 new, 54 fixes, 1 performance, 3 reverted, 11 docs and 18 behind the scenes.

The Aglyn Team · Aug 2026

Released to production on August 24, 2026 at 15:34 CDT. See every commit in this release on GitHub

New

  • Besigner: an instance can override one inner element's attributes
  • Tooling: a price cannot move without a recorded decision
  • Build checks: the residential address gets the guard it never had
  • Tooling: the launch runbook cannot name a script that is not there
  • Security: staff can end one stolen device's sessions without taking the account
  • Billing: the live dunning schedule is recorded, and something finally watches it
  • Analytics: the campaign survives the hop to the console
  • Monitoring: the server-error rate gets a reader that can go red
  • Plugin UI: a collection search box the toolbar row can hold

Fixed

  • Analytics: the transport spec compiles against the widened return type
  • Content: an unresolvable org withholds a schedule, it does not burn it
  • Content: entry scheduling is gated on the plan that sells it
  • Monitoring: every health body labels its environment the same way
  • Analytics: begin_checkout waits for gtag instead of racing the redirect
  • CI: console:test names its five real failures instead of dying mute
  • Self-hosting: two ops guards are allowlisted, and a red now prints its row
  • SEO: a host and screen listing publish the card alt they were given
  • SEO: a host and screen listing publish the card alt they were given
  • Besigner: the canvas expands a component nested inside a component
  • Scheduled jobs: the two frequent sweeps move to the punctual runner
  • Redirects: only a publisher may route a live site off-platform
  • Build checks: the facilitator charge shape is an exit code, not a comment
  • Console: the screen version view takes the owner's card spans, and Raw JSON collapses
  • Console: the page activity card asks for the newest entries, not a random 200
  • Documentation: a bare {date} placeholder is MDX, and it broke the whole docs build
  • Build checks: a ratchet's own output names the row that clears it
  • Build checks: the brand ratchet sees the two new subprocessor rows
  • Self-hosting: the contact-address guard's own literals are allowlisted
  • Self-hosting: the campaign hop's console origin is an allowlisted reader
  • Console: the DAM dialog fills the screen, and its tiles reflow
  • Sites: restore the AGL-2204 manifest work my previous commit reverted
  • Security: a revoked device's open tab can still write, and we said it could not
  • Sites: the PWA manifest stops declaring a size it never measured
  • Consent: advertising needs an explicit yes again, as the policy says
  • Console: the staff sign-out dialog admits the revoked tab can still write
  • Plugin UI: the collection picker icons take their accent from the theme
  • Console: the screen version view cards span 2 and 1 of three columns
  • Privacy: the breach report's billing country is the newest one, not the last row
  • Privacy: the breach report counted one account holder in three
  • Accounts: the handoff redemption honors the revocation epoch too
  • Privacy: the copy-drift spec names the tag module as data, and says so
  • Accounts: an unverifiable admin token is refused with 401, not reported as 500
  • SSO: the one owner seat cannot be moved into the pool it protects
  • Privacy: the two App Check control-plane hosts are declared, not published
  • Besigner: an attribute edit after an undo stops vanishing
  • Accounts: a project-pool sign-in stops inheriting an abandoned SSO attempt's tenant
  • Consent: the advertising switch stops describing a rule it no longer follows
  • Co-editing: a write of our own no longer re-renders the whole besigner
  • Operations: splitting the Stripe record is not the same as fixing its mode
  • Security: a revoked App Check debug token can now be proven revoked
  • Legal: a re-acceptance banner thanks you for the acceptance it already holds
  • Console: a warm cache the server agrees with stops refusing every save
  • Console: a warm cache that the server agrees with stops refusing every save
  • Console: a photo used only on a product stops reporting as unused
  • Console: search finds the page it could not find, and names a partial read
  • Sites: a read-only lock stops the beacon firing host automations
  • Console: the screen version view packs its cards instead of stretching them
  • API: two concurrent site creates can no longer claim one subdomain
  • Privacy: a person in several orgs stops being filed in a coin-flipped one
  • Console: the campaign survives the consent bounce, and the gap is named
  • Billing: the staff margin figure says what it excludes
  • Self-hosting: a blank MEMBER_SESSION_SECRET signed cookies with an empty key
  • Security rules: an author refused by member-post.ts cannot addDoc the post either

Performance

  • Co-editing: the cursor hit test is throttled, not just the cursor write

Reverted

  • restore the screen-version card grid a second time
  • restore the screen-version card grid my last commit reverted
  • Privacy: restore the copy-drift spec's data-mention exemption

Documentation

  • Email: the DMARC section stops claiming p=quarantine
  • Analytics: the RUM section stops claiming we have no RUM
  • Trust: a publisher can install their OWN unreviewed build
  • Trust: a plugin publisher, not only a site owner, can name the host
  • Marketing site: record the ratified AGL-1244 decisions, and what still blocks two
  • Analytics: the registration half is finished, the filter is ACTIVE
  • Releases: the last two automatable screenshots, and a guard that sees a blank one
  • Analytics: the internal-traffic stamp lands AFTER the boot burst, measured
  • Legal: support@ lost its DPA clause the same week it gained one
  • Releases: backfill the beta.11 and beta.12 changelog entries
  • Self-hosting: two self-host claims that the code does not support

Behind the scenes

  • Self-hosting: the hardcoded-host ratchet admits a sentence about aglyn.com
  • Content: the entry-scheduling specs admit the gate they now run into
  • Billing: three revenue fixtures stop publishing a real home address
  • Content: the entry publish gate is proven from both sides of its instant
  • Security: the revoked-residual guard could not see the surface it had just gained
  • Legal: a published contact address must be one that exists
  • Besigner: one attribute edit is one commit, and stays one
  • Sites: the image-sink inventory is derived from the source, not remembered
  • SSO: the publish gate's attested branch is proven against Firestore
  • Besigner: a co-editor undo is proven to move in BOTH directions
  • Analytics: two campaign guards that were never executed
  • Accounts: the address-prefill fixtures stop publishing a real home address
  • Besigner: drop the unrelated reformatting from d17dc873f
  • Besigner: the pre-frame assertion stops racing the seeding frame
  • Build: the test log is redirected, not piped, so a failed task's output survives
  • Analytics: an undefined campaign param can no longer pass as no param
  • Analytics: the GA4 hit is proven ADDRESSED, not merely well-shaped
  • Security rules: the screen kind AGL-1400 added is proven denied to the client

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.