← All updates

CHANGELOG

v1.0.0-beta.122

Service registry, nine widget zones, activity actions, entitlement seams. 67 changes in all: 22 new, 15 fixes, 3 performance, 5 docs and 22 behind the scenes.

The Aglyn Team · Sep 2026

Released to production on September 14, 2026 at 15:02 CDT. See every commit in this release on GitHub

New

  • Plugins: service registry, nine widget zones, activity actions, entitlement seams
  • Console: a Duplicate action copies any resource whole, as a draft
  • Tooling: the package map, with scope tags, boundary rules and a shrink-only allowlist
  • Marketing site: /pricing tables carry the Aglyn AI add-on, credits band and overage rate
  • AI: per-user AI usage — a uid-keyed monthly rollup and every surface that reads it
  • Activity log: wire the AI job machine and permission routes to the activity writers
  • Billing: the Free taste's refusals are counted and shown beside the workspace's
  • Billing: the Free AI taste: 300 credits behind a wall, with abuse precautions
  • Besigner: a layout declares properties, and each screen inside it sets the values
  • Besigner: a property takes its attribute's own control, so a Yes / no is a switch
  • Platform: property kinds are the attribute field kinds, each reaching its field typed
  • Console: staff AI monitoring — org AI card, AI columns, margin side, leaderboard
  • Activity log: every AI generation, edit and control change lands in the activity logs
  • AI: the jobs door asks for ai.generate on the named site before it admits
  • AI: generation jobs — state machine, per-step credits, SSE progress, beat resume
  • Permissions: ai.use and ai.generate for members and collaborators at every AI door
  • Console: buy Aglyn AI from Billing, one AI credits meter, overage controls, cards
  • Billing: sell the Aglyn AI add-on — prices, checkout, add-ons and the webhook
  • AI: a generated element palette and a validator for AI-emitted node trees
  • Billing: a dollar ceiling on AI overage, Free as a wall, and AI credit alerts
  • AI: one Anthropic runtime for every AI door, with caching and the gate ladder
  • Billing: the Aglyn AI add-on as a seat add-on with its credit band

Fixed

  • Console: the per-member and per-account AI usage tables page under the shared footer
  • AI: the account-age read resolves the caller's auth pool through authForPool
  • Console: the staff org AI route reads live subscriptions via the shared predicate
  • Console: the Free AI taste does not read as the AI add-on included in its plan
  • Tooling: the TTL policy list carries months.expiresAt, as the config doc records
  • Tooling: the TTL policy list carries aiJobs.expiresAt, as the config doc records
  • Marketplace: a published component or layout keeps its declared properties
  • Console: saving a live screen's SEO or protection refreshes the live page
  • Console: the per-user AI usage read keys on the uid, not the user object's identity
  • Marketing site: a fractional add-on rate prints to the cent, "$2.50" beside "$0.50"
  • AI: the jobs door answers the Free taste's refusals and meters on its account
  • Templates: a component or layout template keeps its properties and their tokens
  • Console: the staff AI card reads the job model's own field names
  • Feature flags: label release_ai_generative for the doors it switches, not the add-on's name
  • Billing: the checkout's AI add-on refusals read the configured brand

Performance

  • Monitoring: the crons door reads one summary of every beat, not one document per job
  • Sites: a refused listen backs off with the length of its outage
  • Sites: a hidden tab holds refused listens until it is visible

Documentation

  • Staff console: the AI monitoring description fits the tooltip excerpt limit
  • Billing: document the three Free AI abuse-precaution env vars for self-hosters
  • Billing: regenerate the feature matrix for Free's aiGenerative entitlement
  • Besigner: every property type, conditional properties, and layout properties
  • Pricing: the Aglyn AI add-on decision is confirmed by the owner

Behind the scenes

  • Console: the assist chat route spec carries authForPool for the account-age read
  • Plugins: the CRM settings and forms header specs stub the Duplicate flow
  • Sites: the image-sink inventory declares the generated AI palette as no sink
  • Console: the margin spec pins the assist band Free sells since the AI taste
  • Console: the metered sweep records the staff org AI route as a read-only list
  • Console: the AI jobs route spec loads the AI entitlement declaration
  • Billing: the AI add-on specs load the plugin entitlement declaration
  • Site data: the assist usage spec imports plan entitlements statically
  • Console: the org-less plugins gate spec stubs the AI permissions the gate reads
  • Console: staff audit specs carry the plugin action-group functions the page reads
  • Console: billing page specs stub the plugin widget zones the page now mounts
  • Console: the screen view announce spec imports the visibility enum statically
  • Console: the Screen Properties announce spec stubs the plugin widget zones
  • Console: seat-count and checkout spec doubles carry what the plugin zones reach
  • Sites: the Duplicate dialog's MUI import is a declared peer of the instance lib
  • Tooling: the self-test's AI credits fixture prints Scale's rate to the cent
  • Console: four suites stop using Free to mean "no band" and mock the taste's reads
  • Console: the cost-breakdown spec's shared-lib mock carries aiAddonName
  • Platform: type the layout properties spec's node maps as node schemas
  • Tooling: raise the checked-in Linear ceiling to AGL-2932
  • Console: the lockdown page spec counts capabilities from the catalog
  • Billing: the AI add-on prices are minted, so a missing one is drift again

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.