Skip to content

v0.1.1

Choose a tag to compare

@rvben rvben released this 02 Jul 06:18
v0.1.1
4b7bb67

Hardening and correctness fixes across the CLI, shims, and rendering pipeline. Still early software; interfaces may evolve.

Fixed

  • Screenshots taken after injecting data (snapshot --shot, scenario steps, run-session captures) could show the previous frame: capture now settles past a full LVGL refresh period first.
  • An invalid serial expect regex crashed the process; it is now a structured bad_args error in both the one-shot CLI and the run session.
  • Unknown --options, garbage or out-of-range numbers, out-of-bounds taps, and non-JSON snapshot bodies were silently accepted; all are now rejected against the schema contract. A bare -- ends option parsing.
  • The run session desynced on lines over 16 KB, corrupted LVGL state on a second boot, and spoke an undocumented flat error vocabulary; it now replies with the same kind/message envelope as the one-shot CLI, rejects re-boots, and answers an oversized line with one error.
  • Scenario steps bypassed board-capability gating and used off-schema exit codes.
  • Shim fidelity: collectHeaders retains only declared headers (device semantics), real HTTP reason phrases, read-only Preferences reject writes, Serial.printf no longer truncates at 1 KB, webserver listeners reset on every boot, and snapshot posts can no longer land on an unrelated host process.
  • TFT_eSPI: drawing on an unbuffered sprite no longer writes to the screen, sprites compose through their parent, createSprite rejects non-positive dimensions, and rotations 2/3 mirror their 0/1 counterparts.

Added

  • --version (any argument position), version single-sourced from CMake into the schema.
  • make release and make install (optimized build, cmake --install).
  • CI on ubuntu and macos running the same make targets used locally.
  • Configure-time detection of new firmware source files (clear warning instead of a linker error).

Changed

  • Run-session and scenario error replies now use the documented {"error":{"kind":...,"message":...}} envelope; scenario failures exit with the first failing step's schema exit code.