@ttsc/unplugin 0.31.0 → 0.31.1

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.
Files changed (218) hide show
  1. package/lib/core/bun/bun.d.cts +3 -2
  2. package/lib/core/bun/bun.d.mts +3 -2
  3. package/lib/core/bun/bun.d.ts +3 -2
  4. package/lib/core/bun/bun.js +8 -4
  5. package/lib/core/bun/bun.js.map +1 -1
  6. package/lib/core/bun/bun.mjs +8 -4
  7. package/lib/core/bun/bun.mjs.map +1 -1
  8. package/lib/core/observer/createInputObserver.js +6 -5
  9. package/lib/core/observer/createInputObserver.js.map +1 -1
  10. package/lib/core/observer/createInputObserver.mjs +6 -5
  11. package/lib/core/observer/createInputObserver.mjs.map +1 -1
  12. package/lib/core/observer/openIsolatedRecursiveWatch.d.cts +11 -12
  13. package/lib/core/observer/openIsolatedRecursiveWatch.d.mts +11 -12
  14. package/lib/core/observer/openIsolatedRecursiveWatch.d.ts +11 -12
  15. package/lib/core/observer/openIsolatedRecursiveWatch.js +11 -12
  16. package/lib/core/observer/openIsolatedRecursiveWatch.js.map +1 -1
  17. package/lib/core/observer/openIsolatedRecursiveWatch.mjs +11 -12
  18. package/lib/core/observer/openIsolatedRecursiveWatch.mjs.map +1 -1
  19. package/lib/core/transform/cache/TtscCachedProjectTransform.d.cts +12 -3
  20. package/lib/core/transform/cache/TtscCachedProjectTransform.d.mts +12 -3
  21. package/lib/core/transform/cache/TtscCachedProjectTransform.d.ts +12 -3
  22. package/lib/core/transform/cache/selectCachedGenerationAction.d.cts +2 -0
  23. package/lib/core/transform/cache/selectCachedGenerationAction.d.mts +2 -0
  24. package/lib/core/transform/cache/selectCachedGenerationAction.d.ts +2 -0
  25. package/lib/core/transform/cache/selectCachedGenerationAction.js +1 -1
  26. package/lib/core/transform/cache/selectCachedGenerationAction.js.map +1 -1
  27. package/lib/core/transform/cache/selectCachedGenerationAction.mjs +1 -1
  28. package/lib/core/transform/cache/selectCachedGenerationAction.mjs.map +1 -1
  29. package/lib/core/transform/deliverCachedTransform.d.cts +36 -0
  30. package/lib/core/transform/deliverCachedTransform.d.mts +36 -0
  31. package/lib/core/transform/deliverCachedTransform.d.ts +36 -0
  32. package/lib/core/transform/deliverCachedTransform.js +73 -0
  33. package/lib/core/transform/deliverCachedTransform.js.map +1 -0
  34. package/lib/core/transform/deliverCachedTransform.mjs +71 -0
  35. package/lib/core/transform/deliverCachedTransform.mjs.map +1 -0
  36. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.d.cts +2 -2
  37. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.d.mts +2 -2
  38. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.d.ts +2 -2
  39. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.js +6 -2
  40. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.js.map +1 -1
  41. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.mjs +6 -2
  42. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.mjs.map +1 -1
  43. package/lib/core/transform/envelope/selectExternalInputPaths.d.cts +3 -5
  44. package/lib/core/transform/envelope/selectExternalInputPaths.d.mts +3 -5
  45. package/lib/core/transform/envelope/selectExternalInputPaths.d.ts +3 -5
  46. package/lib/core/transform/envelope/selectExternalInputPaths.js +8 -7
  47. package/lib/core/transform/envelope/selectExternalInputPaths.js.map +1 -1
  48. package/lib/core/transform/envelope/selectExternalInputPaths.mjs +8 -7
  49. package/lib/core/transform/envelope/selectExternalInputPaths.mjs.map +1 -1
  50. package/lib/core/transform/filesystem/TtscTransformFilesystemOperations.d.cts +15 -12
  51. package/lib/core/transform/filesystem/TtscTransformFilesystemOperations.d.mts +15 -12
  52. package/lib/core/transform/filesystem/TtscTransformFilesystemOperations.d.ts +15 -12
  53. package/lib/core/transform/generation/selectTransformAttemptDisposition.d.cts +3 -1
  54. package/lib/core/transform/generation/selectTransformAttemptDisposition.d.mts +3 -1
  55. package/lib/core/transform/generation/selectTransformAttemptDisposition.d.ts +3 -1
  56. package/lib/core/transform/generation/selectTransformAttemptDisposition.js +3 -1
  57. package/lib/core/transform/generation/selectTransformAttemptDisposition.js.map +1 -1
  58. package/lib/core/transform/generation/selectTransformAttemptDisposition.mjs +3 -1
  59. package/lib/core/transform/generation/selectTransformAttemptDisposition.mjs.map +1 -1
  60. package/lib/core/transform/generation/transformProject.d.cts +9 -7
  61. package/lib/core/transform/generation/transformProject.d.mts +9 -7
  62. package/lib/core/transform/generation/transformProject.d.ts +9 -7
  63. package/lib/core/transform/generation/transformProject.js +14 -9
  64. package/lib/core/transform/generation/transformProject.js.map +1 -1
  65. package/lib/core/transform/generation/transformProject.mjs +14 -9
  66. package/lib/core/transform/generation/transformProject.mjs.map +1 -1
  67. package/lib/core/transform/inputs/preparePluginBuildEnvironments.d.cts +11 -4
  68. package/lib/core/transform/inputs/preparePluginBuildEnvironments.d.mts +11 -4
  69. package/lib/core/transform/inputs/preparePluginBuildEnvironments.d.ts +11 -4
  70. package/lib/core/transform/inputs/preparePluginBuildEnvironments.js +44 -7
  71. package/lib/core/transform/inputs/preparePluginBuildEnvironments.js.map +1 -1
  72. package/lib/core/transform/inputs/preparePluginBuildEnvironments.mjs +44 -7
  73. package/lib/core/transform/inputs/preparePluginBuildEnvironments.mjs.map +1 -1
  74. package/lib/core/transform/tracker/broker/WatchBroker.d.cts +14 -4
  75. package/lib/core/transform/tracker/broker/WatchBroker.d.mts +14 -4
  76. package/lib/core/transform/tracker/broker/WatchBroker.d.ts +14 -4
  77. package/lib/core/transform/tracker/broker/WatchBrokerTransport.d.cts +63 -0
  78. package/lib/core/transform/tracker/broker/WatchBrokerTransport.d.mts +63 -0
  79. package/lib/core/transform/tracker/broker/WatchBrokerTransport.d.ts +63 -0
  80. package/lib/core/transform/tracker/broker/WatchBrokerTransport.js +89 -0
  81. package/lib/core/transform/tracker/broker/WatchBrokerTransport.js.map +1 -0
  82. package/lib/core/transform/tracker/broker/WatchBrokerTransport.mjs +89 -0
  83. package/lib/core/transform/tracker/broker/WatchBrokerTransport.mjs.map +1 -0
  84. package/lib/core/transform/tracker/broker/drainWatchBroker.d.cts +8 -8
  85. package/lib/core/transform/tracker/broker/drainWatchBroker.d.mts +8 -8
  86. package/lib/core/transform/tracker/broker/drainWatchBroker.d.ts +8 -8
  87. package/lib/core/transform/tracker/broker/drainWatchBroker.js +12 -13
  88. package/lib/core/transform/tracker/broker/drainWatchBroker.js.map +1 -1
  89. package/lib/core/transform/tracker/broker/drainWatchBroker.mjs +12 -13
  90. package/lib/core/transform/tracker/broker/drainWatchBroker.mjs.map +1 -1
  91. package/lib/core/transform/tracker/broker/getWatchBroker.d.cts +18 -15
  92. package/lib/core/transform/tracker/broker/getWatchBroker.d.mts +18 -15
  93. package/lib/core/transform/tracker/broker/getWatchBroker.d.ts +18 -15
  94. package/lib/core/transform/tracker/broker/getWatchBroker.js +87 -17
  95. package/lib/core/transform/tracker/broker/getWatchBroker.js.map +1 -1
  96. package/lib/core/transform/tracker/broker/getWatchBroker.mjs +87 -17
  97. package/lib/core/transform/tracker/broker/getWatchBroker.mjs.map +1 -1
  98. package/lib/core/transform/tracker/broker/openBrokeredWatch.d.cts +5 -5
  99. package/lib/core/transform/tracker/broker/openBrokeredWatch.d.mts +5 -5
  100. package/lib/core/transform/tracker/broker/openBrokeredWatch.d.ts +5 -5
  101. package/lib/core/transform/tracker/broker/openBrokeredWatch.js +11 -14
  102. package/lib/core/transform/tracker/broker/openBrokeredWatch.js.map +1 -1
  103. package/lib/core/transform/tracker/broker/openBrokeredWatch.mjs +11 -14
  104. package/lib/core/transform/tracker/broker/openBrokeredWatch.mjs.map +1 -1
  105. package/lib/core/transform/tracker/broker/usesWatchBroker.d.cts +7 -7
  106. package/lib/core/transform/tracker/broker/usesWatchBroker.d.mts +7 -7
  107. package/lib/core/transform/tracker/broker/usesWatchBroker.d.ts +7 -7
  108. package/lib/core/transform/tracker/broker/usesWatchBroker.js +7 -7
  109. package/lib/core/transform/tracker/broker/usesWatchBroker.mjs +7 -7
  110. package/lib/core/transform/tracker/broker/watchBrokerSource.d.cts +9 -10
  111. package/lib/core/transform/tracker/broker/watchBrokerSource.d.mts +9 -10
  112. package/lib/core/transform/tracker/broker/watchBrokerSource.d.ts +9 -10
  113. package/lib/core/transform/tracker/broker/watchBrokerSource.js +10 -11
  114. package/lib/core/transform/tracker/broker/watchBrokerSource.js.map +1 -1
  115. package/lib/core/transform/tracker/broker/watchBrokerSource.mjs +10 -11
  116. package/lib/core/transform/tracker/broker/watchBrokerSource.mjs.map +1 -1
  117. package/lib/core/transform/transformTtsc.d.cts +7 -4
  118. package/lib/core/transform/transformTtsc.d.mts +7 -4
  119. package/lib/core/transform/transformTtsc.d.ts +7 -4
  120. package/lib/core/transform/transformTtsc.js +37 -92
  121. package/lib/core/transform/transformTtsc.js.map +1 -1
  122. package/lib/core/transform/transformTtsc.mjs +37 -92
  123. package/lib/core/transform/transformTtsc.mjs.map +1 -1
  124. package/lib/core/transform/validation/TtscGenerationProof.d.cts +105 -0
  125. package/lib/core/transform/validation/TtscGenerationProof.d.mts +105 -0
  126. package/lib/core/transform/validation/TtscGenerationProof.d.ts +105 -0
  127. package/lib/core/transform/validation/TtscGenerationProof.js +149 -0
  128. package/lib/core/transform/validation/TtscGenerationProof.js.map +1 -0
  129. package/lib/core/transform/validation/TtscGenerationProof.mjs +149 -0
  130. package/lib/core/transform/validation/TtscGenerationProof.mjs.map +1 -0
  131. package/lib/core/transform/validation/matchesCachedSource.d.cts +18 -15
  132. package/lib/core/transform/validation/matchesCachedSource.d.mts +18 -15
  133. package/lib/core/transform/validation/matchesCachedSource.d.ts +18 -15
  134. package/lib/core/transform/validation/matchesCachedSource.js +28 -22
  135. package/lib/core/transform/validation/matchesCachedSource.js.map +1 -1
  136. package/lib/core/transform/validation/matchesCachedSource.mjs +28 -22
  137. package/lib/core/transform/validation/matchesCachedSource.mjs.map +1 -1
  138. package/lib/core/transform/validation/matchesCompleteInputSnapshot.d.cts +3 -2
  139. package/lib/core/transform/validation/matchesCompleteInputSnapshot.d.mts +3 -2
  140. package/lib/core/transform/validation/matchesCompleteInputSnapshot.d.ts +3 -2
  141. package/lib/core/transform/validation/matchesCompleteInputSnapshot.js +4 -4
  142. package/lib/core/transform/validation/matchesCompleteInputSnapshot.js.map +1 -1
  143. package/lib/core/transform/validation/matchesCompleteInputSnapshot.mjs +4 -4
  144. package/lib/core/transform/validation/matchesCompleteInputSnapshot.mjs.map +1 -1
  145. package/lib/core/transform/validation/matchesNarrowPersistentInputs.d.cts +2 -1
  146. package/lib/core/transform/validation/matchesNarrowPersistentInputs.d.mts +2 -1
  147. package/lib/core/transform/validation/matchesNarrowPersistentInputs.d.ts +2 -1
  148. package/lib/core/transform/validation/matchesNarrowPersistentInputs.js +2 -2
  149. package/lib/core/transform/validation/matchesNarrowPersistentInputs.js.map +1 -1
  150. package/lib/core/transform/validation/matchesNarrowPersistentInputs.mjs +2 -2
  151. package/lib/core/transform/validation/matchesNarrowPersistentInputs.mjs.map +1 -1
  152. package/lib/core/transform/validation/matchesUniversalHostInputTrees.d.cts +3 -2
  153. package/lib/core/transform/validation/matchesUniversalHostInputTrees.d.mts +3 -2
  154. package/lib/core/transform/validation/matchesUniversalHostInputTrees.d.ts +3 -2
  155. package/lib/core/transform/validation/matchesUniversalHostInputTrees.js +5 -3
  156. package/lib/core/transform/validation/matchesUniversalHostInputTrees.js.map +1 -1
  157. package/lib/core/transform/validation/matchesUniversalHostInputTrees.mjs +5 -3
  158. package/lib/core/transform/validation/matchesUniversalHostInputTrees.mjs.map +1 -1
  159. package/lib/core/transform/validation/matchesUniversalHostInputs.d.cts +3 -2
  160. package/lib/core/transform/validation/matchesUniversalHostInputs.d.mts +3 -2
  161. package/lib/core/transform/validation/matchesUniversalHostInputs.d.ts +3 -2
  162. package/lib/core/transform/validation/matchesUniversalHostInputs.js +5 -5
  163. package/lib/core/transform/validation/matchesUniversalHostInputs.js.map +1 -1
  164. package/lib/core/transform/validation/matchesUniversalHostInputs.mjs +5 -5
  165. package/lib/core/transform/validation/matchesUniversalHostInputs.mjs.map +1 -1
  166. package/lib/core/transform/validation/nativeInputPredicatesHold.d.cts +5 -4
  167. package/lib/core/transform/validation/nativeInputPredicatesHold.d.mts +5 -4
  168. package/lib/core/transform/validation/nativeInputPredicatesHold.d.ts +5 -4
  169. package/lib/core/transform/validation/nativeInputPredicatesHold.js +31 -12
  170. package/lib/core/transform/validation/nativeInputPredicatesHold.js.map +1 -1
  171. package/lib/core/transform/validation/nativeInputPredicatesHold.mjs +31 -12
  172. package/lib/core/transform/validation/nativeInputPredicatesHold.mjs.map +1 -1
  173. package/lib/core/transform/validation/notificationsProveProgramUnchanged.d.cts +2 -1
  174. package/lib/core/transform/validation/notificationsProveProgramUnchanged.d.mts +2 -1
  175. package/lib/core/transform/validation/notificationsProveProgramUnchanged.d.ts +2 -1
  176. package/lib/core/transform/validation/notificationsProveProgramUnchanged.js +2 -2
  177. package/lib/core/transform/validation/notificationsProveProgramUnchanged.js.map +1 -1
  178. package/lib/core/transform/validation/notificationsProveProgramUnchanged.mjs +2 -2
  179. package/lib/core/transform/validation/notificationsProveProgramUnchanged.mjs.map +1 -1
  180. package/lib/core/transform/watch/notifyWatchInputs.js +3 -0
  181. package/lib/core/transform/watch/notifyWatchInputs.js.map +1 -1
  182. package/lib/core/transform/watch/notifyWatchInputs.mjs +3 -0
  183. package/lib/core/transform/watch/notifyWatchInputs.mjs.map +1 -1
  184. package/lib/core/turbopack/turbopack.js +2 -1
  185. package/lib/core/turbopack/turbopack.js.map +1 -1
  186. package/lib/core/turbopack/turbopack.mjs +2 -1
  187. package/lib/core/turbopack/turbopack.mjs.map +1 -1
  188. package/package.json +3 -3
  189. package/src/core/bun/bun.ts +8 -4
  190. package/src/core/observer/createInputObserver.ts +6 -5
  191. package/src/core/observer/openIsolatedRecursiveWatch.ts +11 -12
  192. package/src/core/transform/cache/TtscCachedProjectTransform.ts +13 -3
  193. package/src/core/transform/cache/selectCachedGenerationAction.ts +9 -1
  194. package/src/core/transform/deliverCachedTransform.ts +97 -0
  195. package/src/core/transform/envelope/selectDeclaredProjectInputKeys.ts +5 -2
  196. package/src/core/transform/envelope/selectExternalInputPaths.ts +7 -7
  197. package/src/core/transform/filesystem/TtscTransformFilesystemOperations.ts +15 -12
  198. package/src/core/transform/generation/selectTransformAttemptDisposition.ts +3 -1
  199. package/src/core/transform/generation/transformProject.ts +13 -9
  200. package/src/core/transform/inputs/preparePluginBuildEnvironments.ts +41 -7
  201. package/src/core/transform/tracker/broker/WatchBroker.ts +15 -4
  202. package/src/core/transform/tracker/broker/WatchBrokerTransport.ts +82 -0
  203. package/src/core/transform/tracker/broker/drainWatchBroker.ts +12 -13
  204. package/src/core/transform/tracker/broker/getWatchBroker.ts +89 -18
  205. package/src/core/transform/tracker/broker/openBrokeredWatch.ts +11 -14
  206. package/src/core/transform/tracker/broker/usesWatchBroker.ts +7 -7
  207. package/src/core/transform/tracker/broker/watchBrokerSource.ts +10 -11
  208. package/src/core/transform/transformTtsc.ts +36 -92
  209. package/src/core/transform/validation/TtscGenerationProof.ts +201 -0
  210. package/src/core/transform/validation/matchesCachedSource.ts +27 -21
  211. package/src/core/transform/validation/matchesCompleteInputSnapshot.ts +5 -3
  212. package/src/core/transform/validation/matchesNarrowPersistentInputs.ts +3 -1
  213. package/src/core/transform/validation/matchesUniversalHostInputTrees.ts +6 -2
  214. package/src/core/transform/validation/matchesUniversalHostInputs.ts +6 -4
  215. package/src/core/transform/validation/nativeInputPredicatesHold.ts +36 -14
  216. package/src/core/transform/validation/notificationsProveProgramUnchanged.ts +3 -1
  217. package/src/core/transform/watch/notifyWatchInputs.ts +3 -0
  218. package/src/core/turbopack/turbopack.ts +2 -1
@@ -5,11 +5,11 @@ import type { WatchBrokerSink } from "./WatchBrokerSink.cjs";
5
5
  * Open directory watches in the isolated watch process for one sink, and report
6
6
  * when they hear.
7
7
  *
8
- * On Windows, Node's fs-event backend can assert in native code when a watched
9
- * temporary tree is deleted. Isolation turns that unrecoverable process abort
10
- * into an ordinary broker exit and a conservative fallback in the host. On
11
- * macOS, each registration's watches are streams of their own, started before
12
- * the child reports ready, and a dropped event reaches the sink as a gap
8
+ * On Windows, ttsc's native helper owns completion-port directory subscriptions
9
+ * and omits access-only notifications (#1719). Native loss and failure withdraw
10
+ * coverage; actual change events remain authoritative even after A-B-A writes.
11
+ * On macOS, each registration's watches are streams of their own, started
12
+ * before the child reports ready, and a dropped event reaches the sink as a gap
13
13
  * (samchon/ttsc#1425). A stream that can be probed reports ready only once its
14
14
  * opening probe came back through it; the child suppresses ordinary callbacks
15
15
  * received before that probe. This is its backend protocol, not a guarantee
@@ -5,11 +5,11 @@ import type { WatchBrokerSink } from "./WatchBrokerSink.mjs";
5
5
  * Open directory watches in the isolated watch process for one sink, and report
6
6
  * when they hear.
7
7
  *
8
- * On Windows, Node's fs-event backend can assert in native code when a watched
9
- * temporary tree is deleted. Isolation turns that unrecoverable process abort
10
- * into an ordinary broker exit and a conservative fallback in the host. On
11
- * macOS, each registration's watches are streams of their own, started before
12
- * the child reports ready, and a dropped event reaches the sink as a gap
8
+ * On Windows, ttsc's native helper owns completion-port directory subscriptions
9
+ * and omits access-only notifications (#1719). Native loss and failure withdraw
10
+ * coverage; actual change events remain authoritative even after A-B-A writes.
11
+ * On macOS, each registration's watches are streams of their own, started
12
+ * before the child reports ready, and a dropped event reaches the sink as a gap
13
13
  * (samchon/ttsc#1425). A stream that can be probed reports ready only once its
14
14
  * opening probe came back through it; the child suppresses ordinary callbacks
15
15
  * received before that probe. This is its backend protocol, not a guarantee
@@ -5,11 +5,11 @@ import type { WatchBrokerSink } from "./WatchBrokerSink";
5
5
  * Open directory watches in the isolated watch process for one sink, and report
6
6
  * when they hear.
7
7
  *
8
- * On Windows, Node's fs-event backend can assert in native code when a watched
9
- * temporary tree is deleted. Isolation turns that unrecoverable process abort
10
- * into an ordinary broker exit and a conservative fallback in the host. On
11
- * macOS, each registration's watches are streams of their own, started before
12
- * the child reports ready, and a dropped event reaches the sink as a gap
8
+ * On Windows, ttsc's native helper owns completion-port directory subscriptions
9
+ * and omits access-only notifications (#1719). Native loss and failure withdraw
10
+ * coverage; actual change events remain authoritative even after A-B-A writes.
11
+ * On macOS, each registration's watches are streams of their own, started
12
+ * before the child reports ready, and a dropped event reaches the sink as a gap
13
13
  * (samchon/ttsc#1425). A stream that can be probed reports ready only once its
14
14
  * opening probe came back through it; the child suppresses ordinary callbacks
15
15
  * received before that probe. This is its backend protocol, not a guarantee
@@ -5,6 +5,7 @@ var path = require('node:path');
5
5
  var WATCH_BROKER = require('./WATCH_BROKER.js');
6
6
  var WATCH_PROBE_DIRECTORY_PREFIX = require('./WATCH_PROBE_DIRECTORY_PREFIX.js');
7
7
  var WATCH_PROBE_TIMEOUT_MS = require('./WATCH_PROBE_TIMEOUT_MS.js');
8
+ var WatchBrokerTransport = require('./WatchBrokerTransport.js');
8
9
  var drainWatchBroker = require('./drainWatchBroker.js');
9
10
  var getWatchBroker = require('./getWatchBroker.js');
10
11
  var probeForLocation = require('./probeForLocation.js');
@@ -14,11 +15,11 @@ var sweepAbandonedWatchProbes = require('./sweepAbandonedWatchProbes.js');
14
15
  * Open directory watches in the isolated watch process for one sink, and report
15
16
  * when they hear.
16
17
  *
17
- * On Windows, Node's fs-event backend can assert in native code when a watched
18
- * temporary tree is deleted. Isolation turns that unrecoverable process abort
19
- * into an ordinary broker exit and a conservative fallback in the host. On
20
- * macOS, each registration's watches are streams of their own, started before
21
- * the child reports ready, and a dropped event reaches the sink as a gap
18
+ * On Windows, ttsc's native helper owns completion-port directory subscriptions
19
+ * and omits access-only notifications (#1719). Native loss and failure withdraw
20
+ * coverage; actual change events remain authoritative even after A-B-A writes.
21
+ * On macOS, each registration's watches are streams of their own, started
22
+ * before the child reports ready, and a dropped event reaches the sink as a gap
22
23
  * (samchon/ttsc#1425). A stream that can be probed reports ready only once its
23
24
  * opening probe came back through it; the child suppresses ordinary callbacks
24
25
  * received before that probe. This is its backend protocol, not a guarantee
@@ -125,10 +126,7 @@ function openBrokeredWatch(locations, options) {
125
126
  };
126
127
  });
127
128
  broker.pendingRegistrations += 1;
128
- broker.child.ref();
129
- // Bun's IPC channel omits Node's Control.ref/unref methods. The child itself
130
- // still owns the outstanding acknowledgement on that runtime.
131
- broker.child.channel?.ref?.();
129
+ WatchBrokerTransport.WatchBrokerTransport.reference(broker, true);
132
130
  const id = broker.nextId++;
133
131
  let resolveReady;
134
132
  const answered = new Promise((resolve) => {
@@ -149,7 +147,7 @@ function openBrokeredWatch(locations, options) {
149
147
  let failed = false;
150
148
  let failure;
151
149
  try {
152
- broker.child.send?.({ id, op: "remove" });
150
+ WatchBrokerTransport.WatchBrokerTransport.send(broker, { id, op: "remove" });
153
151
  }
154
152
  catch (error) {
155
153
  failed = true;
@@ -160,7 +158,7 @@ function openBrokeredWatch(locations, options) {
160
158
  WATCH_BROKER.WATCH_BROKER.current = undefined;
161
159
  }
162
160
  try {
163
- broker.child.disconnect?.();
161
+ WatchBrokerTransport.WatchBrokerTransport.close(broker);
164
162
  }
165
163
  catch (error) {
166
164
  if (!failed) {
@@ -181,7 +179,7 @@ function openBrokeredWatch(locations, options) {
181
179
  if (failed)
182
180
  throw failure;
183
181
  };
184
- broker.child.send?.({
182
+ WatchBrokerTransport.WatchBrokerTransport.send(broker, {
185
183
  allEvents: options.allEvents,
186
184
  locations: normalized,
187
185
  id,
@@ -214,8 +212,7 @@ function openBrokeredWatch(locations, options) {
214
212
  // a reply over an unreferenced channel lets the loop empty and the process
215
213
  // exit mid-build.
216
214
  if (broker.pendingRegistrations === 0 && broker.pendingDrains === 0) {
217
- broker.child.unref();
218
- broker.child.channel?.unref?.();
215
+ WatchBrokerTransport.WatchBrokerTransport.reference(broker, false);
219
216
  }
220
217
  });
221
218
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"openBrokeredWatch.js","sources":["../../../../../src/core/transform/tracker/broker/openBrokeredWatch.ts"],"sourcesContent":[null],"names":["getWatchBroker","probeForLocation","WATCH_BROKER","WATCH_PROBE_TIMEOUT_MS","drainWatchBroker","sweepAbandonedWatchProbes","WATCH_PROBE_DIRECTORY_PREFIX"],"mappings":"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"}
1
+ {"version":3,"file":"openBrokeredWatch.js","sources":["../../../../../src/core/transform/tracker/broker/openBrokeredWatch.ts"],"sourcesContent":[null],"names":["getWatchBroker","probeForLocation","WatchBrokerTransport","WATCH_BROKER","WATCH_PROBE_TIMEOUT_MS","drainWatchBroker","sweepAbandonedWatchProbes","WATCH_PROBE_DIRECTORY_PREFIX"],"mappings":"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"}
@@ -3,6 +3,7 @@ import path from 'node:path';
3
3
  import { WATCH_BROKER } from './WATCH_BROKER.mjs';
4
4
  import { WATCH_PROBE_DIRECTORY_PREFIX } from './WATCH_PROBE_DIRECTORY_PREFIX.mjs';
5
5
  import { WATCH_PROBE_TIMEOUT_MS } from './WATCH_PROBE_TIMEOUT_MS.mjs';
6
+ import { WatchBrokerTransport } from './WatchBrokerTransport.mjs';
6
7
  import { drainWatchBroker } from './drainWatchBroker.mjs';
7
8
  import { getWatchBroker } from './getWatchBroker.mjs';
8
9
  import { probeForLocation } from './probeForLocation.mjs';
@@ -12,11 +13,11 @@ import { sweepAbandonedWatchProbes } from './sweepAbandonedWatchProbes.mjs';
12
13
  * Open directory watches in the isolated watch process for one sink, and report
13
14
  * when they hear.
14
15
  *
15
- * On Windows, Node's fs-event backend can assert in native code when a watched
16
- * temporary tree is deleted. Isolation turns that unrecoverable process abort
17
- * into an ordinary broker exit and a conservative fallback in the host. On
18
- * macOS, each registration's watches are streams of their own, started before
19
- * the child reports ready, and a dropped event reaches the sink as a gap
16
+ * On Windows, ttsc's native helper owns completion-port directory subscriptions
17
+ * and omits access-only notifications (#1719). Native loss and failure withdraw
18
+ * coverage; actual change events remain authoritative even after A-B-A writes.
19
+ * On macOS, each registration's watches are streams of their own, started
20
+ * before the child reports ready, and a dropped event reaches the sink as a gap
20
21
  * (samchon/ttsc#1425). A stream that can be probed reports ready only once its
21
22
  * opening probe came back through it; the child suppresses ordinary callbacks
22
23
  * received before that probe. This is its backend protocol, not a guarantee
@@ -123,10 +124,7 @@ function openBrokeredWatch(locations, options) {
123
124
  };
124
125
  });
125
126
  broker.pendingRegistrations += 1;
126
- broker.child.ref();
127
- // Bun's IPC channel omits Node's Control.ref/unref methods. The child itself
128
- // still owns the outstanding acknowledgement on that runtime.
129
- broker.child.channel?.ref?.();
127
+ WatchBrokerTransport.reference(broker, true);
130
128
  const id = broker.nextId++;
131
129
  let resolveReady;
132
130
  const answered = new Promise((resolve) => {
@@ -147,7 +145,7 @@ function openBrokeredWatch(locations, options) {
147
145
  let failed = false;
148
146
  let failure;
149
147
  try {
150
- broker.child.send?.({ id, op: "remove" });
148
+ WatchBrokerTransport.send(broker, { id, op: "remove" });
151
149
  }
152
150
  catch (error) {
153
151
  failed = true;
@@ -158,7 +156,7 @@ function openBrokeredWatch(locations, options) {
158
156
  WATCH_BROKER.current = undefined;
159
157
  }
160
158
  try {
161
- broker.child.disconnect?.();
159
+ WatchBrokerTransport.close(broker);
162
160
  }
163
161
  catch (error) {
164
162
  if (!failed) {
@@ -179,7 +177,7 @@ function openBrokeredWatch(locations, options) {
179
177
  if (failed)
180
178
  throw failure;
181
179
  };
182
- broker.child.send?.({
180
+ WatchBrokerTransport.send(broker, {
183
181
  allEvents: options.allEvents,
184
182
  locations: normalized,
185
183
  id,
@@ -212,8 +210,7 @@ function openBrokeredWatch(locations, options) {
212
210
  // a reply over an unreferenced channel lets the loop empty and the process
213
211
  // exit mid-build.
214
212
  if (broker.pendingRegistrations === 0 && broker.pendingDrains === 0) {
215
- broker.child.unref();
216
- broker.child.channel?.unref?.();
213
+ WatchBrokerTransport.reference(broker, false);
217
214
  }
218
215
  });
219
216
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"openBrokeredWatch.mjs","sources":["../../../../../src/core/transform/tracker/broker/openBrokeredWatch.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openBrokeredWatch.mjs","sources":["../../../../../src/core/transform/tracker/broker/openBrokeredWatch.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -3,13 +3,13 @@ import type { TtscTransformFilesystemOperations } from "../../filesystem/TtscTra
3
3
  * Whether a tracker over `filesystem` opens its watches in the isolated watch
4
4
  * broker rather than in this process.
5
5
  *
6
- * The host filesystem on Windows and macOS does: Windows so that a native
7
- * fs-event abort cannot take the host down, and macOS so that each watch is its
8
- * own FSEventStream, whose dropped events are reported, rather than one libuv
9
- * re-creates whenever any watch in the host opens or closes, and whose drops it
10
- * discards (samchon/ttsc#1418, samchon/ttsc#1425). An embedder that supplies
11
- * its own `watch` retains that capability, including for a host-filesystem
12
- * view.
6
+ * The host filesystem on Windows and macOS does: Windows so that native
7
+ * mutation filters exclude access-time noise without a Node fs-event handle,
8
+ * and macOS so that each watch is its own FSEventStream, whose dropped events
9
+ * are reported, rather than one libuv re-creates whenever any watch in the host
10
+ * opens or closes, and whose drops it discards (samchon/ttsc#1418,
11
+ * samchon/ttsc#1425). An embedder that supplies its own `watch` retains that
12
+ * capability, including for a host-filesystem view.
13
13
  *
14
14
  * @evidence contracts/common.md#principled-implementation
15
15
  * A supplied filesystem watcher is authoritative; only the native host
@@ -3,13 +3,13 @@ import type { TtscTransformFilesystemOperations } from "../../filesystem/TtscTra
3
3
  * Whether a tracker over `filesystem` opens its watches in the isolated watch
4
4
  * broker rather than in this process.
5
5
  *
6
- * The host filesystem on Windows and macOS does: Windows so that a native
7
- * fs-event abort cannot take the host down, and macOS so that each watch is its
8
- * own FSEventStream, whose dropped events are reported, rather than one libuv
9
- * re-creates whenever any watch in the host opens or closes, and whose drops it
10
- * discards (samchon/ttsc#1418, samchon/ttsc#1425). An embedder that supplies
11
- * its own `watch` retains that capability, including for a host-filesystem
12
- * view.
6
+ * The host filesystem on Windows and macOS does: Windows so that native
7
+ * mutation filters exclude access-time noise without a Node fs-event handle,
8
+ * and macOS so that each watch is its own FSEventStream, whose dropped events
9
+ * are reported, rather than one libuv re-creates whenever any watch in the host
10
+ * opens or closes, and whose drops it discards (samchon/ttsc#1418,
11
+ * samchon/ttsc#1425). An embedder that supplies its own `watch` retains that
12
+ * capability, including for a host-filesystem view.
13
13
  *
14
14
  * @evidence contracts/common.md#principled-implementation
15
15
  * A supplied filesystem watcher is authoritative; only the native host
@@ -3,13 +3,13 @@ import type { TtscTransformFilesystemOperations } from "../../filesystem/TtscTra
3
3
  * Whether a tracker over `filesystem` opens its watches in the isolated watch
4
4
  * broker rather than in this process.
5
5
  *
6
- * The host filesystem on Windows and macOS does: Windows so that a native
7
- * fs-event abort cannot take the host down, and macOS so that each watch is its
8
- * own FSEventStream, whose dropped events are reported, rather than one libuv
9
- * re-creates whenever any watch in the host opens or closes, and whose drops it
10
- * discards (samchon/ttsc#1418, samchon/ttsc#1425). An embedder that supplies
11
- * its own `watch` retains that capability, including for a host-filesystem
12
- * view.
6
+ * The host filesystem on Windows and macOS does: Windows so that native
7
+ * mutation filters exclude access-time noise without a Node fs-event handle,
8
+ * and macOS so that each watch is its own FSEventStream, whose dropped events
9
+ * are reported, rather than one libuv re-creates whenever any watch in the host
10
+ * opens or closes, and whose drops it discards (samchon/ttsc#1418,
11
+ * samchon/ttsc#1425). An embedder that supplies its own `watch` retains that
12
+ * capability, including for a host-filesystem view.
13
13
  *
14
14
  * @evidence contracts/common.md#principled-implementation
15
15
  * A supplied filesystem watcher is authoritative; only the native host
@@ -4,13 +4,13 @@
4
4
  * Whether a tracker over `filesystem` opens its watches in the isolated watch
5
5
  * broker rather than in this process.
6
6
  *
7
- * The host filesystem on Windows and macOS does: Windows so that a native
8
- * fs-event abort cannot take the host down, and macOS so that each watch is its
9
- * own FSEventStream, whose dropped events are reported, rather than one libuv
10
- * re-creates whenever any watch in the host opens or closes, and whose drops it
11
- * discards (samchon/ttsc#1418, samchon/ttsc#1425). An embedder that supplies
12
- * its own `watch` retains that capability, including for a host-filesystem
13
- * view.
7
+ * The host filesystem on Windows and macOS does: Windows so that native
8
+ * mutation filters exclude access-time noise without a Node fs-event handle,
9
+ * and macOS so that each watch is its own FSEventStream, whose dropped events
10
+ * are reported, rather than one libuv re-creates whenever any watch in the host
11
+ * opens or closes, and whose drops it discards (samchon/ttsc#1418,
12
+ * samchon/ttsc#1425). An embedder that supplies its own `watch` retains that
13
+ * capability, including for a host-filesystem view.
14
14
  *
15
15
  * @evidence contracts/common.md#principled-implementation
16
16
  * A supplied filesystem watcher is authoritative; only the native host
@@ -2,13 +2,13 @@
2
2
  * Whether a tracker over `filesystem` opens its watches in the isolated watch
3
3
  * broker rather than in this process.
4
4
  *
5
- * The host filesystem on Windows and macOS does: Windows so that a native
6
- * fs-event abort cannot take the host down, and macOS so that each watch is its
7
- * own FSEventStream, whose dropped events are reported, rather than one libuv
8
- * re-creates whenever any watch in the host opens or closes, and whose drops it
9
- * discards (samchon/ttsc#1418, samchon/ttsc#1425). An embedder that supplies
10
- * its own `watch` retains that capability, including for a host-filesystem
11
- * view.
5
+ * The host filesystem on Windows and macOS does: Windows so that native
6
+ * mutation filters exclude access-time noise without a Node fs-event handle,
7
+ * and macOS so that each watch is its own FSEventStream, whose dropped events
8
+ * are reported, rather than one libuv re-creates whenever any watch in the host
9
+ * opens or closes, and whose drops it discards (samchon/ttsc#1418,
10
+ * samchon/ttsc#1425). An embedder that supplies its own `watch` retains that
11
+ * capability, including for a host-filesystem view.
12
12
  *
13
13
  * @evidence contracts/common.md#principled-implementation
14
14
  * A supplied filesystem watcher is authoritative; only the native host
@@ -6,13 +6,10 @@
6
6
  * frontier described below; a reply alone does not certify every scope, since
7
7
  * probe-dependent streams can be named unproven and gaps withdraw authority.
8
8
  *
9
- * On Windows the watches are `fs.watch`. A drain yields through two immediate
10
- * turns to allow the loop to poll and deliver queued callbacks before replying.
11
- * The real Windows scenario checks two hundred synchronous write/drain pairs;
12
- * the scripted unit checks this scheduling boundary separately. These checks
13
- * are not a universal kernel-order proof: FIFO completion-port queueing alone
14
- * does not guarantee dequeue order or establish when notification completion
15
- * becomes observable relative to a write and IPC request.
9
+ * Windows production registrations use ttsc's native helper, not this program
10
+ * (#1719). The optional fs.watch backend remains an explicit direct program
11
+ * capability used by its scripted protocol tests; it never supplies Windows
12
+ * production cache proof. Its drain yields through two immediate turns.
16
13
  *
17
14
  * On macOS the watches go through the `fsevents` binding, one FSEventStream per
18
15
  * location, instead of relying on `fs.watch` for stream and loss authority
@@ -57,11 +54,13 @@
57
54
  * The child protocol keeps per-registration streams and ordered drains;
58
55
  * macOS proof requires clean probe delivery. Loss flags withdraw coverage
59
56
  * before probe recognition, so matching a probe name cannot erase that warning.
60
- * The Windows two-turn frontier retains its runtime/backend ordering premise;
57
+ * The optional fs.watch two-turn frontier retains its runtime/backend ordering premise;
61
58
  * this source does not independently prove kernel completeness.
62
59
  * @evidence contracts/common.md#clear-and-simple-design
63
- * One maintained child program serves both native backends; this function only
64
- * injects resolved capability and the shared timeout, with JSON-safe path encoding.
60
+ * One maintained child program serves macOS and the explicitly selected
61
+ * fs.watch protocol capability; Windows production uses its native helper.
62
+ * This function injects resolved capability and the shared timeout with
63
+ * JSON-safe path encoding.
65
64
  * @evidence contracts/common.md#prohibited-implementation-shortcuts
66
65
  * Native flags and deadlines express backend contracts, not fixture-specific
67
66
  * repairs. Missing bindings and probes report uncertainty rather than silent success.
@@ -6,13 +6,10 @@
6
6
  * frontier described below; a reply alone does not certify every scope, since
7
7
  * probe-dependent streams can be named unproven and gaps withdraw authority.
8
8
  *
9
- * On Windows the watches are `fs.watch`. A drain yields through two immediate
10
- * turns to allow the loop to poll and deliver queued callbacks before replying.
11
- * The real Windows scenario checks two hundred synchronous write/drain pairs;
12
- * the scripted unit checks this scheduling boundary separately. These checks
13
- * are not a universal kernel-order proof: FIFO completion-port queueing alone
14
- * does not guarantee dequeue order or establish when notification completion
15
- * becomes observable relative to a write and IPC request.
9
+ * Windows production registrations use ttsc's native helper, not this program
10
+ * (#1719). The optional fs.watch backend remains an explicit direct program
11
+ * capability used by its scripted protocol tests; it never supplies Windows
12
+ * production cache proof. Its drain yields through two immediate turns.
16
13
  *
17
14
  * On macOS the watches go through the `fsevents` binding, one FSEventStream per
18
15
  * location, instead of relying on `fs.watch` for stream and loss authority
@@ -57,11 +54,13 @@
57
54
  * The child protocol keeps per-registration streams and ordered drains;
58
55
  * macOS proof requires clean probe delivery. Loss flags withdraw coverage
59
56
  * before probe recognition, so matching a probe name cannot erase that warning.
60
- * The Windows two-turn frontier retains its runtime/backend ordering premise;
57
+ * The optional fs.watch two-turn frontier retains its runtime/backend ordering premise;
61
58
  * this source does not independently prove kernel completeness.
62
59
  * @evidence contracts/common.md#clear-and-simple-design
63
- * One maintained child program serves both native backends; this function only
64
- * injects resolved capability and the shared timeout, with JSON-safe path encoding.
60
+ * One maintained child program serves macOS and the explicitly selected
61
+ * fs.watch protocol capability; Windows production uses its native helper.
62
+ * This function injects resolved capability and the shared timeout with
63
+ * JSON-safe path encoding.
65
64
  * @evidence contracts/common.md#prohibited-implementation-shortcuts
66
65
  * Native flags and deadlines express backend contracts, not fixture-specific
67
66
  * repairs. Missing bindings and probes report uncertainty rather than silent success.
@@ -6,13 +6,10 @@
6
6
  * frontier described below; a reply alone does not certify every scope, since
7
7
  * probe-dependent streams can be named unproven and gaps withdraw authority.
8
8
  *
9
- * On Windows the watches are `fs.watch`. A drain yields through two immediate
10
- * turns to allow the loop to poll and deliver queued callbacks before replying.
11
- * The real Windows scenario checks two hundred synchronous write/drain pairs;
12
- * the scripted unit checks this scheduling boundary separately. These checks
13
- * are not a universal kernel-order proof: FIFO completion-port queueing alone
14
- * does not guarantee dequeue order or establish when notification completion
15
- * becomes observable relative to a write and IPC request.
9
+ * Windows production registrations use ttsc's native helper, not this program
10
+ * (#1719). The optional fs.watch backend remains an explicit direct program
11
+ * capability used by its scripted protocol tests; it never supplies Windows
12
+ * production cache proof. Its drain yields through two immediate turns.
16
13
  *
17
14
  * On macOS the watches go through the `fsevents` binding, one FSEventStream per
18
15
  * location, instead of relying on `fs.watch` for stream and loss authority
@@ -57,11 +54,13 @@
57
54
  * The child protocol keeps per-registration streams and ordered drains;
58
55
  * macOS proof requires clean probe delivery. Loss flags withdraw coverage
59
56
  * before probe recognition, so matching a probe name cannot erase that warning.
60
- * The Windows two-turn frontier retains its runtime/backend ordering premise;
57
+ * The optional fs.watch two-turn frontier retains its runtime/backend ordering premise;
61
58
  * this source does not independently prove kernel completeness.
62
59
  * @evidence contracts/common.md#clear-and-simple-design
63
- * One maintained child program serves both native backends; this function only
64
- * injects resolved capability and the shared timeout, with JSON-safe path encoding.
60
+ * One maintained child program serves macOS and the explicitly selected
61
+ * fs.watch protocol capability; Windows production uses its native helper.
62
+ * This function injects resolved capability and the shared timeout with
63
+ * JSON-safe path encoding.
65
64
  * @evidence contracts/common.md#prohibited-implementation-shortcuts
66
65
  * Native flags and deadlines express backend contracts, not fixture-specific
67
66
  * repairs. Missing bindings and probes report uncertainty rather than silent success.
@@ -10,13 +10,10 @@ var WATCH_PROBE_TIMEOUT_MS = require('./WATCH_PROBE_TIMEOUT_MS.js');
10
10
  * frontier described below; a reply alone does not certify every scope, since
11
11
  * probe-dependent streams can be named unproven and gaps withdraw authority.
12
12
  *
13
- * On Windows the watches are `fs.watch`. A drain yields through two immediate
14
- * turns to allow the loop to poll and deliver queued callbacks before replying.
15
- * The real Windows scenario checks two hundred synchronous write/drain pairs;
16
- * the scripted unit checks this scheduling boundary separately. These checks
17
- * are not a universal kernel-order proof: FIFO completion-port queueing alone
18
- * does not guarantee dequeue order or establish when notification completion
19
- * becomes observable relative to a write and IPC request.
13
+ * Windows production registrations use ttsc's native helper, not this program
14
+ * (#1719). The optional fs.watch backend remains an explicit direct program
15
+ * capability used by its scripted protocol tests; it never supplies Windows
16
+ * production cache proof. Its drain yields through two immediate turns.
20
17
  *
21
18
  * On macOS the watches go through the `fsevents` binding, one FSEventStream per
22
19
  * location, instead of relying on `fs.watch` for stream and loss authority
@@ -61,11 +58,13 @@ var WATCH_PROBE_TIMEOUT_MS = require('./WATCH_PROBE_TIMEOUT_MS.js');
61
58
  * The child protocol keeps per-registration streams and ordered drains;
62
59
  * macOS proof requires clean probe delivery. Loss flags withdraw coverage
63
60
  * before probe recognition, so matching a probe name cannot erase that warning.
64
- * The Windows two-turn frontier retains its runtime/backend ordering premise;
61
+ * The optional fs.watch two-turn frontier retains its runtime/backend ordering premise;
65
62
  * this source does not independently prove kernel completeness.
66
63
  * @evidence contracts/common.md#clear-and-simple-design
67
- * One maintained child program serves both native backends; this function only
68
- * injects resolved capability and the shared timeout, with JSON-safe path encoding.
64
+ * One maintained child program serves macOS and the explicitly selected
65
+ * fs.watch protocol capability; Windows production uses its native helper.
66
+ * This function injects resolved capability and the shared timeout with
67
+ * JSON-safe path encoding.
69
68
  * @evidence contracts/common.md#prohibited-implementation-shortcuts
70
69
  * Native flags and deadlines express backend contracts, not fixture-specific
71
70
  * repairs. Missing bindings and probes report uncertainty rather than silent success.
@@ -352,7 +351,7 @@ function drain(requestId) {
352
351
  entry.abandon();
353
352
  }
354
353
  }
355
- // Windows watches, and streams already proven, answer after two turns: the
354
+ // Explicit fs.watch watches, and streams already proven, answer after two turns: the
356
355
  // first lets the loop poll for completions the kernel had already queued,
357
356
  // the second answers after their callbacks.
358
357
  outstanding += 1;
@@ -1 +1 @@
1
- {"version":3,"file":"watchBrokerSource.js","sources":["../../../../../src/core/transform/tracker/broker/watchBrokerSource.ts"],"sourcesContent":[null],"names":["WATCH_PROBE_TIMEOUT_MS"],"mappings":";;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmGG;AACG,SAAU,iBAAiB,CAAC,QAAwB,EAAA;IACxD,OAAO,CAAA,qBAAA,EAAwB,QAAQ,KAAK,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAA6BA,6CAAsB,CAAA,GAAA,EAAM,oBAAoB,CAAA,CAAE;AAC/K;AAEA;;;AAGG;AACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoQtC;;;;"}
1
+ {"version":3,"file":"watchBrokerSource.js","sources":["../../../../../src/core/transform/tracker/broker/watchBrokerSource.ts"],"sourcesContent":[null],"names":["WATCH_PROBE_TIMEOUT_MS"],"mappings":";;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkGG;AACG,SAAU,iBAAiB,CAAC,QAAwB,EAAA;IACxD,OAAO,CAAA,qBAAA,EAAwB,QAAQ,KAAK,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAA6BA,6CAAsB,CAAA,GAAA,EAAM,oBAAoB,CAAA,CAAE;AAC/K;AAEA;;;AAGG;AACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoQtC;;;;"}
@@ -8,13 +8,10 @@ import { WATCH_PROBE_TIMEOUT_MS } from './WATCH_PROBE_TIMEOUT_MS.mjs';
8
8
  * frontier described below; a reply alone does not certify every scope, since
9
9
  * probe-dependent streams can be named unproven and gaps withdraw authority.
10
10
  *
11
- * On Windows the watches are `fs.watch`. A drain yields through two immediate
12
- * turns to allow the loop to poll and deliver queued callbacks before replying.
13
- * The real Windows scenario checks two hundred synchronous write/drain pairs;
14
- * the scripted unit checks this scheduling boundary separately. These checks
15
- * are not a universal kernel-order proof: FIFO completion-port queueing alone
16
- * does not guarantee dequeue order or establish when notification completion
17
- * becomes observable relative to a write and IPC request.
11
+ * Windows production registrations use ttsc's native helper, not this program
12
+ * (#1719). The optional fs.watch backend remains an explicit direct program
13
+ * capability used by its scripted protocol tests; it never supplies Windows
14
+ * production cache proof. Its drain yields through two immediate turns.
18
15
  *
19
16
  * On macOS the watches go through the `fsevents` binding, one FSEventStream per
20
17
  * location, instead of relying on `fs.watch` for stream and loss authority
@@ -59,11 +56,13 @@ import { WATCH_PROBE_TIMEOUT_MS } from './WATCH_PROBE_TIMEOUT_MS.mjs';
59
56
  * The child protocol keeps per-registration streams and ordered drains;
60
57
  * macOS proof requires clean probe delivery. Loss flags withdraw coverage
61
58
  * before probe recognition, so matching a probe name cannot erase that warning.
62
- * The Windows two-turn frontier retains its runtime/backend ordering premise;
59
+ * The optional fs.watch two-turn frontier retains its runtime/backend ordering premise;
63
60
  * this source does not independently prove kernel completeness.
64
61
  * @evidence contracts/common.md#clear-and-simple-design
65
- * One maintained child program serves both native backends; this function only
66
- * injects resolved capability and the shared timeout, with JSON-safe path encoding.
62
+ * One maintained child program serves macOS and the explicitly selected
63
+ * fs.watch protocol capability; Windows production uses its native helper.
64
+ * This function injects resolved capability and the shared timeout with
65
+ * JSON-safe path encoding.
67
66
  * @evidence contracts/common.md#prohibited-implementation-shortcuts
68
67
  * Native flags and deadlines express backend contracts, not fixture-specific
69
68
  * repairs. Missing bindings and probes report uncertainty rather than silent success.
@@ -350,7 +349,7 @@ function drain(requestId) {
350
349
  entry.abandon();
351
350
  }
352
351
  }
353
- // Windows watches, and streams already proven, answer after two turns: the
352
+ // Explicit fs.watch watches, and streams already proven, answer after two turns: the
354
353
  // first lets the loop poll for completions the kernel had already queued,
355
354
  // the second answers after their callbacks.
356
355
  outstanding += 1;
@@ -1 +1 @@
1
- {"version":3,"file":"watchBrokerSource.mjs","sources":["../../../../../src/core/transform/tracker/broker/watchBrokerSource.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmGG;AACG,SAAU,iBAAiB,CAAC,QAAwB,EAAA;IACxD,OAAO,CAAA,qBAAA,EAAwB,QAAQ,KAAK,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAA6B,sBAAsB,CAAA,GAAA,EAAM,oBAAoB,CAAA,CAAE;AAC/K;AAEA;;;AAGG;AACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoQtC;;;;"}
1
+ {"version":3,"file":"watchBrokerSource.mjs","sources":["../../../../../src/core/transform/tracker/broker/watchBrokerSource.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkGG;AACG,SAAU,iBAAiB,CAAC,QAAwB,EAAA;IACxD,OAAO,CAAA,qBAAA,EAAwB,QAAQ,KAAK,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAA6B,sBAAsB,CAAA,GAAA,EAAM,oBAAoB,CAAA,CAAE;AAC/K;AAEA;;;AAGG;AACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoQtC;;;;"}