<mxfile host="Electron" agent="tepp-omega-visual" version="29.3.0">
  <diagram name="Keeping the construct: knowledge only advances" id="15-lifecycle">
    <mxGraphModel dx="1600" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1860" pageHeight="930" background="#ffffff" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="15-2" value='&lt;font style="font-size:30px"&gt;&lt;b&gt;Keeping the construct: knowledge only advances&lt;/b&gt;&lt;/font&gt;' style="text;html=1;align=left;verticalAlign=middle;fontColor=#1f2933;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="40" y="24" width="1780" height="44" as="geometry" /></mxCell>
        <mxCell id="15-3" value="&lt;font style=&quot;font-size:17px&quot; color=&quot;#52606d&quot;&gt;A locus initializes once, then refreshes in the background. Boot needs no network, relay silence never removes a guardian's policy, and staleness is measured and visible.&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=middle;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="40" y="68" width="1780" height="30" as="geometry" /></mxCell>
        <mxCell id="15-4" value='&lt;font style="font-size:18px"&gt;&lt;b&gt;Initialization&lt;/b&gt;&lt;/font&gt;&lt;br&gt;The first assembly for a subject — and again only if the store is lost. It fills the known world from the network.' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#0e8088;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=14;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="40" y="170" width="330" height="150" as="geometry" /></mxCell>
        <mxCell id="15-5" value="&lt;font style=&quot;font-size:16px&quot;&gt;&lt;b&gt;A refresh tick&lt;/b&gt;&lt;/font&gt;&lt;br&gt;At boot, on regaining connectivity, then on the locus's cadence — hourly is recommended." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=10;arcSize=8;absoluteArcSize=1;spacingLeft=30;" vertex="1" parent="1"><mxGeometry x="464" y="140" width="356" height="136" as="geometry" /></mxCell>
        <mxCell id="15-6" value="&lt;b&gt;1&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;fillColor=#0e8088;strokeColor=none;fontColor=#ffffff;fontSize=16;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="450" y="126" width="34" height="34" as="geometry" /></mxCell>
        <mxCell id="15-7" value="&lt;font style=&quot;font-size:16px&quot;&gt;&lt;b&gt;Query the fetch graph&lt;/b&gt;&lt;/font&gt;&lt;br&gt;The association; each guardian's open and sealed coordinates; live lists; unresolved profiles; every extension source." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=10;arcSize=8;absoluteArcSize=1;spacingLeft=30;" vertex="1" parent="1"><mxGeometry x="874" y="140" width="356" height="136" as="geometry" /></mxCell>
        <mxCell id="15-8" value="&lt;b&gt;2&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;fillColor=#0e8088;strokeColor=none;fontColor=#ffffff;fontSize=16;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="860" y="126" width="34" height="34" as="geometry" /></mxCell>
        <mxCell id="15-9" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;Knowledge advances&lt;/b&gt;&lt;/font&gt;&lt;br&gt;Newer verified material is stored — even from an attempt that fails elsewhere. An empty answer removes nothing.' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=10;arcSize=8;absoluteArcSize=1;spacingLeft=30;" vertex="1" parent="1"><mxGeometry x="874" y="314" width="356" height="136" as="geometry" /></mxCell>
        <mxCell id="15-10" value="&lt;b&gt;3&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;fillColor=#0e8088;strokeColor=none;fontColor=#ffffff;fontSize=16;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="860" y="300" width="34" height="34" as="geometry" /></mxCell>
        <mxCell id="15-11" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;A new snapshot&lt;/b&gt;&lt;/font&gt;&lt;br&gt;The construct is re-derived and swapped in atomically. Every evaluation runs against one immutable snapshot.' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=10;arcSize=8;absoluteArcSize=1;spacingLeft=30;" vertex="1" parent="1"><mxGeometry x="464" y="314" width="356" height="136" as="geometry" /></mxCell>
        <mxCell id="15-12" value="&lt;b&gt;4&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;fillColor=#0e8088;strokeColor=none;fontColor=#ffffff;fontSize=16;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="450" y="300" width="34" height="34" as="geometry" /></mxCell>
        <mxCell id="15-13" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#0e8088;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="15-5" target="15-7"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="15-14" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#0e8088;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="15-7" target="15-9"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="15-15" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#0e8088;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="15-9" target="15-11"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="15-16" value="next tick" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#0e8088;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="15-11" target="15-5"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="15-17" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#0e8088;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="15-4" target="15-11"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="205" y="382" /></Array></mxGeometry></mxCell>
        <mxCell id="15-18" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;Anti-rollback&lt;/b&gt;&lt;/font&gt;' style="swimlane;html=1;startSize=34;fillColor=#b0e3e6;strokeColor=#0e8088;strokeWidth=1.5;swimlaneFillColor=#ffffff;rounded=1;arcSize=8;absoluteArcSize=1;fontFamily=Helvetica;fontColor=#1f2933;align=center;verticalAlign=middle;collapsible=0;" vertex="1" parent="1"><mxGeometry x="1290" y="130" width="530" height="320" as="geometry" /></mxCell>
        <mxCell id="15-19" value="Every coordinate the store accepts an event at carries a high-water mark: the newest &lt;font face=&quot;Courier New&quot;&gt;(created_at, id)&lt;/font&gt; it has accepted there.&lt;br&gt;&lt;br&gt;With the store intact, a copy older than what is held is simply discarded: a relay serving yesterday's policy cannot roll the household back.&lt;br&gt;&lt;br&gt;The marks of the association and of the guardians' binding coordinates even survive the loss of the store: if afterwards the newest copy on offer sits below the mark, the assembly refuses — regression.&lt;br&gt;&lt;br&gt;&lt;font style=&quot;font-size:12px&quot; color=&quot;#52606d&quot;&gt;The marks refuse relays, not the key: whoever holds the subject's key can sign a newer association — a loud, public act every locus follows.&lt;/font&gt;" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="15-18"><mxGeometry x="10" y="40" width="510" height="274" as="geometry" /></mxCell>
        <mxCell id="15-20" value='&lt;font style="font-size:19px"&gt;&lt;b&gt;Construct age: stale is visible, never a refusal&lt;/b&gt;&lt;/font&gt;' style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=15;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="40" y="490" width="1780" height="32" as="geometry" /></mxCell>
        <mxCell id="15-21" value="fresh" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=1.5;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;" vertex="1" parent="1"><mxGeometry x="60" y="550" width="487.20000000000005" height="44" as="geometry" /></mxCell>
        <mxCell id="15-22" value="past 24 h: every verdict carries an age finding" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=1.5;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;" vertex="1" parent="1"><mxGeometry x="547.2" y="550" width="591.5999999999999" height="44" as="geometry" /></mxCell>
        <mxCell id="15-23" value="past 7 days: signing and encrypting first await one refresh attempt" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=1.5;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;" vertex="1" parent="1"><mxGeometry x="1138.8" y="550" width="661.2" height="44" as="geometry" /></mxCell>
        <mxCell id="15-24" value='&lt;font style="font-size:12px" color="#52606d"&gt;last successful refresh&lt;/font&gt;' style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="56" y="600" width="300" height="24" as="geometry" /></mxCell>
        <mxCell id="15-25" value='&lt;font style="font-size:12px" color="#52606d"&gt;constructAgeWarn · 86 400 s by default&lt;/font&gt;' style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="543.2" y="600" width="300" height="24" as="geometry" /></mxCell>
        <mxCell id="15-26" value='&lt;font style="font-size:12px" color="#52606d"&gt;constructAgeHard · 604 800 s by default&lt;/font&gt;' style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="1134.8" y="600" width="300" height="24" as="geometry" /></mxCell>
        <mxCell id="15-27" value="A locus whose refresh keeps failing goes on enforcing what it holds. If the awaited attempt fails, the request is evaluated anyway, the age finding standing. Age never gates reading — neither input nor the decrypt oracle." style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="60" y="630" width="1740" height="50" as="geometry" /></mxCell>
        <mxCell id="15-28" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;What has not loaded&lt;/b&gt;&lt;/font&gt;&lt;br&gt;Retried at every tick and surfaced to the subject. Once it has stood 24 hours (by default) a notice goes to every guardian — coordinates and ids, never content — again each period; the notice is itself a policed send.' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=14;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="40" y="720" width="430" height="140" as="geometry" /></mxCell>
        <mxCell id="15-29" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;When a narrowing lands&lt;/b&gt;&lt;/font&gt;&lt;br&gt;A newer carrier applies at the first refresh that reaches a relay holding it. Partial connectivity widens before it narrows: a stated limit, measured by construct age.' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=14;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="490" y="720" width="430" height="140" as="geometry" /></mxCell>
        <mxCell id="15-30" value="&lt;font style=&quot;font-size:16px&quot;&gt;&lt;b&gt;Mis-dated material&lt;/b&gt;&lt;/font&gt;&lt;br&gt;A carrier dated beyond the clock tolerance (900 s by default) is admitted anyway — the guardian's act applies in full and pins its coordinate — and a future-dated finding goes to the guardians, who made the mistake." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=14;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="940" y="720" width="430" height="140" as="geometry" /></mxCell>
        <mxCell id="15-31" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;Losing the store&lt;/b&gt;&lt;/font&gt;&lt;br&gt;Back to initialization, under the marks that survive. A key whose discovery finds nothing is unbound — nothing signed, every verdict denied — exactly like a fresh key.' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=14;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="1390" y="720" width="430" height="140" as="geometry" /></mxCell>
        <mxCell id="15-32" value="" style="endArrow=none;html=1;strokeColor=#d9dee4;strokeWidth=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="40" y="882" as="sourcePoint" /><mxPoint x="1820" y="882" as="targetPoint" /></mxGeometry></mxCell>
        <mxCell id="15-33" value='&lt;font color="#52606d"&gt;TEPP Zeta · diagram 15 · statements: CONS-008–CONS-011, CONS-105–CONS-107, CONS-119–CONS-181, ADDR-026, ASSOC-037, ASSOC-038, CAPS-022–CAPS-024, CAPS-029, LOCI-041–LOCI-046, NF-007, NF-043&lt;/font&gt;' style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=middle;fontSize=12;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="40" y="890" width="1780" height="26" as="geometry" /></mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
