·
65 commits
to refs/heads/main
since this release
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) createAppsignature changed:createAppnow accepts a Feature array with an immutable blueprint design.ReadyResult.get()is now async: CallsstartupPendingafter resolve. (#249)RequestContextSchema.usertype changed: NowRecord<string, unknown>instead of a stricter type. (#246)AppRuntimerenamed toAppBootstrap: Reflects its role more accurately. (#268)- Feature API methods renamed:
setup→configure,warmup→start(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, andexposeIpc/ipcFetchhelpers. (#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
enabledflag — Allows disabling rate limiting via config. - Canary publish workflow — Manual CI workflow for canary releases. (#255)
Improvements
- Stateless
Services, removedbindfrom 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
IpcMainInvokeEventexposure and sandbox preload. (#265)