Skip to content

v0.1.2

Choose a tag to compare

@AlexTiTanium AlexTiTanium released this 09 Jun 23:24
· 13 commits to main since this release
9d02b96

What changed

Hardening release: four runtime/type fixes, the sandbox suite wired into CI, and a docs-truth pass — every item found by a multi-agent audit of the moku family and shipped as an individually reviewed PR.

Event bus survives throwing error handlers (#3)

A throwing onError handler no longer aborts hook dispatch or leaks an unhandled rejection from the fire-and-forget emit (which crashed the process on Node >= 22). Remaining hooks always run, and the consumer onError is still invoked when the framework handler throws. Specs 07/13 updated to document the guarded semantics.

Omitted Events generic keeps hook names strict (#6)

createCoreConfig's Events default was Record<string, never>, whose keyof is string — so frameworks that omitted global events silently lost hook-name checking and typo'd hooks compiled but never fired. The default is now Record<never, never>: typo'd dependency-event hooks are a compile error, matching the behavior with an explicit Events map.

createCore accepts readonly / as const plugin tuples (#4)

CreateCoreOptions.plugins is now readonly AnyPluginInstance[], consistent with the generic constraint. Note: widening the exported option to readonly is technically a breaking type change for code that read the property as a mutable array.

require() honors its type for api-less plugins (#5)

Requiring a registered plugin that exposes no api returned a misleading "x" is not registered error while has("x") was true. It now returns a frozen empty object — exactly what the ExtractApi type promises — at all three call sites (plugin ctx, callback ctx, app.require).

Sandbox suite runs in CI (#2)

The sandbox vitest project (500+ runtime tests over the exemplar plugins) now runs in CI and the pre-commit hook; previously it ran nowhere automated.

Docs truth pass (#7)

README/spec/CLAUDE.md/llms corrections: two runtime exports (createCoreConfig + createCorePlugin), real bundle size, reserved-name list now includes global/state (matching what the kernel actually rejects), removed the unimplemented "required configs are a compile-time guarantee" claim, and fixed the onError JSDoc that promised teardown-failure handling.

Full Changelog: v0.1.0-alpha.6...v0.1.2