Features you might have missed
Catalog
Smart Locators
inputField(...) and clickableField(...) help a human explore a page when a stable locator is not yet known.
Why use it: move quickly during throwaway exploration before you write a durable locator.
How to start: use a Smart Locator only while exploring, then replace it with a stable locator in repository code.
Full docs: Locators and self-healing
ARIA role locators
SHAFT.GUI.Locator.hasRole(...) builds locators from an element's accessible role and normalized text.
Why use it: express the user-facing control semantics in a stable, readable locator.
How to start: build a role locator and use it in the page object.
Full docs: Element identification
Allure 3 compatibility mode
SHAFT can generate Allure 3 reports while retaining explicit compatibility behavior for Allure 2.
Why use it: use managed Allure 3 resolution or retain PATH-first behavior while teams migrate report tooling.
How to enable: keep allure.forceConfiguredCliVersion=true for managed Allure 3; set it to false to let a PATH 2.x CLI activate compatibility mode.
Full docs: Properties catalog
By loginButton = SHAFT.GUI.Locator.hasRole(Role.BUTTON).hasNormalizedText("Log in").build();