0.88.0

playcanvas/engine0.88.0Sep 25, 2026by takahirom

Upgrading?

AI Summary

Focus movement on TV devices is now significantly faster, optimized by reading the view hierarchy once per move and deciding the next key on the settled hierarchy.

Key Highlights

  • Focus moves on TV devices are approximately twice as fast per key press
  • Each focus move iteration reads the view hierarchy once for both current and target
  • Next key decision is made on the settled hierarchy instead of a fixed screenshot wait

New Features

  • Performance optimization for TV focus navigation

Full Release Notes

Moving focus on a TV device is now about twice as fast per key press. On an Android TV emulator, each D-pad press in a focus move went from about 0.96s to about 0.48s, and from 1.1–1.4s to about 0.73s on a screen that is still loading content.

## Faster Focus Moves (#454, #455)

- Each focus move iteration reads the view hierarchy once, and uses that frame for both the current focus and the target. A selector target that is not in that frame is still polled on fresh hierarchies as before.
- The next key is decided on the hierarchy Maestro's settle already returned after the key press, instead of a fixed screenshot based wait and another fetch. The settle only returns once two consecutive fetches are equal, bounds included, so a scroll or focus change still in progress keeps it waiting.
- `[timing]` debug logs now cover each part of a focus move (`focus.viewHierarchy`, `focus.pressKey`, `focus.waitForAppToSettle`).

## What's Changed
* Read the focus and the target from one hierarchy fetch per focus move by @takahirom in https://github.com/takahirom/arbigent/pull/454
* Decide the next focus key on the settled hierarchy and drop the fixed wait by @takahirom in https://github.com/takahirom/arbigent/pull/455


**Full Changelog**: https://github.com/takahirom/arbigent/compare/0.87.0...0.88.0

Related Repositories