v1.0.0-beta.1
Released to production on August 18, 2026 at 18:54 CDT. See every commit in this release on GitHub
New
- Tooling: a source-side hardcoded-color ratchet the census could never be
- Accounts: a company domain can require SSO, without making staff require it
- Console: a designed error screen is not a page of the site
- Sites: a deliberate platform fingerprint, gated on white-label
- Console: four enforced entitlements get a console surface
- Console: the plan comparison lists every entitlement, not 19 of 34
- Tooling: real repo versioning — semver bump, release tags, generated CHANGELOG
- Console: tell a publisher what Aglyn keeps, where they set the price
- Console: the scope-drift repair gets somewhere for a human to perform it
- Console: the usage budget is a card a customer can actually set and see
- Console: the review queue can LIST a plugin, the step that makes it installable
- Console: budget alerts fire from the cron, and every usage alert now actually emails
- Console: a private file can finally be fetched — the DAM calls the signing route
- Console: per-org usage budgets — the GCP billing-budget shape, in one pure module
Fixed
- Console: reconcile the 12 merged rescue branches
- Console: the publish-panel loop guard stops manufacturing the loop
- Security rules: screenAnalytics was editor-writable, and the catch-all grants by default
- Tooling: the webhook audit could not see a delivery that failed then retried
- Tooling: the TTL script applied one of the eight documented policies
- Accounts: one row per human, and the action lands on the human
- Bookings: a paid booking states its tax decision, and is recorded
- Commerce: an unset tax mode refuses the sale instead of zero-rating it
- Marketplace: a refund now pulls the publisher's share back
- Commerce: Connect readiness stops being a flag nobody refreshes
- Console: the storage consent card refuses to ask for consent it cannot price
- Tooling: the redirect backfill stops re-creating the redirects attach now withholds
- Console: the Anthropic subprocessor gate classifies AGL-2073's new spec
- Commerce: four wholesale mocks get the hooks the entitlement gate calls
- Console: the naming sweep exempts the generated changelog
- Console: the scope-drift repair card carries its help topic
- Console: the revenue-truth guard counts a use, not a mention
- Console: restore the nine stale-seed write guards
- Platform: the host write-deny guard reads a transactional seed write
- Console: the org library shares the band, it does not get a second one
- Commerce: type the renewal spec's fetch mock at its declaration
- Besigner: /api/ai/assist reserves, rate limits and meters
- Sites: the boundary ban becomes the invariant it was standing in for
- Console: the console had no error boundary either, and the plain status page is now shared
- Console: the host picker reports the SSO-tenant truncation too
- Console: staff lists are walked to the end, and say so when they are not
- Commerce: five commerce features refuse in the console, not at the buyer's checkout
- Marketplace: component install honors the reusableComponents entitlement
- Console: membersPerHost is a hard cap on all four doors
- Console: one owner composes every GA4 default param
- Tooling: the source color sweep counts authored color, not prose
- Commerce: a lapsed storefront stops renewing, and never sells at 0%
- Console: the empty error-screen option says what it actually does, and a guard keeps the boundaries in place
- Documentation: docs.aglyn.com stamps our own reading too
- Console: localhost and preview builds stop reporting into the live property
- Sites: the platform version headers leaked through white-label
- Sites: the provider-free status page is legible in dark mode
- Console: every route titles itself, and a guard that says so
- Sites: a customer site never falls through to the framework's error page
- Console: page_view reports the page, not the notification count
- Console: a browser we declare ours stays ours, whoever signs in
- Sites: the marketing surface stamps our own traffic
- Repository: the Webfile number is operator config, not a handoff note
- Console: the free site limit is claimed transactionally, not counted then written
- Console: the free assist cap is spent before the tokens, not after
- Commerce: the Analytics tab asks the entitlement its own dashboard widget asks
- Dependencies: monaco-editor 0.56.0 replaces the DOMPurify 3.2.7 we serve
- Platform: operator identity is configuration, and a DMCA notice reaches whoever actually hosts the content
- Console: gate the billing webhook on livemode
- Console: metered storage bills by default; the cap is the customer's
- Console: the tenant apex is configuration, not our infrastructure
- CI: the emulator-guards runner works on Linux too, not just macOS
- Marketing site: the POS register allowance is PER SITE in the generated pricing tables
- Console: keep the org identity when merging the billing doc
- Cloud functions: the rules suite was dead at import, on the same parser bug as AGL-2004
- Repository: synthesise the personal data committed to a public repo
- Platform: retire the stale addBusinessDays disambiguation, and a type predicate that lied
- Console: the TX registration is operator config, not public source
Changed
- Sites: one page chrome for both §512 intakes, guarded against drift
- Assist: the reservation and the meters get one home, in a lib
- Console: one shared inverse for the unread tab badge
- Cloud functions: one comment stripper for one bug, shared shape with AGL-2004
Documentation
- Self-hosting: the runbook never deployed indexes or TTL, and hid five live keys
- Documentation: rescue ten orphaned commits from the previous session
- Documentation: the freeze is on — gate once, then promote
- Agent tooling: /release carries the owner's evening 2026-08-18 mandate, verbatim
- error screens do not spend the screen allowance
- Billing: interactions is not a dead flag — record what reads it
- Analytics: §8 records the override, the environment gate, and what is actually left for the owner
- Analytics: the page_title dimension, both defects and what is left
- Documentation: close 2026-08-18 — the owner's decisions, the restated mandate, six agents in flight
- Agent tooling: /release carries the owner's 2026-08-18 restated mandate verbatim
Behind the scenes
- Console: pin every staff action to the pool the person signs in to
- Console: pin WHICH lock the domain-status route refuses, not just that one reaches it
- Console: regenerate the Assist docs index after the self-hosting edit
- Console: the billing lockdown spec configures the operator, like its seven siblings
- Console: the no-community sweep exempts a verbatim quote, narrowly
- Console: stub the budget card in the lockdown spec, and document the budget env vars
- Sites: the quarantine upload spec follows the constant that became config
- Build checks: the rules suite and 18 emulator specs get a workflow that runs them
- Cloud functions: the host deny floor now names registers, the twice-clobbered one
Share this article
We're building the open web platform. Follow along as we ship — and tell us what you need.