Skip to content

0.25.2

Choose a tag to compare

@github-actions github-actions released this 15 Aug 14:11
· 524 commits to main since this release

Features

  • core,server: read env vars from aliases, and SERVER_PORT from PORT (fe81013a)
  • api/workflows,ui: context propagation, repeat steps, cancelByKey, startEach, WorkflowTestKit (64ac6685)
  • ui: share one header-actions cluster, and give the account area a header (00b2a536)
  • cli: add --preset=saas to init (065ef43c)
  • api/workflows,ui,api/payments: resurrect the durable workflow engine, dogfooded end to end [BREAKING] (3eb1f942)
  • ui,api/users: add the account module, a user-facing counterpart to admin [BREAKING] (28bba646)
  • system: attach files to a folio and export it as a zip [BREAKING] (c2462e72)
  • ui/admin,api: name users on admin pages instead of bare UUIDs (00855755)
  • ui: address projects by slug at the URL root [BREAKING] (8222c09e)
  • analytics,ui: fold analytics into alepha/api/analytics with an admin explorer [BREAKING] (2436b61b)
  • ui/admin: "Add API key" toolbar action with one-time token reveal (718e0bb4)
  • ui/admin: open three host-page seams on the admin shell (ed797a08)
  • orm,crypto: default primary key is an app-generated UUIDv7 [BREAKING] (e241b37d)
  • ui: give every table filter select a leading icon (47986a2b)
  • system: provider parity, structured shell results, memory-default tests [BREAKING] (405f20af)
  • ui/admin: add adminPage() helper, migrate shop onto it (173ed2fe)
  • mcp: close out the module review — templates, streaming, stdio [BREAKING] (3ebcb93e)
  • ui/admin: add AdminRouter mounting the whole /admin surface (1c188417)
  • ui: add AdminLayout shell for AdminRouter (6730e02b)
  • ui/admin: add AdminRouter boot-time options atom (26cc4802)
  • ui/admin: add default export to admin-payments component (42fd23c2)
  • ui: a dropdown menu sizes to its content, not to its trigger (fc631ede)
  • platform: auto-provision Cloudflare Analytics Engine through platform up (3dbb3b96)
  • ui: one select for every list, and the count only gates the search (65baeac5)
  • ui: weld AlephaTable's pagination row into the table panel (eeb02a84)
  • analytics: the hourly rollup and prune sweep (2647e45b)
  • analytics: the Analytics Engine provider and the workerd entry (0b62aa7c)
  • analytics: the $analytics primitive and its module (a3fc9bef)
  • analytics: relational provider with raw and rolled tiers (4435d8e8)
  • analytics: derive raw and rolled tables from a dataset descriptor (53d92e14)
  • analytics: the provider seam, query types and the memory provider (e1b68681)
  • analytics: hour and day bucket arithmetic (e9db15ea)
  • analytics: package scaffold and the Analytics Engine slot map (31c3cb2a)
  • orm: upsertMany, and vitals stop losing samples to a read-modify-write (f3673f1a)
  • react/router: a guarded page defaults to CSR, and guards refuse the same way on both sides (11d7c601)

Bug Fixes

  • system: drop node:path from MemoryFileSystemProvider (e1a496e3)
  • api/workflows: never complete a workflow while a step is still running (9b77cea4)
  • orm: emit domain events after the outermost transaction commits (4090a7d7)
  • ui/table: tooltip on the column picker, and chrome that reads in light mode (bbd12bd9)
  • ui: make light-mode interaction states surface-relative (8385499a)
  • ui/auth: let password reset satisfy the captcha it is gated on (90ac2498)
  • core: harden the kernel — parseEnv escaping, DI failure paths, env truthiness [BREAKING] (c8b7f558)
  • datetime,scheduler: keep cron ticks anchored and clamp 32-bit timers (14bee4e5)
  • ui/admin: point AdminRouter's doc at adminPage instead of duplicating it (da8e1a16)
  • ui: close six review findings on AdminRouter (a8d0f002)
  • ui/admin: the user form demanded fields the realm never collects (76e503ac)
  • ui/admin: rename admin-router-options to .tsx, revert exports hack (84a1dbae)
  • ui/admin: type AdminRouter's action gate instead of stringly-naming it (43b0b43d)
  • ui/admin: gate nav entries on action names, not permission alone (53990594)
  • core: stop reporting a boot duration workerd cannot measure (1c602359)
  • files: bound the public-file edge cache at a week, not a year (728c4b31)
  • cookies: the browser and the server disagreed on every shared cookie name (db5d10c2)
  • react/router: apply the SSR payload before the first start hook (807e0d4b)
  • analytics: GROUP BY takes a column name, not the expression (f16d8750)
  • analytics: count() takes no arguments on Analytics Engine (f922de31)
  • analytics: declare the prune-floor table on every runtime, not just workerd (19402864)
  • analytics: look the binding up by its own name, and expose the dataset at runtime (b85fe8db)
  • analytics: rename the read token and quote the dataset name in FROM (31577f73)
  • analytics: scope the prune-floor table to WaeAnalyticsProvider only (f9fedea1)
  • analytics: give WaeAnalyticsProvider a durable prune floor (dfaa30c0)
  • analytics: numeric dimensions on WAE, drop count aggregate, close validation gaps (0245b5c0)
  • ui: a collapsed sidebar's nav group is a dropdown, not a dead button (c035c1a9)
  • analytics: rollup() had the identical raw-name splice as readOne, and the conformance suite's single-word fixture let both ship (97aa548f)
  • analytics: resolve dimension/measure names to real columns in OrmAnalyticsProvider.readOne (ea9d75bc)
  • analytics: merge Analytics Engine and cold on the read side (df50d060)
  • analytics: warn on unwired retention, reject cold<hot, isolate sweep failures (5f290e65)
  • analytics: forward Analytics Engine rows into cold before folding them (333afb2b)
  • analytics: make WaeAnalyticsProvider DI-constructible so it can be auto-selected (264987d1)
  • analytics: replace a stray NUL byte with a space in FakeAnalyticsEngine (7d78e569)
  • analytics: validate the dataset name in $analytics, pin registration ordering (cdf4e0d4)
  • analytics: eager dataset registration, reserve day/hour dimension names (d442dda6)
  • analytics: reserve time_bucket instead of bucket, guard column collisions (83a3a202)
  • analytics: drop min/max, fix prune's tier scope, sharpen conformance suite (a403a4e9)
  • analytics: escape composite grouping keys, cover count/min/max, fix JSDoc style (5bc7a5e4)
  • analytics: type imports, tsconfig, error messages, and measures cap test (15a47935)
  • ui: a clearable Control keeps its clear label in full contrast (44bff3dc)
  • react/router: stop importing a CSR page's component on the server (ffa6521f)
  • security: $secure checks permissions in the browser, and a denied page stops rendering (04f9e864)