Releases: askui/typescript-sdk
v0.31.0
Release Notes
0.31.0 (2025-12-12)
Features
-
Inference API Cache: Add inference API cache for improved performance. The cache stores successful control commands to reduce redundant API calls and speed up test execution. Cache entries are stored on disk and can be configured with validation types. Only successful commands (code OK) are cached, and Expect commands are automatically skipped from caching.
To enable caching, configure it when initializing the UiControlClient:
import { UiControlClient } from 'askui'; const aui = await UiControlClient.build({ cacheConfig: { cacheFilePath: './askui-cache.json', validationType: 'PixelPerfect' } });
You can also skip caching for specific commands using the
skipCacheoption:await aui.exec().click().button().withText('Submit').exec({ skipCache: true });
-
Configurable Retry Strategy: Add configurable retry strategy per execution. You can now customize retry behavior for individual commands or set a default retry strategy for all commands. Available retry strategies include:
ExponentialRetryStrategy: Exponential backoff (default: baseDelayMs=1000, retryCount=3)LinearRetryStrategy: Linear backoff (default: baseDelayMs=1000, retryCount=3)FixedRetryStrategy: Constant delay between retries (default: baseDelayMs=1000, retryCount=3)NoRetryStrategy: No retries
Example usage:
import { UiControlClient, ExponentialRetryStrategy } from 'askui'; const aui = await UiControlClient.build({ retryStrategy: new ExponentialRetryStrategy(2000, 5) // 2s base delay, 5 retries }); // Or override for a specific command: await aui.exec().click().button().withText('Submit').exec({ retryStrategy: new FixedRetryStrategy(500, 10) });
Bug Fixes
- refactor(waituntil): Fix waituntil function.
v0.30.0
0.30.0 (2025-11-20)
Features
- add Android swipe, drag-and-drop, and tap tools (3b99081)
- Add AndroidSwipeTool, AndroidDragAndDropTool, AndroidTapTool, and AndroidShellCommandTool
- Refactor agent configuration to unified configureAgent() with runtime detection
- Add runtime-aware tool selection for Android and desktop platforms
BREAKING CHANGE:
- configureAsDesktopAgent() and configureAsAndroidAgent() methods have been removed and replaced with a unified configureAgent() method. The new method automatically detects the runtime (Android or desktop) and configures the appropriate tools. Users who were calling these methods directly need to update their code and remove them.
v0.29.0
0.29.0 (2025-10-17)
⚠ BREAKING CHANGES
- @askui/jest-allure-circus: Migrate the TestEnvironment from
@askui/jest-allure-circustoallure-jest/nodein jest.config.ts
Install allure-jest@3.3.0 and allure-js-commons@3.3.0 environment:
npm install --save-dev allure-jest@3.3.0 allure-js-commons@3.3.0 @askui/askui-reporters
npm uninstall @askui/jest-allure-circus
And replace in jest.config.ts the the TestEnvironment from @askui/jest-allure-circus to allure-jest/node.
import type { Config } from "@jest/types";
const config: Config.InitialOptions = {
preset: "ts-jest",
setupFilesAfterEnv: ["./helper/askui-helper.ts"], // former `./helper/jest.setup.ts`
sandboxInjectedGlobals: ["Math"],
testEnvironment: "allure-jest/node",
};
// eslint-disable-next-line import/no-default-export
export default config;Features
- @askui/jest-allure-circus: replace @askui/jest-allure-circus with allure-jest/node (65b8ea7)