# Changelog

All notable changes to `smix-sdk` are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased] - 2026-05-28

### Added

- Initial stone-standard scaffolding (v3.21 c1): `BUDGETS.md`,
  `CHANGELOG.md`, `fuzz/`, `benches/perf_gate.rs`. Real perf numbers
  + fuzz corpus seeding follow in v3.24.

### Changed

- (no behavior changes in v3.21 c1; mechanical scaffolding only)

### Fixed

- (none)

## [0.1.0] - 2026-05-25

### Added

- Initial release. Ported from TS `src/sdk/{app,element,test,expect,matchers}.ts`.
- `App`: user-facing handle wrapping `SimctlDriver` + `SimctlClient` +
  `HttpRunnerClient`. Methods: `connect_to_runner` / `launch` /
  `terminate` / `tap` / `fill` / `clear` / `press_key` / `swipe` /
  `scroll_until_visible` / `go_back` / `wait_for` / `find` / `find_one`
  / `find_all` / `tree` / `describe` / `system_popups`.
- Ergonomic selector helpers: `text` / `text_regex` / `id` / `label` /
  `role` / `role_named` / `focused` / `anchor_box`. Mirrors TS
  selector shorthand on the `{ text: ... }` / `{ id: ... }` etc.
  shape.
- Re-exports across the dependency wall: `Selector` / `Modifiers` /
  `Pattern` / `A11yNode` / `Rect` / `Role` / `KeyName` /
  `SwipeDirection` / `ExpectationFailure` / `FailureCode` /
  `IncludeScope` / `SimctlClient` / `SimctlError` /
  `SimctlPermission` / `Appearance` / `LaunchResult`.
