Explore this system
Step through curated paths without changing the source diagram.
Beat
Next
ReadyChapter 01 / 01
Guided chapter
Diagram guideExplore this system
Inspecting compiled semantics
E ExportT ThemeS Style0 Reset+ Zoom in- Zoom outEsc Close
Find a node
⌕/
No matching nodes
Semantic passport
Verified source
Authored reach
Route probeChoose a start node
Pick two semantic nodes on the diagram
Choose the source, then the destination. Direction matters.
Semantic lensCompare system roles
Choose up to two semantic kinds. One reveals its real traffic; two compare only direct authored relationships.
Choose a kind to inspect its nodes and touching relationships.
Semantic radar
Building overview
Click nodeDrag to pan
Semantic radar needs more MAP space.
Order is the contract
• Six phases in fixed order: clienthello, request short-circuit, request headers, buffering decision, response headers, response body
• Header mutations are applied in responseheaders(), because once a response streams its headers are already on the wire
• First match wins for short-circuit actions; the origin is never contacted
Stream or buffer
• A body is buffered only when some rule wants it, it is under the size cap, and its content type is on the allowlist
• A streamed body is never held in memory, so body transforms are recorded as skipped rather than silently not run
• Heavy body transforms are handed to a worker thread (PXY-024). That relieves head-of-line blocking on the loop; it does not lift the single-core ceiling (OI-21), and Python hooks ride along on that thread
What gets recorded
• The request and response are re-normalized after mutation, so the record shows what was sent and received, not the input
• Provenance is built alongside the flow and explains every match, skip, and budget exhaustion
• Redaction happens in capture; the ring is what the web UI, DevTools panel, and MCP tools all read