Skip to content

v2.0.0-rc.2

Pre-release
Pre-release

Choose a tag to compare

@fkleuver fkleuver released this 04 Aug 22:04
· 12 commits to master since this release
4ff6090

2.0.0-rc.2 (2026-08-04)

Features

  • ui-virtualization: Add a gap option to virtual-repeat for layouts with fixed spacing between items. Vertical and horizontal spacer and scroll-position calculations now account for the configured gap. (#2409) - by @bigopon
  • plugin-conventions: Add TypeScript 6 support while preserving TypeScript 5 support, and allow Aurelia tooling to coexist with the TypeScript 7 CLI. (#2447) - by @bigopon
  • vite-plugin: Add Vite 8 support. Convention-based components and TC39 decorators now work with Vite's Oxc transform, including HMR, SSR, web workers, and TSX applications. Projects using legacy TypeScript decorators or incompatible custom Oxc settings receive guidance on configuring their build. (#2449) - by @fkleuver

Bug Fixes

  • router: Fix application-root navigation under configured base paths. Base paths are stripped only at path, query, or fragment boundaries; excess ../ prefixes remain clamped at the application root; and hash-mode load links stay beneath the configured application base. (#2443) - by @fkleuver
  • router: Restore the route-context node when navigation is cancelled by returning false from canUnload. (#2431) - by @Sayan751
  • runtime-html: Remove the obsolete define component lifecycle hook from the public types and documentation. The runtime had already stopped invoking it. (#2444) - by @fkleuver
  • runtime: Detach collection length and size observers from their owning collection after their final subscriber unsubscribes, avoiding unnecessary collection-change work. (#2439) - by @fkleuver
  • runtime: Make deep computed observation safe for cyclic object, array, map, and set graphs. Computed observers now finish queued reconciliation without retaining dependencies after detachment, while setter-backed computed properties correctly perform assignments and invalidate cached getter values. (#2442) - by @fkleuver
  • runtime-html: Add the missing Z entries to the default keyboard modifier mappings, making :z, :90, and :122 consistent with the other letters. (#2445) - by @fkleuver
  • kernel: Report the correct error when resolving an interface without a registration or default implementation, including through newInstanceOf and newInstanceForScope. (#2438) - by @fkleuver
  • kernel: Fix DI metadata inheritance so derived classes honor their own static inject and @inject declarations without reusing or mutating base-class dependency metadata. (#2440) - by @fkleuver
  • types: Improve TypeScript inference for dialog results and decorator callbacks. DialogOpenPromise.whenClosed(), @watch, and @computed now preserve their relevant result, value, instance, and callback types. (#2412) - by @bigopon
  • router: Preserve a component's static nav value when an object-form route configuration supplies no override. Routes without an explicit or static id now derive it from their primary effective path. (#2441) - by @fkleuver
  • router: Render routed content correctly through containerless <au-viewport> elements, including nested containerless viewports and containerless routed components. (#2413) - by @Sayan751
  • router: Fix cold-start deep links to child routes nested beneath an empty-path parent. (#2418) - by @Sayan751
  • router: Make RouteNode.title writable so lifecycle and router hooks can update a route node's title during navigation. (#2427) - by @Vheissu
  • plugin-conventions: Only select the static resource-definition path when a class contains an actual static $au property, avoiding false matches in strings and unrelated code. (#2450) - by @fkleuver
  • ui-virtualization: Fix virtual-repeat collection observation when its iterable is wrapped in a value converter or binding behavior. Mutating the original collection now re-evaluates the wrapped expression and refreshes the rendered views. (#2410) - by @bigopon
  • plugin-conventions: Fix Vite builds using custom --mode names so compiled templates, including those used by lazy-loaded routes, are not omitted. (#2417) - by @bigopon
  • vite-plugin: Fix Aurelia development-package resolution so enabling development imports does not add the global development export condition for third-party dependencies. (#2419) - by @bigopon
  • vite-plugin: Normalize Windows drive-letter casing before source include/exclude matching, ensuring eligible Aurelia files are transformed. (#2420) - by @bigopon
  • router: Handle encoded parameter values in child routes correctly, including spaces, symbols, and Unicode characters. Fixes #2398. (#2401) - by @Sayan751
  • runtime-html: Add reactive shallow object destructuring and property aliases to repeat.for. Reused rows reconnect their destructured locals when the item changes, while unsupported targets report AUR0177. (#2448) - by @fkleuver
  • router: Handle navigation to an empty-path root route when using hash-based routing. Fixes #2393. (#2396) - by @Sayan751
  • task queue: Prevent large finite workloads from falsely triggering the recursive deadlock guard. Automatic drains now run in timed slices, tasksSettled() can be used to observe full completion, and multiple failures are reported through TaskQueueAggregateError. Delayed runtime-html work also rechecks lifecycle state before mutating torn-down DOM state. (#2421) - by @fkleuver
  • validation: Deprecate the built-in email validation rule because its pattern is not RFC 5322 or RFC 6532 compliant. It is recommended to use an RFC-compliant parser in a custom rule through .satisfiesRule() or .satisfies(). (#2387) - by @Sayan751
  • runtime-html: Preserve underscores in <let> binding targets instead of converting them to camel case. (#2446) - by @bigopon