01 · The loop
A writes a request. Only the host agent answers it. A verifies what comes back: the result's own hash, the hash of the request it answers, the signature over both, and that it is newer than the request.
- request written — nothing runs
- policy — closed binary set, no shell
- execute — argv, timeout, capped output
- redact — secrets never reach the file
- hash + sign — result, and the request it answers
- verify — hash, request-hash, signature, freshness
02 · Refusals are the product
A channel is defined by what it will not do. This mirrors the rules in crates/dropline-core/src/policy.rs; the real engine runs on the host, not in this page.
03 · Tamper and drift are caught
Every result carries its own SHA-256 and the hash of the request it answers. Edit one byte and the stored hash no longer describes the content.
04 · Bits on the wire, bits on disk
The channel can carry a bare bit stream: HDLC flags, bit stuffing, CRC-32. Storage keeps the same bits packed eight per byte — no base64, no JSON, no header. The only extra bits are the ones that let a receiver trust them.
05 · The pipeline runs the loop
The drop boundary is a job boundary: one job writes the request, only another job's container answers it, a third verifies and fails the pipeline on any mismatch. The signing key is derived per pipeline, so nothing is stored.
pipeline 2960812205 · 13 of 13 jobs green · the incident job is skipped because nothing failed