Skip to content

v0.3.0

Choose a tag to compare

@qadanm qadanm released this 06 Jul 02:18

Developer-experience release. Everything is additive except the BLE type rename, which ships with deprecated aliases so existing code keeps compiling.

Added

  • A shipped test client: an in-process Conversation and a TCP Client (Swift ElmulatorTestSupport; Python Conversation, Client, serve_in_background).
  • Bundled scenarios by name: Scenario.bundled("p0420_basic") and elmulator.load_bundled(...). Embedded in the package, so no files on disk are needed.
  • An opt-in served-conversation transcript for debugging, with a byte-level debugDump().
  • In-code scenario builders (public initializers in Swift, build_scenario in Python).
  • A helper to use expected_scan_summary: mismatches(observed:) / summary_mismatches(...).
  • A reusable GitHub Action (action.yml) that serves a scenario over TCP and exposes the port.

Changed

  • BLE types dropped the BLE prefix (CentralStack, ConnectionStateMachine, AdapterProfile, DiscoveredPeripheral, FakeCentral, and so on) so they no longer collide with a consuming app's own BLE layer. Deprecated typealiases keep the old names working for now.

Fixed

  • The CoreBluetooth-Mock bridge can honor per-piece reply delays (opt in with applyDelays: true).
  • elmulator validate works from a pip-installed wheel.