🛰️ export from upstream (e9f3e38)

This commit is contained in:
Gabor Koerber
2026-05-30 01:48:46 +02:00
parent 9f2e1d7266
commit 077ccabd53
14 changed files with 1236 additions and 47 deletions
+88
View File
@@ -0,0 +1,88 @@
<svg xmlns="http://www.w3.org/2000/svg" width="700" height="520" viewBox="0 0 700 520">
<style>
text { font-family: system-ui, -apple-system, sans-serif; }
.title { font-size: 16px; font-weight: 600; fill: #1a1a1a; }
.label { font-size: 13px; fill: #1a1a1a; }
.small { font-size: 11px; fill: #555; }
.edge { font-size: 11px; font-weight: 600; }
.yes { fill: #2d7d46; }
.no { fill: #c0392b; }
.arrow { stroke: #666; stroke-width: 1.5; fill: none; marker-end: url(#arrowhead); }
.diamond { fill: #fff3cd; stroke: #e0c36a; stroke-width: 1.5; }
.result-native { fill: #d4edda; stroke: #7bc88f; stroke-width: 1.5; rx: 8; }
.result-compose { fill: #cce5ff; stroke: #6cb3f5; stroke-width: 1.5; rx: 8; }
.platform { fill: #f0f0f0; stroke: #ccc; stroke-width: 1; stroke-dasharray: 4 2; rx: 6; }
</style>
<defs>
<marker id="arrowhead" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto">
<path d="M0,0 L8,3 L0,6 Z" fill="#666"/>
</marker>
</defs>
<text x="350" y="30" text-anchor="middle" class="title">Interactive Mode: Backend Selection</text>
<!-- Config check -->
<rect x="225" y="50" width="250" height="44" class="diamond" rx="6"/>
<text x="350" y="69" text-anchor="middle" class="label">compose_backend = "compose"</text>
<text x="350" y="84" text-anchor="middle" class="small">in sandcage.toml?</text>
<!-- Windows-only box -->
<rect x="30" y="140" width="340" height="290" class="platform"/>
<text x="50" y="160" class="small" font-style="italic">Windows only</text>
<!-- MSYSTEM check -->
<rect x="100" y="175" width="200" height="44" class="diamond" rx="6"/>
<text x="200" y="194" text-anchor="middle" class="label">MSYSTEM env var set?</text>
<text x="200" y="209" text-anchor="middle" class="small">(Git Bash / MSYS2)</text>
<!-- Console handle check -->
<rect x="100" y="275" width="200" height="44" class="diamond" rx="6"/>
<text x="200" y="294" text-anchor="middle" class="label">Console handle valid?</text>
<text x="200" y="309" text-anchor="middle" class="small">(GetConsoleMode)</text>
<!-- Raw mode check -->
<rect x="225" y="380" width="250" height="44" class="diamond" rx="6"/>
<text x="350" y="399" text-anchor="middle" class="label">Raw mode supported?</text>
<text x="350" y="414" text-anchor="middle" class="small">(crossterm probe)</text>
<!-- Result: Native TTY -->
<rect x="195" y="468" width="200" height="38" class="result-native"/>
<text x="295" y="491" text-anchor="middle" class="label" font-weight="600">Native TTY</text>
<!-- Result: Compose fallback -->
<rect x="500" y="200" width="170" height="38" class="result-compose"/>
<text x="585" y="223" text-anchor="middle" class="label" font-weight="600">Compose fallback</text>
<!-- Arrows -->
<!-- Config → MSYSTEM (No) -->
<path d="M350,94 L350,120 L200,120 L200,175" class="arrow"/>
<text x="280" y="115" class="edge no">no</text>
<!-- Config → Compose (Yes) -->
<path d="M475,72 L585,72 L585,200" class="arrow"/>
<text x="510" y="65" class="edge yes">yes</text>
<!-- MSYSTEM → Console (No) -->
<path d="M200,219 L200,275" class="arrow"/>
<text x="210" y="252" class="edge no">no</text>
<!-- MSYSTEM → Compose (Yes) -->
<path d="M300,197 L430,197 L430,219 L500,219" class="arrow"/>
<text x="340" y="190" class="edge yes">yes</text>
<!-- Console → Raw mode (Yes) -->
<path d="M200,319 L200,355 L350,355 L350,380" class="arrow"/>
<text x="210" y="345" class="edge yes">yes</text>
<!-- Console → Compose (No) -->
<path d="M300,297 L430,297 L430,219 L500,219" class="arrow"/>
<text x="340" y="290" class="edge no">no</text>
<!-- Raw mode → Native (Yes) -->
<path d="M295,424 L295,468" class="arrow"/>
<text x="275" y="450" class="edge yes">yes</text>
<!-- Raw mode → Compose (No) -->
<path d="M475,402 L585,402 L585,238" class="arrow"/>
<text x="510" y="395" class="edge no">no</text>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB