@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
@@ -29,10 +29,10 @@ var trackerProvesInputUnchanged = require('./trackerProvesInputUnchanged.js');
29
29
  * @evidence contracts/portability.md#os-neutral-implementation Filesystem-aware validators use actual tracker delivery capability and exact lexical coverage rather than platform-wide assumptions.
30
30
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The coordinator borrows generation manifests and trackers without retaining a result or acquiring a handle.
31
31
  * @evidence contracts/performance.md#efficient-algorithms Every admission first replays all generation-owned typed config predicates; this mandatory cost includes native queries, file bytes or directory membership independently of watcher/epoch qualification. The coverage scan stops at the first unproved input. Each coverage query checks overlapping unproven scopes and sampled events with native path comparisons; fallback adds unresolved bytes, native candidate probes and plugin tree enumeration. Mandatory environment qualification pays its owning dependency and environment-key costs on either route.
32
- * @evidence contracts/performance.md#reuse-equivalent-work Typed config predicate replay is not cached by this coordinator and remains mandatory even when the following existing shortcut shares other proof. Shared manifests and qualified silent sources avoid repeated content reads only while the owning tree validator also proves unchanged build environment.
32
+ * @evidence contracts/performance.md#reuse-equivalent-work Typed config predicates remain mandatory on every delivery. An exact-generation synchronous transaction may share their current replay across nested validators, but no pass or notification shortcut authorizes a later delivery to skip them. Shared manifests and qualified silent sources avoid repeated content reads only while the owning tree validator also proves unchanged build environment.
33
33
  */
34
- function matchesUniversalHostInputs(cached, validation) {
35
- if (!nativeInputPredicatesHold.nativeInputPredicatesHold(cached))
34
+ function matchesUniversalHostInputs(cached, validation, proof) {
35
+ if (!nativeInputPredicatesHold.nativeInputPredicatesHold(cached, proof))
36
36
  return false;
37
37
  let notificationsProveAll = true;
38
38
  for (const input of validation.covered) {
@@ -42,10 +42,10 @@ function matchesUniversalHostInputs(cached, validation) {
42
42
  }
43
43
  }
44
44
  if (notificationsProveAll)
45
- return matchesUniversalHostInputTrees.matchesUniversalHostInputTrees(cached, validation);
45
+ return matchesUniversalHostInputTrees.matchesUniversalHostInputTrees(cached, validation, proof);
46
46
  return (matchesUniversalHostInputEntries.matchesUniversalHostInputEntries(cached, validation) &&
47
47
  matchesUniversalHostInputProbes.matchesUniversalHostInputProbes(cached, validation) &&
48
- matchesUniversalHostInputTrees.matchesUniversalHostInputTrees(cached, validation));
48
+ matchesUniversalHostInputTrees.matchesUniversalHostInputTrees(cached, validation, proof));
49
49
  }
50
50
 
51
51
  exports.matchesUniversalHostInputs = matchesUniversalHostInputs;
@@ -1 +1 @@
1
- {"version":3,"file":"matchesUniversalHostInputs.js","sources":["../../../../src/core/transform/validation/matchesUniversalHostInputs.ts"],"sourcesContent":[null],"names":["nativeInputPredicatesHold","trackerProvesInputUnchanged","matchesUniversalHostInputTrees","matchesUniversalHostInputEntries","matchesUniversalHostInputProbes"],"mappings":";;;;;;;;AAQA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACG,SAAU,0BAA0B,CACxC,MAAkC,EAClC,UAAmC,EAAA;AAEnC,IAAA,IAAI,CAACA,mDAAyB,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,KAAK;IACpD,IAAI,qBAAqB,GAAG,IAAI;AAChC,IAAA,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,OAAO,EAAE;QACtC,IAAI,CAACC,uDAA2B,CAAC,MAAM,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAE;YACxE,qBAAqB,GAAG,KAAK;YAC7B;QACF;IACF;AACA,IAAA,IAAI,qBAAqB;AACvB,QAAA,OAAOC,6DAA8B,CAAC,MAAM,EAAE,UAAU,CAAC;AAC3D,IAAA,QACEC,iEAAgC,CAAC,MAAM,EAAE,UAAU,CAAC;AACpD,QAAAC,+DAA+B,CAAC,MAAM,EAAE,UAAU,CAAC;AACnD,QAAAF,6DAA8B,CAAC,MAAM,EAAE,UAAU,CAAC;AAEtD;;;;"}
1
+ {"version":3,"file":"matchesUniversalHostInputs.js","sources":["../../../../src/core/transform/validation/matchesUniversalHostInputs.ts"],"sourcesContent":[null],"names":["nativeInputPredicatesHold","trackerProvesInputUnchanged","matchesUniversalHostInputTrees","matchesUniversalHostInputEntries","matchesUniversalHostInputProbes"],"mappings":";;;;;;;;AASA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;SACa,0BAA0B,CACxC,MAAkC,EAClC,UAAmC,EACnC,KAAuC,EAAA;AAEvC,IAAA,IAAI,CAACA,mDAAyB,CAAC,MAAM,EAAE,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK;IAC3D,IAAI,qBAAqB,GAAG,IAAI;AAChC,IAAA,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,OAAO,EAAE;QACtC,IAAI,CAACC,uDAA2B,CAAC,MAAM,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAE;YACxE,qBAAqB,GAAG,KAAK;YAC7B;QACF;IACF;AACA,IAAA,IAAI,qBAAqB;QACvB,OAAOC,6DAA8B,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC;AAClE,IAAA,QACEC,iEAAgC,CAAC,MAAM,EAAE,UAAU,CAAC;AACpD,QAAAC,+DAA+B,CAAC,MAAM,EAAE,UAAU,CAAC;QACnDF,6DAA8B,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC;AAE7D;;;;"}
@@ -27,10 +27,10 @@ import { trackerProvesInputUnchanged } from './trackerProvesInputUnchanged.mjs';
27
27
  * @evidence contracts/portability.md#os-neutral-implementation Filesystem-aware validators use actual tracker delivery capability and exact lexical coverage rather than platform-wide assumptions.
28
28
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The coordinator borrows generation manifests and trackers without retaining a result or acquiring a handle.
29
29
  * @evidence contracts/performance.md#efficient-algorithms Every admission first replays all generation-owned typed config predicates; this mandatory cost includes native queries, file bytes or directory membership independently of watcher/epoch qualification. The coverage scan stops at the first unproved input. Each coverage query checks overlapping unproven scopes and sampled events with native path comparisons; fallback adds unresolved bytes, native candidate probes and plugin tree enumeration. Mandatory environment qualification pays its owning dependency and environment-key costs on either route.
30
- * @evidence contracts/performance.md#reuse-equivalent-work Typed config predicate replay is not cached by this coordinator and remains mandatory even when the following existing shortcut shares other proof. Shared manifests and qualified silent sources avoid repeated content reads only while the owning tree validator also proves unchanged build environment.
30
+ * @evidence contracts/performance.md#reuse-equivalent-work Typed config predicates remain mandatory on every delivery. An exact-generation synchronous transaction may share their current replay across nested validators, but no pass or notification shortcut authorizes a later delivery to skip them. Shared manifests and qualified silent sources avoid repeated content reads only while the owning tree validator also proves unchanged build environment.
31
31
  */
32
- function matchesUniversalHostInputs(cached, validation) {
33
- if (!nativeInputPredicatesHold(cached))
32
+ function matchesUniversalHostInputs(cached, validation, proof) {
33
+ if (!nativeInputPredicatesHold(cached, proof))
34
34
  return false;
35
35
  let notificationsProveAll = true;
36
36
  for (const input of validation.covered) {
@@ -40,10 +40,10 @@ function matchesUniversalHostInputs(cached, validation) {
40
40
  }
41
41
  }
42
42
  if (notificationsProveAll)
43
- return matchesUniversalHostInputTrees(cached, validation);
43
+ return matchesUniversalHostInputTrees(cached, validation, proof);
44
44
  return (matchesUniversalHostInputEntries(cached, validation) &&
45
45
  matchesUniversalHostInputProbes(cached, validation) &&
46
- matchesUniversalHostInputTrees(cached, validation));
46
+ matchesUniversalHostInputTrees(cached, validation, proof));
47
47
  }
48
48
 
49
49
  export { matchesUniversalHostInputs };
@@ -1 +1 @@
1
- {"version":3,"file":"matchesUniversalHostInputs.mjs","sources":["../../../../src/core/transform/validation/matchesUniversalHostInputs.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAQA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACG,SAAU,0BAA0B,CACxC,MAAkC,EAClC,UAAmC,EAAA;AAEnC,IAAA,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,KAAK;IACpD,IAAI,qBAAqB,GAAG,IAAI;AAChC,IAAA,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,OAAO,EAAE;QACtC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAE;YACxE,qBAAqB,GAAG,KAAK;YAC7B;QACF;IACF;AACA,IAAA,IAAI,qBAAqB;AACvB,QAAA,OAAO,8BAA8B,CAAC,MAAM,EAAE,UAAU,CAAC;AAC3D,IAAA,QACE,gCAAgC,CAAC,MAAM,EAAE,UAAU,CAAC;AACpD,QAAA,+BAA+B,CAAC,MAAM,EAAE,UAAU,CAAC;AACnD,QAAA,8BAA8B,CAAC,MAAM,EAAE,UAAU,CAAC;AAEtD;;;;"}
1
+ {"version":3,"file":"matchesUniversalHostInputs.mjs","sources":["../../../../src/core/transform/validation/matchesUniversalHostInputs.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AASA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;SACa,0BAA0B,CACxC,MAAkC,EAClC,UAAmC,EACnC,KAAuC,EAAA;AAEvC,IAAA,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK;IAC3D,IAAI,qBAAqB,GAAG,IAAI;AAChC,IAAA,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,OAAO,EAAE;QACtC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAE;YACxE,qBAAqB,GAAG,KAAK;YAC7B;QACF;IACF;AACA,IAAA,IAAI,qBAAqB;QACvB,OAAO,8BAA8B,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC;AAClE,IAAA,QACE,gCAAgC,CAAC,MAAM,EAAE,UAAU,CAAC;AACpD,QAAA,+BAA+B,CAAC,MAAM,EAAE,UAAU,CAAC;QACnD,8BAA8B,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC;AAE7D;;;;"}
@@ -1,4 +1,5 @@
1
1
  import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.cjs";
2
+ import type { TtscGenerationProof } from "./TtscGenerationProof.cjs";
2
3
  /**
3
4
  * Validate every generation-owned native config predicate before cache reuse.
4
5
  * This check also applies when notification/epoch shortcuts admit other inputs.
@@ -10,8 +11,8 @@ import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTrans
10
11
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Metadata and notification shortcuts cannot omit typed config predicates or repair an unstable producer witness.
11
12
  * @evidence contracts/common.md#meaningful-documentation The comment identifies generation ownership and the admission shortcuts that must retain this gate.
12
13
  * @evidence contracts/portability.md#os-neutral-implementation Relative names are resolved against the recorded project with the filesystem view's path dialect; native identity and encoding belong to the replay operation.
13
- * @evidence contracts/performance.md#efficient-algorithms The initial observation scan detects whether native replay is required without resolving a root or performing filesystem queries. Nonempty populations add a second linear traversal plus native replay and path-byte costs, stopping at the first refusal; empty and legacy-only populations require no replay context.
14
- * @evidenceExclude contracts/performance.md#reuse-equivalent-work This admission gate stores no separate cache and checks the recorded generation supplied by its caller.
15
- * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Per-call enumeration owns no handle or watcher; the cached envelope owns retained predicates.
14
+ * @evidence contracts/performance.md#efficient-algorithms Immutable observation membership is indexed once, including an empty population. Each new synchronous admission replays only indexed native predicates and stops at the first refusal; nested validators share its verdict without another scan or native query. Empty populations require no native replay context.
15
+ * @evidence contracts/performance.md#reuse-equivalent-work A weak observation index shares immutable membership. Current verdicts belong only to an exact-owner synchronous transaction, never the next delivery or an await.
16
+ * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The weak index follows immutable observation lifetime; synchronous verdicts and native queries acquire no handle or history.
16
17
  */
17
- export declare function nativeInputPredicatesHold(cached: TtscCachedProjectTransform): boolean;
18
+ export declare function nativeInputPredicatesHold(cached: TtscCachedProjectTransform, proof?: TtscGenerationProof.Transaction): boolean;
@@ -1,4 +1,5 @@
1
1
  import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.mjs";
2
+ import type { TtscGenerationProof } from "./TtscGenerationProof.mjs";
2
3
  /**
3
4
  * Validate every generation-owned native config predicate before cache reuse.
4
5
  * This check also applies when notification/epoch shortcuts admit other inputs.
@@ -10,8 +11,8 @@ import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTrans
10
11
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Metadata and notification shortcuts cannot omit typed config predicates or repair an unstable producer witness.
11
12
  * @evidence contracts/common.md#meaningful-documentation The comment identifies generation ownership and the admission shortcuts that must retain this gate.
12
13
  * @evidence contracts/portability.md#os-neutral-implementation Relative names are resolved against the recorded project with the filesystem view's path dialect; native identity and encoding belong to the replay operation.
13
- * @evidence contracts/performance.md#efficient-algorithms The initial observation scan detects whether native replay is required without resolving a root or performing filesystem queries. Nonempty populations add a second linear traversal plus native replay and path-byte costs, stopping at the first refusal; empty and legacy-only populations require no replay context.
14
- * @evidenceExclude contracts/performance.md#reuse-equivalent-work This admission gate stores no separate cache and checks the recorded generation supplied by its caller.
15
- * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Per-call enumeration owns no handle or watcher; the cached envelope owns retained predicates.
14
+ * @evidence contracts/performance.md#efficient-algorithms Immutable observation membership is indexed once, including an empty population. Each new synchronous admission replays only indexed native predicates and stops at the first refusal; nested validators share its verdict without another scan or native query. Empty populations require no native replay context.
15
+ * @evidence contracts/performance.md#reuse-equivalent-work A weak observation index shares immutable membership. Current verdicts belong only to an exact-owner synchronous transaction, never the next delivery or an await.
16
+ * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The weak index follows immutable observation lifetime; synchronous verdicts and native queries acquire no handle or history.
16
17
  */
17
- export declare function nativeInputPredicatesHold(cached: TtscCachedProjectTransform): boolean;
18
+ export declare function nativeInputPredicatesHold(cached: TtscCachedProjectTransform, proof?: TtscGenerationProof.Transaction): boolean;
@@ -1,4 +1,5 @@
1
1
  import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform";
2
+ import type { TtscGenerationProof } from "./TtscGenerationProof";
2
3
  /**
3
4
  * Validate every generation-owned native config predicate before cache reuse.
4
5
  * This check also applies when notification/epoch shortcuts admit other inputs.
@@ -10,8 +11,8 @@ import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTrans
10
11
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Metadata and notification shortcuts cannot omit typed config predicates or repair an unstable producer witness.
11
12
  * @evidence contracts/common.md#meaningful-documentation The comment identifies generation ownership and the admission shortcuts that must retain this gate.
12
13
  * @evidence contracts/portability.md#os-neutral-implementation Relative names are resolved against the recorded project with the filesystem view's path dialect; native identity and encoding belong to the replay operation.
13
- * @evidence contracts/performance.md#efficient-algorithms The initial observation scan detects whether native replay is required without resolving a root or performing filesystem queries. Nonempty populations add a second linear traversal plus native replay and path-byte costs, stopping at the first refusal; empty and legacy-only populations require no replay context.
14
- * @evidenceExclude contracts/performance.md#reuse-equivalent-work This admission gate stores no separate cache and checks the recorded generation supplied by its caller.
15
- * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Per-call enumeration owns no handle or watcher; the cached envelope owns retained predicates.
14
+ * @evidence contracts/performance.md#efficient-algorithms Immutable observation membership is indexed once, including an empty population. Each new synchronous admission replays only indexed native predicates and stops at the first refusal; nested validators share its verdict without another scan or native query. Empty populations require no native replay context.
15
+ * @evidence contracts/performance.md#reuse-equivalent-work A weak observation index shares immutable membership. Current verdicts belong only to an exact-owner synchronous transaction, never the next delivery or an await.
16
+ * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The weak index follows immutable observation lifetime; synchronous verdicts and native queries acquire no handle or history.
16
17
  */
17
- export declare function nativeInputPredicatesHold(cached: TtscCachedProjectTransform): boolean;
18
+ export declare function nativeInputPredicatesHold(cached: TtscCachedProjectTransform, proof?: TtscGenerationProof.Transaction): boolean;
@@ -5,6 +5,10 @@ var resultFilesystem = require('../cache/resultFilesystem.js');
5
5
  var envelopeDerivation = require('../envelope/envelopeDerivation.js');
6
6
  var nativeInputPredicateMatches = require('../inputs/nativeInputPredicateMatches.js');
7
7
 
8
+ // Weakly owned by immutable observation membership, never by current verdict.
9
+ // Keeping this separate from native path derivation also preserves the empty
10
+ // predicate gate's promise to perform no native identity observations.
11
+ const predicateInputs = new WeakMap();
8
12
  /**
9
13
  * Validate every generation-owned native config predicate before cache reuse.
10
14
  * This check also applies when notification/epoch shortcuts admit other inputs.
@@ -16,29 +20,44 @@ var nativeInputPredicateMatches = require('../inputs/nativeInputPredicateMatches
16
20
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Metadata and notification shortcuts cannot omit typed config predicates or repair an unstable producer witness.
17
21
  * @evidence contracts/common.md#meaningful-documentation The comment identifies generation ownership and the admission shortcuts that must retain this gate.
18
22
  * @evidence contracts/portability.md#os-neutral-implementation Relative names are resolved against the recorded project with the filesystem view's path dialect; native identity and encoding belong to the replay operation.
19
- * @evidence contracts/performance.md#efficient-algorithms The initial observation scan detects whether native replay is required without resolving a root or performing filesystem queries. Nonempty populations add a second linear traversal plus native replay and path-byte costs, stopping at the first refusal; empty and legacy-only populations require no replay context.
20
- * @evidenceExclude contracts/performance.md#reuse-equivalent-work This admission gate stores no separate cache and checks the recorded generation supplied by its caller.
21
- * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Per-call enumeration owns no handle or watcher; the cached envelope owns retained predicates.
23
+ * @evidence contracts/performance.md#efficient-algorithms Immutable observation membership is indexed once, including an empty population. Each new synchronous admission replays only indexed native predicates and stops at the first refusal; nested validators share its verdict without another scan or native query. Empty populations require no native replay context.
24
+ * @evidence contracts/performance.md#reuse-equivalent-work A weak observation index shares immutable membership. Current verdicts belong only to an exact-owner synchronous transaction, never the next delivery or an await.
25
+ * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The weak index follows immutable observation lifetime; synchronous verdicts and native queries acquire no handle or history.
22
26
  */
23
- function nativeInputPredicatesHold(cached) {
27
+ function nativeInputPredicatesHold(cached, proof) {
24
28
  if (cached.result.type === "exception")
25
29
  return false;
26
- const observations = cached.result.graph?.inputObservations ?? {};
27
- if (!Object.values(observations).some((observation) => (observation.nativePredicates?.length ?? 0) !== 0))
28
- return true;
30
+ if (proof?.cached === cached && proof.nativePredicates !== undefined)
31
+ return proof.nativePredicates;
32
+ // Membership is immutable generation data. A positive native verdict is
33
+ // current observation: share it only with nested synchronous validators,
34
+ // never the next delivery, pass or await (#1714).
35
+ const finish = (matches) => {
36
+ if (proof?.cached === cached)
37
+ proof.nativePredicates = matches;
38
+ return matches;
39
+ };
40
+ const observations = cached.result.graph?.inputObservations;
41
+ if (observations === undefined)
42
+ return finish(true);
43
+ let inputs = predicateInputs.get(observations);
44
+ if (inputs === undefined) {
45
+ inputs = Object.entries(observations).filter(([, observation]) => (observation.nativePredicates?.length ?? 0) !== 0);
46
+ predicateInputs.set(observations, inputs);
47
+ }
48
+ if (inputs.length === 0)
49
+ return finish(true);
29
50
  const filesystem = resultFilesystem.resultFilesystem(cached.result);
30
51
  const identities = envelopeDerivation.envelopeDerivation(cached).identityContext;
31
- for (const [name, observation] of Object.entries(observations)) {
32
- if ((observation.nativePredicates?.length ?? 0) === 0)
33
- continue;
52
+ for (const [name, observation] of inputs) {
34
53
  const file = ((filesystem.platform ?? process.platform) === "win32"
35
54
  ? path.win32
36
55
  : path.posix).resolve(cached.projectRoot, name);
37
56
  for (const predicate of observation.nativePredicates ?? [])
38
57
  if (!nativeInputPredicateMatches.nativeInputPredicateMatches(file, predicate, filesystem, identities))
39
- return false;
58
+ return finish(false);
40
59
  }
41
- return true;
60
+ return finish(true);
42
61
  }
43
62
 
44
63
  exports.nativeInputPredicatesHold = nativeInputPredicatesHold;
@@ -1 +1 @@
1
- {"version":3,"file":"nativeInputPredicatesHold.js","sources":["../../../../src/core/transform/validation/nativeInputPredicatesHold.ts"],"sourcesContent":[null],"names":["resultFilesystem","envelopeDerivation","nativeInputPredicateMatches"],"mappings":";;;;;;;AAOA;;;;;;;;;;;;;;AAcG;AACG,SAAU,yBAAyB,CACvC,MAAkC,EAAA;AAElC,IAAA,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW;AAAE,QAAA,OAAO,KAAK;IACpD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,IAAI,EAAE;IACjE,IACE,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAC/B,CAAC,WAAW,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CACnE;AAED,QAAA,OAAO,IAAI;IACb,MAAM,UAAU,GAAGA,iCAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;IAClD,MAAM,UAAU,GAAGC,qCAAkB,CAAC,MAAM,CAAC,CAAC,eAAe;AAC7D,IAAA,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QAC9D,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC;YAAE;AACvD,QAAA,MAAM,IAAI,GAAG,CACX,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,MAAM;cAC1C,IAAI,CAAC;AACP,cAAE,IAAI,CAAC,KAAK,EACd,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;AACnC,QAAA,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,gBAAgB,IAAI,EAAE;YACxD,IAAI,CAACC,uDAA2B,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;AACvE,gBAAA,OAAO,KAAK;IAClB;AACA,IAAA,OAAO,IAAI;AACb;;;;"}
1
+ {"version":3,"file":"nativeInputPredicatesHold.js","sources":["../../../../src/core/transform/validation/nativeInputPredicatesHold.ts"],"sourcesContent":[null],"names":["resultFilesystem","envelopeDerivation","nativeInputPredicateMatches"],"mappings":";;;;;;;AASA;AACA;AACA;AACA,MAAM,eAAe,GAAG,IAAI,OAAO,EAGhC;AAEH;;;;;;;;;;;;;;AAcG;AACG,SAAU,yBAAyB,CACvC,MAAkC,EAClC,KAAuC,EAAA;AAEvC,IAAA,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW;AAAE,QAAA,OAAO,KAAK;IACpD,IAAI,KAAK,EAAE,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS;QAClE,OAAO,KAAK,CAAC,gBAAgB;;;;AAI/B,IAAA,MAAM,MAAM,GAAG,CAAC,OAAgB,KAAa;AAC3C,QAAA,IAAI,KAAK,EAAE,MAAM,KAAK,MAAM;AAAE,YAAA,KAAK,CAAC,gBAAgB,GAAG,OAAO;AAC9D,QAAA,OAAO,OAAO;AAChB,IAAA,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB;IAC3D,IAAI,YAAY,KAAK,SAAS;AAAE,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC;IACnD,IAAI,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;AAC9C,IAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,QAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAC1C,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CACvE;AACD,QAAA,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC;IAC3C;AACA,IAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC;IAC5C,MAAM,UAAU,GAAGA,iCAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;IAClD,MAAM,UAAU,GAAGC,qCAAkB,CAAC,MAAM,CAAC,CAAC,eAAe;IAC7D,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE;AACxC,QAAA,MAAM,IAAI,GAAG,CACX,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,MAAM;cAC1C,IAAI,CAAC;AACP,cAAE,IAAI,CAAC,KAAK,EACd,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;AACnC,QAAA,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,gBAAgB,IAAI,EAAE;YACxD,IAAI,CAACC,uDAA2B,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;AACvE,gBAAA,OAAO,MAAM,CAAC,KAAK,CAAC;IAC1B;AACA,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB;;;;"}
@@ -3,6 +3,10 @@ import { resultFilesystem } from '../cache/resultFilesystem.mjs';
3
3
  import { envelopeDerivation } from '../envelope/envelopeDerivation.mjs';
4
4
  import { nativeInputPredicateMatches } from '../inputs/nativeInputPredicateMatches.mjs';
5
5
 
6
+ // Weakly owned by immutable observation membership, never by current verdict.
7
+ // Keeping this separate from native path derivation also preserves the empty
8
+ // predicate gate's promise to perform no native identity observations.
9
+ const predicateInputs = new WeakMap();
6
10
  /**
7
11
  * Validate every generation-owned native config predicate before cache reuse.
8
12
  * This check also applies when notification/epoch shortcuts admit other inputs.
@@ -14,29 +18,44 @@ import { nativeInputPredicateMatches } from '../inputs/nativeInputPredicateMatch
14
18
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Metadata and notification shortcuts cannot omit typed config predicates or repair an unstable producer witness.
15
19
  * @evidence contracts/common.md#meaningful-documentation The comment identifies generation ownership and the admission shortcuts that must retain this gate.
16
20
  * @evidence contracts/portability.md#os-neutral-implementation Relative names are resolved against the recorded project with the filesystem view's path dialect; native identity and encoding belong to the replay operation.
17
- * @evidence contracts/performance.md#efficient-algorithms The initial observation scan detects whether native replay is required without resolving a root or performing filesystem queries. Nonempty populations add a second linear traversal plus native replay and path-byte costs, stopping at the first refusal; empty and legacy-only populations require no replay context.
18
- * @evidenceExclude contracts/performance.md#reuse-equivalent-work This admission gate stores no separate cache and checks the recorded generation supplied by its caller.
19
- * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Per-call enumeration owns no handle or watcher; the cached envelope owns retained predicates.
21
+ * @evidence contracts/performance.md#efficient-algorithms Immutable observation membership is indexed once, including an empty population. Each new synchronous admission replays only indexed native predicates and stops at the first refusal; nested validators share its verdict without another scan or native query. Empty populations require no native replay context.
22
+ * @evidence contracts/performance.md#reuse-equivalent-work A weak observation index shares immutable membership. Current verdicts belong only to an exact-owner synchronous transaction, never the next delivery or an await.
23
+ * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The weak index follows immutable observation lifetime; synchronous verdicts and native queries acquire no handle or history.
20
24
  */
21
- function nativeInputPredicatesHold(cached) {
25
+ function nativeInputPredicatesHold(cached, proof) {
22
26
  if (cached.result.type === "exception")
23
27
  return false;
24
- const observations = cached.result.graph?.inputObservations ?? {};
25
- if (!Object.values(observations).some((observation) => (observation.nativePredicates?.length ?? 0) !== 0))
26
- return true;
28
+ if (proof?.cached === cached && proof.nativePredicates !== undefined)
29
+ return proof.nativePredicates;
30
+ // Membership is immutable generation data. A positive native verdict is
31
+ // current observation: share it only with nested synchronous validators,
32
+ // never the next delivery, pass or await (#1714).
33
+ const finish = (matches) => {
34
+ if (proof?.cached === cached)
35
+ proof.nativePredicates = matches;
36
+ return matches;
37
+ };
38
+ const observations = cached.result.graph?.inputObservations;
39
+ if (observations === undefined)
40
+ return finish(true);
41
+ let inputs = predicateInputs.get(observations);
42
+ if (inputs === undefined) {
43
+ inputs = Object.entries(observations).filter(([, observation]) => (observation.nativePredicates?.length ?? 0) !== 0);
44
+ predicateInputs.set(observations, inputs);
45
+ }
46
+ if (inputs.length === 0)
47
+ return finish(true);
27
48
  const filesystem = resultFilesystem(cached.result);
28
49
  const identities = envelopeDerivation(cached).identityContext;
29
- for (const [name, observation] of Object.entries(observations)) {
30
- if ((observation.nativePredicates?.length ?? 0) === 0)
31
- continue;
50
+ for (const [name, observation] of inputs) {
32
51
  const file = ((filesystem.platform ?? process.platform) === "win32"
33
52
  ? path.win32
34
53
  : path.posix).resolve(cached.projectRoot, name);
35
54
  for (const predicate of observation.nativePredicates ?? [])
36
55
  if (!nativeInputPredicateMatches(file, predicate, filesystem, identities))
37
- return false;
56
+ return finish(false);
38
57
  }
39
- return true;
58
+ return finish(true);
40
59
  }
41
60
 
42
61
  export { nativeInputPredicatesHold };
@@ -1 +1 @@
1
- {"version":3,"file":"nativeInputPredicatesHold.mjs","sources":["../../../../src/core/transform/validation/nativeInputPredicatesHold.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAOA;;;;;;;;;;;;;;AAcG;AACG,SAAU,yBAAyB,CACvC,MAAkC,EAAA;AAElC,IAAA,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW;AAAE,QAAA,OAAO,KAAK;IACpD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,IAAI,EAAE;IACjE,IACE,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAC/B,CAAC,WAAW,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CACnE;AAED,QAAA,OAAO,IAAI;IACb,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;IAClD,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,eAAe;AAC7D,IAAA,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QAC9D,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC;YAAE;AACvD,QAAA,MAAM,IAAI,GAAG,CACX,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,MAAM;cAC1C,IAAI,CAAC;AACP,cAAE,IAAI,CAAC,KAAK,EACd,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;AACnC,QAAA,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,gBAAgB,IAAI,EAAE;YACxD,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;AACvE,gBAAA,OAAO,KAAK;IAClB;AACA,IAAA,OAAO,IAAI;AACb;;;;"}
1
+ {"version":3,"file":"nativeInputPredicatesHold.mjs","sources":["../../../../src/core/transform/validation/nativeInputPredicatesHold.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AASA;AACA;AACA;AACA,MAAM,eAAe,GAAG,IAAI,OAAO,EAGhC;AAEH;;;;;;;;;;;;;;AAcG;AACG,SAAU,yBAAyB,CACvC,MAAkC,EAClC,KAAuC,EAAA;AAEvC,IAAA,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW;AAAE,QAAA,OAAO,KAAK;IACpD,IAAI,KAAK,EAAE,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS;QAClE,OAAO,KAAK,CAAC,gBAAgB;;;;AAI/B,IAAA,MAAM,MAAM,GAAG,CAAC,OAAgB,KAAa;AAC3C,QAAA,IAAI,KAAK,EAAE,MAAM,KAAK,MAAM;AAAE,YAAA,KAAK,CAAC,gBAAgB,GAAG,OAAO;AAC9D,QAAA,OAAO,OAAO;AAChB,IAAA,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB;IAC3D,IAAI,YAAY,KAAK,SAAS;AAAE,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC;IACnD,IAAI,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;AAC9C,IAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,QAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAC1C,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CACvE;AACD,QAAA,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC;IAC3C;AACA,IAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC;IAC5C,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;IAClD,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,eAAe;IAC7D,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE;AACxC,QAAA,MAAM,IAAI,GAAG,CACX,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,MAAM;cAC1C,IAAI,CAAC;AACP,cAAE,IAAI,CAAC,KAAK,EACd,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;AACnC,QAAA,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,gBAAgB,IAAI,EAAE;YACxD,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;AACvE,gBAAA,OAAO,MAAM,CAAC,KAAK,CAAC;IAC1B;AACA,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB;;;;"}
@@ -1,4 +1,5 @@
1
1
  import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.cjs";
2
+ import type { TtscGenerationProof } from "./TtscGenerationProof.cjs";
2
3
  /**
3
4
  * Whether the generation's live notifications prove its program could not have
4
5
  * changed since capture (samchon/ttsc#1398).
@@ -34,4 +35,4 @@ export declare function notificationsProveProgramUnchanged(
34
35
  * Generation supplying live tracker state, compiler policy and universal
35
36
  * proof.
36
37
  */
37
- cached: TtscCachedProjectTransform): boolean;
38
+ cached: TtscCachedProjectTransform, proof?: TtscGenerationProof.Transaction): boolean;
@@ -1,4 +1,5 @@
1
1
  import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.mjs";
2
+ import type { TtscGenerationProof } from "./TtscGenerationProof.mjs";
2
3
  /**
3
4
  * Whether the generation's live notifications prove its program could not have
4
5
  * changed since capture (samchon/ttsc#1398).
@@ -34,4 +35,4 @@ export declare function notificationsProveProgramUnchanged(
34
35
  * Generation supplying live tracker state, compiler policy and universal
35
36
  * proof.
36
37
  */
37
- cached: TtscCachedProjectTransform): boolean;
38
+ cached: TtscCachedProjectTransform, proof?: TtscGenerationProof.Transaction): boolean;
@@ -1,4 +1,5 @@
1
1
  import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform";
2
+ import type { TtscGenerationProof } from "./TtscGenerationProof";
2
3
  /**
3
4
  * Whether the generation's live notifications prove its program could not have
4
5
  * changed since capture (samchon/ttsc#1398).
@@ -34,4 +35,4 @@ export declare function notificationsProveProgramUnchanged(
34
35
  * Generation supplying live tracker state, compiler policy and universal
35
36
  * proof.
36
37
  */
37
- cached: TtscCachedProjectTransform): boolean;
38
+ cached: TtscCachedProjectTransform, proof?: TtscGenerationProof.Transaction): boolean;
@@ -42,7 +42,7 @@ function notificationsProveProgramUnchanged(
42
42
  * Generation supplying live tracker state, compiler policy and universal
43
43
  * proof.
44
44
  */
45
- cached) {
45
+ cached, proof) {
46
46
  if (!notificationsProveMembership.notificationsProveMembership(cached))
47
47
  return false;
48
48
  for (const tracker of [
@@ -75,7 +75,7 @@ cached) {
75
75
  // stands for content only against a reference minted since any rollback, as
76
76
  // every other delivery proof mints before it reads.
77
77
  refreshFilesystemClockReference.refreshFilesystemClockReference(TRANSFORM_CLOCK_REFERENCE_DIRECTORIES.TRANSFORM_CLOCK_REFERENCE_DIRECTORIES.get(cached), resultFilesystem.resultFilesystem(cached.result));
78
- return matchesUniversalHostInputs.matchesUniversalHostInputs(cached, cached.hostInputValidation);
78
+ return matchesUniversalHostInputs.matchesUniversalHostInputs(cached, cached.hostInputValidation, proof);
79
79
  }
80
80
 
81
81
  exports.notificationsProveProgramUnchanged = notificationsProveProgramUnchanged;
@@ -1 +1 @@
1
- {"version":3,"file":"notificationsProveProgramUnchanged.js","sources":["../../../../src/core/transform/validation/notificationsProveProgramUnchanged.ts"],"sourcesContent":[null],"names":["notificationsProveMembership","isProjectWalkPath","resultFilesystem","refreshFilesystemClockReference","TRANSFORM_CLOCK_REFERENCE_DIRECTORIES","matchesUniversalHostInputs"],"mappings":";;;;;;;;;AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;SACa,kCAAkC;AAChD;;;AAGG;AACH,MAAkC,EAAA;AAElC,IAAA,IAAI,CAACA,yDAA4B,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,KAAK;IACvD,KAAK,MAAM,OAAO,IAAI;AACpB,QAAA,MAAM,CAAC,sBAAsB;AAC7B,QAAA,MAAM,CAAC,wBAAwB;AAC/B,QAAA,MAAM,CAAC,wBAAwB;AAChC,KAAA,EAAE;QACD,IAAI,OAAO,KAAK,SAAS;YAAE;AAC3B,QAAA,IACE,OAAO,CAAC,oBAAoB,KAAK,IAAI;AACrC,YAAA,OAAO,CAAC,iBAAiB;YACzB,OAAO,CAAC,cAAc,EACtB;AACA,YAAA,OAAO,KAAK;QACd;AACA,QAAA,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;;;;AAIrC,YAAA,IACE,OAAO,KAAK,MAAM,CAAC,sBAAsB;gBACzCC,mCAAiB,CACf,MAAM,CAAC,WAAW,EAClB,OAAO,EACP,SAAS,EACTC,iCAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EAC/B,MAAM,CAAC,gBAAgB,CACxB,EACD;AACA,gBAAA,OAAO,KAAK;YACd;QACF;IACF;AACA,IAAA,IACE,MAAM,CAAC,sBAAsB,KAAK,SAAS;AAC3C,QAAA,MAAM,CAAC,mBAAmB,KAAK,SAAS,EACxC;AACA,QAAA,OAAO,KAAK;IACd;;;;AAIA,IAAAC,+DAA+B,CAC7BC,2EAAqC,CAAC,GAAG,CAAC,MAAM,CAAC,EACjDF,iCAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAChC;IACD,OAAOG,qDAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAAC;AACvE;;;;"}
1
+ {"version":3,"file":"notificationsProveProgramUnchanged.js","sources":["../../../../src/core/transform/validation/notificationsProveProgramUnchanged.ts"],"sourcesContent":[null],"names":["notificationsProveMembership","isProjectWalkPath","resultFilesystem","refreshFilesystemClockReference","TRANSFORM_CLOCK_REFERENCE_DIRECTORIES","matchesUniversalHostInputs"],"mappings":";;;;;;;;;AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;SACa,kCAAkC;AAChD;;;AAGG;AACH,MAAkC,EAClC,KAAuC,EAAA;AAEvC,IAAA,IAAI,CAACA,yDAA4B,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,KAAK;IACvD,KAAK,MAAM,OAAO,IAAI;AACpB,QAAA,MAAM,CAAC,sBAAsB;AAC7B,QAAA,MAAM,CAAC,wBAAwB;AAC/B,QAAA,MAAM,CAAC,wBAAwB;AAChC,KAAA,EAAE;QACD,IAAI,OAAO,KAAK,SAAS;YAAE;AAC3B,QAAA,IACE,OAAO,CAAC,oBAAoB,KAAK,IAAI;AACrC,YAAA,OAAO,CAAC,iBAAiB;YACzB,OAAO,CAAC,cAAc,EACtB;AACA,YAAA,OAAO,KAAK;QACd;AACA,QAAA,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;;;;AAIrC,YAAA,IACE,OAAO,KAAK,MAAM,CAAC,sBAAsB;gBACzCC,mCAAiB,CACf,MAAM,CAAC,WAAW,EAClB,OAAO,EACP,SAAS,EACTC,iCAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EAC/B,MAAM,CAAC,gBAAgB,CACxB,EACD;AACA,gBAAA,OAAO,KAAK;YACd;QACF;IACF;AACA,IAAA,IACE,MAAM,CAAC,sBAAsB,KAAK,SAAS;AAC3C,QAAA,MAAM,CAAC,mBAAmB,KAAK,SAAS,EACxC;AACA,QAAA,OAAO,KAAK;IACd;;;;AAIA,IAAAC,+DAA+B,CAC7BC,2EAAqC,CAAC,GAAG,CAAC,MAAM,CAAC,EACjDF,iCAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAChC;IACD,OAAOG,qDAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC;AAC9E;;;;"}
@@ -40,7 +40,7 @@ function notificationsProveProgramUnchanged(
40
40
  * Generation supplying live tracker state, compiler policy and universal
41
41
  * proof.
42
42
  */
43
- cached) {
43
+ cached, proof) {
44
44
  if (!notificationsProveMembership(cached))
45
45
  return false;
46
46
  for (const tracker of [
@@ -73,7 +73,7 @@ cached) {
73
73
  // stands for content only against a reference minted since any rollback, as
74
74
  // every other delivery proof mints before it reads.
75
75
  refreshFilesystemClockReference(TRANSFORM_CLOCK_REFERENCE_DIRECTORIES.get(cached), resultFilesystem(cached.result));
76
- return matchesUniversalHostInputs(cached, cached.hostInputValidation);
76
+ return matchesUniversalHostInputs(cached, cached.hostInputValidation, proof);
77
77
  }
78
78
 
79
79
  export { notificationsProveProgramUnchanged };
@@ -1 +1 @@
1
- {"version":3,"file":"notificationsProveProgramUnchanged.mjs","sources":["../../../../src/core/transform/validation/notificationsProveProgramUnchanged.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;SACa,kCAAkC;AAChD;;;AAGG;AACH,MAAkC,EAAA;AAElC,IAAA,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,KAAK;IACvD,KAAK,MAAM,OAAO,IAAI;AACpB,QAAA,MAAM,CAAC,sBAAsB;AAC7B,QAAA,MAAM,CAAC,wBAAwB;AAC/B,QAAA,MAAM,CAAC,wBAAwB;AAChC,KAAA,EAAE;QACD,IAAI,OAAO,KAAK,SAAS;YAAE;AAC3B,QAAA,IACE,OAAO,CAAC,oBAAoB,KAAK,IAAI;AACrC,YAAA,OAAO,CAAC,iBAAiB;YACzB,OAAO,CAAC,cAAc,EACtB;AACA,YAAA,OAAO,KAAK;QACd;AACA,QAAA,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;;;;AAIrC,YAAA,IACE,OAAO,KAAK,MAAM,CAAC,sBAAsB;gBACzC,iBAAiB,CACf,MAAM,CAAC,WAAW,EAClB,OAAO,EACP,SAAS,EACT,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EAC/B,MAAM,CAAC,gBAAgB,CACxB,EACD;AACA,gBAAA,OAAO,KAAK;YACd;QACF;IACF;AACA,IAAA,IACE,MAAM,CAAC,sBAAsB,KAAK,SAAS;AAC3C,QAAA,MAAM,CAAC,mBAAmB,KAAK,SAAS,EACxC;AACA,QAAA,OAAO,KAAK;IACd;;;;AAIA,IAAA,+BAA+B,CAC7B,qCAAqC,CAAC,GAAG,CAAC,MAAM,CAAC,EACjD,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAChC;IACD,OAAO,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAAC;AACvE;;;;"}
1
+ {"version":3,"file":"notificationsProveProgramUnchanged.mjs","sources":["../../../../src/core/transform/validation/notificationsProveProgramUnchanged.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;SACa,kCAAkC;AAChD;;;AAGG;AACH,MAAkC,EAClC,KAAuC,EAAA;AAEvC,IAAA,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,KAAK;IACvD,KAAK,MAAM,OAAO,IAAI;AACpB,QAAA,MAAM,CAAC,sBAAsB;AAC7B,QAAA,MAAM,CAAC,wBAAwB;AAC/B,QAAA,MAAM,CAAC,wBAAwB;AAChC,KAAA,EAAE;QACD,IAAI,OAAO,KAAK,SAAS;YAAE;AAC3B,QAAA,IACE,OAAO,CAAC,oBAAoB,KAAK,IAAI;AACrC,YAAA,OAAO,CAAC,iBAAiB;YACzB,OAAO,CAAC,cAAc,EACtB;AACA,YAAA,OAAO,KAAK;QACd;AACA,QAAA,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;;;;AAIrC,YAAA,IACE,OAAO,KAAK,MAAM,CAAC,sBAAsB;gBACzC,iBAAiB,CACf,MAAM,CAAC,WAAW,EAClB,OAAO,EACP,SAAS,EACT,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EAC/B,MAAM,CAAC,gBAAgB,CACxB,EACD;AACA,gBAAA,OAAO,KAAK;YACd;QACF;IACF;AACA,IAAA,IACE,MAAM,CAAC,sBAAsB,KAAK,SAAS;AAC3C,QAAA,MAAM,CAAC,mBAAmB,KAAK,SAAS,EACxC;AACA,QAAA,OAAO,KAAK;IACd;;;;AAIA,IAAA,+BAA+B,CAC7B,qCAAqC,CAAC,GAAG,CAAC,MAAM,CAAC,EACjD,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAChC;IACD,OAAO,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC;AAC9E;;;;"}
@@ -50,6 +50,9 @@ function notifyWatchInputs(hooks, cached, file, selection) {
50
50
  // A module handed over without its record depends on its own bytes alone,
51
51
  // so no persistent cache may keep it.
52
52
  if (hooks.project !== undefined &&
53
+ // Common delivery already withdrew this host cache. Incomplete local
54
+ // output cannot write a record, so avoid a second withdrawal callback.
55
+ cached.freshDeliveryOnly !== true &&
53
56
  !notifyProjectRecord.notifyProjectRecord(hooks.project, cached, false, () => generationWatchInputs.generationWatchInputs(cached), routedInputs)) {
54
57
  hooks.markVolatile?.();
55
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"notifyWatchInputs.js","sources":["../../../../src/core/transform/watch/notifyWatchInputs.ts"],"sourcesContent":[null],"names":["envelopeDerivation","selectionInputs","notifyProjectRecord","generationWatchInputs","hostSpelling","selectWatchInputs","evidencedWatchInput","projectMembershipInput","handWatchInputs"],"mappings":";;;;;;;;;;;;AAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACG,SAAU,iBAAiB,CAC/B,KAAqC,EACrC,MAAkC,EAClC,IAAY,EACZ,SAA6B,EAAA;IAE7B,IACE,KAAK,KAAK,SAAS;AACnB,SAAC,KAAK,CAAC,OAAO,KAAK,SAAS;YAC1B,KAAK,CAAC,YAAY,KAAK,SAAS;AAChC,YAAA,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,EACpC;QACA;IACF;AACA,IAAA,MAAM,KAAK,GAAGA,qCAAkB,CAAC,MAAM,CAAC;AACxC,IAAA,MAAM,YAAY,GAAGC,+BAAe,CAClC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC1D,SAAS,CAAC,UAAU,EACpB,CAAC,KAAK,KAAK,KAAK,CACjB;;;AAGD,IAAA,IACE,KAAK,CAAC,OAAO,KAAK,SAAS;QAC3B,CAACC,uCAAmB,CAClB,KAAK,CAAC,OAAO,EACb,MAAM,EACN,KAAK,EACL,MAAMC,2CAAqB,CAAC,MAAM,CAAC,EACnC,YAAY,CACb,EACD;AACA,QAAA,KAAK,CAAC,YAAY,IAAI;IACxB;AACA,IAAA,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE;QACzE;IACF;IACA,MAAM,KAAK,GAAGC,yBAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;IAC/C,MAAM,MAAM,GAAqBC,mCAAiB,CAAC;QACjD,IAAI;QACJ,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;AAC5C,KAAA,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAKC,uCAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;;;AAGnE,IAAA,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,KAAK,IAAI,GAAGC,6CAAsB,CAAC,MAAM,CAAC,GAAG,SAAS;IACxE,IAAI,UAAU,KAAK,SAAS;AAAE,QAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,IAAA,KAAK,MAAM,aAAa,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AACvD,QAAA,GAAG,KAAK;AACR,QAAA,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AACxB,KAAA,CAAC,CAAC;AACD,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;AAC5B,IAAAC,+BAAe,CAAC,KAAK,EAAE,MAAM,CAAC;AAChC;;;;"}
1
+ {"version":3,"file":"notifyWatchInputs.js","sources":["../../../../src/core/transform/watch/notifyWatchInputs.ts"],"sourcesContent":[null],"names":["envelopeDerivation","selectionInputs","notifyProjectRecord","generationWatchInputs","hostSpelling","selectWatchInputs","evidencedWatchInput","projectMembershipInput","handWatchInputs"],"mappings":";;;;;;;;;;;;AAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACG,SAAU,iBAAiB,CAC/B,KAAqC,EACrC,MAAkC,EAClC,IAAY,EACZ,SAA6B,EAAA;IAE7B,IACE,KAAK,KAAK,SAAS;AACnB,SAAC,KAAK,CAAC,OAAO,KAAK,SAAS;YAC1B,KAAK,CAAC,YAAY,KAAK,SAAS;AAChC,YAAA,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,EACpC;QACA;IACF;AACA,IAAA,MAAM,KAAK,GAAGA,qCAAkB,CAAC,MAAM,CAAC;AACxC,IAAA,MAAM,YAAY,GAAGC,+BAAe,CAClC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC1D,SAAS,CAAC,UAAU,EACpB,CAAC,KAAK,KAAK,KAAK,CACjB;;;AAGD,IAAA,IACE,KAAK,CAAC,OAAO,KAAK,SAAS;;;QAG3B,MAAM,CAAC,iBAAiB,KAAK,IAAI;QACjC,CAACC,uCAAmB,CAClB,KAAK,CAAC,OAAO,EACb,MAAM,EACN,KAAK,EACL,MAAMC,2CAAqB,CAAC,MAAM,CAAC,EACnC,YAAY,CACb,EACD;AACA,QAAA,KAAK,CAAC,YAAY,IAAI;IACxB;AACA,IAAA,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE;QACzE;IACF;IACA,MAAM,KAAK,GAAGC,yBAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;IAC/C,MAAM,MAAM,GAAqBC,mCAAiB,CAAC;QACjD,IAAI;QACJ,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;AAC5C,KAAA,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAKC,uCAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;;;AAGnE,IAAA,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,KAAK,IAAI,GAAGC,6CAAsB,CAAC,MAAM,CAAC,GAAG,SAAS;IACxE,IAAI,UAAU,KAAK,SAAS;AAAE,QAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,IAAA,KAAK,MAAM,aAAa,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AACvD,QAAA,GAAG,KAAK;AACR,QAAA,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AACxB,KAAA,CAAC,CAAC;AACD,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;AAC5B,IAAAC,+BAAe,CAAC,KAAK,EAAE,MAAM,CAAC;AAChC;;;;"}
@@ -48,6 +48,9 @@ function notifyWatchInputs(hooks, cached, file, selection) {
48
48
  // A module handed over without its record depends on its own bytes alone,
49
49
  // so no persistent cache may keep it.
50
50
  if (hooks.project !== undefined &&
51
+ // Common delivery already withdrew this host cache. Incomplete local
52
+ // output cannot write a record, so avoid a second withdrawal callback.
53
+ cached.freshDeliveryOnly !== true &&
51
54
  !notifyProjectRecord(hooks.project, cached, false, () => generationWatchInputs(cached), routedInputs)) {
52
55
  hooks.markVolatile?.();
53
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"notifyWatchInputs.mjs","sources":["../../../../src/core/transform/watch/notifyWatchInputs.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;AAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACG,SAAU,iBAAiB,CAC/B,KAAqC,EACrC,MAAkC,EAClC,IAAY,EACZ,SAA6B,EAAA;IAE7B,IACE,KAAK,KAAK,SAAS;AACnB,SAAC,KAAK,CAAC,OAAO,KAAK,SAAS;YAC1B,KAAK,CAAC,YAAY,KAAK,SAAS;AAChC,YAAA,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,EACpC;QACA;IACF;AACA,IAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC;AACxC,IAAA,MAAM,YAAY,GAAG,eAAe,CAClC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC1D,SAAS,CAAC,UAAU,EACpB,CAAC,KAAK,KAAK,KAAK,CACjB;;;AAGD,IAAA,IACE,KAAK,CAAC,OAAO,KAAK,SAAS;QAC3B,CAAC,mBAAmB,CAClB,KAAK,CAAC,OAAO,EACb,MAAM,EACN,KAAK,EACL,MAAM,qBAAqB,CAAC,MAAM,CAAC,EACnC,YAAY,CACb,EACD;AACA,QAAA,KAAK,CAAC,YAAY,IAAI;IACxB;AACA,IAAA,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE;QACzE;IACF;IACA,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;IAC/C,MAAM,MAAM,GAAqB,iBAAiB,CAAC;QACjD,IAAI;QACJ,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;AAC5C,KAAA,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;;;AAGnE,IAAA,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,KAAK,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,GAAG,SAAS;IACxE,IAAI,UAAU,KAAK,SAAS;AAAE,QAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,IAAA,KAAK,MAAM,aAAa,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AACvD,QAAA,GAAG,KAAK;AACR,QAAA,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AACxB,KAAA,CAAC,CAAC;AACD,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;AAC5B,IAAA,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC;AAChC;;;;"}
1
+ {"version":3,"file":"notifyWatchInputs.mjs","sources":["../../../../src/core/transform/watch/notifyWatchInputs.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;AAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACG,SAAU,iBAAiB,CAC/B,KAAqC,EACrC,MAAkC,EAClC,IAAY,EACZ,SAA6B,EAAA;IAE7B,IACE,KAAK,KAAK,SAAS;AACnB,SAAC,KAAK,CAAC,OAAO,KAAK,SAAS;YAC1B,KAAK,CAAC,YAAY,KAAK,SAAS;AAChC,YAAA,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,EACpC;QACA;IACF;AACA,IAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC;AACxC,IAAA,MAAM,YAAY,GAAG,eAAe,CAClC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC1D,SAAS,CAAC,UAAU,EACpB,CAAC,KAAK,KAAK,KAAK,CACjB;;;AAGD,IAAA,IACE,KAAK,CAAC,OAAO,KAAK,SAAS;;;QAG3B,MAAM,CAAC,iBAAiB,KAAK,IAAI;QACjC,CAAC,mBAAmB,CAClB,KAAK,CAAC,OAAO,EACb,MAAM,EACN,KAAK,EACL,MAAM,qBAAqB,CAAC,MAAM,CAAC,EACnC,YAAY,CACb,EACD;AACA,QAAA,KAAK,CAAC,YAAY,IAAI;IACxB;AACA,IAAA,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE;QACzE;IACF;IACA,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;IAC/C,MAAM,MAAM,GAAqB,iBAAiB,CAAC;QACjD,IAAI;QACJ,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;AAC5C,KAAA,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;;;AAGnE,IAAA,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,KAAK,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,GAAG,SAAS;IACxE,IAAI,UAAU,KAAK,SAAS;AAAE,QAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,IAAA,KAAK,MAAM,aAAa,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AACvD,QAAA,GAAG,KAAK;AACR,QAAA,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AACxB,KAAA,CAAC,CAAC;AACD,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;AAC5B,IAAA,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC;AAChC;;;;"}
@@ -164,6 +164,7 @@ function turbopack(source) {
164
164
  }
165
165
  const hooks = {
166
166
  exactPath: true,
167
+ watching,
167
168
  ...(addDependency === undefined
168
169
  ? {}
169
170
  : {
@@ -178,7 +179,7 @@ function turbopack(source) {
178
179
  toolDirectory,
179
180
  // Turbopack takes no record outside its root, so a watching worker
180
181
  // refuses a module it could hand none (samchon/ttsc#1480).
181
- watching: bridge !== undefined,
182
+ watching,
182
183
  },
183
184
  }),
184
185
  ...(bindings.markVolatile === undefined
@@ -1 +1 @@
1
- {"version":3,"file":"turbopack.js","sources":["../../../src/core/turbopack/turbopack.ts"],"sourcesContent":[null],"names":["createTtscTransformCache","shareTtscTransformCache","readTtscTransformSession","isTransformTarget","createTurbopackLoaderBindings","hostToolDirectory","openHostWatchBridge","refreshProjectRecordFiles","registerProjectRecord","transformTtsc","resolveOptions","TtscCompileFailureError","failedModuleSource"],"mappings":"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"}
1
+ {"version":3,"file":"turbopack.js","sources":["../../../src/core/turbopack/turbopack.ts"],"sourcesContent":[null],"names":["createTtscTransformCache","shareTtscTransformCache","readTtscTransformSession","isTransformTarget","createTurbopackLoaderBindings","hostToolDirectory","openHostWatchBridge","refreshProjectRecordFiles","registerProjectRecord","transformTtsc","resolveOptions","TtscCompileFailureError","failedModuleSource"],"mappings":"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"}
@@ -162,6 +162,7 @@ function turbopack(source) {
162
162
  }
163
163
  const hooks = {
164
164
  exactPath: true,
165
+ watching,
165
166
  ...(addDependency === undefined
166
167
  ? {}
167
168
  : {
@@ -176,7 +177,7 @@ function turbopack(source) {
176
177
  toolDirectory,
177
178
  // Turbopack takes no record outside its root, so a watching worker
178
179
  // refuses a module it could hand none (samchon/ttsc#1480).
179
- watching: bridge !== undefined,
180
+ watching,
180
181
  },
181
182
  }),
182
183
  ...(bindings.markVolatile === undefined
@@ -1 +1 @@
1
- {"version":3,"file":"turbopack.mjs","sources":["../../../src/core/turbopack/turbopack.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turbopack.mjs","sources":["../../../src/core/turbopack/turbopack.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttsc/unplugin",
3
- "version": "0.31.0",
3
+ "version": "0.31.1",
4
4
  "description": "Bundler adapters for ttsc plugins.",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.mjs",
@@ -202,7 +202,7 @@
202
202
  "fsevents": "^2.3.3"
203
203
  },
204
204
  "peerDependencies": {
205
- "ttsc": "^0.31.0"
205
+ "ttsc": "^0.31.1"
206
206
  },
207
207
  "devDependencies": {
208
208
  "@wrtnlabs/evidence": "^0.3.1",
@@ -217,7 +217,7 @@
217
217
  "tslib": "^2.8.1",
218
218
  "typescript": "^7.0.2",
219
219
  "vite": "^7.3.5",
220
- "ttsc": "0.31.0"
220
+ "ttsc": "0.31.1"
221
221
  },
222
222
  "repository": {
223
223
  "type": "git",
@@ -8,7 +8,6 @@ import { typescriptTransformBunLoader } from "../source/typescriptTransformBunLo
8
8
  import { beginTtscTransformBuild } from "../transform/cache/beginTtscTransformBuild";
9
9
  import { createTtscTransformCache } from "../transform/cache/createTtscTransformCache";
10
10
  import { resetTtscTransformCache } from "../transform/cache/resetTtscTransformCache";
11
- import { withdrawTtscTransformGenerations } from "../transform/cache/withdrawTtscTransformGenerations";
12
11
  import { transformTtsc } from "../transform/transformTtsc";
13
12
  import { inlineSourceMap } from "../transform/utils/inlineSourceMap";
14
13
  import type { BunLikeBuild } from "./BunLikeBuild";
@@ -74,8 +73,9 @@ function resolveBunOptions(
74
73
  * The first included transformable load resolves options once. One cache shares a validated
75
74
  * project generation across deliveries; bundler start/end boundaries reset
76
75
  * delivery proof, while a runtime retains its immutable module-load session.
77
- * An incomplete observation withdraws the adapter's entire generation cache;
78
- * only the newly compiled delivery is returned within this nonwatching session.
76
+ * Coherent local output with unavailable observation shares first deliveries
77
+ * only inside this nonwatching pass through the common proof owner; no
78
+ * persistent host cache or shared publication can retain it.
79
79
  * Setup snapshots the in-memory key population; changing host files/options
80
80
  * is not authorized merely by an unchanged path or previously quiet callback.
81
81
  * @evidence contracts/performance.md#bound-retention-and-release-resources
@@ -141,7 +141,11 @@ export function bun(options?: TtscBunOptions): BunLikePlugin {
141
141
  // The path this loader just read from disk is the file's own.
142
142
  exactPath: true,
143
143
  watching: false,
144
- markVolatile: () => withdrawTtscTransformGenerations(cache),
144
+ // Bun has no reusable host module cache inside this immutable
145
+ // build/runtime session. The common core owns generation eviction
146
+ // and pass-only reuse; withdrawing it here recompiles every module
147
+ // when Bun cannot supply synchronous observation (#1712, #1713).
148
+ markVolatile: () => {},
145
149
  },
146
150
  );
147
151
  if (result !== undefined) {