Skip to content

v0.9.0

Latest

Choose a tag to compare

@github-actions github-actions released this 13 Jun 05:41
· 65 commits to refs/heads/main since this release
e695efe

v0.9.0

Highlights

This release introduces the Feature API — a new declarative way to compose applications — along with full Electron adapter support and dual ESM/CJS output for all packages.

Breaking Changes

  • Module API removed: The legacy Module API has been removed. Use the new Feature API (http(), command(), scheduler(), eventbus()) instead. (#258, #254)
  • createApp signature changed: createApp now accepts a Feature array with an immutable blueprint design.
  • ReadyResult.get() is now async: Calls startupPending after resolve. (#249)
  • RequestContextSchema.user type changed: Now Record<string, unknown> instead of a stricter type. (#246)
  • AppRuntime renamed to AppBootstrap: Reflects its role more accurately. (#268)
  • Feature API methods renamed: setupconfigure, warmupstart (or similar — see #268 for details).

New Features

  • Feature API — Compose apps with typed feature factories: http(), command(), scheduler(), eventbus(). Features declare static and ready-layer capabilities. (#258, #254)
  • Electron Adapter — Full IPC bridge with binary body support, window management (WindowRegistry, ElectronWindowRuntime, WindowHandle), preload/renderer entry points, and exposeIpc / ipcFetch helpers. (#262, #265)
  • Dual ESM/CJS output — All packages now ship both ESM and CJS builds. (#260)
  • Typed app loader for build plugins. (#257)
  • Rate-limit enabled flag — Allows disabling rate limiting via config.
  • Canary publish workflow — Manual CI workflow for canary releases. (#255)

Improvements

  • Stateless Services, removed bind from Feature classes. (#263, #264)
  • Improved type safety: replaced unsafe type assertions with dedicated type utilities, added @zeltjs/unsafe-type-lib. (#254)
  • Dependency-cruiser integration for core layer linting. (#259)
  • Feature identity & metadata system with reserved JS object keys validation.
  • Scheduler lifecycle properly stops on runtime shutdown. (#266)
  • IPC bridge trailing slash normalization. (#267)

Bug Fixes

  • Fixed scheduler cron test flakiness. (#256)
  • Fixed wildcard route tests to use real routes. (#250)
  • Fixed async get() calls across integration tests and hono-client CLI. (#249, #251)
  • Fixed integration test TypeScript checking (tsc --noEmit). (#248)
  • Fixed pre-commit format-staged script for paths with spaces. (#247)
  • Fixed lint errors (no-as-assertion, no-switch, no-import-rename).
  • Fixed Electron adapter IpcMainInvokeEvent exposure and sandbox preload. (#265)

Docs

  • Updated hero code examples for Feature API.
  • Addressed documentation quality findings #3#11. (#261)