localharness 0.56.0

Agents that own themselves: one Rust crate that's both an agent SDK (streaming, tools, hooks, policies, triggers, MCP) and a wallet-owning, self-sovereign agent that runs in the browser.
Documentation
{
  "id": "p05_http_status_probe",
  "entry": "frame",
  "needs_state": true,
  "notes": "The corpus host stubs host_http::* to return 0, so get()->0 (valid handle), ready()->0 (pending). The cartridge advances phase 0 -> 1 and parks there, painting the amber pending bar. The check is: compiles, instantiates, runs across frames WITHOUT TRAPPING, draws the pending bar, and the phase slot advances to 1.",
  "checks": [
    {
      "kind": "no_trap",
      "frames": [0, 1, 2, 3],
      "rationale": "host::http poll model must instantiate + run without trapping under the stubbed host."
    },
    {
      "kind": "state_after_frames",
      "frames": [0],
      "slot": 0,
      "expect": 1,
      "rationale": "After one frame the GET fired (handle 0, non-negative) so phase advances to 1 (fetching)."
    },
    {
      "kind": "pixel_after_frames",
      "frames": [0],
      "x": 10,
      "y": 2,
      "expect_rgb": [170, 119, 0],
      "rationale": "Pending phase paints the amber 0xAA7700 status bar across the top 6px."
    }
  ]
}