v0.18.1
What's Changed
- refactor: type-safe recording backends + exhaustive capability gating by @thymikee in #894
- perf: reduce Apple runner build overhead by @thymikee in #898
- refactor: derive platform allow-lists from the canonical device tuples by @thymikee in #895
- feat: add AppleOS discriminant to the device model (additive) by @thymikee in #896
- refactor: validate JSON-RPC at the MCP/HTTP boundary by @thymikee in #897
- refactor: derive replay metadata platforms from the canonical selectors by @thymikee in #899
- refactor: remove shallow re-export modules and a dead branch by @thymikee in #901
- refactor: collapse duplicated batch-step validation to one schema by @thymikee in #902
- refactor: extract shared Android instrumentation-helper by @thymikee in #903
- refactor: dedup daemon handler capability/session/recordAction boilerplate by @thymikee in #904
- docs: ADR 0008 (command descriptor) + ADR 0009 (Apple consolidation) by @thymikee in #905
- feat: command-descriptor registry (additive, parity-tested) — Phase 1 step 1 by @thymikee in #906
- feat: build daemon command registry from descriptors, delete the hand table — Phase 1 step 2 by @thymikee in #907
- feat: build capability matrix from descriptors, delete the hand table — Phase 1 step 3 by @thymikee in #908
- feat: build batch allowlist from descriptors, delete the hand list — Phase 1 step 4 by @thymikee in #909
- feat: registry-driven exhaustive command dispatch — Phase 1 step 5 by @thymikee in #910
- feat: additive CommandResult type spine — Phase 1 step 6 by @thymikee in #911
- feat: derive the batch command union from the as-const registry (simplify #909) — Phase 1 step 7 by @thymikee in #912
- feat: PlatformDescriptor registry deriving the capability bucket — Phase 3 step 1 by @thymikee in #914
- feat: typed command results, batch 1 (Phase 2 typed-results) by @thymikee in #913
- docs: add cloud agents video by @thymikee in #915
- refactor: consolidate apple/mobile platform family-groupings via shared predicates — Phase 3 by @thymikee in #921
- feat: opt-in agent-cost wallClockMs behind --cost — Phase 4 slice 1 by @thymikee in #922
- feat: infer install target from artifact by @thymikee in #923
- perf: speed up iOS simulator screenshots by @thymikee in #918
- feat: opt-in agent-cost runnerRoundTrips — Phase 4 slice 2 by @thymikee in #925
- feat: expose opt-in agent-cost over MCP via includeCost — Phase 4 slice 2 by @thymikee in #924
- feat: add opt-in agent-cost nodeCount signal — Phase 4 slice 3 by @thymikee in #926
- perf: reuse Apple runner cache across version bumps by @thymikee in #900
- perf: reduce iOS simulator screenshot overhead by @thymikee in #927
- refactor: extract screenshot-diff domain out of utils — Phase 5 slice 1 by @thymikee in #928
- feat: support resumable proxy uploads by @thymikee in #919
- refactor: break snapshot.ts <-> snapshot-quality.ts type cycle — Phase 5 prep by @thymikee in #931
- refactor: seed src/kernel with snapshot.ts type module — Phase 5 slice 2 by @thymikee in #932
- feat: typed command results, batch 2 (home/back/rotate/app-switcher) — Phase 2 by @thymikee in #934
- feat: typed command results, batch 3 (clipboard, appstate) — Phase 2 by @thymikee in #937
- refactor: add provider device runtime foundation by @thymikee in #933
- feat: typed command results, batch 4 (keyboard) — Phase 2 by @thymikee in #938
- feat: typed errors — supportedOn + retriable signals — Phase 2 by @thymikee in #939
- feat: add replay test reporters by @thymikee in #936
- fix: clean up maestro test reporter output by @thymikee in #935
- feat: per-command MCP outputSchema — Phase 4 by @thymikee in #941
- refactor: move errors/redaction/device into src/kernel — Phase 5 slice 3 by @thymikee in #940
- fix: repoint MCP output-schemas import to kernel/device (unbreak main) by @thymikee in #943
- feat: leveled response views + --level knob with snapshot digest — Phase 4 by @thymikee in #942
- refactor: delete WaitCommandResult/AlertCommandResult mirror types — Phase 2c by @thymikee in #946
- refactor: extract metro/ folder — Phase 5 by @thymikee in #947
- feat: expose responseLevel over MCP — Phase 4 by @thymikee in #944
- feat: screenshot digest response-view — Phase 4 by @thymikee in #945
- refactor: move contracts.ts into src/kernel — Phase 5 by @thymikee in #950
- refactor: extract remote/ folder — Phase 5 by @thymikee in #951
- chore: exclude helper readmes from package by @thymikee in #954
- refactor: extract snapshot/ folder — Phase 5 by @thymikee in #953
- feat: find/get digest response-views + batch-step elision — Phase 4 by @thymikee in #955
- refactor: absorb CLI parser into cli/parser/ — Phase 5 by @thymikee in #958
- fix: avoid unsafe iOS keyboard dismissal by @thymikee in #957
- refactor: PlatformPlugin registry foundation (step a) — Phase 3 by @thymikee in #956
- refactor: extract client/ folder — Phase 5 by @thymikee in #960
- chore: prune public package exports by @thymikee in #961
- refactor: split daemon client driver into daemon/client/ — Phase 5 by @thymikee in #962
- refactor: route capability bucket through PlatformPlugin + pin supports() closures (Phase 3 step b) by @thymikee in #965
- fix: extend iOS physical install timeout by @thymikee in #964
- ci: automate iOS runner request-count gate for the Apple runner unwind (Phase 3 step c prep) by @thymikee in #966
- fix: respect prepare timeout for runner health checks by @thymikee in #967
- feat: support live replay test reporters by @thymikee in #959
- refactor: consolidate Apple platform internals by @thymikee in #968
- docs: fix stale platforms/ios paths after Apple consolidation (#968) + remaining-work plan by @thymikee in #969
- fix: restore runnerRoundTrips agent-cost field dropped in #968 by @thymikee in #970
- docs: distinguish removed request-count CI gate from restored cost.runnerRoundTrips (Phase 3 plan) by @thymikee in #971
- docs: retire phase3-platform-plugin-progress.md; track remaining work in issues (#972) by @thymikee in #982
- test: relocate Apple engine unit tests into platforms/apple/core (#980) by @thymikee in #983
- feat: enforce import-direction DAG (Phase-5 layering lint) by @thymikee in #984
- refactor: split daemon server runtime into daemon/server/ — Phase 5 by @thymikee in #985
- refactor: consolidate public SDK entry barrels into src/sdk/ — Phase 5 by @thymikee in #986
- fix: exempt sdk/ public barrels from R3 platforms-seam — unblock red main by @thymikee in #987
- test: relocate the 2 deferred Apple runner/recording tests (closes #980) by @thymikee in #988
- feat: gate watchOS as an explicit unsupported sentinel (closes #977) by @thymikee in #990
- feat: route daemon app-log backend through PlatformPlugin appLog facet (#974) by @thymikee in #991
- refactor(apple): promote tvOS to an explicit Apple-OS leaf (#976) by @thymikee in #992
- refactor: relocate Apple supports()/unsupportedHint() closures onto the plugin — Phase 3 b.2 (#973) by @thymikee in #993
- feat: add hosted WebDriver provider support by @thymikee in #948
- feat: add cross-platform audio probe by @thymikee in #880
- refactor(daemon): route perf support gate through PlatformPlugin perf facet (#974) by @thymikee in #995
- feat: add doctor command by @thymikee in #883
- refactor: rename ios-runner -> apple-runner (#981) by @thymikee in #996
- refactor: per-AppleOS capability table (Phase 3 d.5) by @thymikee in #997
- fix: trim root type exports by @thymikee in #999
- refactor: relocate Apple plugin + interactor + interactions under platforms/apple (#975) by @thymikee in #1001
- feat: polish replay test progress reporter by @thymikee in #998
Full Changelog: v0.18.0...v0.18.1