Releases: async/framework
Release list
v0.18.0
Release notes from CHANGELOG.md for @async/framework@0.18.0 (2026-07-08).
- BREAKING: unified lifecycle vocabulary on "attach" and removed the "mount"
term everywhere.loader.mount(...)and theAsync.loader.mount(...)
facade are nowloader.attach(...)/Async.loader.attach(...); the
rendered-componentmount(target)alias is gone (useattach(target));
this.on("mount", ...)now throws (usethis.on("attach", ...)) and the
this.onMount(...)helper was removed (usethis.onAttach(...)); the
on:mountmarkup alias no longer binds; stale markup logs a one-time
removal warning. The Flow bridge feature keymountRegistrationsis now
attachRegistrations(attachFlowRegistrations). Specs, docs, and type
declarations use attach terminology throughout. - Bundle size from bundled TypeScript source:
browser.tsraw 261,003 B (261.0 KB / 0.261 MB), gzip 49,799 B (49.8 KB / 0.050 MB), br 41,084 B (41.1 KB / 0.041 MB) ->browser.min.jsraw 108,690 B (108.7 KB / 0.109 MB), gzip 31,875 B (31.9 KB / 0.032 MB), br 28,013 B (28.0 KB / 0.028 MB); delta raw -152,313 B (-152.3 KB / -0.152 MB), gzip -17,924 B (-17.9 KB / -0.018 MB), br -13,071 B (-13.1 KB / -0.013 MB).
Release evidence
- Release type: stable
- Package profile: framework-browser
- npm pack files: 61
| File | Raw | Gzip | Brotli |
|---|---|---|---|
browser.d.ts |
42.7 KB | 7.7 KB | 6.8 KB |
browser.js |
254.8 KB | 48.9 KB | 40.1 KB |
browser.min.js |
106.1 KB | 31.2 KB | 27.4 KB |
browser.ts |
254.9 KB | 49.0 KB | 40.1 KB |
browser.umd.js |
270.6 KB | 50.1 KB | 40.7 KB |
browser.umd.min.js |
107.7 KB | 31.3 KB | 27.5 KB |
framework.d.ts |
46.9 KB | 8.5 KB | 7.5 KB |
framework.ts |
406.9 KB | 77.5 KB | 61.8 KB |
server.js |
406.9 KB | 77.5 KB | 61.8 KB |
Diff links:
- browser.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.18.0?diff=unified#diff-browser.d.ts
- browser.js: https://github.com/async/framework/compare/HEAD%5E...v0.18.0?diff=unified#diff-browser.js
- browser.ts: https://github.com/async/framework/compare/HEAD%5E...v0.18.0?diff=unified#diff-browser.ts
- browser.umd.js: https://github.com/async/framework/compare/HEAD%5E...v0.18.0?diff=unified#diff-browser.umd.js
- framework.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.18.0?diff=unified#diff-framework.d.ts
- framework.ts: https://github.com/async/framework/compare/HEAD%5E...v0.18.0?diff=unified#diff-framework.ts
- server.js: https://github.com/async/framework/compare/HEAD%5E...v0.18.0?diff=unified#diff-server.js
Source: CHANGELOG.md in tag v0.18.0.
v0.17.0
Release notes from CHANGELOG.md for @async/framework@0.17.0 (2026-07-08).
- Memoized boundary-element lookup in the loader:
loader.swap(...)resolved
its boundary id by walking the entire document on every swap (visible as a
full-document traversal per History selection); the element is now cached
weakly per id and re-resolved only when it leaves the document or loses its
boundary id. - Activation now scans a scope with a single tree traversal: pseudo-event
dispatch (attach/visible/intersect) reuses the shared element collection
instead of a second walk. Component-mounted children keep their own nested
scan. - The Vite plugin excludes the framework entrypoints from
optimizeDeps(opt out withoptimizeFrameworkDeps: true): the published
entrypoints are flat ESM bundles, and Vite's prebundle cache does not watch
file:/link:dependency contents — local framework rebuilds were served
stale untilnode_modules/.vitewas deleted by hand. - Navigation failures from intercepted links, forms, and history events are
now logged withconsole.error(they have no caller to reject to), and
unmatched navigation withoutfallback: "document"logs aconsole.warn
with guidance — previously both failed silently. - Added a commit stall watchdog:
loader._whenCommitted(...)warns
(commitStallWarningMs, default 2000ms,0/falsedisables) when a
boundary commit has not settled, naming the await-inside-scheduler.batch
deadlock composition so it is diagnosable instead of a silent freeze. router.prefetch(...)onserver: trueroutes now caches the fetched
envelope briefly (prefetchTtlMsoption, default 5000ms); the next
navigation with a matching URL and boundary consumes it single-use instead
of refetching.- Added
tests/performance/: deterministic hot-path performance contracts
(activation scan traversal counts, attribute-config memoization, swap
rescan scoping, scheduler/signal write coalescing, single frame wait per
commit batch, router fast-path work counts) plus a hot-path registry
(tests/performance/hot-paths.json). A coverage guardrail keeps the
registry, the// @hot-paths:headers in contract tests, and the
test.performancepipeline task inputs in sync, so changes to a registered
hot-path source automatically re-run the suite. The swap-rescan contracts
caught the boundary-lookup walk fixed above. - Categorized the test tree into suites —
tests/unit/,tests/runtime/,
tests/router/,tests/server/,tests/timing/,tests/performance/,
tests/build/, andtests/examples/— with matchingtest:<suite>
scripts (seetests/README.md). Added a dedicatedtests/timing/suite covering
rendering andrequestAnimationFramegotchas under explicit frame-timed
schedulers: suspended-frame fallbacks, exactly-once frame/fallback races,
FIFO commit ordering, commits scheduled inside open batches, loader swaps
with rebinding and ordering, handler-initiated swaps, signal/swap
coalescing, and router navigation (local partials, server partials with
sub-boundaries, suspended frames, popstate). - Bundle size from bundled TypeScript source:
browser.tsraw 261,577 B (261.6 KB / 0.262 MB), gzip 50,018 B (50.0 KB / 0.050 MB), br 41,211 B (41.2 KB / 0.041 MB) ->browser.min.jsraw 108,975 B (109.0 KB / 0.109 MB), gzip 32,004 B (32.0 KB / 0.032 MB), br 28,111 B (28.1 KB / 0.028 MB); delta raw -152,602 B (-152.6 KB / -0.153 MB), gzip -18,014 B (-18.0 KB / -0.018 MB), br -13,100 B (-13.1 KB / -0.013 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 |
255.4 KB | 49.1 KB | 40.2 KB |
browser.min.js |
106.4 KB | 31.3 KB | 27.5 KB |
browser.ts |
255.4 KB | 49.2 KB | 40.2 KB |
browser.umd.js |
271.2 KB | 50.3 KB | 40.8 KB |
browser.umd.min.js |
108.0 KB | 31.4 KB | 27.5 KB |
framework.d.ts |
47.0 KB | 8.6 KB | 7.6 KB |
framework.ts |
407.5 KB | 77.8 KB | 61.9 KB |
server.js |
407.4 KB | 77.7 KB | 61.9 KB |
Diff links:
- browser.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.17.0?diff=unified#diff-browser.d.ts
- browser.js: https://github.com/async/framework/compare/HEAD%5E...v0.17.0?diff=unified#diff-browser.js
- browser.ts: https://github.com/async/framework/compare/HEAD%5E...v0.17.0?diff=unified#diff-browser.ts
- browser.umd.js: https://github.com/async/framework/compare/HEAD%5E...v0.17.0?diff=unified#diff-browser.umd.js
- framework.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.17.0?diff=unified#diff-framework.d.ts
- framework.ts: https://github.com/async/framework/compare/HEAD%5E...v0.17.0?diff=unified#diff-framework.ts
- server.js: https://github.com/async/framework/compare/HEAD%5E...v0.17.0?diff=unified#diff-server.js
Source: CHANGELOG.md in tag v0.17.0.
v0.16.0
Release notes from CHANGELOG.md for @async/framework@0.16.0 (2026-07-08).
- Added server route partials:
defineRoute({ server: true })makes CSR/SPA
navigation fetch the target URL withAccept: application/x-async-partial
(plus anx-async-boundaryrequest header naming the boundary the
transition plan wants filled) and apply the returned wire server envelope
({ __async_server_result__: 1, html, signals, cache, boundary, redirect, title }) through the existing navigation pipeline. HTTP redirects followed
by the fetch update router state, the route snapshot, and browser history to
the final URL.createRouter(...)accepts afetchoption to override the
window fetch (tests, custom transports); ambientglobalThis.fetchis never
used.prefetch(...)returns the fetched envelope without applying it. - Added a router
fallbackoption ("error"default,"document"): with
fallback: "document", unmatched navigation in client modes performs native
document navigation instead of dead-ending inrouter.error, enabling
incremental SPA adoption over server-rendered apps. Assigning the current
browser URL is refused to prevent reload loops. Server-partial responses
that are not envelopes (or fail) also fall back to document navigation in
this mode. - Added
render: "document"route definitions: matched routes can force
native document navigation (downloads, raw endpoints) while staying
registered. - Added multi-segment splat patterns:
/:org/:name/tree/*restcaptures the
remaining segments (decoded per segment) asparams.rest. Splat segments
must terminate the pattern and rank above*wildcard routes and below
single-segment params. - Added master-detail navigation:
viewKeymay now be a function of the route
match, and routes may declaresubBoundary. A same-view navigation (same
computedviewKey) on a route withsubBoundaryrenders/fetches into that
nested boundary instead of going state-only, so query-driven detail panes
(e.g.?commit=<sha>) swap without touching the surrounding view. Route
snapshots keep comparing view identity on the route-level boundary. - Partial results with a string
titlenow updatedocument.title, and
client navigations that swapped content scroll to the top (or to the URL
hash target) unless the router is created withscroll: false. Async.start(...)now forwardsurlMode,fallback, andscrollto the
runtime router and accepts arouterOptionsobject for the remaining
createRouter(...)options.- Server runtime
render(url, { document: false })returns the raw route
fragment without the boundary section or snapshot script, for building
server route partial envelopes whose swap target is an already-activated
document. - Fixed a navigation deadlock in CSR/SPA modes with frame-timed commits (real
browsers):applyNavigationResultawaited boundary commit completion inside
scheduler.batch(...), where automatic flushes are suppressed, so route
swaps could stall indefinitely and never updatedocument.title, history,
orrouter.pending. Commit awaits now happen outside the batch. Node test
environments commit synchronously, which is why the suite never caught it;
new regression tests force frame timing. - Frame-timed commits now race the animation frame against a timeout
(frameFallbackMs, default 50ms): browsers suspendrequestAnimationFrame
in hidden tabs, which froze boundary commits — and anything awaiting them,
including router navigation — until the tab became visible again. Visible
tabs stay frame-aligned; hidden tabs fall back to timer cadence. - Bundle size from bundled TypeScript source:
browser.tsraw 259,693 B (259.7 KB / 0.260 MB), gzip 49,336 B (49.3 KB / 0.049 MB), br 40,621 B (40.6 KB / 0.041 MB) ->browser.min.jsraw 108,501 B (108.5 KB / 0.109 MB), gzip 31,770 B (31.8 KB / 0.032 MB), br 27,913 B (27.9 KB / 0.028 MB); delta raw -151,192 B (-151.2 KB / -0.151 MB), gzip -17,566 B (-17.6 KB / -0.018 MB), br -12,708 B (-12.7 KB / -0.013 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 |
253.5 KB | 48.5 KB | 39.7 KB |
browser.min.js |
106.0 KB | 31.1 KB | 27.3 KB |
browser.ts |
253.6 KB | 48.5 KB | 39.7 KB |
browser.umd.js |
269.3 KB | 49.6 KB | 40.2 KB |
browser.umd.min.js |
107.5 KB | 31.2 KB | 27.3 KB |
framework.d.ts |
47.0 KB | 8.6 KB | 7.6 KB |
framework.ts |
403.7 KB | 76.6 KB | 60.9 KB |
server.js |
403.6 KB | 76.5 KB | 60.9 KB |
Diff links:
- browser.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.16.0?diff=unified#diff-browser.d.ts
- browser.js: https://github.com/async/framework/compare/HEAD%5E...v0.16.0?diff=unified#diff-browser.js
- browser.ts: https://github.com/async/framework/compare/HEAD%5E...v0.16.0?diff=unified#diff-browser.ts
- browser.umd.js: https://github.com/async/framework/compare/HEAD%5E...v0.16.0?diff=unified#diff-browser.umd.js
- framework.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.16.0?diff=unified#diff-framework.d.ts
- framework.ts: https://github.com/async/framework/compare/HEAD%5E...v0.16.0?diff=unified#diff-framework.ts
- server.js: https://github.com/async/framework/compare/HEAD%5E...v0.16.0?diff=unified#diff-server.js
Source: CHANGELOG.md in tag v0.16.0.
v0.15.3
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.tsraw 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.jsraw 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:
- browser.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.3?diff=unified#diff-browser.d.ts
- browser.js: https://github.com/async/framework/compare/HEAD%5E...v0.15.3?diff=unified#diff-browser.js
- browser.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.3?diff=unified#diff-browser.ts
- browser.umd.js: https://github.com/async/framework/compare/HEAD%5E...v0.15.3?diff=unified#diff-browser.umd.js
- framework.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.3?diff=unified#diff-framework.d.ts
- framework.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.3?diff=unified#diff-framework.ts
- server.js: https://github.com/async/framework/compare/HEAD%5E...v0.15.3?diff=unified#diff-server.js
Source: CHANGELOG.md in tag v0.15.3.
v0.15.2
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/flowhelper surface: step helpers (dispatch,after,
branch,guard,transition), condition helpers (bool,every,
some,not,can,matches,inspect), composition (compose,
parallel,remember), and theflowStatusdeclaration helper, alongside
the existingset,update,when, andonError. Apps can author full
Flow definitions without installing@async/flowdirectly. - 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/runmodule mapping from the bundle scripts
(@async/flow/runis not a public Flow subpath) and added the
@async/flow/composemapping 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:
- browser.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.2?diff=unified#diff-browser.d.ts
- browser.js: https://github.com/async/framework/compare/HEAD%5E...v0.15.2?diff=unified#diff-browser.js
- browser.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.2?diff=unified#diff-browser.ts
- browser.umd.js: https://github.com/async/framework/compare/HEAD%5E...v0.15.2?diff=unified#diff-browser.umd.js
- framework.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.2?diff=unified#diff-framework.d.ts
- framework.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.2?diff=unified#diff-framework.ts
- server.js: https://github.com/async/framework/compare/HEAD%5E...v0.15.2?diff=unified#diff-server.js
Source: CHANGELOG.md in tag v0.15.2.
v0.15.1
Release notes from CHANGELOG.md for @async/framework@0.15.1 (2026-07-06).
- Updated the Flow bridge to consume
@async/flow0.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.totalupdate without serializing an unintended parentcartsignal. - Added
./jsx/jsx-runtimeand./jsx/jsx-dev-runtimepackage 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 ofmap: null. - Made the Vite 8 + Rolldown host check use plugin-context metadata
(this.meta.viteVersion/this.meta.rolldownVersion) inconfigResolved
instead of treating the resolved config as a host descriptor, and exported
detectViteHostandimportsAsyncJsxhelpers. - Stopped defaulting
server.basewhen composing@hono/vite-dev-server;
baseis forwarded only when the app sets it, so user-configured Vite
basevalues are no longer overridden by default. - Declared
vite >= 8as an optional peer dependency. - Reported runtime slice
status(availableforsignals/events,
plannedforasync-signals/stream) with aruntime-slice-planned
warning diagnostic, and documented that planned slices are recorded but not
activated by@async/framework/runtimeyet. - Reworked the
vite-jsx-streamingexample 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:
- browser.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.1?diff=unified#diff-browser.d.ts
- browser.js: https://github.com/async/framework/compare/HEAD%5E...v0.15.1?diff=unified#diff-browser.js
- browser.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.1?diff=unified#diff-browser.ts
- browser.umd.js: https://github.com/async/framework/compare/HEAD%5E...v0.15.1?diff=unified#diff-browser.umd.js
- framework.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.1?diff=unified#diff-framework.d.ts
- framework.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.1?diff=unified#diff-framework.ts
- server.js: https://github.com/async/framework/compare/HEAD%5E...v0.15.1?diff=unified#diff-server.js
Source: CHANGELOG.md in tag v0.15.1.
v0.15.0
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.tsraw 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.jsraw 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:
- browser.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.0?diff=unified#diff-browser.d.ts
- browser.js: https://github.com/async/framework/compare/HEAD%5E...v0.15.0?diff=unified#diff-browser.js
- browser.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.0?diff=unified#diff-browser.ts
- browser.umd.js: https://github.com/async/framework/compare/HEAD%5E...v0.15.0?diff=unified#diff-browser.umd.js
- framework.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.0?diff=unified#diff-framework.d.ts
- framework.ts: https://github.com/async/framework/compare/HEAD%5E...v0.15.0?diff=unified#diff-framework.ts
- server.js: https://github.com/async/framework/compare/HEAD%5E...v0.15.0?diff=unified#diff-server.js
Source: CHANGELOG.md in tag v0.15.0.
v0.14.0
Release notes from CHANGELOG.md for @async/framework@0.14.0 (2026-06-26).
- Updated the Flow bridge to consume
@async/flow0.10.0 through the
scheduler-free integration subpaths and shared protocol brands. - Bundle size from bundled TypeScript source:
browser.tsraw 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.jsraw 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:
- browser.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.14.0?diff=unified#diff-browser.d.ts
- browser.js: https://github.com/async/framework/compare/HEAD%5E...v0.14.0?diff=unified#diff-browser.js
- browser.ts: https://github.com/async/framework/compare/HEAD%5E...v0.14.0?diff=unified#diff-browser.ts
- browser.umd.js: https://github.com/async/framework/compare/HEAD%5E...v0.14.0?diff=unified#diff-browser.umd.js
- framework.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.14.0?diff=unified#diff-framework.d.ts
- framework.ts: https://github.com/async/framework/compare/HEAD%5E...v0.14.0?diff=unified#diff-framework.ts
- server.js: https://github.com/async/framework/compare/HEAD%5E...v0.14.0?diff=unified#diff-server.js
Source: CHANGELOG.md in tag v0.14.0.
v0.13.0
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/routersubpaths 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.tsraw 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.jsraw 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:
- browser.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.13.0?diff=unified#diff-browser.d.ts
- browser.js: https://github.com/async/framework/compare/HEAD%5E...v0.13.0?diff=unified#diff-browser.js
- browser.ts: https://github.com/async/framework/compare/HEAD%5E...v0.13.0?diff=unified#diff-browser.ts
- browser.umd.js: https://github.com/async/framework/compare/HEAD%5E...v0.13.0?diff=unified#diff-browser.umd.js
- framework.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.13.0?diff=unified#diff-framework.d.ts
- framework.ts: https://github.com/async/framework/compare/HEAD%5E...v0.13.0?diff=unified#diff-framework.ts
- server.js: https://github.com/async/framework/compare/HEAD%5E...v0.13.0?diff=unified#diff-server.js
Source: CHANGELOG.md in tag v0.13.0.
v0.12.6
Release notes from CHANGELOG.md for @async/framework@0.12.6 (2026-06-24).
- Added the app-level
Async.routerfacade with queuednavigate,prefetch,
ready,match, and nestedloaderaccess before runtime startup. - Added router transition planning that skips duplicate active-route work and
uses signal-only updates for same-view navigation unlessforce: trueis
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.tsraw 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.jsraw 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:
- browser.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.12.6?diff=unified#diff-browser.d.ts
- browser.js: https://github.com/async/framework/compare/HEAD%5E...v0.12.6?diff=unified#diff-browser.js
- browser.ts: https://github.com/async/framework/compare/HEAD%5E...v0.12.6?diff=unified#diff-browser.ts
- browser.umd.js: https://github.com/async/framework/compare/HEAD%5E...v0.12.6?diff=unified#diff-browser.umd.js
- framework.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.12.6?diff=unified#diff-framework.d.ts
- framework.ts: https://github.com/async/framework/compare/HEAD%5E...v0.12.6?diff=unified#diff-framework.ts
- server.js: https://github.com/async/framework/compare/HEAD%5E...v0.12.6?diff=unified#diff-server.js
Source: CHANGELOG.md in tag v0.12.6.