piece-runs: fix log phase payload shape — nest events under data
/api/piece-log's log branch reads data.events, but disk.mjs was posting
{ events } at the top level, so the server always saw an empty array
and never $pushed anything. Verified against prod: 0 of 8669 piece-runs
had an events field.
Both call sites (per-tick flush and end-of-piece complete) now wrap
events in { data: { events } }, matching start's { meta } and
complete's { data: {...summary} } shapes.
This unblocks the cam/init and cam/frame diagnostics from cap.mjs —
they can now actually be read back via ac-piece-logs-events.