Skip to content

v1.0.11

Choose a tag to compare

@damian-kolakowski damian-kolakowski released this 29 Apr 14:16
· 52 commits to main since this release

Changelog

1.1.0 — June 2026

Second stable release. Adds two new LLM example apps, a zero-code ExecuTorch interceptor, GenerationConfig and ApiMeta telemetry types, gzip batch compression, and a suite of bug fixes and performance improvements.

New zero-code interceptor

  • ExecuTorch LLM (.execuTorchLLM) — intercepts on-device LLM inference through ExecuTorch at the ObjC runtime level without any code changes in the host app

New SDK types

  • GenerationConfig — typed struct in CoreTypes covering temperature, top_p, top_k, max_tokens, repetition_penalty, frequency_penalty, presence_penalty, seed, and stop_sequences_count; matches the generation_config event schema
  • ApiMeta — captures resolved_model_id, system_fingerprint, and service_tier from LLM API responses
  • Interceptors public OptionSet — set-literal syntax for selecting which zero-code interceptors to install

Compression and diagnostics

  • Gzip compression for outgoing event batches, with benchmarks and tests
  • SDKDiagnostics — exposes memory usage, queue size, and jsonSerialisationMs
  • app_version is now auto-detected from the host bundle; no manual configuration needed

New examples

  • LLaMA.cpp example — on-device LLM inference with Liquid AI model catalog sourced from LEAP, Metal tensor warmup on load, and accurate per-phase performance telemetry (tokenize / prefill / generation ms, tok/s)
  • ExecuTorch LLM example — on-device LLM inference via ExecuTorch with WildEdge telemetry

CarScannerExample improvements

  • Settings popup (gear button left of Scan) with persistent image size (256 / 512 / 1024 / 2048 px) and compression quality (0.1–1.0) controls; shows estimated upload file size with a background-computed preview
  • Thumbs up / down feedback buttons per inference result
  • Enriched inference telemetry and structured error reporting
  • run_id links Both-mode inferences across providers in a single session
  • Rebranded to WE Scan

Bug fixes

  • trackInference durationMs in ONNX processor paths now reports actual ML processing time instead of audio recording length
  • sanitizeFloats rounds all Double/Float values to 3 decimal places, eliminating full-precision JSON output such as 0.90000000000000002
  • WILDEDGE_DEBUG is now correctly read from Info.plist in Builder.debug and during auto-init
  • ORTInterceptorTests hardened against concurrent activeClient overwrites
  • Release build failure fixed: @_cdecl("wildedge_auto_init") changed to public to prevent dead-stripping under -Owholemodule
  • DetectionOutputMeta includes absolute pixel bounding box for car inference events
  • Device model resolves to marketing name via sysctlbyname; raw hardware identifier remains accessible
  • ISO8601DateFormatter cached in isoNow() — 16× faster buildInferenceEvent

Infrastructure

  • BlobStore-backed event queues with NDJSON disk persistence for crash durability
  • Binary size report added to CI pipeline

Full Changelog: v1.0.11...v1.1.0