# One renderer, two transports, 2026-09-11 > A design note from the engineering record: what Datastar 1.0 asks of a > server-rendered fragment, checked against the shipped bundle rather than > recalled, and what the framework layer built on the answers. > **D7 is retired (2026-09-18).** Below, both conformances live in > `html.mojo` because an application could not conform to `Vocabulary` > through a `.mojoc`, and the "Not built" table's row "A `Vocabulary` an > application defines" waits on the probe flipping. It flipped with Mojo > 1.1.0 and that row is built: > [a-vocabulary-an-application-defines](https://m0serve.dev/notes/a-vocabulary-an-application-defines.md). > The note is kept as written. [A fragment that names itself](https://m0serve.dev/notes/a-fragment-that-names-itself.md) built the fragment layer for htmx and left one claim unproven: that the same renderer's output could go out as an HTTP body to htmx *and* as a `datastar-patch-elements` frame to every connected tab, which is the transport where this server is ahead — a cross-worker bus, a replay journal, `Last-Event-ID` resumption across a restart. Proving it meant learning what Datastar actually does, because the tree's Datastar knowledge was three version traps found in a browser and a wire format copied from the SDK's test cases. Every fact below names where it was read. ## What was checked **The version.** Datastar's newest release is v1.0.3 (2026-08-27); the tree pinned v1.0.2 (2026-06-02). The comparison between the two tags is fifteen commits with nothing under `sdk/`, a bundle 34,083 bytes to 33,538, and release notes naming an opt-in CSP mode, signal state resent when a request is retried after a network error, a view-transition detection fix and a `