refactor(picker): drive the Win32 dialog from a spawned child process
The koffi IFileOpenDialog conversation runs in a spawned child process instead of a worker thread: the dialog is the child's first window, so Windows activates it without a foreground call, and a native fault stays contained to the child. The driver maps the child's message protocol onto a promise and services aborts by posting WM_CLOSE to the dialog thread's windows, killing the child when the close budget is exhausted. The built worker ships as lib/worker.cjs (the ./worker export) under plain node, and win32-dialog.spec.ts returns to the thread-safe pool.
This commit is contained in:
@@ -73,10 +73,6 @@ const coverageExemptExcludes = coverageExemptRaw === '1'
|
||||
// that worker threads cannot isolate reliably under aggregate gate contention.
|
||||
// Keep the narrow exception in forks while the rest of the inventory avoids per-file processes.
|
||||
const processBoundTests = [
|
||||
// Spawns a nested worker that blocks in a native modal dialog on win32;
|
||||
// under the threads pool the dialog thread outlives the test worker and
|
||||
// wedges pool teardown, while a fork contains it.
|
||||
'packages/host/directory-picker-native/tests/win32-dialog.spec.ts',
|
||||
'packages/subprocess/subprocess-local/tests/spawn.spec.ts',
|
||||
'packages/context/time-context/tests/time-context.spec.ts',
|
||||
'packages/llm/llm-pi-ai/tests/adapter.spec.ts',
|
||||
|
||||
Reference in New Issue
Block a user