ttsc 0.31.1 → 0.31.3

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 (146) hide show
  1. package/lib/compiler/internal/build/BuildExecution.d.ts +6 -3
  2. package/lib/compiler/internal/build/BuildExecution.js +40 -12
  3. package/lib/compiler/internal/build/BuildExecution.js.map +1 -1
  4. package/lib/compiler/internal/build/RunBuildOptions.d.ts +2 -1
  5. package/lib/compiler/internal/startResidentTransform.js +5 -4
  6. package/lib/compiler/internal/startResidentTransform.js.map +1 -1
  7. package/lib/compiler/internal/transformProjectInMemory.js +9 -7
  8. package/lib/compiler/internal/transformProjectInMemory.js.map +1 -1
  9. package/lib/internal/javascriptRuntimeCapabilities.d.ts +13 -4
  10. package/lib/internal/javascriptRuntimeCapabilities.js +56 -6
  11. package/lib/internal/javascriptRuntimeCapabilities.js.map +1 -1
  12. package/lib/internal/pluginSource.d.ts +1 -0
  13. package/lib/internal/pluginSource.js +1 -0
  14. package/lib/internal/pluginSource.js.map +1 -1
  15. package/lib/internal/resolveNodeBinary.d.ts +6 -1
  16. package/lib/internal/resolveNodeBinary.js +6 -2
  17. package/lib/internal/resolveNodeBinary.js.map +1 -1
  18. package/lib/internal/runtimeExecutableIdentity.d.ts +22 -13
  19. package/lib/internal/runtimeExecutableIdentity.js +192 -102
  20. package/lib/internal/runtimeExecutableIdentity.js.map +1 -1
  21. package/lib/launcher/internal/runTtsc.js +2 -2
  22. package/lib/launcher/internal/runTtsc.js.map +1 -1
  23. package/lib/launcher/internal/runtime/installRuntimeHooks.js +58 -4
  24. package/lib/launcher/internal/runtime/installRuntimeHooks.js.map +1 -1
  25. package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.d.ts +5 -1
  26. package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.js +7 -2
  27. package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.js.map +1 -1
  28. package/lib/launcher/internal/ttscserver/runTtscserver.js +8 -1
  29. package/lib/launcher/internal/ttscserver/runTtscserver.js.map +1 -1
  30. package/lib/launcher/internal/watch/WatchTopology.d.ts +20 -3
  31. package/lib/launcher/internal/watch/WatchTopology.js +31 -9
  32. package/lib/launcher/internal/watch/WatchTopology.js.map +1 -1
  33. package/lib/plugin/internal/CapabilityResolutionFormat.d.ts +21 -62
  34. package/lib/plugin/internal/CapabilityResolutionFormat.js +15 -106
  35. package/lib/plugin/internal/CapabilityResolutionFormat.js.map +1 -1
  36. package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.d.ts +6 -0
  37. package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js +4 -4
  38. package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js.map +1 -1
  39. package/lib/plugin/internal/load/loadProjectPlugins.d.ts +17 -3
  40. package/lib/plugin/internal/load/loadProjectPlugins.js +86 -23
  41. package/lib/plugin/internal/load/loadProjectPlugins.js.map +1 -1
  42. package/lib/plugin/internal/readCapabilityResolution.d.ts +6 -0
  43. package/lib/plugin/internal/readCapabilityResolution.js +8 -5
  44. package/lib/plugin/internal/readCapabilityResolution.js.map +1 -1
  45. package/lib/plugin/internal/source/GoEnvironmentReading.d.ts +9 -3
  46. package/lib/plugin/internal/source/GoEnvironmentReading.js +53 -7
  47. package/lib/plugin/internal/source/GoEnvironmentReading.js.map +1 -1
  48. package/lib/plugin/internal/source/NativeSourcePackages.d.ts +44 -6
  49. package/lib/plugin/internal/source/NativeSourcePackages.js +150 -8
  50. package/lib/plugin/internal/source/NativeSourcePackages.js.map +1 -1
  51. package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.d.ts +21 -3
  52. package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js +32 -7
  53. package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js.map +1 -1
  54. package/lib/plugin/internal/source/PluginContentIdentities.d.ts +265 -0
  55. package/lib/plugin/internal/source/PluginContentIdentities.js +452 -0
  56. package/lib/plugin/internal/source/PluginContentIdentities.js.map +1 -0
  57. package/lib/plugin/internal/source/PluginLoadAnswers.d.ts +63 -0
  58. package/lib/plugin/internal/source/PluginLoadAnswers.js +128 -0
  59. package/lib/plugin/internal/source/PluginLoadAnswers.js.map +1 -0
  60. package/lib/plugin/internal/source/SourceBuildCacheLayout.d.ts +10 -0
  61. package/lib/plugin/internal/source/SourceBuildCacheLayout.js +12 -0
  62. package/lib/plugin/internal/source/SourceBuildCacheLayout.js.map +1 -1
  63. package/lib/plugin/internal/source/SourcePluginWorkspace.d.ts +13 -2
  64. package/lib/plugin/internal/source/SourcePluginWorkspace.js +140 -4
  65. package/lib/plugin/internal/source/SourcePluginWorkspace.js.map +1 -1
  66. package/lib/plugin/internal/source/buildSourcePlugin.d.ts +15 -2
  67. package/lib/plugin/internal/source/buildSourcePlugin.js +27 -4
  68. package/lib/plugin/internal/source/buildSourcePlugin.js.map +1 -1
  69. package/lib/plugin/internal/source/computeCacheKey.d.ts +21 -5
  70. package/lib/plugin/internal/source/computeCacheKey.js +71 -29
  71. package/lib/plugin/internal/source/computeCacheKey.js.map +1 -1
  72. package/lib/plugin/internal/source/hashPluginBuildEnvironment.d.ts +7 -3
  73. package/lib/plugin/internal/source/hashPluginBuildEnvironment.js +74 -35
  74. package/lib/plugin/internal/source/hashPluginBuildEnvironment.js.map +1 -1
  75. package/lib/plugin/internal/source/pluginBuildEnvironment.d.ts +8 -3
  76. package/lib/plugin/internal/source/pluginBuildEnvironment.js +8 -4
  77. package/lib/plugin/internal/source/pluginBuildEnvironment.js.map +1 -1
  78. package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.js +12 -2
  79. package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.js.map +1 -1
  80. package/lib/plugin/internal/source/pluginBuildVersions.d.ts +2 -2
  81. package/lib/plugin/internal/source/pluginBuildVersions.js +4 -17
  82. package/lib/plugin/internal/source/pluginBuildVersions.js.map +1 -1
  83. package/lib/plugin/internal/source/pluginSourceState.d.ts +6 -2
  84. package/lib/plugin/internal/source/pluginSourceState.js +20 -8
  85. package/lib/plugin/internal/source/pluginSourceState.js.map +1 -1
  86. package/lib/plugin/internal/source/pluginSourceStateHolds.d.ts +7 -2
  87. package/lib/plugin/internal/source/pluginSourceStateHolds.js +12 -7
  88. package/lib/plugin/internal/source/pluginSourceStateHolds.js.map +1 -1
  89. package/lib/plugin/internal/source/processPluginBuildEnvironment.d.ts +7 -2
  90. package/lib/plugin/internal/source/processPluginBuildEnvironment.js +8 -3
  91. package/lib/plugin/internal/source/processPluginBuildEnvironment.js.map +1 -1
  92. package/lib/plugin/internal/source/provenPluginSourceDigest.d.ts +28 -0
  93. package/lib/plugin/internal/source/provenPluginSourceDigest.js +41 -0
  94. package/lib/plugin/internal/source/provenPluginSourceDigest.js.map +1 -0
  95. package/lib/plugin/internal/source/pruneCacheFileRoot.d.ts +3 -2
  96. package/lib/plugin/internal/source/pruneCacheFileRoot.js +3 -2
  97. package/lib/plugin/internal/source/pruneCacheFileRoot.js.map +1 -1
  98. package/lib/plugin/internal/source/ttscPackageVersion.d.ts +26 -0
  99. package/lib/plugin/internal/source/ttscPackageVersion.js +47 -0
  100. package/lib/plugin/internal/source/ttscPackageVersion.js.map +1 -0
  101. package/lib/plugin/internal/writeCapabilityResolution.d.ts +6 -0
  102. package/lib/plugin/internal/writeCapabilityResolution.js +11 -7
  103. package/lib/plugin/internal/writeCapabilityResolution.js.map +1 -1
  104. package/lib/plugin/resolveCapabilityPlugins.js +67 -15
  105. package/lib/plugin/resolveCapabilityPlugins.js.map +1 -1
  106. package/lib/structures/internal/TtscSingleFileEmitOptions.d.ts +5 -1
  107. package/package.json +8 -8
  108. package/src/compiler/internal/build/BuildExecution.ts +48 -14
  109. package/src/compiler/internal/build/RunBuildOptions.ts +2 -1
  110. package/src/compiler/internal/startResidentTransform.ts +12 -3
  111. package/src/compiler/internal/transformProjectInMemory.ts +10 -2
  112. package/src/internal/javascriptRuntimeCapabilities.ts +71 -5
  113. package/src/internal/pluginSource.ts +1 -0
  114. package/src/internal/resolveNodeBinary.ts +12 -1
  115. package/src/internal/runtimeExecutableIdentity.ts +227 -141
  116. package/src/launcher/internal/runTtsc.ts +6 -2
  117. package/src/launcher/internal/runtime/installRuntimeHooks.ts +68 -3
  118. package/src/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.ts +11 -2
  119. package/src/launcher/internal/ttscserver/runTtscserver.ts +18 -1
  120. package/src/launcher/internal/watch/WatchTopology.ts +38 -9
  121. package/src/plugin/internal/CapabilityResolutionFormat.ts +23 -107
  122. package/src/plugin/internal/load/PluginDescriptorEvaluationCache.ts +14 -4
  123. package/src/plugin/internal/load/loadProjectPlugins.ts +226 -98
  124. package/src/plugin/internal/readCapabilityResolution.ts +17 -6
  125. package/src/plugin/internal/source/GoEnvironmentReading.ts +74 -5
  126. package/src/plugin/internal/source/NativeSourcePackages.ts +262 -5
  127. package/src/plugin/internal/source/PluginBuildEnvironmentReadings.ts +41 -5
  128. package/src/plugin/internal/source/PluginContentIdentities.ts +563 -0
  129. package/src/plugin/internal/source/PluginLoadAnswers.ts +151 -0
  130. package/src/plugin/internal/source/SourceBuildCacheLayout.ts +14 -0
  131. package/src/plugin/internal/source/SourcePluginWorkspace.ts +176 -2
  132. package/src/plugin/internal/source/buildSourcePlugin.ts +43 -3
  133. package/src/plugin/internal/source/computeCacheKey.ts +103 -47
  134. package/src/plugin/internal/source/hashPluginBuildEnvironment.ts +144 -29
  135. package/src/plugin/internal/source/pluginBuildEnvironment.ts +9 -2
  136. package/src/plugin/internal/source/pluginBuildEnvironmentWorker.ts +18 -2
  137. package/src/plugin/internal/source/pluginBuildVersions.ts +5 -26
  138. package/src/plugin/internal/source/pluginSourceState.ts +28 -12
  139. package/src/plugin/internal/source/pluginSourceStateHolds.ts +15 -8
  140. package/src/plugin/internal/source/processPluginBuildEnvironment.ts +8 -2
  141. package/src/plugin/internal/source/provenPluginSourceDigest.ts +45 -0
  142. package/src/plugin/internal/source/pruneCacheFileRoot.ts +3 -2
  143. package/src/plugin/internal/source/ttscPackageVersion.ts +45 -0
  144. package/src/plugin/internal/writeCapabilityResolution.ts +29 -8
  145. package/src/plugin/resolveCapabilityPlugins.ts +87 -13
  146. package/src/structures/internal/TtscSingleFileEmitOptions.ts +8 -1
@@ -18,6 +18,7 @@ const NativeSourcePackages_1 = require("./NativeSourcePackages");
18
18
  const PluginBinaryUse_1 = require("./PluginBinaryUse");
19
19
  const PluginBuildEnvironmentWitness_1 = require("./PluginBuildEnvironmentWitness");
20
20
  const PluginBuildLockProtocol_1 = require("./PluginBuildLockProtocol");
21
+ const PluginContentIdentities_1 = require("./PluginContentIdentities");
21
22
  const SourceBuildCacheLayout_1 = require("./SourceBuildCacheLayout");
22
23
  const SourcePluginAdmission_1 = require("./SourcePluginAdmission");
23
24
  const SourcePluginWorkspace_1 = require("./SourcePluginWorkspace");
@@ -86,8 +87,8 @@ const withGoBuildCacheLease_1 = require("./withGoBuildCacheLease");
86
87
  * @evidence contracts/common.md#prohibited-implementation-shortcuts A changed witness is never overwritten or accepted. A fresh epoch takes a new toolchain reading and performs the actual build or qualified adoption; source, native and cleanup failures stay terminal. No selected SDK tool is warmed by a special command, and no foreign environment or memo is rebased. Shared Go objects retain their owner's toolID/actionID contract; same-version custom tool semantics beyond that contract are not newly guaranteed.
87
88
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain effective environment, recorded-input comparisons and their trust/observation limits, reader registration and managed versus explicit roots; option-map comments state their reading provenance with blank member separation.
88
89
  * @evidence contracts/portability.md#os-neutral-implementation Node path/physical-cache/temp APIs preserve native identities; executable resolution and Windows command handling are isolated owners, and the binary filename explicitly follows its executable platform.
89
- * @evidence contracts/performance.md#efficient-algorithms At most three epochs redo native toolchain observation, key construction, materialization and guarded admission; each can run one Go build, preceded by one batched package metadata command when the loader requires ownership admission. The shared compiler reader can itself make three version observations, hence at most nine such cold observations for a persistently moving compiler and no build when its key witness fails. Full-file bytes, entries, path/sort text, contributors, external trees and witness populations drive work. Scoped cancellation is sampled between phases/entries/commands and does not bound native calls or delegated hashing. First source digest readings are reused across epochs, while each scratch is independently checked. Existing lock contention has its separate wait budget and native Go compiler work remains delegated.
90
- * @evidence contracts/performance.md#reuse-equivalent-work Existing binaries and concurrent builders share the version/platform/source/environment key with reader admission before return, assuming trustworthy cache producers and supplied digest maps. Fixed trimpath compilation removes disposable snapshot paths from Go object identities. Shared load readings and sequential source/toolchain comparisons reject observed changes; metadata reuse and unobserved concurrent mutation remain the underlying witnesses' limits.
90
+ * @evidence contracts/performance.md#efficient-algorithms At most three epochs redo native toolchain observation, key construction, materialization and guarded admission; the first can key on the load's witnessed same-directory reading instead of observing the toolchain again, and later ones always observe it. Each can run one Go build, preceded by one batched package metadata command when the loader requires ownership admission. The shared compiler reader can itself make three version observations, hence at most nine such cold observations for a persistently moving compiler and no build when its key witness fails. Full-file bytes, entries, path/sort text, contributors, external trees and witness populations drive work. Scoped cancellation is sampled between phases/entries/commands and does not bound native calls or delegated hashing. First source digest readings are reused across epochs, while each scratch is independently checked. Existing lock contention has its separate wait budget and native Go compiler work remains delegated.
91
+ * @evidence contracts/performance.md#reuse-equivalent-work Existing binaries and concurrent builders share the version/platform/source/environment key with reader admission before return, assuming trustworthy cache producers and supplied digest maps. The key's content digests come from the record store when their separable metadata still matches, so a new process does not read unchanged sources, SDK or compiler bytes to find an existing binary (#1722). Fixed trimpath compilation removes disposable snapshot paths from Go object identities. Shared load readings and sequential source/toolchain comparisons reject observed changes; metadata reuse and unobserved concurrent mutation remain the underlying witnesses' limits.
91
92
  * @evidence contracts/performance.md#bound-retention-and-release-resources Scratch directories and build/cache leases have finally-based cleanup, including cancellation; cancelled work admits no new post-build prune pass. Scratch removal or lease cleanup can fail, and selected synchronous child settlement does not join arbitrary descendants. Repeated commands can repeat external tool effects; only ttsc-owned failed outputs are discarded, and Go-owned object entries retain their existing lifetime. Pending binary cleanup is best-effort. Reader tokens and their process map grow with distinct physical keys until process exit. Managed pruning attempts age/LRU reclamation while protecting live, unknown and selected entries, so it is not a hard disk bound; explicit roots remain caller-managed.
92
93
  */
93
94
  function buildSourcePlugin(opts) {
@@ -99,13 +100,22 @@ function buildSourcePlugin(opts) {
99
100
  for (let attempt = 0;; attempt += 1) {
100
101
  OwnedSynchronousProcess_1.OwnedSynchronousProcess.checkpoint();
101
102
  const environmentDigests = new Map(opts.environmentDigests);
103
+ // Only the first epoch may key on a reading taken before it; a discarded
104
+ // epoch means the toolchain moved, so later ones read it again.
105
+ const environmentWitnesses = opts.environmentWitnesses === undefined
106
+ ? undefined
107
+ : new Map(attempt === 0 ? opts.environmentWitnesses : []);
102
108
  try {
103
- const binary = buildSourcePluginAttempt(attempt === 0 ? opts : { ...opts, goModReaders: undefined }, env, sourceDigests, environmentDigests);
109
+ const binary = buildSourcePluginAttempt(attempt === 0
110
+ ? { ...opts, environmentWitnesses }
111
+ : { ...opts, environmentWitnesses, goModReaders: undefined }, env, sourceDigests, environmentDigests);
104
112
  OwnedSynchronousProcess_1.OwnedSynchronousProcess.checkpoint();
105
113
  for (const [directory, digest] of sourceDigests)
106
114
  opts.sourceDigests?.set(directory, digest);
107
115
  for (const [directory, digest] of environmentDigests)
108
116
  opts.environmentDigests?.set(directory, digest);
117
+ for (const [directory, witness] of environmentWitnesses ?? [])
118
+ opts.environmentWitnesses?.set(directory, witness);
109
119
  return binary;
110
120
  }
111
121
  catch (error) {
@@ -132,9 +142,20 @@ function buildSourcePluginAttempt(opts, env, sourceDigests, environmentDigests)
132
142
  const goBinary = GoToolResolution_1.GoToolResolution.resolveGoToolForBuild(compiler.binary, env, dir);
133
143
  (0, ensureExecutableGoToolchain_1.ensureExecutableGoToolchain)(goBinary, compiler.bundled);
134
144
  OwnedSynchronousProcess_1.OwnedSynchronousProcess.checkpoint();
145
+ const identities = opts.identities ??
146
+ PluginContentIdentities_1.PluginContentIdentities.open({
147
+ projectRoot: opts.baseDir,
148
+ cacheDir: opts.cacheDir,
149
+ env,
150
+ sources: [
151
+ dir,
152
+ ...overlayDirs,
153
+ ...contributors.map((contributor) => contributor.source),
154
+ ],
155
+ });
135
156
  // The digest of every directory the key covers, as the key read it, which
136
157
  // the build proves against what it compiled.
137
- const goModReader = SourcePluginWorkspace_1.SourcePluginWorkspace.createGoModReader(goBinary, opts.pluginName, env, opts.goModReaders);
158
+ const goModReader = SourcePluginWorkspace_1.SourcePluginWorkspace.createGoModReader(goBinary, opts.pluginName, env, opts.goModReaders, identities);
138
159
  const environmentWitness = new Map();
139
160
  const key = (0, computeCacheKey_1.computeCacheKey)({
140
161
  contributors,
@@ -146,8 +167,10 @@ function buildSourcePluginAttempt(opts, env, sourceDigests, environmentDigests)
146
167
  goModReader,
147
168
  filesystem: opts.filesystem,
148
169
  goBinary,
170
+ identities,
149
171
  overlayDirs,
150
172
  environmentDigests,
173
+ environmentWitnesses: opts.environmentWitnesses,
151
174
  sourceDigests,
152
175
  ttscVersion: opts.ttscVersion,
153
176
  tsgoVersion: opts.tsgoVersion,
@@ -1 +1 @@
1
- {"version":3,"file":"buildSourcePlugin.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/buildSourcePlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildSourcePlugin.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/buildSourcePlugin.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ITtscBuildContributor } from "./ITtscBuildContributor";
2
2
  import type { PluginBuildEnvironmentWitness } from "./PluginBuildEnvironmentWitness";
3
+ import { PluginContentIdentities } from "./PluginContentIdentities";
3
4
  import type { SourceBuildFilesystemOperations } from "./SourceBuildFilesystemOperations";
4
5
  import type { SourcePluginWorkspace } from "./SourcePluginWorkspace";
5
6
  /**
@@ -21,10 +22,12 @@ import type { SourcePluginWorkspace } from "./SourcePluginWorkspace";
21
22
  * values are trusted producer readings, not revalidated content observations.
22
23
  * `sourceDigests` carries the digests one load already took: every build of the
23
24
  * load keys on one reading of each directory, and the load reports those
24
- * readings. The environment enters through `hashPluginBuildEnvironment`, the
25
- * rule that reported state takes it from too, and `environmentDigests` carries
26
- * the digest of each build directory's, so the load reports it without a second
27
- * `go env` run.
25
+ * readings. The environment enters as the digest of
26
+ * `hashPluginBuildEnvironment`, the rule that reported state takes it from too,
27
+ * and `environmentDigests` carries the digest of each build directory's, so the
28
+ * load reports it without a second `go env` run. With `environmentWitnesses`, a
29
+ * reading the load already took for the same directory, such as package
30
+ * selection's, keys the build too, and its witness joins the build's.
28
31
  *
29
32
  * The `ttsc cache` CLI and plugin build pipeline share this key computation.
30
33
  *
@@ -34,7 +37,7 @@ import type { SourcePluginWorkspace } from "./SourcePluginWorkspace";
34
37
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain input coverage and the provenance of reported digests; documented optional output maps have blank separation between members.
35
38
  * @evidence contracts/portability.md#os-neutral-implementation Native roots are resolved with Node path APIs and executable resolution; platform/architecture intentionally distinguish incompatible binary artifacts.
36
39
  * @evidence contracts/performance.md#efficient-algorithms Source digest misses enumerate/sort paths and read individual files in full, not bounded streaming chunks. Overlay/contributor ordering compares path/name text; replacement discovery can read a manifest/run Go and native containment queries. Toolchain/env hashing delegates native metadata/probes/full bytes and memo checks without an unmeasured dominant-cost ranking; JSON framing processes all version/entry/label/digest text.
37
- * @evidence contracts/performance.md#reuse-equivalent-work Caller-owned sourceDigests share supplied absolute-directory readings across roles without independently verifying their provenance/currentness. EnvironmentDigests receives this call's selected environment identity so reporting can avoid another probe; it does not skip environment hashing. Reuse inherits the selected population and metadata/producer premises.
40
+ * @evidence contracts/performance.md#reuse-equivalent-work Caller-owned sourceDigests share supplied absolute-directory readings across roles without independently verifying their provenance/currentness. A supplied record store lets a new process reuse a directory, SDK or executable digest only while its separable metadata signature matches the recorded one (#1722), so unchanged inputs are not re-read per process. EnvironmentDigests receives this call's selected environment identity so reporting can avoid another probe. A same-directory reading of the same load, with its witness, replaces a second environment probe; the witness then joins this build's, which the build compares after it ran, and a non-default byte adapter never shares. Reuse inherits the selected population and metadata/producer premises.
38
41
  *
39
42
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Output maps belong to the enclosing load; this operation retains no handles or process-wide records itself.
40
43
  */
@@ -54,6 +57,13 @@ export declare function computeCacheKey(inputs: {
54
57
  * its plugin sources' states without reading the environment again.
55
58
  */
56
59
  environmentDigests?: Map<string, string>;
60
+ /**
61
+ * Witness of each reading in `environmentDigests` this load took, by
62
+ * directory. A digest with its witness stands for this call's own reading:
63
+ * the key takes it instead of running Go again and copies the witness into
64
+ * `environmentWitness`. Filled with this call's reading when it takes one.
65
+ */
66
+ environmentWitnesses?: Map<string, PluginBuildEnvironmentWitness.Record>;
57
67
  /**
58
68
  * Receives selected native toolchain dependencies from the environment reader
59
69
  * for later comparison under its metadata-distinguishability premise; it is
@@ -64,6 +74,12 @@ export declare function computeCacheKey(inputs: {
64
74
  filesystem?: Partial<SourceBuildFilesystemOperations>;
65
75
  goBinary?: string;
66
76
  goModReader?: SourcePluginWorkspace.GoModReader;
77
+ /**
78
+ * Record store that proves unchanged sources, overlays, contributors, GOROOT
79
+ * and executables from metadata in a new process (#1722). Without it every
80
+ * process reads their bytes.
81
+ */
82
+ identities?: PluginContentIdentities.Store;
67
83
  overlayDirs?: readonly string[];
68
84
  /**
69
85
  * Digests of the source directories this load already read, by absolute path.
@@ -8,9 +8,9 @@ const node_crypto_1 = __importDefault(require("node:crypto"));
8
8
  const node_fs_1 = __importDefault(require("node:fs"));
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
10
  const GoToolResolution_1 = require("./GoToolResolution");
11
+ const PluginContentIdentities_1 = require("./PluginContentIdentities");
11
12
  const hashPluginBuildEnvironment_1 = require("./hashPluginBuildEnvironment");
12
13
  const pluginModuleReplaceDirectories_1 = require("./pluginModuleReplaceDirectories");
13
- const pluginSourceDigest_1 = require("./pluginSourceDigest");
14
14
  /**
15
15
  * Compute a 32-character lowercase key from a plugin build's SHA-256 digest.
16
16
  *
@@ -30,10 +30,12 @@ const pluginSourceDigest_1 = require("./pluginSourceDigest");
30
30
  * values are trusted producer readings, not revalidated content observations.
31
31
  * `sourceDigests` carries the digests one load already took: every build of the
32
32
  * load keys on one reading of each directory, and the load reports those
33
- * readings. The environment enters through `hashPluginBuildEnvironment`, the
34
- * rule that reported state takes it from too, and `environmentDigests` carries
35
- * the digest of each build directory's, so the load reports it without a second
36
- * `go env` run.
33
+ * readings. The environment enters as the digest of
34
+ * `hashPluginBuildEnvironment`, the rule that reported state takes it from too,
35
+ * and `environmentDigests` carries the digest of each build directory's, so the
36
+ * load reports it without a second `go env` run. With `environmentWitnesses`, a
37
+ * reading the load already took for the same directory, such as package
38
+ * selection's, keys the build too, and its witness joins the build's.
37
39
  *
38
40
  * The `ttsc cache` CLI and plugin build pipeline share this key computation.
39
41
  *
@@ -43,7 +45,7 @@ const pluginSourceDigest_1 = require("./pluginSourceDigest");
43
45
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain input coverage and the provenance of reported digests; documented optional output maps have blank separation between members.
44
46
  * @evidence contracts/portability.md#os-neutral-implementation Native roots are resolved with Node path APIs and executable resolution; platform/architecture intentionally distinguish incompatible binary artifacts.
45
47
  * @evidence contracts/performance.md#efficient-algorithms Source digest misses enumerate/sort paths and read individual files in full, not bounded streaming chunks. Overlay/contributor ordering compares path/name text; replacement discovery can read a manifest/run Go and native containment queries. Toolchain/env hashing delegates native metadata/probes/full bytes and memo checks without an unmeasured dominant-cost ranking; JSON framing processes all version/entry/label/digest text.
46
- * @evidence contracts/performance.md#reuse-equivalent-work Caller-owned sourceDigests share supplied absolute-directory readings across roles without independently verifying their provenance/currentness. EnvironmentDigests receives this call's selected environment identity so reporting can avoid another probe; it does not skip environment hashing. Reuse inherits the selected population and metadata/producer premises.
48
+ * @evidence contracts/performance.md#reuse-equivalent-work Caller-owned sourceDigests share supplied absolute-directory readings across roles without independently verifying their provenance/currentness. A supplied record store lets a new process reuse a directory, SDK or executable digest only while its separable metadata signature matches the recorded one (#1722), so unchanged inputs are not re-read per process. EnvironmentDigests receives this call's selected environment identity so reporting can avoid another probe. A same-directory reading of the same load, with its witness, replaces a second environment probe; the witness then joins this build's, which the build compares after it ran, and a non-default byte adapter never shares. Reuse inherits the selected population and metadata/producer premises.
47
49
  *
48
50
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Output maps belong to the enclosing load; this operation retains no handles or process-wide records itself.
49
51
  */
@@ -78,43 +80,83 @@ function computeCacheKey(inputs) {
78
80
  // binaries produced by the former absolute-ancestry layout out of this
79
81
  // layout's cache admissions, including callers with no SDK overlays.
80
82
  hash.update(JSON.stringify(["external-source-layout", 1]));
81
- // The same framed values enter the key and the environment-only digest,
82
- // which pluginBuildEnvironment reads for this directory.
83
- const environment = node_crypto_1.default.createHash("sha256");
84
- (0, hashPluginBuildEnvironment_1.hashPluginBuildEnvironment)({
85
- update: (data) => {
86
- hash.update(data);
87
- environment.update(data);
88
- },
89
- }, goBinary, inputs.dir, env, filesystem, inputs.environmentWitness);
90
- inputs.environmentDigests?.set(node_path_1.default.resolve(inputs.dir), environment.digest("hex"));
91
- hashSourceDirectory(hash, "plugin", inputs.dir, inputs.sourceDigests);
92
- // Local replacement targets outside the module supply separately keyed
93
- // sources. buildSourcePlugin snapshots and proves their copies before
94
- // redirecting the Go replacement directives to the scratch tree.
95
- for (const replacement of (0, pluginModuleReplaceDirectories_1.pluginModuleReplaceDirectories)(inputs.dir, env, goBinary, inputs.goModReader)) {
96
- hashSourceDirectory(hash, `replace:${replacement.modulePath}${replacement.version === undefined ? "" : `@${replacement.version}`}`, replacement.directory, inputs.sourceDigests);
97
- }
98
- for (const [index, dir] of [...(inputs.overlayDirs ?? [])].sort().entries()) {
99
- hashSourceDirectory(hash, `overlay:${index}`, dir, inputs.sourceDigests);
100
- }
83
+ const overlays = [...(inputs.overlayDirs ?? [])].sort();
101
84
  // Hash contributors in sorted-by-name order so two consumers with the
102
85
  // same logical set produce the same key regardless of declaration order
103
86
  // in the host's plugin descriptor.
104
87
  const sortedContributors = [...(inputs.contributors ?? [])].sort((a, b) => a.name === b.name ? 0 : a.name < b.name ? -1 : 1);
88
+ // A store whose root lies inside a directory this key hashes would write
89
+ // records into that source, so such a store proves nothing here. The build
90
+ // rejects that cache placement (`SourcePluginAdmission`) once every source
91
+ // is known; replacement targets narrow the store below, before their own
92
+ // digests, since only Go's reading of the manifest names them.
93
+ let identities = PluginContentIdentities_1.PluginContentIdentities.outside(inputs.identities, [
94
+ inputs.dir,
95
+ ...overlays,
96
+ ...sortedContributors.map((contributor) => contributor.source),
97
+ ]);
98
+ // The key frames the environment digest pluginBuildEnvironment reports for
99
+ // this directory. WARNING (#1721): package selection reads that environment
100
+ // first in the same load; reading it again here doubled `go env` and
101
+ // `go version` per load. A reading taken through another byte adapter is
102
+ // not this one's, so only the default adapter shares it.
103
+ const environmentDirectory = node_path_1.default.resolve(inputs.dir);
104
+ const sharedDigest = inputs.filesystem === undefined
105
+ ? inputs.environmentDigests?.get(environmentDirectory)
106
+ : undefined;
107
+ const sharedWitness = sharedDigest === undefined
108
+ ? undefined
109
+ : inputs.environmentWitnesses?.get(environmentDirectory);
110
+ let environment;
111
+ if (sharedDigest !== undefined && sharedWitness !== undefined) {
112
+ // The build compares this witness after it ran, exactly as it would its
113
+ // own reading's, so a toolchain change since the reading still refuses.
114
+ for (const [file, state] of sharedWitness)
115
+ if (!inputs.environmentWitness?.has(file))
116
+ inputs.environmentWitness?.set(file, state);
117
+ environment = sharedDigest;
118
+ }
119
+ else {
120
+ const witness = inputs.environmentWitness ??
121
+ (inputs.environmentWitnesses === undefined ? undefined : new Map());
122
+ const reading = node_crypto_1.default.createHash("sha256");
123
+ (0, hashPluginBuildEnvironment_1.hashPluginBuildEnvironment)(reading, goBinary, inputs.dir, env, filesystem, witness, identities);
124
+ environment = reading.digest("hex");
125
+ inputs.environmentDigests?.set(environmentDirectory, environment);
126
+ if (inputs.filesystem === undefined && witness !== undefined)
127
+ inputs.environmentWitnesses?.set(environmentDirectory, new Map(witness));
128
+ }
129
+ hash.update(JSON.stringify(["environment", environment]));
130
+ const directory = (label, root) => hashSourceDirectory(hash, label, root, inputs.sourceDigests, identities);
131
+ directory("plugin", inputs.dir);
132
+ // Local replacement targets outside the module supply separately keyed
133
+ // sources. buildSourcePlugin snapshots and proves their copies before
134
+ // redirecting the Go replacement directives to the scratch tree. Go reads the
135
+ // manifest after the plugin's digest, so an edit made meanwhile lands between
136
+ // that digest and the build's copy, which `requireKeyedSource` refuses.
137
+ const replacements = (0, pluginModuleReplaceDirectories_1.pluginModuleReplaceDirectories)(inputs.dir, env, goBinary, inputs.goModReader);
138
+ identities = PluginContentIdentities_1.PluginContentIdentities.outside(identities, replacements.map((replacement) => replacement.directory));
139
+ for (const replacement of replacements) {
140
+ directory(`replace:${replacement.modulePath}${replacement.version === undefined ? "" : `@${replacement.version}`}`, replacement.directory);
141
+ }
142
+ for (const [index, dir] of overlays.entries()) {
143
+ directory(`overlay:${index}`, dir);
144
+ }
105
145
  for (const contributor of sortedContributors) {
106
- hashSourceDirectory(hash, `contributor:${contributor.name}`, contributor.source, inputs.sourceDigests);
146
+ directory(`contributor:${contributor.name}`, contributor.source);
107
147
  }
108
148
  return hash.digest("hex").slice(0, 32);
109
149
  }
110
150
  const DEFAULT_SOURCE_BUILD_FILESYSTEM = Object.freeze({
111
151
  readFile: (location) => node_fs_1.default.readFileSync(location),
112
152
  });
113
- function hashSourceDirectory(hash, label, root, digests) {
153
+ function hashSourceDirectory(hash, label, root, digests, identities) {
114
154
  const directory = node_path_1.default.resolve(root);
115
155
  let digest = digests?.get(directory);
116
156
  if (digest === undefined) {
117
- digest = (0, pluginSourceDigest_1.pluginSourceDigest)(directory);
157
+ // WARNING (#1722): the load-scoped map above ends with the process. Only the
158
+ // record store spares a new process from reading every source byte again.
159
+ digest = PluginContentIdentities_1.PluginContentIdentities.sourceDirectory(identities, directory);
118
160
  digests?.set(directory, digest);
119
161
  }
120
162
  hash.update(JSON.stringify(["dir", label, digest]));
@@ -1 +1 @@
1
- {"version":3,"file":"computeCacheKey.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/computeCacheKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"computeCacheKey.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/computeCacheKey.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { PluginBuildEnvironmentWitness } from "./PluginBuildEnvironmentWitness";
2
+ import { PluginContentIdentities } from "./PluginContentIdentities";
2
3
  import type { SourceBuildFilesystemOperations } from "./SourceBuildFilesystemOperations";
3
4
  /**
4
5
  * Hash the environment a plugin build is keyed on into `hash`: the Go
@@ -33,15 +34,18 @@ import type { SourceBuildFilesystemOperations } from "./SourceBuildFilesystemOpe
33
34
  * variable carries: the Go tool, the Go environment file `go env -w` writes,
34
35
  * the executables the C toolchain commands name, and GOROOT. A consumer that
35
36
  * keeps the reading compares their metadata before reusing it.
37
+ * @param identities Record store that lets a new process prove the GOROOT
38
+ * corpus and executable bytes from their metadata (`PluginContentIdentities`,
39
+ * #1722); without it every process reads them.
36
40
  * @evidence contracts/common.md#principled-implementation Fixed artifact flags, observed compiler bytes/version, selected reported-or-fallback build values, named command executables and selected SDK files enter the same framed identity used by source-state reporting. Fallback values and metadata-qualified reuse are explicit premises, not complete observation of arbitrary toolchain inputs.
37
41
  * @evidence contracts/common.md#clear-and-simple-design Private helpers separate compiler identity, Go-reported settings, external variables and SDK content while sharing one hash sink and optional pre-read witness.
38
42
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Cache signatures include real identity/change metadata and effective invocation context; failed SDK witnessing refuses reuse rather than accepting a VERSION-only proxy.
39
43
  * @evidence contracts/common.md#meaningful-documentation Native documentation names the input classes and witness purpose; private comments explain context-sensitive compiler memoization and SDK exclusions without treating a passing check as proof.
40
44
  * @evidence contracts/portability.md#os-neutral-implementation Node path/stat/process APIs resolve native tool identities; platform-specific executable suffixes and environment lookup are isolated in GoToolResolution, and Go supplies its own effective build settings.
41
45
  * @evidence contracts/performance.md#efficient-algorithms SDK traversal sorts reached entry names and selected file paths, performs native stat/realpath/link queries and serializes topology/metadata/path text. Matching manifests share aggregate hashes; changes read full selected files via the caller adapter, retaining file buffers with population/topology data. Compiler misses capture at most three complete version/byte readings when native metadata moves during a reading; only a stable attempt enters the memo. Go env can run up to three times for its file witness, and command tokens can each perform executable searches/full reads. Environment sorting/framing and command substring parsing also process name/value/command bytes; E/D/F/B alone do not capture native lookup or text comparison costs.
42
- * @evidence contracts/performance.md#reuse-equivalent-work Compiler memo identity includes selected path/file metadata and invocation cwd/environment; SDK aggregate reuse requires matching complete ordered metadata/topology. Both rely on native metadata distinguishability and sequential observation premises, not independently rehashed content on each hit. Physical directories expand once per selection policy while aliases retain edges; optional caller witnesses receive reached selected dependencies.
43
- * @evidence contracts/performance.md#bound-retention-and-release-resources Compiler, Go-environment-path and SDK maps retain historical distinct tool/context/root keys without eviction. SDK population/topology and full individual file reads contribute transient bytes; synchronous probes delegate process/capture lifetime to their owner and do not certify arbitrary descendants are gone. No independent entry/record/file/output byte ceiling is imposed here.
46
+ * @evidence contracts/performance.md#reuse-equivalent-work Compiler memo identity includes selected path/file metadata and invocation cwd/environment; SDK aggregate reuse requires matching complete ordered metadata/topology. With a record store, a new process reuses the SDK aggregate and executable digests only while their signatures match the recorded ones and every stamp is separable from a freshly minted reference (#1722); `go version` and `go env` stay live because they report toolchain selection no file metadata shows. All of this relies on native metadata distinguishability and sequential observation premises. Physical directories expand once per selection policy while aliases retain edges; optional caller witnesses receive reached selected dependencies.
47
+ * @evidence contracts/performance.md#bound-retention-and-release-resources Compiler, Go-environment-path and SDK maps retain historical distinct tool/context/root keys without eviction; persisted records belong to the single-file collector. SDK population/topology and full individual file reads contribute transient bytes; synchronous probes delegate process/capture lifetime to their owner and do not certify arbitrary descendants are gone. No independent entry/record/file/output byte ceiling is imposed here.
44
48
  */
45
49
  export declare function hashPluginBuildEnvironment(hash: {
46
50
  update(data: string): unknown;
47
- }, goBinary: string | undefined, directory: string, env: NodeJS.ProcessEnv, filesystem: SourceBuildFilesystemOperations, witness?: PluginBuildEnvironmentWitness.Record): void;
51
+ }, goBinary: string | undefined, directory: string, env: NodeJS.ProcessEnv, filesystem: SourceBuildFilesystemOperations, witness?: PluginBuildEnvironmentWitness.Record, identities?: PluginContentIdentities.Store): void;