Merge nucleic/olive-jade-civet-rznt into dev
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user