Merge nucleic/olive-jade-civet-rznt into dev

This commit is contained in:
2026-07-29 00:33:37 -07:00
parent dcb86fab45
commit 6d06dcd4d0
2 changed files with 16 additions and 10 deletions
+7 -4
View File
@@ -27,10 +27,13 @@ namespace NucleicBroker.Wslc;
// is the VM GUID an AF_HYPERV bind needs. Both IDLs are in the open-source WSL repo. The
// internal one carries an explicit "ABI breaking changes are OK" warning.
//
// So there are two ways to close the gaps — direct internal COM, or shelling out to
// `wslc.exe` — with a real stability-versus-fidelity trade-off between them, and it has NOT
// been decided. §13.1 lays it out. Whichever wins lives entirely inside this class: `IWslc`
// does not change, so nothing on the Swift side knows which surface answered.
// D13 (§13.1): this class binds BOTH surfaces — compat SDK for everything it covers, internal
// COM for those five. Shelling out to `wslc.exe` was considered and rejected (a spawn per call,
// scraped text, no events, a second mechanism to maintain). Because the internal ABI is
// explicitly unstable, bind it defensively: probe at startup, report what bound in the
// `capabilities` hello, and degrade — losing reattach, stats and the Terminal panel — rather
// than failing the sandbox. All of that lives inside this class: `IWslc` does not change, so
// nothing on the Swift side knows which surface answered.
//
// Also note: `ProcessSettings` has no uid/gid, so exec wraps argv in setpriv/su — which
// §3.2 already anticipated as the fallback, so it costs nothing.