<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="eli.ai" agent="eli.ai diagram exporter" version="1">
  <diagram id="authoring-ux-simplified-data-flow-d5095846" name="Authoring UX — simplified data flow">
    <mxGraphModel dx="1600" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1200" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <object id="1" label="Authoring UX — simplified data flow" schemaVersion="1" diagramId="authoring-ux-simplified-data-flow-d5095846" canonicalAppearanceKey="md:docs/architecture/workspace/02-authoring-ux.md#3" sourceSha256="d509584655ab21f1a27bfccd2a17c375d811895a17c974416d2cc14194c5db32" metadataPayloadSha256="087465ee2c2f0d2a21eef6a96b3124911af58f0e6ec5d5b73504917613817833" generationKey="cf599f097cfe548fdec080894f84fec8d0524b0fff61972ec2b385304a4b18d6" concepts="[&quot;Authoring UX&quot;]" keywords="[&quot;User types&quot;,&quot;on every change&quot;,&quot;1500ms idle debounce&quot;,&quot;OCC, snapshot on race&quot;,&quot;dirty flag cleared&quot;,&quot;Hydrate markdown to blocks&quot;,&quot;FormData + expectedVersionId&quot;,&quot;scheduleEmbed (fire-and-forget)&quot;,&quot;Editor advances versionId&quot;,&quot;storage.updateNote&quot;,&quot;/v/n/path&quot;,&quot;Open&quot;,&quot;blocksToMarkdownLossy&quot;,&quot;saveNoteAction&quot;,&quot;revalidatePath&quot;,&quot;tryParseMarkdownToBlocks&quot;]" application="{&quot;name&quot;:&quot;eli-ai&quot;,&quot;version&quot;:&quot;0.1.0&quot;}" packages="{&quot;mermaid&quot;:&quot;11.16.0&quot;,&quot;mermaidCli&quot;:&quot;11.16.0&quot;,&quot;playwright&quot;:&quot;1.62.1&quot;,&quot;playwrightCore&quot;:&quot;1.62.1&quot;,&quot;puppeteer&quot;:&quot;25.6.0&quot;,&quot;puppeteerCore&quot;:&quot;25.6.0&quot;}" environment="{&quot;architecture&quot;:&quot;x64&quot;,&quot;containerImage&quot;:&quot;playwright:v1.62.1-noble@sha256:c091b21d9fae78c76e85cd4356431e9b018402f172a214fc7d7a5e9a7e29d8ac+node:26.3.1-bookworm-slim@sha256:209558c3e5e40e8adff68959d3c2ba7cd73723e716d89196878a0c362fa1e109&quot;,&quot;node&quot;:&quot;v26.3.1&quot;,&quot;platform&quot;:&quot;linux&quot;,&quot;yarn&quot;:&quot;4.17.1&quot;}" renderer="{&quot;browser&quot;:{&quot;executableSha256&quot;:&quot;0b20b130e7edd9dd51873be867761295fe0cfad490c2b9a64f95bd3cfc08fa71&quot;,&quot;name&quot;:&quot;chromium&quot;,&quot;revision&quot;:&quot;1234&quot;,&quot;version&quot;:&quot;151.0.7922.34&quot;},&quot;font&quot;:{&quot;family&quot;:&quot;Eli Diagram Inter Variable&quot;,&quot;fileSha256&quot;:&quot;3100e775e8616cd2611beecfa23a4263d7037586789b43f035236a2e6fbd4c62&quot;,&quot;licenseSha256&quot;:&quot;3b0a5fca3d17942cde889069889dedbbbd075e9b599968c82a95f4d944e9b345&quot;},&quot;mermaidConfigSha256&quot;:&quot;68c10966fe84406ee626034d58bfabd555df9f65f691204b7c46db24038da101&quot;,&quot;themeCssSha256&quot;:&quot;c80287a78d80ad63d27bd5ca348b2ef9a7e2f44da289e436be6484ea28a1b033&quot;}" adapterVersions="{&quot;diagramGenerator&quot;:&quot;2&quot;,&quot;drawioFlowchart&quot;:&quot;1&quot;,&quot;drawioGantt&quot;:&quot;1&quot;,&quot;drawioSequence&quot;:&quot;1&quot;,&quot;drawioState&quot;:&quot;1&quot;}" mermaidType="flowchart" direction="LR" generatedAt="2026-08-12T23:36:59.292Z" mermaidSource="flowchart LR&#10;  n1[&quot;Open /v/n/path&quot;] --&gt; n2[&quot;Hydrate markdown to blocks&lt;br/&gt;tryParseMarkdownToBlocks&quot;]&#10;  n2 --&gt; n3[&quot;User types&quot;]&#10;  n3 --&gt; n4[&quot;blocksToMarkdownLossy&lt;br/&gt;on every change&quot;]&#10;  n4 --&gt;|&quot;1500ms idle debounce&quot;| n5[&quot;saveNoteAction&lt;br/&gt;FormData + expectedVersionId&quot;]&#10;  n5 --&gt; n6[&quot;storage.updateNote&lt;br/&gt;OCC, snapshot on race&quot;]&#10;  n6 --&gt; n7[&quot;revalidatePath +&lt;br/&gt;scheduleEmbed (fire-and-forget)&quot;]&#10;  n7 --&gt; n8[&quot;Editor advances versionId,&lt;br/&gt;dirty flag cleared&quot;]">
          <mxCell parent="0"/>
        </object>
        <object id="n:n1" label="Open /v/n/path" mermaidId="n1" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="8" y="32" width="169.78125" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:n2" label="Hydrate markdown to blockstryParseMarkdownToBlocks" mermaidId="n2" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="227.78125" y="8" width="267.25" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:n3" label="User types" mermaidId="n3" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="545.03125" y="32" width="138.3125" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:n4" label="blocksToMarkdownLossyon every change" mermaidId="n4" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="733.34375" y="20" width="247.4375" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:n5" label="saveNoteActionFormData + expectedVersionId" mermaidId="n5" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1201.203125" y="8" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:n6" label="storage.updateNoteOCC, snapshot on race" mermaidId="n6" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1507.203125" y="20" width="231.65625" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:n7" label="revalidatePath +scheduleEmbed (fire-and-forget)" mermaidId="n7" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1788.859375" y="8" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:n8" label="Editor advances versionId,dirty flag cleared" mermaidId="n8" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="2094.859375" y="8" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="e:L_n1_n2_0" label="" mermaidId="L_n1_n2_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:n1" target="n:n2" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="177.78125" y="58" as="sourcePoint"/>
              <mxPoint x="227.78125" y="58" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="202.78125" y="58"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_n2_n3_0" label="" mermaidId="L_n2_n3_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:n2" target="n:n3" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="495.03125" y="58" as="sourcePoint"/>
              <mxPoint x="545.03125" y="58" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="520.03125" y="58"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_n3_n4_0" label="" mermaidId="L_n3_n4_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:n3" target="n:n4" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="683.34375" y="58" as="sourcePoint"/>
              <mxPoint x="733.34375" y="58" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="708.34375" y="58"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_n4_n5_0" label="1500ms idle debounce" mermaidId="L_n4_n5_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:n4" target="n:n5" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="980.78125" y="58" as="sourcePoint"/>
              <mxPoint x="1201.203125" y="58" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1090.992188" y="58"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_n5_n6_0" label="" mermaidId="L_n5_n6_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:n5" target="n:n6" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1457.203125" y="58" as="sourcePoint"/>
              <mxPoint x="1507.203125" y="58" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1482.203125" y="58"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_n6_n7_0" label="" mermaidId="L_n6_n7_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:n6" target="n:n7" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1738.859375" y="58" as="sourcePoint"/>
              <mxPoint x="1788.859375" y="58" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1763.859375" y="58"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_n7_n8_0" label="" mermaidId="L_n7_n8_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:n7" target="n:n8" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="2044.859375" y="58" as="sourcePoint"/>
              <mxPoint x="2094.859375" y="58" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="2069.859375" y="58"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
