Skip to content

0.22.0

Choose a tag to compare

@github-actions github-actions released this 31 May 12:12
· 1408 commits to main since this release

Features

  • react/i18n: add (alias ) for reactive key translation (2d08a203)
  • jobs: default sweepCron to every 15 minutes (c8ac0afc)
  • cli: global --verbose flag (debug + pretty plain logs) (55a6074c)
  • platform: auto-detect worker secrets from the build manifest (2f334bba)
  • platform: secrets.keys allowlist — deliver worker secrets from process.env (cf150624)
  • platform: alepha platform db export + group migrate under db (3008cfde)
  • bucket: add list() to FileStorageProvider and $bucket (fdef603b)
  • platform: multi-tenant deploys via tenancy + --tenant (54b253b1)
  • cli/build: accept 'cf' as alias for '--target cloudflare' (1f1995fa)
  • payments-stripe: store Stripe customer cache in SQL via DatabaseCacheProvider (dd7f3ceb)
  • audits: add SessionAudits to alepha configuration (b6879c68)
  • jobs: cron jobs keep their last successful run by default (ae16d223)
  • admin-ui/jobs: open executions drawer on row click + fix priority schema (9c63cca1)
  • admin-ui/parameters: confirm factory reset with a diff preview (c9d6da5a)
  • admin-ui/audits: link Resource column to its admin page (2a746f11)
  • users/sessions: record + show login country (4c1d3f0b)
  • admin-ui/audits: source the Action filter from getAuditActions (666c0763)
  • admin-ui/audits: link Actor column to the user detail page (6ed4bb6e)
  • background: alepha/background module — defer() for fire-and-forget work (5c37e8ed)
  • ui/auth: brand icons, OTP reset code, conditional login autofocus (13f63791)
  • email/cloudflare: support display-name sender in EMAIL_FROM (3cc69538)
  • ui: data-driven nav registry — $page.nav, NavShell, Spotlight (52d83c96)
  • admin: global action-error toast, useQuery/useAction ports, permission gating (9bfa0efe)
  • ui: brand-icon set, select leading icon, brighter dark destructive (4fb64ab9)
  • react: implement useQueryParams format/push, fix useQuery initial loading (22d9cd43)
  • admin/parameters: history accordion, scheduling, live creator join, audit (be6faeb1)
  • admin: parameter history cards + file creator join (9f6fc617)
  • admin/files: upload action, uploader column, bucket filter, image preview (2bb3f6ec)
  • ui: AutoForm card mode + admin parameters editor (cf56286e)
  • admin: parameters editor + lore.campaign.limits (38922e38)
  • admin/users: AdminUserDetail page + clickable email column (84a2e07a)
  • security: admin setUserPassword + uniqueness + auto-unverify (6bb57178)
  • ui/control-select: hide search for short lists + per-option disabled (ddacca67)
  • ui/alepha-table: merge filter toolbar and table seamlessly (63954b1f)
  • admin: embed slim user on session rows + EN/FR translations (4355ae60)
  • security: track users.lastLoginAt + surface in admin (2a895060)
  • ui/alepha-table: inline action icons, tooltips, refresh spin (cbad8f0f)
  • orm: findById/getById accept with, allow readonly on tuples (b18daaee)
  • admin: split user table columns + sidebar brand row (c349087f)
  • cli/init: default to my-app/ when run in a non-project dir (8d8124e6)
  • cli/vendor: add 'vendor link' for live dev against a local checkout (abc5053b)
  • admin: role picker + status filter + sticky-body table layout (58721a1c)
  • ui: polish admin-users + AlephaTable floating bar (da05b2a5)
  • ui/alepha-table: sticky thead + Linear-style floating bulk bar + Settings icon for table actions (540f45ba)
  • ui: migrate shadcn stack to base-nova (Base UI primitives) (0168735a)
  • ui/alepha-table: built-in toolbar with filters, column picker, refresh/reset, persistence (cee49c69)
  • ui/alepha-table: add defaultSort + onSortChange for sort persistence (f0ad564f)
  • container: make rocket-worker → CF Container → example-ssr e2e green (d09d5ca4)
  • rocket-worker: example CF Worker fronting Rocket via $container (d8f19cd8)
  • build,platform,bin: manifest captures envConfig — drop alepha.config.ts from artifact (6184203d)
  • build,platform,rocket: manifest-driven prebuilt deploys (5815d03f)
  • cli,rocket: alepha pack command + workspace slugify + extract-by-name (1c8b19c5)
  • build/docker: skip RUN npm install when dist/package.json has no deps (77420472)

Bug Fixes

  • bucket: read upload body once and clean up the file upload chain (957d4db8)
  • command: parseEnv JSON-decodes double-quoted values (symmetric with stringify writers) (dd8abb5f)
  • platform: push per-deploy .env..local keys, not just declared env (36037311)
  • core: dump() must force-instantiate the graph before reading env (b8bdd6f6)
  • bucket: export S3FileStorageProvider from the workerd entrypoint (e3b3a8f0)
  • env: expose PUBLIC_URL at runtime on Cloudflare for absolute email links (491e39d7)
  • subscription: update gracePeriodSweep cron time to 3 AM (1ceaefe1)
  • ui/dropdown-menu: size action menus to content, not trigger width (4423a538)
  • audits: failed login records Failed; add distinct-actions endpoint (4522d611)
  • react: useAction — release the concurrency guard on unmount (0385b616)
  • cli/cloudflare: don't set send_email destination_address from EMAIL_FROM (182bc369)
  • email/cloudflare: use 'email' key in from object, not 'address' (322320a7)
  • vite: improve SSR module invalidation for workspace-linked sources (79442917)
  • ui/command: only highlight the active CommandItem (46e23a88)
  • cli/vendor: resolve link source via node:path, not via shell (dab2236a)
  • ui: use Base UI Checkbox indeterminate prop in AlephaTable (1a9af18d)
  • api/jobs: register sweep+trim crons in constructor, not in onStart (ac5a2dc4)
  • email/cloudflare: gate EmailProvider substitution on isServerless() (c919c905)
  • email/cloudflare: make EMAIL_FROM env optional, re-check in send() (433409c8)
  • cli/cloudflare: look up CloudflareEmailProvider by name string (a9831388)
  • email/cloudflare: boot inert off-Workers instead of throwing (7fe44067)