@goliapkg/smix 10.1.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goliapkg/smix",
3
- "version": "10.1.0",
3
+ "version": "11.0.0",
4
4
  "description": "Playwright-shape iOS Simulator / Android emulator UI automation SDK for React Native + Expo + Detox-compatible TypeScript test runners.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0 OR MIT",
@@ -25,7 +25,7 @@
25
25
  "typecheck": "tsc --noEmit -p tsconfig.json && tsc -p tsconfig.test.json"
26
26
  },
27
27
  "optionalDependencies": {
28
- "@goliapkg/smix-node": "10.1.0"
28
+ "@goliapkg/smix-node": "11.0.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "^20.14.0",
@@ -41,7 +41,27 @@ async function startFakeWire(): Promise<Wire> {
41
41
  await new Promise<void>((r) => server.listen(0, '127.0.0.1', () => r()))
42
42
  const addr = server.address()
43
43
  const port = typeof addr === 'object' && addr ? addr.port : 0
44
- return { port, seen, close: () => new Promise((r) => server.close(() => r())) }
44
+ // Keep-alive stays on, as it is on the real runner; `close` drops the
45
+ // connections the addon's pool is holding before it waits.
46
+ //
47
+ // `server.close()` waits for every open socket to end, and the addon
48
+ // keeps its idle one. Measured on a 2-core Linux box (`taskset -c
49
+ // 0,1`, lx64, 2026-09-24/25, ten runs each): every request finished in
50
+ // 3–70 ms, and in 9 of 10 runs a test then sat out its whole timeout
51
+ // inside this `close`. Dropping the connections first: 10/10 in under
52
+ // half a second. The same wire in a process of its own, with four busy
53
+ // loops on those two cores: 10/10. What stalled was this stand-in's
54
+ // teardown, not a request on a reused connection — 11.0 read it as the
55
+ // latter and answered `connection: close` on every reply.
56
+ return {
57
+ port,
58
+ seen,
59
+ close: () =>
60
+ new Promise((r) => {
61
+ server.closeAllConnections()
62
+ server.close(() => r())
63
+ }),
64
+ }
45
65
  }
46
66
 
47
67
  describe('smix-rn drives through the real napi addon (C4)', () => {