@@ -159,6 +159,31 @@ the only remote story. A hosted service is out of scope for this roadmap
159159- ** Interim answer (Phase 3):** published Docker image + WSL2 documented as
160160 the supported Windows path.
161161
162+ ** Update — 2026-08-22, Swift-for-Windows spike failed.** Per PLAN.md step 1,
163+ we attempted to build the shared core with Swift 6.3.3 for
164+ x86_64-unknown-windows-msvc on a real ` windows-latest ` runner
165+ (workflow: ` .github/workflows/windows-spike.yml ` , branch
166+ ` spike/windows-core ` ; run logs preserved there). Findings:
167+
168+ 1 . Cross-compilation from Linux is not possible; Swift SDK bundles target
169+ Linux and WebAssembly only.
170+ 2 . The winget toolchain is broken out of the box: runtime DLLs are split
171+ across two install trees (` Toolchains\6.3.3+Asserts\usr ` and
172+ ` Runtimes\6.3.3\usr ` ). ` swift.exe ` exits ` STATUS_DLL_NOT_FOUND ` until the
173+ trees are merged by hand.
174+ 3 . After repair, no Swift code compiles: even ` swiftc hello.swift ` fails with
175+ "unable to load standard library for target x86_64-unknown-windows-msvc",
176+ both via SPM and direct ` swiftc ` . Suspected cause is the ` +Asserts `
177+ toolchain packaged against a non-asserts runtime, or missing stdlib
178+ modules in the package.
179+
180+ Consequence: the "portable already" claim above does not hold on today's
181+ toolchain, so a Windows engine adapter written in Swift is not viable.
182+ WSL2/Docker remains the only supported Windows path. A native Windows host
183+ requires either a materially better Swift-for-Windows toolchain or a scoped
184+ Rust port of the shared core; revisit only when native Windows becomes an
185+ actual product requirement, and record a new decision entry first.
186+
162187## 7. macOS engine: keep WKWebView as the visible-browser experience
163188
164189** Decision:** keep the WKWebView host as macOS's default engine. It is the
@@ -422,7 +447,7 @@ credentials.
422447| 1 | Keep Swift core; Rust only via revisit trigger | Decided | 2026-08-04 |
423448| 3 | Extract HostCore + BrowserEngine, typed errors | Implemented | 2026-08-10 |
424449| 5 | Remote stays SSH-only; no cloud offering | Decided (owner) | 2026-08-04 |
425- | 6 | Windows = stretch via Chromium engine; WSL2/Docker interim | Decided (owner) | 2026-08-04 |
450+ | 6 | Windows = stretch via Chromium engine; WSL2/Docker interim | Decided (owner); spike failed 2026-08-22, native deferred | 2026-08-04 |
426451| 8 | Real CDP input on Linux as capability upgrade | Implemented | 2026-08-13 |
427452| 12 | Version unification on git tag | Implemented | 2026-08-04 |
428453| 14 | Run one conformance scenario against every engine | Implemented | 2026-08-10 |
0 commit comments