@ttsc/unplugin 0.31.0 → 0.31.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/core/bridge/projectRecordMoved.js +1 -1
- package/lib/core/bridge/projectRecordMoved.js.map +1 -1
- package/lib/core/bridge/projectRecordMoved.mjs +1 -1
- package/lib/core/bridge/projectRecordMoved.mjs.map +1 -1
- package/lib/core/bun/bun.d.cts +3 -2
- package/lib/core/bun/bun.d.mts +3 -2
- package/lib/core/bun/bun.d.ts +3 -2
- package/lib/core/bun/bun.js +8 -4
- package/lib/core/bun/bun.js.map +1 -1
- package/lib/core/bun/bun.mjs +8 -4
- package/lib/core/bun/bun.mjs.map +1 -1
- package/lib/core/observer/createInputObserver.js +7 -6
- package/lib/core/observer/createInputObserver.js.map +1 -1
- package/lib/core/observer/createInputObserver.mjs +7 -6
- package/lib/core/observer/createInputObserver.mjs.map +1 -1
- package/lib/core/observer/openIsolatedRecursiveWatch.d.cts +11 -12
- package/lib/core/observer/openIsolatedRecursiveWatch.d.mts +11 -12
- package/lib/core/observer/openIsolatedRecursiveWatch.d.ts +11 -12
- package/lib/core/observer/openIsolatedRecursiveWatch.js +11 -12
- package/lib/core/observer/openIsolatedRecursiveWatch.js.map +1 -1
- package/lib/core/observer/openIsolatedRecursiveWatch.mjs +11 -12
- package/lib/core/observer/openIsolatedRecursiveWatch.mjs.map +1 -1
- package/lib/core/transform/cache/TtscCachedProjectTransform.d.cts +12 -3
- package/lib/core/transform/cache/TtscCachedProjectTransform.d.mts +12 -3
- package/lib/core/transform/cache/TtscCachedProjectTransform.d.ts +12 -3
- package/lib/core/transform/cache/selectCachedGenerationAction.d.cts +2 -0
- package/lib/core/transform/cache/selectCachedGenerationAction.d.mts +2 -0
- package/lib/core/transform/cache/selectCachedGenerationAction.d.ts +2 -0
- package/lib/core/transform/cache/selectCachedGenerationAction.js +1 -1
- package/lib/core/transform/cache/selectCachedGenerationAction.js.map +1 -1
- package/lib/core/transform/cache/selectCachedGenerationAction.mjs +1 -1
- package/lib/core/transform/cache/selectCachedGenerationAction.mjs.map +1 -1
- package/lib/core/transform/deliverCachedTransform.d.cts +36 -0
- package/lib/core/transform/deliverCachedTransform.d.mts +36 -0
- package/lib/core/transform/deliverCachedTransform.d.ts +36 -0
- package/lib/core/transform/deliverCachedTransform.js +73 -0
- package/lib/core/transform/deliverCachedTransform.js.map +1 -0
- package/lib/core/transform/deliverCachedTransform.mjs +71 -0
- package/lib/core/transform/deliverCachedTransform.mjs.map +1 -0
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.d.cts +2 -2
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.d.mts +2 -2
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.d.ts +2 -2
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.js +6 -2
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.js.map +1 -1
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.mjs +6 -2
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.mjs.map +1 -1
- package/lib/core/transform/envelope/selectExternalInputPaths.d.cts +3 -5
- package/lib/core/transform/envelope/selectExternalInputPaths.d.mts +3 -5
- package/lib/core/transform/envelope/selectExternalInputPaths.d.ts +3 -5
- package/lib/core/transform/envelope/selectExternalInputPaths.js +8 -7
- package/lib/core/transform/envelope/selectExternalInputPaths.js.map +1 -1
- package/lib/core/transform/envelope/selectExternalInputPaths.mjs +8 -7
- package/lib/core/transform/envelope/selectExternalInputPaths.mjs.map +1 -1
- package/lib/core/transform/filesystem/TtscTransformFilesystemOperations.d.cts +15 -12
- package/lib/core/transform/filesystem/TtscTransformFilesystemOperations.d.mts +15 -12
- package/lib/core/transform/filesystem/TtscTransformFilesystemOperations.d.ts +15 -12
- package/lib/core/transform/generation/captureFailedGenerationInputStates.js +1 -1
- package/lib/core/transform/generation/captureFailedGenerationInputStates.js.map +1 -1
- package/lib/core/transform/generation/captureFailedGenerationInputStates.mjs +1 -1
- package/lib/core/transform/generation/captureFailedGenerationInputStates.mjs.map +1 -1
- package/lib/core/transform/generation/captureTransformGeneration.js +1 -1
- package/lib/core/transform/generation/captureTransformGeneration.js.map +1 -1
- package/lib/core/transform/generation/captureTransformGeneration.mjs +1 -1
- package/lib/core/transform/generation/captureTransformGeneration.mjs.map +1 -1
- package/lib/core/transform/generation/failedGenerationEnvironmentChanged.js +2 -2
- package/lib/core/transform/generation/failedGenerationEnvironmentChanged.js.map +1 -1
- package/lib/core/transform/generation/failedGenerationEnvironmentChanged.mjs +2 -2
- package/lib/core/transform/generation/failedGenerationEnvironmentChanged.mjs.map +1 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.d.cts +3 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.d.mts +3 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.d.ts +3 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.js +3 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.js.map +1 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.mjs +3 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.mjs.map +1 -1
- package/lib/core/transform/generation/transformProject.d.cts +9 -7
- package/lib/core/transform/generation/transformProject.d.mts +9 -7
- package/lib/core/transform/generation/transformProject.d.ts +9 -7
- package/lib/core/transform/generation/transformProject.js +14 -9
- package/lib/core/transform/generation/transformProject.js.map +1 -1
- package/lib/core/transform/generation/transformProject.mjs +14 -9
- package/lib/core/transform/generation/transformProject.mjs.map +1 -1
- package/lib/core/transform/inputs/pluginSourceFilesDigest.d.cts +9 -3
- package/lib/core/transform/inputs/pluginSourceFilesDigest.d.mts +9 -3
- package/lib/core/transform/inputs/pluginSourceFilesDigest.d.ts +9 -3
- package/lib/core/transform/inputs/pluginSourceFilesDigest.js +10 -4
- package/lib/core/transform/inputs/pluginSourceFilesDigest.js.map +1 -1
- package/lib/core/transform/inputs/pluginSourceFilesDigest.mjs +11 -5
- package/lib/core/transform/inputs/pluginSourceFilesDigest.mjs.map +1 -1
- package/lib/core/transform/inputs/pluginSourceHolds.d.cts +4 -2
- package/lib/core/transform/inputs/pluginSourceHolds.d.mts +4 -2
- package/lib/core/transform/inputs/pluginSourceHolds.d.ts +4 -2
- package/lib/core/transform/inputs/pluginSourceHolds.js +9 -4
- package/lib/core/transform/inputs/pluginSourceHolds.js.map +1 -1
- package/lib/core/transform/inputs/pluginSourceHolds.mjs +9 -4
- package/lib/core/transform/inputs/pluginSourceHolds.mjs.map +1 -1
- package/lib/core/transform/inputs/pluginSourceState.d.cts +3 -1
- package/lib/core/transform/inputs/pluginSourceState.d.mts +3 -1
- package/lib/core/transform/inputs/pluginSourceState.d.ts +3 -1
- package/lib/core/transform/inputs/pluginSourceState.js +8 -3
- package/lib/core/transform/inputs/pluginSourceState.js.map +1 -1
- package/lib/core/transform/inputs/pluginSourceState.mjs +8 -3
- package/lib/core/transform/inputs/pluginSourceState.mjs.map +1 -1
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.d.cts +18 -5
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.d.mts +18 -5
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.d.ts +18 -5
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.js +53 -12
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.js.map +1 -1
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.mjs +53 -12
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.mjs.map +1 -1
- package/lib/core/transform/tracker/broker/WatchBroker.d.cts +14 -4
- package/lib/core/transform/tracker/broker/WatchBroker.d.mts +14 -4
- package/lib/core/transform/tracker/broker/WatchBroker.d.ts +14 -4
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.d.cts +63 -0
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.d.mts +63 -0
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.d.ts +63 -0
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.js +89 -0
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.js.map +1 -0
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.mjs +89 -0
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.mjs.map +1 -0
- package/lib/core/transform/tracker/broker/drainWatchBroker.d.cts +8 -8
- package/lib/core/transform/tracker/broker/drainWatchBroker.d.mts +8 -8
- package/lib/core/transform/tracker/broker/drainWatchBroker.d.ts +8 -8
- package/lib/core/transform/tracker/broker/drainWatchBroker.js +12 -13
- package/lib/core/transform/tracker/broker/drainWatchBroker.js.map +1 -1
- package/lib/core/transform/tracker/broker/drainWatchBroker.mjs +12 -13
- package/lib/core/transform/tracker/broker/drainWatchBroker.mjs.map +1 -1
- package/lib/core/transform/tracker/broker/getWatchBroker.d.cts +18 -15
- package/lib/core/transform/tracker/broker/getWatchBroker.d.mts +18 -15
- package/lib/core/transform/tracker/broker/getWatchBroker.d.ts +18 -15
- package/lib/core/transform/tracker/broker/getWatchBroker.js +87 -17
- package/lib/core/transform/tracker/broker/getWatchBroker.js.map +1 -1
- package/lib/core/transform/tracker/broker/getWatchBroker.mjs +87 -17
- package/lib/core/transform/tracker/broker/getWatchBroker.mjs.map +1 -1
- package/lib/core/transform/tracker/broker/openBrokeredWatch.d.cts +5 -5
- package/lib/core/transform/tracker/broker/openBrokeredWatch.d.mts +5 -5
- package/lib/core/transform/tracker/broker/openBrokeredWatch.d.ts +5 -5
- package/lib/core/transform/tracker/broker/openBrokeredWatch.js +11 -14
- package/lib/core/transform/tracker/broker/openBrokeredWatch.js.map +1 -1
- package/lib/core/transform/tracker/broker/openBrokeredWatch.mjs +11 -14
- package/lib/core/transform/tracker/broker/openBrokeredWatch.mjs.map +1 -1
- package/lib/core/transform/tracker/broker/usesWatchBroker.d.cts +7 -7
- package/lib/core/transform/tracker/broker/usesWatchBroker.d.mts +7 -7
- package/lib/core/transform/tracker/broker/usesWatchBroker.d.ts +7 -7
- package/lib/core/transform/tracker/broker/usesWatchBroker.js +7 -7
- package/lib/core/transform/tracker/broker/usesWatchBroker.mjs +7 -7
- package/lib/core/transform/tracker/broker/watchBrokerSource.d.cts +9 -10
- package/lib/core/transform/tracker/broker/watchBrokerSource.d.mts +9 -10
- package/lib/core/transform/tracker/broker/watchBrokerSource.d.ts +9 -10
- package/lib/core/transform/tracker/broker/watchBrokerSource.js +10 -11
- package/lib/core/transform/tracker/broker/watchBrokerSource.js.map +1 -1
- package/lib/core/transform/tracker/broker/watchBrokerSource.mjs +10 -11
- package/lib/core/transform/tracker/broker/watchBrokerSource.mjs.map +1 -1
- package/lib/core/transform/transformTtsc.d.cts +7 -4
- package/lib/core/transform/transformTtsc.d.mts +7 -4
- package/lib/core/transform/transformTtsc.d.ts +7 -4
- package/lib/core/transform/transformTtsc.js +38 -93
- package/lib/core/transform/transformTtsc.js.map +1 -1
- package/lib/core/transform/transformTtsc.mjs +38 -93
- package/lib/core/transform/transformTtsc.mjs.map +1 -1
- package/lib/core/transform/validation/TtscGenerationProof.d.cts +105 -0
- package/lib/core/transform/validation/TtscGenerationProof.d.mts +105 -0
- package/lib/core/transform/validation/TtscGenerationProof.d.ts +105 -0
- package/lib/core/transform/validation/TtscGenerationProof.js +149 -0
- package/lib/core/transform/validation/TtscGenerationProof.js.map +1 -0
- package/lib/core/transform/validation/TtscGenerationProof.mjs +149 -0
- package/lib/core/transform/validation/TtscGenerationProof.mjs.map +1 -0
- package/lib/core/transform/validation/captureUniversalHostInputValidation.js +2 -2
- package/lib/core/transform/validation/captureUniversalHostInputValidation.js.map +1 -1
- package/lib/core/transform/validation/captureUniversalHostInputValidation.mjs +2 -2
- package/lib/core/transform/validation/captureUniversalHostInputValidation.mjs.map +1 -1
- package/lib/core/transform/validation/matchesCachedSource.d.cts +18 -15
- package/lib/core/transform/validation/matchesCachedSource.d.mts +18 -15
- package/lib/core/transform/validation/matchesCachedSource.d.ts +18 -15
- package/lib/core/transform/validation/matchesCachedSource.js +28 -22
- package/lib/core/transform/validation/matchesCachedSource.js.map +1 -1
- package/lib/core/transform/validation/matchesCachedSource.mjs +28 -22
- package/lib/core/transform/validation/matchesCachedSource.mjs.map +1 -1
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.d.cts +3 -2
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.d.mts +3 -2
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.d.ts +3 -2
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.js +4 -4
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.js.map +1 -1
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.mjs +4 -4
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.mjs.map +1 -1
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.d.cts +2 -1
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.d.mts +2 -1
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.d.ts +2 -1
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.js +2 -2
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.js.map +1 -1
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.mjs +2 -2
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.mjs.map +1 -1
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.d.cts +3 -2
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.d.mts +3 -2
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.d.ts +3 -2
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.js +7 -5
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.js.map +1 -1
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.mjs +7 -5
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.mjs.map +1 -1
- package/lib/core/transform/validation/matchesUniversalHostInputs.d.cts +3 -2
- package/lib/core/transform/validation/matchesUniversalHostInputs.d.mts +3 -2
- package/lib/core/transform/validation/matchesUniversalHostInputs.d.ts +3 -2
- package/lib/core/transform/validation/matchesUniversalHostInputs.js +5 -5
- package/lib/core/transform/validation/matchesUniversalHostInputs.js.map +1 -1
- package/lib/core/transform/validation/matchesUniversalHostInputs.mjs +5 -5
- package/lib/core/transform/validation/matchesUniversalHostInputs.mjs.map +1 -1
- package/lib/core/transform/validation/nativeInputPredicatesHold.d.cts +5 -4
- package/lib/core/transform/validation/nativeInputPredicatesHold.d.mts +5 -4
- package/lib/core/transform/validation/nativeInputPredicatesHold.d.ts +5 -4
- package/lib/core/transform/validation/nativeInputPredicatesHold.js +31 -12
- package/lib/core/transform/validation/nativeInputPredicatesHold.js.map +1 -1
- package/lib/core/transform/validation/nativeInputPredicatesHold.mjs +31 -12
- package/lib/core/transform/validation/nativeInputPredicatesHold.mjs.map +1 -1
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.d.cts +2 -1
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.d.mts +2 -1
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.d.ts +2 -1
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.js +2 -2
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.js.map +1 -1
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.mjs +2 -2
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.mjs.map +1 -1
- package/lib/core/transform/watch/captureWatchInputBaseline.d.cts +4 -0
- package/lib/core/transform/watch/captureWatchInputBaseline.d.mts +4 -0
- package/lib/core/transform/watch/captureWatchInputBaseline.d.ts +4 -0
- package/lib/core/transform/watch/captureWatchInputBaseline.js +3 -0
- package/lib/core/transform/watch/captureWatchInputBaseline.js.map +1 -1
- package/lib/core/transform/watch/captureWatchInputBaseline.mjs +3 -0
- package/lib/core/transform/watch/captureWatchInputBaseline.mjs.map +1 -1
- package/lib/core/transform/watch/captureWatchInputBaselines.d.cts +2 -0
- package/lib/core/transform/watch/captureWatchInputBaselines.d.mts +2 -0
- package/lib/core/transform/watch/captureWatchInputBaselines.d.ts +2 -0
- package/lib/core/transform/watch/captureWatchInputBaselines.js +3 -1
- package/lib/core/transform/watch/captureWatchInputBaselines.js.map +1 -1
- package/lib/core/transform/watch/captureWatchInputBaselines.mjs +3 -1
- package/lib/core/transform/watch/captureWatchInputBaselines.mjs.map +1 -1
- package/lib/core/transform/watch/notifyWatchInputs.js +3 -0
- package/lib/core/transform/watch/notifyWatchInputs.js.map +1 -1
- package/lib/core/transform/watch/notifyWatchInputs.mjs +3 -0
- package/lib/core/transform/watch/notifyWatchInputs.mjs.map +1 -1
- package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.d.cts +5 -2
- package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.d.mts +5 -2
- package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.d.ts +5 -2
- package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.js +6 -3
- package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.js.map +1 -1
- package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.mjs +6 -3
- package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.mjs.map +1 -1
- package/lib/core/turbopack/turbopack.js +2 -1
- package/lib/core/turbopack/turbopack.js.map +1 -1
- package/lib/core/turbopack/turbopack.mjs +2 -1
- package/lib/core/turbopack/turbopack.mjs.map +1 -1
- package/package.json +3 -3
- package/src/core/bridge/projectRecordMoved.ts +3 -1
- package/src/core/bun/bun.ts +8 -4
- package/src/core/observer/createInputObserver.ts +8 -5
- package/src/core/observer/openIsolatedRecursiveWatch.ts +11 -12
- package/src/core/transform/cache/TtscCachedProjectTransform.ts +13 -3
- package/src/core/transform/cache/selectCachedGenerationAction.ts +9 -1
- package/src/core/transform/deliverCachedTransform.ts +97 -0
- package/src/core/transform/envelope/selectDeclaredProjectInputKeys.ts +5 -2
- package/src/core/transform/envelope/selectExternalInputPaths.ts +7 -7
- package/src/core/transform/filesystem/TtscTransformFilesystemOperations.ts +15 -12
- package/src/core/transform/generation/captureFailedGenerationInputStates.ts +1 -0
- package/src/core/transform/generation/captureTransformGeneration.ts +6 -1
- package/src/core/transform/generation/failedGenerationEnvironmentChanged.ts +12 -2
- package/src/core/transform/generation/selectTransformAttemptDisposition.ts +3 -1
- package/src/core/transform/generation/transformProject.ts +13 -9
- package/src/core/transform/inputs/pluginSourceFilesDigest.ts +11 -4
- package/src/core/transform/inputs/pluginSourceHolds.ts +13 -3
- package/src/core/transform/inputs/pluginSourceState.ts +8 -2
- package/src/core/transform/inputs/preparePluginBuildEnvironments.ts +64 -11
- package/src/core/transform/tracker/broker/WatchBroker.ts +15 -4
- package/src/core/transform/tracker/broker/WatchBrokerTransport.ts +82 -0
- package/src/core/transform/tracker/broker/drainWatchBroker.ts +12 -13
- package/src/core/transform/tracker/broker/getWatchBroker.ts +89 -18
- package/src/core/transform/tracker/broker/openBrokeredWatch.ts +11 -14
- package/src/core/transform/tracker/broker/usesWatchBroker.ts +7 -7
- package/src/core/transform/tracker/broker/watchBrokerSource.ts +10 -11
- package/src/core/transform/transformTtsc.ts +38 -92
- package/src/core/transform/validation/TtscGenerationProof.ts +201 -0
- package/src/core/transform/validation/captureUniversalHostInputValidation.ts +2 -1
- package/src/core/transform/validation/matchesCachedSource.ts +27 -21
- package/src/core/transform/validation/matchesCompleteInputSnapshot.ts +5 -3
- package/src/core/transform/validation/matchesNarrowPersistentInputs.ts +3 -1
- package/src/core/transform/validation/matchesUniversalHostInputTrees.ts +8 -3
- package/src/core/transform/validation/matchesUniversalHostInputs.ts +6 -4
- package/src/core/transform/validation/nativeInputPredicatesHold.ts +36 -14
- package/src/core/transform/validation/notificationsProveProgramUnchanged.ts +3 -1
- package/src/core/transform/watch/captureWatchInputBaseline.ts +4 -0
- package/src/core/transform/watch/captureWatchInputBaselines.ts +7 -1
- package/src/core/transform/watch/notifyWatchInputs.ts +3 -0
- package/src/core/transform/watch/watchInputEvidenceMatchesDisk.ts +12 -2
- package/src/core/turbopack/turbopack.ts +2 -1
|
@@ -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,
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* macOS, each registration's watches are streams of their own, started
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"openBrokeredWatch.mjs","sources":["../../../../../src/core/transform/tracker/broker/openBrokeredWatch.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2EG;AACG,SAAU,iBAAiB,CAC/B,SAAyC,EACzC,OAMC,EAAA;AAMD,IAAA,MAAM,MAAM,GAAG,cAAc,EAAE;;;;;;;AAO/B,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB;IAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAI;AAC5C,QAAA,IAAI,SAAiB;AACrB,QAAA,IAAI;YACF,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC7D;AAAE,QAAA,MAAM;YACN,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC9C;QACA,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;;;;;AAK5C,QAAA,IAAI,KAA0C;AAC9C,QAAA,IAAI;YACF,KAAK,GAAG,MAAM,CAAC;AACb,kBAAE,gBAAgB,CACd,SAAS,EACT,OAAO,CAAC,SAAS,EACjB,cAAc,EACd,OAAO,CAAC,UAAU;kBAEpB,SAAS;QACf;AAAE,QAAA,MAAM;YACN,KAAK,GAAG,SAAS;QACnB;QACA,OAAO;YACL,SAAS;YACT,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;AAClE,YAAA,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAC3D,YAAA,IAAI,KAAK,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;SAC1C;AACH,IAAA,CAAC,CAAC;AACF,IAAA,MAAM,CAAC,oBAAoB,IAAI,CAAC;AAChC,IAAA,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;AAC5C,IAAA,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE;AAC1B,IAAA,IAAI,YAAyB;IAC7B,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,KAAI;QAC7C,YAAY,GAAG,OAAO;AACxB,IAAA,CAAC,CAAC;AACF,IAAA,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE;QAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;AACtB,QAAA,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,SAAS;AACV,KAAA,CAAC;IACF,MAAM,KAAK,GAAG,MAAW;QACvB,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS;YAAE;AAC1B,QAAA,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,KAAK,EAAE;QACd,IAAI,MAAM,GAAG,KAAK;AAClB,QAAA,IAAI,OAAgB;AACpB,QAAA,IAAI;AACF,YAAA,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;QACzD;QAAE,OAAO,KAAK,EAAE;YACd,MAAM,GAAG,IAAI;YACb,OAAO,GAAG,KAAK;QACjB;QACA,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE;AACnC,YAAA,IAAI,YAAY,CAAC,OAAO,KAAK,MAAM,EAAE;AACnC,gBAAA,YAAY,CAAC,OAAO,GAAG,SAAS;YAClC;AACA,YAAA,IAAI;AACF,gBAAA,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC;YACpC;YAAE,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,MAAM,EAAE;oBACX,MAAM,GAAG,IAAI;oBACb,OAAO,GAAG,KAAK;gBACjB;YACF;AACA,YAAA,IAAI;AACF,gBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YACrB;YAAE,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,MAAM,EAAE;oBACX,MAAM,GAAG,IAAI;oBACb,OAAO,GAAG,KAAK;gBACjB;YACF;QACF;AACA,QAAA,IAAI,MAAM;AAAE,YAAA,MAAM,OAAO;AAC3B,IAAA,CAAC;AACD,IAAA,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE;QAChC,SAAS,EAAE,OAAO,CAAC,SAAS;AAC5B,QAAA,SAAS,EAAE,UAAU;QACrB,EAAE;AACF,QAAA,EAAE,EAAE,KAAK;AACV,KAAA,CAAC;AACF,IAAA,IAAI,KAAiC;AACrC,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,QAAQ;AACR,QAAA,IAAI,OAAO,CAAO,CAAC,OAAO,KAAI;AAC5B,YAAA,KAAK,GAAG,UAAU,CAAC,MAAK;;;gBAGtB,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE;AAC9C,oBAAA,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;AACrB,oBAAA,IAAI;AACF,wBAAA,KAAK,EAAE;oBACT;AAAE,oBAAA,MAAM;;oBAER;gBACF;AACA,gBAAA,OAAO,EAAE;YACX,CAAC,EAAE,sBAAsB,CAAC;AAC5B,QAAA,CAAC,CAAC;AACH,KAAA,CAAC,CAAC,OAAO,CAAC,MAAK;QACd,YAAY,CAAC,KAAK,CAAC;AACnB,QAAA,MAAM,CAAC,oBAAoB,IAAI,CAAC;;;;;AAKhC,QAAA,IAAI,MAAM,CAAC,oBAAoB,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE;AACnE,YAAA,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC;QAC/C;AACF,IAAA,CAAC,CAAC;IACF,OAAO;QACL,KAAK;QACL,KAAK,EAAE,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QACpD,KAAK;KACN;AACH;AAEA;AACA,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB;AAEnD;;;;;;;;;AASG;AACH,SAAS,cAAc,CAAC,SAAiB,EAAA;IACvC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;IACjD,IAAI,QAAQ,KAAK,SAAS;AAAE,QAAA,OAAO,QAAQ;AAC3C,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC;IACrE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACzC,yBAAyB,CAAC,MAAM,CAAC;AACjC,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CACzB,MAAM,EACN,CAAA,EAAG,4BAA4B,GAAG,OAAO,CAAC,GAAG,CAAA,CAAE,CAChD;AACD,IAAA,IAAI,iBAAiB,CAAC,IAAI,KAAK,CAAC,EAAE;AAChC,QAAA,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAK;YACxB,KAAK,MAAM,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE;AAC/C,gBAAA,IAAI;AACF,oBAAA,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBACrD;AAAE,gBAAA,MAAM;;gBAER;YACF;AACF,QAAA,CAAC,CAAC;IACJ;AACA,IAAA,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC;AAC3C,IAAA,OAAO,SAAS;AAClB;;;;"}
|
|
@@ -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
|
|
7
|
-
*
|
|
8
|
-
* own FSEventStream, whose dropped events
|
|
9
|
-
* re-creates whenever any watch in the host
|
|
10
|
-
* discards (samchon/ttsc#1418,
|
|
11
|
-
* its own `watch` retains that
|
|
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
|
|
7
|
-
*
|
|
8
|
-
* own FSEventStream, whose dropped events
|
|
9
|
-
* re-creates whenever any watch in the host
|
|
10
|
-
* discards (samchon/ttsc#1418,
|
|
11
|
-
* its own `watch` retains that
|
|
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
|
|
7
|
-
*
|
|
8
|
-
* own FSEventStream, whose dropped events
|
|
9
|
-
* re-creates whenever any watch in the host
|
|
10
|
-
* discards (samchon/ttsc#1418,
|
|
11
|
-
* its own `watch` retains that
|
|
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
|
|
8
|
-
*
|
|
9
|
-
* own FSEventStream, whose dropped events
|
|
10
|
-
* re-creates whenever any watch in the host
|
|
11
|
-
* discards (samchon/ttsc#1418,
|
|
12
|
-
* its own `watch` retains that
|
|
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
|
|
6
|
-
*
|
|
7
|
-
* own FSEventStream, whose dropped events
|
|
8
|
-
* re-creates whenever any watch in the host
|
|
9
|
-
* discards (samchon/ttsc#1418,
|
|
10
|
-
* its own `watch` retains that
|
|
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
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
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
|
|
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
|
|
64
|
-
*
|
|
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
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
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
|
|
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
|
|
64
|
-
*
|
|
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
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
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
|
|
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
|
|
64
|
-
*
|
|
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
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
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
|
|
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
|
|
68
|
-
*
|
|
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
|
-
//
|
|
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
|
|
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
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
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
|
|
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
|
|
66
|
-
*
|
|
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
|
-
//
|
|
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
|
|
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;;;;"}
|
|
@@ -37,7 +37,7 @@ import type { TtscTransformHooks } from "./watch/TtscTransformHooks.cjs";
|
|
|
37
37
|
* per build, not per compilation.
|
|
38
38
|
* @evidence contracts/common.md#principled-implementation Project selection and generation-qualified cache admission preserve compiler disk authority; fresh-only success additionally needs an explicit nonwatching lifecycle, coherent project declaration and actual host-cache withdrawal, because incomplete observation cannot support watch invalidation.
|
|
39
39
|
* @evidence contracts/common.md#clear-and-simple-design One delivery coordinator composes project selection, cache admission, compilation, output selection and host notifications; dedicated owners handle proof and lifetime internals.
|
|
40
|
-
* @evidence contracts/common.md#prohibited-implementation-shortcuts Wrapper modules cannot poison source baselines
|
|
40
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Wrapper modules cannot poison source baselines; incomplete local results can share only explicitly nonwatching first deliveries in their exact pass. Unknown/watching lifecycles or unsupported withdrawal reject and evict them rather than invent persistent records or dependency closure.
|
|
41
41
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs and argument tags explain project scope, no-transform outcomes, cache epochs and per-build notification responsibilities with links to maintained reference context.
|
|
42
42
|
* @evidence contracts/performance.md#efficient-algorithms
|
|
43
43
|
* Selection/key construction pays ancestor/config/alias/option/path text work.
|
|
@@ -45,15 +45,18 @@ import type { TtscTransformHooks } from "./watch/TtscTransformHooks.cjs";
|
|
|
45
45
|
* replay source/project/external/universal proofs before selecting output.
|
|
46
46
|
* In-flight/valid completed reuse avoids compilation, not those checks or
|
|
47
47
|
* output/map/notification/record work. Capture misses pay whole native compile
|
|
48
|
-
* and input populations
|
|
48
|
+
* and input populations. The common proof owner skips redundant environment
|
|
49
|
+
* preparation for proven first deliveries and shares synchronous native proof
|
|
50
|
+
* queries; persistent/repeated delivery establishes fresh authority. Concurrent supersession can repeat the outer loop
|
|
49
51
|
* without a delivery-level retry/time bound here.
|
|
50
52
|
* @evidence contracts/performance.md#reuse-equivalent-work Cache identity covers config/options/plugins/aliases; current generations, pass-qualified terminal verdicts and in-flight Promises are shared only while their source and dependency proof remains valid.
|
|
51
53
|
* @evidence contracts/performance.md#bound-retention-and-release-resources
|
|
52
54
|
* Optional cache state retains current generation Promises/results and
|
|
53
55
|
* per-key dependency/case facts without a byte/key cap here. Native tasks
|
|
54
56
|
* belong to compiler/capture owners; uncached captures retain no notification
|
|
55
|
-
* or persistent clock probe. Fresh-only delivery
|
|
56
|
-
*
|
|
57
|
+
* or persistent clock probe. Fresh-only delivery releases capture resources,
|
|
58
|
+
* retaining only an explicitly admitted local pass result; rejected or failed
|
|
59
|
+
* incomplete handoff detaches its generation. Eviction/disposal attempt independent resource release
|
|
57
60
|
* and native failures need not close every handle or remove every probe.
|
|
58
61
|
* @evidence contracts/portability.md#os-neutral-implementation Native module paths and project coordinates use supported path/filesystem abstractions, while actual case policy and watcher capability come from generation proof rather than OS-name assumptions.
|
|
59
62
|
*/
|
|
@@ -37,7 +37,7 @@ import type { TtscTransformHooks } from "./watch/TtscTransformHooks.mjs";
|
|
|
37
37
|
* per build, not per compilation.
|
|
38
38
|
* @evidence contracts/common.md#principled-implementation Project selection and generation-qualified cache admission preserve compiler disk authority; fresh-only success additionally needs an explicit nonwatching lifecycle, coherent project declaration and actual host-cache withdrawal, because incomplete observation cannot support watch invalidation.
|
|
39
39
|
* @evidence contracts/common.md#clear-and-simple-design One delivery coordinator composes project selection, cache admission, compilation, output selection and host notifications; dedicated owners handle proof and lifetime internals.
|
|
40
|
-
* @evidence contracts/common.md#prohibited-implementation-shortcuts Wrapper modules cannot poison source baselines
|
|
40
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Wrapper modules cannot poison source baselines; incomplete local results can share only explicitly nonwatching first deliveries in their exact pass. Unknown/watching lifecycles or unsupported withdrawal reject and evict them rather than invent persistent records or dependency closure.
|
|
41
41
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs and argument tags explain project scope, no-transform outcomes, cache epochs and per-build notification responsibilities with links to maintained reference context.
|
|
42
42
|
* @evidence contracts/performance.md#efficient-algorithms
|
|
43
43
|
* Selection/key construction pays ancestor/config/alias/option/path text work.
|
|
@@ -45,15 +45,18 @@ import type { TtscTransformHooks } from "./watch/TtscTransformHooks.mjs";
|
|
|
45
45
|
* replay source/project/external/universal proofs before selecting output.
|
|
46
46
|
* In-flight/valid completed reuse avoids compilation, not those checks or
|
|
47
47
|
* output/map/notification/record work. Capture misses pay whole native compile
|
|
48
|
-
* and input populations
|
|
48
|
+
* and input populations. The common proof owner skips redundant environment
|
|
49
|
+
* preparation for proven first deliveries and shares synchronous native proof
|
|
50
|
+
* queries; persistent/repeated delivery establishes fresh authority. Concurrent supersession can repeat the outer loop
|
|
49
51
|
* without a delivery-level retry/time bound here.
|
|
50
52
|
* @evidence contracts/performance.md#reuse-equivalent-work Cache identity covers config/options/plugins/aliases; current generations, pass-qualified terminal verdicts and in-flight Promises are shared only while their source and dependency proof remains valid.
|
|
51
53
|
* @evidence contracts/performance.md#bound-retention-and-release-resources
|
|
52
54
|
* Optional cache state retains current generation Promises/results and
|
|
53
55
|
* per-key dependency/case facts without a byte/key cap here. Native tasks
|
|
54
56
|
* belong to compiler/capture owners; uncached captures retain no notification
|
|
55
|
-
* or persistent clock probe. Fresh-only delivery
|
|
56
|
-
*
|
|
57
|
+
* or persistent clock probe. Fresh-only delivery releases capture resources,
|
|
58
|
+
* retaining only an explicitly admitted local pass result; rejected or failed
|
|
59
|
+
* incomplete handoff detaches its generation. Eviction/disposal attempt independent resource release
|
|
57
60
|
* and native failures need not close every handle or remove every probe.
|
|
58
61
|
* @evidence contracts/portability.md#os-neutral-implementation Native module paths and project coordinates use supported path/filesystem abstractions, while actual case policy and watcher capability come from generation proof rather than OS-name assumptions.
|
|
59
62
|
*/
|
|
@@ -37,7 +37,7 @@ import type { TtscTransformHooks } from "./watch/TtscTransformHooks";
|
|
|
37
37
|
* per build, not per compilation.
|
|
38
38
|
* @evidence contracts/common.md#principled-implementation Project selection and generation-qualified cache admission preserve compiler disk authority; fresh-only success additionally needs an explicit nonwatching lifecycle, coherent project declaration and actual host-cache withdrawal, because incomplete observation cannot support watch invalidation.
|
|
39
39
|
* @evidence contracts/common.md#clear-and-simple-design One delivery coordinator composes project selection, cache admission, compilation, output selection and host notifications; dedicated owners handle proof and lifetime internals.
|
|
40
|
-
* @evidence contracts/common.md#prohibited-implementation-shortcuts Wrapper modules cannot poison source baselines
|
|
40
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Wrapper modules cannot poison source baselines; incomplete local results can share only explicitly nonwatching first deliveries in their exact pass. Unknown/watching lifecycles or unsupported withdrawal reject and evict them rather than invent persistent records or dependency closure.
|
|
41
41
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs and argument tags explain project scope, no-transform outcomes, cache epochs and per-build notification responsibilities with links to maintained reference context.
|
|
42
42
|
* @evidence contracts/performance.md#efficient-algorithms
|
|
43
43
|
* Selection/key construction pays ancestor/config/alias/option/path text work.
|
|
@@ -45,15 +45,18 @@ import type { TtscTransformHooks } from "./watch/TtscTransformHooks";
|
|
|
45
45
|
* replay source/project/external/universal proofs before selecting output.
|
|
46
46
|
* In-flight/valid completed reuse avoids compilation, not those checks or
|
|
47
47
|
* output/map/notification/record work. Capture misses pay whole native compile
|
|
48
|
-
* and input populations
|
|
48
|
+
* and input populations. The common proof owner skips redundant environment
|
|
49
|
+
* preparation for proven first deliveries and shares synchronous native proof
|
|
50
|
+
* queries; persistent/repeated delivery establishes fresh authority. Concurrent supersession can repeat the outer loop
|
|
49
51
|
* without a delivery-level retry/time bound here.
|
|
50
52
|
* @evidence contracts/performance.md#reuse-equivalent-work Cache identity covers config/options/plugins/aliases; current generations, pass-qualified terminal verdicts and in-flight Promises are shared only while their source and dependency proof remains valid.
|
|
51
53
|
* @evidence contracts/performance.md#bound-retention-and-release-resources
|
|
52
54
|
* Optional cache state retains current generation Promises/results and
|
|
53
55
|
* per-key dependency/case facts without a byte/key cap here. Native tasks
|
|
54
56
|
* belong to compiler/capture owners; uncached captures retain no notification
|
|
55
|
-
* or persistent clock probe. Fresh-only delivery
|
|
56
|
-
*
|
|
57
|
+
* or persistent clock probe. Fresh-only delivery releases capture resources,
|
|
58
|
+
* retaining only an explicitly admitted local pass result; rejected or failed
|
|
59
|
+
* incomplete handoff detaches its generation. Eviction/disposal attempt independent resource release
|
|
57
60
|
* and native failures need not close every handle or remove every probe.
|
|
58
61
|
* @evidence contracts/portability.md#os-neutral-implementation Native module paths and project coordinates use supported path/filesystem abstractions, while actual case policy and watcher capability come from generation proof rather than OS-name assumptions.
|
|
59
62
|
*/
|