Peer framing in map and note

This commit is contained in:
2026-10-10 15:47:04 +11:00
parent a6d4d26b89
commit fb0210743f
2 changed files with 16 additions and 16 deletions

View File

@@ -42,7 +42,7 @@
], ],
"boundaries": [ "boundaries": [
{ "kind": "region", "label": "Ways in", "wraps": ["phone", "admin", "esp32", "dsh"], "pad": 26 }, { "kind": "region", "label": "Ways in", "wraps": ["phone", "admin", "esp32", "dsh"], "pad": 26 },
{ "kind": "region", "label": "Destinations", "wraps": ["ha", "spk", "net", "art", "pc", "web", "app"], "pad": 26 } { "kind": "region", "label": "Peers and services", "wraps": ["ha", "spk", "net", "art", "pc", "web", "app"], "pad": 26 }
], ],
"connections": [ "connections": [
{ "id": "phone-in", "from": "phone", "to": "hub", "label": "voice or text" }, { "id": "phone-in", "from": "phone", "to": "hub", "label": "voice or text" },

View File

@@ -4913,7 +4913,7 @@
<text x="22" y="72" class="t-cloud" font-size="9" font-weight="600">Ways in</text> <text x="22" y="72" class="t-cloud" font-size="9" font-weight="600">Ways in</text>
<rect data-graph-role="structural-frame" data-composition-frame-kind="region" data-composition-frame-id="1" x="764" y="14" width="212" height="770" rx="12" class="c-region" stroke-width="1"/> <rect data-graph-role="structural-frame" data-composition-frame-kind="region" data-composition-frame-id="1" x="764" y="14" width="212" height="770" rx="12" class="c-region" stroke-width="1"/>
<text x="772" y="32" class="t-cloud" font-size="9" font-weight="600">Destinations</text> <text x="772" y="32" class="t-cloud" font-size="9" font-weight="600">Peers and services</text>
<!-- Connection paths (before components for correct z-order) --> <!-- Connection paths (before components for correct z-order) -->
<path data-edge-from="phone" data-edge-to="hub" data-edge-label="voice or text" data-edge-key="0" data-edge-id="phone-in" data-composition-points="190,112;290,112;290,279;390,279" d="M 190 112 L 282 112 Q 290 112 290 120 L 290 271 Q 290 279 298 279 L 390 279" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/> <path data-edge-from="phone" data-edge-to="hub" data-edge-label="voice or text" data-edge-key="0" data-edge-id="phone-in" data-composition-points="190,112;290,112;290,279;390,279" d="M 190 112 L 282 112 Q 290 112 290 120 L 290 271 Q 290 279 298 279 L 390 279" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
@@ -4994,8 +4994,8 @@
<text data-detail="fine" x="485" y="332" class="t-backend" font-size="7" text-anchor="middle">one shared service</text> <text data-detail="fine" x="485" y="332" class="t-backend" font-size="7" text-anchor="middle">one shared service</text>
</g> </g>
<g id="node-ha" data-node-id="ha" data-node-label="Home Assistant" tabindex="0" role="button" aria-label="Focus Home Assistant, devices, timers, Destinations" aria-pressed="false" data-node-kind="external" data-node-sublabel="devices, timers" data-node-context="Destinations"> <g id="node-ha" data-node-id="ha" data-node-label="Home Assistant" tabindex="0" role="button" aria-label="Focus Home Assistant, devices, timers, Peers and services" aria-pressed="false" data-node-kind="external" data-node-sublabel="devices, timers" data-node-context="Peers and services">
<title>Home Assistant · devices, timers · Destinations</title> <title>Home Assistant · devices, timers · Peers and services</title>
<rect x="790" y="40" width="160" height="64" rx="6" class="c-mask"/> <rect x="790" y="40" width="160" height="64" rx="6" class="c-mask"/>
<rect x="790" y="40" width="160" height="64" rx="6" class="c-external" stroke-width="1.5"/> <rect x="790" y="40" width="160" height="64" rx="6" class="c-external" stroke-width="1.5"/>
<g aria-hidden="true" data-semantic-sigil="external" class="semantic-sigil s-external" transform="translate(796 46) scale(0.6875)"> <g aria-hidden="true" data-semantic-sigil="external" class="semantic-sigil s-external" transform="translate(796 46) scale(0.6875)">
@@ -5006,8 +5006,8 @@
<text data-detail="context" x="870" y="86" class="t-muted" font-size="9" text-anchor="middle">devices, timers</text> <text data-detail="context" x="870" y="86" class="t-muted" font-size="9" text-anchor="middle">devices, timers</text>
</g> </g>
<g id="node-spk" data-node-id="spk" data-node-label="Speakers" tabindex="0" role="button" aria-label="Focus Speakers, Jervis TTS, Destinations" aria-pressed="false" data-node-kind="external" data-node-sublabel="Jervis TTS" data-node-context="Destinations"> <g id="node-spk" data-node-id="spk" data-node-label="Speakers" tabindex="0" role="button" aria-label="Focus Speakers, Jervis TTS, Peers and services" aria-pressed="false" data-node-kind="external" data-node-sublabel="Jervis TTS" data-node-context="Peers and services">
<title>Speakers · Jervis TTS · Destinations</title> <title>Speakers · Jervis TTS · Peers and services</title>
<rect x="790" y="150" width="160" height="64" rx="6" class="c-mask"/> <rect x="790" y="150" width="160" height="64" rx="6" class="c-mask"/>
<rect x="790" y="150" width="160" height="64" rx="6" class="c-external" stroke-width="1.5"/> <rect x="790" y="150" width="160" height="64" rx="6" class="c-external" stroke-width="1.5"/>
<g aria-hidden="true" data-semantic-sigil="external" class="semantic-sigil s-external" transform="translate(796 156) scale(0.6875)"> <g aria-hidden="true" data-semantic-sigil="external" class="semantic-sigil s-external" transform="translate(796 156) scale(0.6875)">
@@ -5018,8 +5018,8 @@
<text data-detail="context" x="870" y="196" class="t-muted" font-size="9" text-anchor="middle">Jervis TTS</text> <text data-detail="context" x="870" y="196" class="t-muted" font-size="9" text-anchor="middle">Jervis TTS</text>
</g> </g>
<g id="node-net" data-node-id="net" data-node-label="Internet control" tabindex="0" role="button" aria-label="Focus Internet control, parental limits, Destinations" aria-pressed="false" data-node-kind="backend" data-node-sublabel="parental limits" data-node-context="Destinations"> <g id="node-net" data-node-id="net" data-node-label="Internet control" tabindex="0" role="button" aria-label="Focus Internet control, parental limits, Peers and services" aria-pressed="false" data-node-kind="backend" data-node-sublabel="parental limits" data-node-context="Peers and services">
<title>Internet control · parental limits · Destinations</title> <title>Internet control · parental limits · Peers and services</title>
<rect x="790" y="260" width="160" height="64" rx="6" class="c-mask"/> <rect x="790" y="260" width="160" height="64" rx="6" class="c-mask"/>
<rect x="790" y="260" width="160" height="64" rx="6" class="c-backend" stroke-width="1.5"/> <rect x="790" y="260" width="160" height="64" rx="6" class="c-backend" stroke-width="1.5"/>
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(796 266) scale(0.6875)"> <g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(796 266) scale(0.6875)">
@@ -5029,8 +5029,8 @@
<text data-detail="context" x="870" y="306" class="t-muted" font-size="9" text-anchor="middle">parental limits</text> <text data-detail="context" x="870" y="306" class="t-muted" font-size="9" text-anchor="middle">parental limits</text>
</g> </g>
<g id="node-art" data-node-id="art" data-node-label="Artemis" tabindex="0" role="button" aria-label="Focus Artemis, phone screen, Destinations" aria-pressed="false" data-node-kind="backend" data-node-sublabel="phone screen" data-node-context="Destinations"> <g id="node-art" data-node-id="art" data-node-label="Artemis" tabindex="0" role="button" aria-label="Focus Artemis, phone screen, Peers and services" aria-pressed="false" data-node-kind="backend" data-node-sublabel="phone screen" data-node-context="Peers and services">
<title>Artemis · phone screen · Destinations</title> <title>Artemis · phone screen · Peers and services</title>
<rect x="790" y="370" width="160" height="64" rx="6" class="c-mask"/> <rect x="790" y="370" width="160" height="64" rx="6" class="c-mask"/>
<rect x="790" y="370" width="160" height="64" rx="6" class="c-backend" stroke-width="1.5"/> <rect x="790" y="370" width="160" height="64" rx="6" class="c-backend" stroke-width="1.5"/>
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(796 376) scale(0.6875)"> <g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(796 376) scale(0.6875)">
@@ -5040,8 +5040,8 @@
<text data-detail="context" x="870" y="416" class="t-muted" font-size="9" text-anchor="middle">phone screen</text> <text data-detail="context" x="870" y="416" class="t-muted" font-size="9" text-anchor="middle">phone screen</text>
</g> </g>
<g id="node-pc" data-node-id="pc" data-node-label="Paperclip" tabindex="0" role="button" aria-label="Focus Paperclip, slow jobs, Destinations" aria-pressed="false" data-node-kind="backend" data-node-sublabel="slow jobs" data-node-context="Destinations"> <g id="node-pc" data-node-id="pc" data-node-label="Paperclip" tabindex="0" role="button" aria-label="Focus Paperclip, slow jobs, Peers and services" aria-pressed="false" data-node-kind="backend" data-node-sublabel="slow jobs" data-node-context="Peers and services">
<title>Paperclip · slow jobs · Destinations</title> <title>Paperclip · slow jobs · Peers and services</title>
<rect x="790" y="480" width="160" height="64" rx="6" class="c-mask"/> <rect x="790" y="480" width="160" height="64" rx="6" class="c-mask"/>
<rect x="790" y="480" width="160" height="64" rx="6" class="c-backend" stroke-width="1.5"/> <rect x="790" y="480" width="160" height="64" rx="6" class="c-backend" stroke-width="1.5"/>
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(796 486) scale(0.6875)"> <g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(796 486) scale(0.6875)">
@@ -5051,8 +5051,8 @@
<text data-detail="context" x="870" y="526" class="t-muted" font-size="9" text-anchor="middle">slow jobs</text> <text data-detail="context" x="870" y="526" class="t-muted" font-size="9" text-anchor="middle">slow jobs</text>
</g> </g>
<g id="node-web" data-node-id="web" data-node-label="Web search" tabindex="0" role="button" aria-label="Focus Web search, Tavily, Destinations" aria-pressed="false" data-node-kind="cloud" data-node-sublabel="Tavily" data-node-context="Destinations"> <g id="node-web" data-node-id="web" data-node-label="Web search" tabindex="0" role="button" aria-label="Focus Web search, Tavily, Peers and services" aria-pressed="false" data-node-kind="cloud" data-node-sublabel="Tavily" data-node-context="Peers and services">
<title>Web search · Tavily · Destinations</title> <title>Web search · Tavily · Peers and services</title>
<rect x="790" y="590" width="160" height="64" rx="6" class="c-mask"/> <rect x="790" y="590" width="160" height="64" rx="6" class="c-mask"/>
<rect x="790" y="590" width="160" height="64" rx="6" class="c-cloud" stroke-width="1.5"/> <rect x="790" y="590" width="160" height="64" rx="6" class="c-cloud" stroke-width="1.5"/>
<g aria-hidden="true" data-semantic-sigil="cloud" class="semantic-sigil s-cloud" transform="translate(796 596) scale(0.6875)"> <g aria-hidden="true" data-semantic-sigil="cloud" class="semantic-sigil s-cloud" transform="translate(796 596) scale(0.6875)">
@@ -5062,8 +5062,8 @@
<text data-detail="context" x="870" y="636" class="t-muted" font-size="9" text-anchor="middle">Tavily</text> <text data-detail="context" x="870" y="636" class="t-muted" font-size="9" text-anchor="middle">Tavily</text>
</g> </g>
<g id="node-app" data-node-id="app" data-node-label="Apprise / NTFY" tabindex="0" role="button" aria-label="Focus Apprise / NTFY, notify + email, Destinations" aria-pressed="false" data-node-kind="backend" data-node-sublabel="notify + email" data-node-context="Destinations"> <g id="node-app" data-node-id="app" data-node-label="Apprise / NTFY" tabindex="0" role="button" aria-label="Focus Apprise / NTFY, notify + email, Peers and services" aria-pressed="false" data-node-kind="backend" data-node-sublabel="notify + email" data-node-context="Peers and services">
<title>Apprise / NTFY · notify + email · Destinations</title> <title>Apprise / NTFY · notify + email · Peers and services</title>
<rect x="790" y="700" width="160" height="64" rx="6" class="c-mask"/> <rect x="790" y="700" width="160" height="64" rx="6" class="c-mask"/>
<rect x="790" y="700" width="160" height="64" rx="6" class="c-backend" stroke-width="1.5"/> <rect x="790" y="700" width="160" height="64" rx="6" class="c-backend" stroke-width="1.5"/>
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(796 706) scale(0.6875)"> <g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(796 706) scale(0.6875)">