Skip to content

Releases: MohibShaikh/hwcontract

0.4.2: real sigrok interop, raw edge ingestion, events everywhere

Choose a tag to compare

@MohibShaikh MohibShaikh released this 24 Aug 23:20

The audit-release: the temporal engine now speaks actual sigrok and reaches every surface.

  • Real sigrok jsontrace: B/E annotation pairs (the decode.c shape: pid/tid/name) import correctly; X/i still accepted; unmatched pairs are errors. Golden fixture in tests/fixtures/.
  • Raw edge ingestion: hwcontract.edges turns multi-channel 0/1 waveforms (sigrok -O csv or plain header CSV) into rising/falling events. Wildcard selectors (spi.mosi.*).
  • Events on every surface: judge_events MCP tool, python3 -m hwcontract.temporal CLI, hwcontract.events() in pytest, events: in the GitHub Action.
  • Evidence everywhere: canonical verdict blocks with contract + input sha256 — JUnit properties and an evidence JSON in the Action, pytest failures and JUnit properties, both CLIs.
  • spi-frame contract rewritten over raw pin edges; the demo synthesizes 100 frames of waveforms at 100MHz and catches the Zephyr LPSPI DMA ordering fault through both ingestion paths.
  • Metadata: project URLs, updated description; the Action pins hwcontract==0.4.2 for reproducible runs.

134 tests (123 core + 11 plugin), CI on 3.9/3.13. Plugin: pytest-hwcontract 0.1.2.