Session Patch
@vcjdeboer/session-patch · v2026.07.16.1
Capture a PyLabRobot lab protocol ONCE as a sealed, citable IDENTITY, then lower that single intent onto whatever hardware you have — byte-exact, reproducible, provenance-tracked. `seal` freezes a `.patch.yaml` into a content-addressed bytestring (encoded as MIDI UMP/SysEx) and records the 64-hex patch sha you cite, plus its four sealed artifacts (patch/ump/syx/manifest) as a typed resource: the exact bytes of a scientific intent, pinned. `run` lowers ONE sealed sha through a chosen PLR driver and records the run — status, invocations, device calls, and the full NDJSON event stream — the provenance of how an intent became machine calls. `resource_model` captures the content-addressed deck layout (slots + role->labware) a run binds to; `init` scaffolds the store. The thesis in one line: the SAME sealed sha lowers to device-appropriate calls that DIFFER — a channel pipette runs pick_up_tips -> aspirate -> dispense -> drop_tips while a Labcyte Echo runs open_source_plate -> run_picklist -> close; same intent, transposed per device, 'the diff is the answer'. A pure-TypeScript codec/player makes identity byte-exact (flip one byte -> ContentHashError) and reproduces every run call-for-call.