Friday, August 28, 2026
2 changes · 19.0
Enhancements to existing features
This update simplifies how guided tour pointers and tooltips are displayed in Odoo. It makes the tour guidance easier to maintain and more reliable without changing the business workflow for users.
Original PR description
The tourPointer component is only used in tours, so there's no need to make it a generic component that can be reused elsewhere. We use the usePopover hook to place the tooltip and its contents in the window. We use the usePosition hook to position the anchor in the window. We remove the responsibility from TourPointer to calculate the positions of the baball and the tooltip. We remove the tour_pointer_state file and export a reactive pointerState that allows us to manipulate easier the tourPointer. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Mail test checks that are waiting for screen content now re-check more frequently instead of waiting up to 10 seconds. This reduces unnecessary delays in automated testing, helping developers validate mail changes faster without affecting end users.
Original PR description
Before this commit, a contains that does not match right away runs again only when its MutationObserver fires, and once more at the 10 seconds timeout. The problem is that the observer reports neither a text node updated in place nor an input value or checked property, so a check waiting for one of those sleeps 10 seconds and then passes: "Delete starred message decrements starred counter once" spends 10.2s of the 183s @mail suite waiting for a counter to go from "Starred3" to "Starred2". This commit turns that single timeout into a 500ms tick up to the same deadline, so that such a check costs 500ms. The tick uses the unmocked timer to stay out of the timer graph a test drives with runAllTimers, and only 32 of the suite's 4239 contains calls stay pending long enough to tick once. Forward-Port-Of: odoo/odoo#284944