Releases: randomdevpete/jarl
Release list
v2.7.0
2.7.0 (2026-09-06)
⚠ BREAKING CHANGES
- atoms:
rootAtomis renamedrootRoute,createRootAtomto
rootRouteAtom,redirectAtomtoredirectRouteAtom,queryParamAtomto
queryParamRouteAtom, andvalidateAtomtovalidateRouteAtom. Their
options types follow:RootOptionsbecomesRootRouteOptionsand
QueryParamOptionsbecomesQueryParamRouteOptions.locationAtom,
queryAtom,notAtom,navigationGuardAtomand every name already ending in
RouteAtomare unchanged.
Ticket: 789
- atoms:
resolvedAtomis removed.resolvedAtom(route, load)becomes
asyncRouteAtom(route, name, load).data, wherenameis what the loaded object
binds to if the route is ever used for gating.followResolvedRedirectsis
renamedfollowAsyncRedirectsand takes.dataatoms.preloadRoutesis
renamedpreloadAsyncRoutes, matchinghydrateAsyncRoutes/followAsyncRoutes.
TheResolverandRouteLookuptypes are replaced by oneRouteLoader, and
AsyncRouteAtom.lookupis renameddata.hydrateAsyncRoutes,
followAsyncRoutesandAsyncRouteSnapshotare unchanged.
Ticket: 675
- jarl-atoms:
notAtomtakes a single route atom rather than a spread of
them. Combine several withunionRouteAtom([...])first.
Ticket: 420
- changelog: suppression' mid-paragraph, no colon, not a real footer,
and the parser swept it (plus the trailing Co-Authored-By line) into the
release notes as a fabricated BREAKING CHANGES entry.
What it described was also stale even if it had been real: the very next
commit (2db21b1) abandoned that reset-to-2.0.1 plan and continued from
2.5.0 instead, once it turned out npm's dependent-check and dist-tags
made the rollback impossible. Nothing about jarl's public API actually
broke in 2.6.0 - every other entry in the release is an internal
release-process change. Safe to hand-edit: @semantic-release/changelog
only ever prepends new releases, it never rewrites past entries.
Features
- atoms: add validateAtom for constraints spanning several segments (794f8c0)
- atoms: one asyncRouteAtom API for async route data (d67c00c)
- docs: 678 — routing demo that switches on a page route atom (b5a0aec)
- docs: 907 — host an llms.txt for coding agents installing jarl (daff689)
- docs: demo page for cancelling navigation on dirty edits (5870133)
- docs: demo page for custom path atoms (yyyy-mm-dd, name.ext) (f89999e)
- docs: link jarl-atoms/jarl-react identifiers in code blocks to their API reference (045b894), closes #slug
- docs: link local relative imports in demo source to GitHub (2cc8dfb)
- jarl-atoms: 420 — notAtom takes one route and an options object (de0e997)
- jarl-atoms: 420 — unionRouteAtom combines several routes into one (a2af36c)
- jarl-atoms: 778 — veto any navigation with navigationGuardAtom (9ac8b10)
- jarl-atoms: 927 — enumRouteAtom binds a path segment from a fixed set of values (5b43305)
- jarl-react: 435 — forward NavOptions through useNavigate (5311c85)
- jarl-react: 778 — useNavigationGuard binding (4b934d2)
Bug Fixes
- docs: bundle the production SSR server self-contained (82c9772)
- docs: stop exporting non-component values from Fast Refresh boundaries (abfccd6)
- e2e: 823 — update registry-smoke to the exports 675/789 renamed (3befb44)
- infra: JARL1183 — reach the SSR instance directly, dropping the load balancer (48ede6c)
- infra: JARL1188 — detach the /ssr/* behaviour so the VPC origin can be updated (3e1b2e9)
- infra: JARL1188 — restore the /ssr/* behaviour on the repointed VPC origin (3292e96)
- infra: JARL1337 — pin the SSR AMI so deploys stop replacing the instance (6771c3e)
Documentation
- changelog: remove the bogus 2.6.0 BREAKING CHANGES section (59f9c94)
Code Refactoring
- atoms: 789 — name every route atom
*RouteAtom, and only route atoms (cf4d08e)
v2.6.0
2.6.0 (2026-08-17)
⚠ BREAKING CHANGES
- release: suppression. Every burned version is a .0 and a patch
bump can only produce .1 or higher, so while that holds the guard
cannot fire and the version is decided entirely by the highest tag.
Opening a line is then one step — plant a tombstone tag on the last
release commit and release the .1. v2.1.0 is already tagged and stays,
so the next release is 2.1.1, carrying everything since it.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
Features
- atoms: add asyncRouteAtom for routes an async lookup decides (9cc4f6c)
- atoms: add numericRouteAtom for numeric path segments (6199066)
- atoms: drop redundant module-level comment in asyncRouteAtom (9c07ea7)
- docs: add blog routing demo (409d271)
- docs: async-lookup demo, and a real 404 status from SSR (6c0b9a1)
- docs: browse changelog releases with per-version routes (a718546)
- docs: data grid filter/sort demo driven by query params (d0c2557)
- docs: syntax-highlight code blocks with highlight.js (fa39824)
- roll the SSR server on every deploy (627a414)
Bug Fixes
- docs: await the now-async render in the production SSR server (a615556)
- docs: keep release-note sections inside their changelog entry (67da666)
- pin conventional-changelog-conventionalcommits to the release-notes-generator-compatible v8 line (eec26a5)
Continuous Integration
- release: reset the published line to 2.0.1 and open 2.1.x at 2.1.1 (25a5aa3)
v2.5.0
v2.4.0
v2.3.0
v2.2.0
v2.1.0
v2.0.1
JARL v1.0.0-alpha.6
First release through the CD pipeline?