Skip to content

Releases: async/framework

v0.15.3

Choose a tag to compare

@PatrickJS PatrickJS released this 06 Jul 11:29

Release notes from CHANGELOG.md for @async/framework@0.15.3 (2026-07-06).

  • Memoized attribute-prefix normalization by config identity so activation
    scans reuse normalized attribute config on the hot path instead of
    re-normalizing prefixes for every attribute read.
  • Reworked loader activation to collect each scan scope once with a TreeWalker,
    share that element list across revive, signal, class, event, boundary, and
    component passes, and merge attach, visible, and intersect pseudo-event
    binding into one pass.
  • Bundle size from bundled TypeScript source: browser.ts raw 258,315 B (258.3 KB / 0.258 MB), gzip 48,822 B (48.8 KB / 0.049 MB), br 40,208 B (40.2 KB / 0.040 MB) -> browser.min.js raw 108,261 B (108.3 KB / 0.108 MB), gzip 31,669 B (31.7 KB / 0.032 MB), br 27,814 B (27.8 KB / 0.028 MB); delta raw -150,054 B (-150.1 KB / -0.150 MB), gzip -17,153 B (-17.2 KB / -0.017 MB), br -12,394 B (-12.4 KB / -0.012 MB).

Release evidence

  • Release type: stable
  • Package profile: framework-browser
  • npm pack files: 61
File Raw Gzip Brotli
browser.d.ts 42.8 KB 7.8 KB 6.9 KB
browser.js 252.2 KB 48.0 KB 39.2 KB
browser.min.js 105.7 KB 31.0 KB 27.2 KB
browser.ts 252.3 KB 48.0 KB 39.3 KB
browser.umd.js 267.9 KB 49.1 KB 39.9 KB
browser.umd.min.js 107.3 KB 31.1 KB 27.3 KB
framework.d.ts 47.0 KB 8.6 KB 7.6 KB
framework.ts 394.5 KB 74.1 KB 59.0 KB
server.js 394.5 KB 74.0 KB 59.0 KB

Diff links:


Source: CHANGELOG.md in tag v0.15.3.

v0.15.2

Choose a tag to compare

@PatrickJS PatrickJS released this 06 Jul 09:08

Release notes from CHANGELOG.md for @async/framework@0.15.2 (2026-07-06).

  • Expanded @async/framework/flow (and the main entry) to re-export the
    complete @async/flow helper surface: step helpers (dispatch, after,
    branch, guard, transition), condition helpers (bool, every,
    some, not, can, matches, inspect), composition (compose,
    parallel, remember), and the flowStatus declaration helper, alongside
    the existing set, update, when, and onError. Apps can author full
    Flow definitions without installing @async/flow directly.
  • Removed the per-notification random dedupe key from the Flow scheduler
    bridge. Keys added keyed-job bookkeeping for every Flow notification without
    ever deduping, and a key collision could silently drop a notification.
  • Dropped the stale @async/flow/run module mapping from the bundle scripts
    (@async/flow/run is not a public Flow subpath) and added the
    @async/flow/compose mapping used by the expanded flow entry.

Release evidence

  • Release type: stable
  • Package profile: framework-browser
  • npm pack files: 61
File Raw Gzip Brotli
browser.d.ts 42.8 KB 7.8 KB 6.9 KB
browser.js 249.7 KB 46.9 KB 38.4 KB
browser.min.js 105.3 KB 30.8 KB 27.1 KB
browser.ts 249.8 KB 46.9 KB 38.4 KB
browser.umd.js 265.3 KB 48.1 KB 39.0 KB
browser.umd.min.js 106.8 KB 31.0 KB 27.2 KB
framework.d.ts 47.0 KB 8.6 KB 7.6 KB
framework.ts 392.1 KB 73.0 KB 58.1 KB
server.js 392.0 KB 72.9 KB 58.1 KB

Diff links:


Source: CHANGELOG.md in tag v0.15.2.

v0.15.1

Choose a tag to compare

@PatrickJS PatrickJS released this 06 Jul 08:08

Release notes from CHANGELOG.md for @async/framework@0.15.1 (2026-07-06).

  • Updated the Flow bridge to consume @async/flow 0.10.3, including the
    framework-runtime helper paths required by current Flow releases.
  • Fixed Flow async signal refresh handlers so a refresh without authored input
    uses the signal's configured arguments instead of passing an empty object.
  • Rolled back partial signal and handler registrations when a Flow mount fails,
    preventing failed mounts from leaving stale registry entries behind.
  • Fixed SSR signal patches for mounted Flow signals so exact paths such as
    cart.total update without serializing an unintended parent cart signal.
  • Added ./jsx/jsx-runtime and ./jsx/jsx-dev-runtime package exports so
    jsxImportSource: "@async/framework/jsx" resolves under the automatic JSX
    transform; the base entrypoints default to the runtime profile types.
  • Guarded the Vite plugin bootstrap transform: modules are replaced only when
    they actually import @async/framework/jsx* (comment and string mentions no
    longer match), replacements are logged, multiple modules collapsed into one
    virtual bootstrap now warn, and full-rewrite transforms return an empty
    sourcemap instead of map: null.
  • Made the Vite 8 + Rolldown host check use plugin-context metadata
    (this.meta.viteVersion / this.meta.rolldownVersion) in configResolved
    instead of treating the resolved config as a host descriptor, and exported
    detectViteHost and importsAsyncJsx helpers.
  • Stopped defaulting server.base when composing @hono/vite-dev-server;
    base is forwarded only when the app sets it, so user-configured Vite
    base values are no longer overridden by default.
  • Declared vite >= 8 as an optional peer dependency.
  • Reported runtime slice status (available for signals/events,
    planned for async-signals/stream) with a runtime-slice-planned
    warning diagnostic, and documented that planned slices are recorded but not
    activated by @async/framework/runtime yet.
  • Reworked the vite-jsx-streaming example onto the buildtime JSX profile so
    the authoring source matches the shipped type profiles, and documented that
    the fixture profile is the current source of truth for the emitted plan.

Release evidence

  • Release type: stable
  • Package profile: framework-browser
  • npm pack files: 61
File Raw Gzip Brotli
browser.d.ts 42.8 KB 7.8 KB 6.9 KB
browser.js 249.7 KB 46.9 KB 38.4 KB
browser.min.js 105.3 KB 30.8 KB 27.1 KB
browser.ts 249.8 KB 46.9 KB 38.4 KB
browser.umd.js 265.3 KB 48.1 KB 39.0 KB
browser.umd.min.js 106.8 KB 31.0 KB 27.2 KB
framework.d.ts 44.8 KB 8.1 KB 7.2 KB
framework.ts 390.1 KB 72.5 KB 57.8 KB
server.js 390.1 KB 72.4 KB 57.7 KB

Diff links:


Source: CHANGELOG.md in tag v0.15.1.

v0.15.0

Choose a tag to compare

@PatrickJS PatrickJS released this 26 Jun 20:24

Release notes from CHANGELOG.md for @async/framework@0.15.0 (2026-06-26).

  • Added scheduler commit-phase ordering for app-level loader swaps and streamed
    boundary patches, including frame-backed commits and deterministic
    non-browser fallbacks.
  • Added declaration conventions for Async.use(...) so registered kinds can
    materialize on register, start, or demand under configurable duplicate
    policies.
  • Bundle size from bundled TypeScript source: browser.ts raw 256,039 B (256.0 KB / 0.256 MB), gzip 47,748 B (47.7 KB / 0.048 MB), br 39,376 B (39.4 KB / 0.039 MB) -> browser.min.js raw 107,985 B (108.0 KB / 0.108 MB), gzip 31,556 B (31.6 KB / 0.032 MB), br 27,711 B (27.7 KB / 0.028 MB); delta raw -148,054 B (-148.1 KB / -0.148 MB), gzip -16,192 B (-16.2 KB / -0.016 MB), br -11,665 B (-11.7 KB / -0.012 MB).

Release evidence

  • Release type: stable
  • Package profile: framework-browser
  • npm pack files: 58
File Raw Gzip Brotli
browser.d.ts 42.8 KB 7.8 KB 6.9 KB
browser.js 250.0 KB 46.9 KB 38.4 KB
browser.min.js 105.5 KB 30.9 KB 27.1 KB
browser.ts 250.0 KB 46.9 KB 38.5 KB
browser.umd.js 265.6 KB 48.1 KB 39.0 KB
browser.umd.min.js 107.0 KB 31.0 KB 27.2 KB
framework.d.ts 44.8 KB 8.1 KB 7.2 KB
framework.ts 377.3 KB 70.0 KB 55.8 KB
server.js 377.3 KB 69.9 KB 55.8 KB

Diff links:


Source: CHANGELOG.md in tag v0.15.0.

v0.14.0

Choose a tag to compare

@PatrickJS PatrickJS released this 26 Jun 18:38

Release notes from CHANGELOG.md for @async/framework@0.14.0 (2026-06-26).

  • Updated the Flow bridge to consume @async/flow 0.10.0 through the
    scheduler-free integration subpaths and shared protocol brands.
  • Bundle size from bundled TypeScript source: browser.ts raw 228,465 B (228.5 KB / 0.228 MB), gzip 42,518 B (42.5 KB / 0.043 MB), br 35,193 B (35.2 KB / 0.035 MB) -> browser.min.js raw 96,205 B (96.2 KB / 0.096 MB), gzip 27,993 B (28.0 KB / 0.028 MB), br 24,820 B (24.8 KB / 0.025 MB); delta raw -132,260 B (-132.3 KB / -0.132 MB), gzip -14,525 B (-14.5 KB / -0.015 MB), br -10,373 B (-10.4 KB / -0.010 MB).

Release evidence

  • Release type: stable
  • Package profile: framework-browser
  • npm pack files: 58
File Raw Gzip Brotli
browser.d.ts 37.8 KB 7.0 KB 6.2 KB
browser.js 223.0 KB 41.8 KB 34.4 KB
browser.min.js 94.0 KB 27.4 KB 24.2 KB
browser.ts 223.1 KB 41.8 KB 34.4 KB
browser.umd.js 237.1 KB 42.9 KB 34.9 KB
browser.umd.min.js 95.5 KB 27.5 KB 24.4 KB
framework.d.ts 39.8 KB 7.3 KB 6.5 KB
framework.ts 350.2 KB 64.8 KB 51.8 KB
server.js 350.2 KB 64.8 KB 51.8 KB

Diff links:


Source: CHANGELOG.md in tag v0.14.0.

v0.13.0

Choose a tag to compare

@PatrickJS PatrickJS released this 26 Jun 17:29

Release notes from CHANGELOG.md for @async/framework@0.13.0 (2026-06-26).

  • Moved streaming, Flow, and router browser code behind explicit
    @async/framework/stream, @async/framework/flow, and
    @async/framework/router subpaths so the default browser asset stays focused
    on the core runtime.
  • Added guarded Flow and router startup errors when default-browser apps use
    those declarations without importing their opt-in subpath.
  • Added a bundle optimizer pipeline for Brotli-oriented candidate measurement
    and diagnostics.
  • Bundle size from bundled TypeScript source: browser.ts raw 227,580 B (227.6 KB / 0.228 MB), gzip 42,303 B (42.3 KB / 0.042 MB), br 35,028 B (35.0 KB / 0.035 MB) -> browser.min.js raw 95,660 B (95.7 KB / 0.096 MB), gzip 27,847 B (27.8 KB / 0.028 MB), br 24,709 B (24.7 KB / 0.025 MB); delta raw -131,920 B (-131.9 KB / -0.132 MB), gzip -14,456 B (-14.5 KB / -0.014 MB), br -10,319 B (-10.3 KB / -0.010 MB).

Release evidence

  • Release type: stable
  • Package profile: framework-browser
  • npm pack files: 58
File Raw Gzip Brotli
browser.d.ts 37.8 KB 7.0 KB 6.2 KB
browser.js 222.2 KB 41.6 KB 34.2 KB
browser.min.js 93.4 KB 27.2 KB 24.1 KB
browser.ts 222.2 KB 41.6 KB 34.2 KB
browser.umd.js 236.2 KB 42.7 KB 34.7 KB
browser.umd.min.js 94.9 KB 27.4 KB 24.2 KB
framework.d.ts 39.8 KB 7.3 KB 6.5 KB
framework.ts 333.1 KB 62.0 KB 49.8 KB
server.js 333.1 KB 61.9 KB 49.7 KB

Diff links:


Source: CHANGELOG.md in tag v0.13.0.

v0.12.6

Choose a tag to compare

@PatrickJS PatrickJS released this 24 Jun 06:38

Release notes from CHANGELOG.md for @async/framework@0.12.6 (2026-06-24).

  • Added the app-level Async.router facade with queued navigate, prefetch,
    ready, match, and nested loader access before runtime startup.
  • Added router transition planning that skips duplicate active-route work and
    uses signal-only updates for same-view navigation unless force: true is
    requested.
  • Made createRouter(...) start immediately, rejected separate signal registry
    injection, and kept route and partial registration on the app registry path.
  • Documented routing layers from simple Async.use({ route, partial }) setup
    through signal-router dashboards, refresh scopes, and custom runtime wiring.
  • Bundle size from bundled TypeScript source: browser.ts raw 366,552 B (366.6 KB / 0.367 MB), gzip 67,930 B (67.9 KB / 0.068 MB), br 55,263 B (55.3 KB / 0.055 MB) -> browser.min.js raw 153,961 B (154.0 KB / 0.154 MB), gzip 44,479 B (44.5 KB / 0.044 MB), br 38,561 B (38.6 KB / 0.039 MB); delta raw -212,591 B (-212.6 KB / -0.213 MB), gzip -23,451 B (-23.5 KB / -0.023 MB), br -16,702 B (-16.7 KB / -0.017 MB).

Release evidence

  • Release type: stable
  • Package profile: framework-browser
  • npm pack files: 40
File Raw Gzip Brotli
browser.d.ts 39.7 KB 7.3 KB 6.5 KB
browser.js 357.9 KB 66.7 KB 53.9 KB
browser.min.js 150.4 KB 43.5 KB 37.7 KB
browser.ts 358.0 KB 66.8 KB 54.0 KB
browser.umd.js 379.9 KB 68.3 KB 54.7 KB
browser.umd.min.js 152.6 KB 43.7 KB 37.7 KB
framework.d.ts 40.0 KB 7.4 KB 6.5 KB
framework.ts 363.1 KB 67.8 KB 54.5 KB
server.js 363.0 KB 67.7 KB 54.5 KB

Diff links:


Source: CHANGELOG.md in tag v0.12.6.

v0.12.5

Choose a tag to compare

@github-actions github-actions released this 24 Jun 04:06

Release notes from CHANGELOG.md for @async/framework@0.12.5 (2026-06-24).

  • Added asyncFramework({ layer, server, client }) for Hono-backed Vite
    development and client-only production asset builds without a platform target.
  • Added Vite Hono and Vite JSX streaming examples, including optimizer report
    visibility for the selected signals, events, async-signals, and
    stream runtime slices.
  • Re-exported the optimizer report from Vite-generated JSX bootstrap modules
    and marked runtime handler imports for Vite analysis so example dev servers
    stay warning-free.
  • Bundle size from bundled TypeScript source: browser.ts raw 356,171 B (356.2 KB / 0.356 MB), gzip 66,646 B (66.6 KB / 0.067 MB), br 54,356 B (54.4 KB / 0.054 MB) -> browser.min.js raw 149,871 B (149.9 KB / 0.150 MB), gzip 43,590 B (43.6 KB / 0.044 MB), br 37,839 B (37.8 KB / 0.038 MB); delta raw -206,300 B (-206.3 KB / -0.206 MB), gzip -23,056 B (-23.1 KB / -0.023 MB), br -16,517 B (-16.5 KB / -0.017 MB).

Release evidence

  • Release type: stable
  • Package profile: framework-browser
  • npm pack files: 40
File Raw Gzip Brotli
browser.d.ts 39.7 KB 7.3 KB 6.5 KB
browser.js 347.8 KB 65.5 KB 53.0 KB
browser.min.js 146.4 KB 42.6 KB 37.0 KB
browser.ts 347.8 KB 65.5 KB 53.1 KB
browser.umd.js 369.1 KB 67.0 KB 53.7 KB
browser.umd.min.js 148.6 KB 42.8 KB 37.0 KB
framework.d.ts 40.0 KB 7.4 KB 6.5 KB
framework.ts 352.9 KB 66.5 KB 53.6 KB
server.js 352.9 KB 66.5 KB 53.6 KB

Diff links:


Source: CHANGELOG.md in tag v0.12.5.

v0.12.4

Choose a tag to compare

@PatrickJS PatrickJS released this 24 Jun 02:39

Release notes from CHANGELOG.md for @async/framework@0.12.4 (2026-06-24).

  • Added loader.swap({ type: "many", ifChanged: true }) to skip unchanged
    per-boundary replacement inside batched swaps.
  • Added loader.defineRefreshPlan(...) and loader.refresh(scope) for
    declarative scope-to-boundary refresh orchestration in signal-router SPAs.
  • Added loader.swap({ type: "bind", deps: [...] }) for explicit signal-path
    refresh dependencies instead of implicit render-time collection.
  • Added per-entry { html, strategy, attach } objects in type: "many"
    updates for mixed morph/replace batches.
  • Added morph attach: "preserve" (default) and attach: "rebind" options,
    plus a development warning when morph preserves an on:attach node but removes
    listener-bearing descendants.
  • Bundle size from bundled TypeScript source: browser.ts raw 356,171 B (356.2 KB / 0.356 MB), gzip 66,646 B (66.6 KB / 0.067 MB), br 54,356 B (54.4 KB / 0.054 MB) -> browser.min.js raw 149,871 B (149.9 KB / 0.150 MB), gzip 43,590 B (43.6 KB / 0.044 MB), br 37,839 B (37.8 KB / 0.038 MB); delta raw -206,300 B (-206.3 KB / -0.206 MB), gzip -23,056 B (-23.1 KB / -0.023 MB), br -16,517 B (-16.5 KB / -0.017 MB).

Release evidence

  • Release type: stable
  • Package profile: framework-browser
  • npm pack files: 40
File Raw Gzip Brotli
browser.d.ts 39.7 KB 7.3 KB 6.5 KB
browser.js 347.8 KB 65.5 KB 53.0 KB
browser.min.js 146.4 KB 42.6 KB 37.0 KB
browser.ts 347.8 KB 65.5 KB 53.1 KB
browser.umd.js 369.1 KB 67.0 KB 53.7 KB
browser.umd.min.js 148.6 KB 42.8 KB 37.0 KB
framework.d.ts 40.0 KB 7.4 KB 6.5 KB
framework.ts 352.9 KB 66.5 KB 53.6 KB
server.js 352.9 KB 66.5 KB 53.6 KB

Diff links:


Source: CHANGELOG.md in tag v0.12.4.

v0.12.3

Choose a tag to compare

@PatrickJS PatrickJS released this 24 Jun 01:41

Release notes from CHANGELOG.md for @async/framework@0.12.3 (2026-06-24).

  • Treat route partials that return status: 204, no html key, bare null,
    or bare undefined as no-op route HTML updates instead of clearing or
    stringifying the active boundary.
  • Added config-first loader.swap({ type }) variants for unchanged-aware,
    batched, and signal-bound boundary refreshes without expanding the loader
    method surface.
  • Bundle size from bundled TypeScript source: browser.ts raw 348,555 B (348.6 KB / 0.349 MB), gzip 65,264 B (65.3 KB / 0.065 MB), br 53,133 B (53.1 KB / 0.053 MB) -> browser.min.js raw 146,383 B (146.4 KB / 0.146 MB), gzip 42,600 B (42.6 KB / 0.043 MB), br 37,056 B (37.1 KB / 0.037 MB); delta raw -202,172 B (-202.2 KB / -0.202 MB), gzip -22,664 B (-22.7 KB / -0.023 MB), br -16,077 B (-16.1 KB / -0.016 MB).

Release evidence

  • Release type: stable
  • Package profile: framework-browser
  • npm pack files: 40
File Raw Gzip Brotli
browser.d.ts 38.4 KB 7.1 KB 6.3 KB
browser.js 340.3 KB 64.1 KB 51.9 KB
browser.min.js 143.0 KB 41.7 KB 36.2 KB
browser.ts 340.4 KB 64.2 KB 51.9 KB
browser.umd.js 361.3 KB 65.6 KB 52.6 KB
browser.umd.min.js 145.2 KB 41.8 KB 36.3 KB
framework.d.ts 38.8 KB 7.2 KB 6.4 KB
framework.ts 345.5 KB 65.2 KB 52.5 KB
server.js 345.4 KB 65.1 KB 52.4 KB

Diff links:


Source: CHANGELOG.md in tag v0.12.3.