rivet-design 0.17.3 → 0.17.4

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 (77) hide show
  1. package/dist/agent-variants/WorktreeOrchestrator.d.ts +17 -22
  2. package/dist/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  3. package/dist/agent-variants/WorktreeOrchestrator.js +126 -214
  4. package/dist/agent-variants/WorktreeOrchestrator.js.map +1 -1
  5. package/dist/agent-variants/WorktreeOrchestrator.testHelpers.d.ts +0 -1
  6. package/dist/agent-variants/WorktreeOrchestrator.testHelpers.d.ts.map +1 -1
  7. package/dist/agent-variants/WorktreeOrchestrator.testHelpers.js +2 -2
  8. package/dist/agent-variants/WorktreeOrchestrator.testHelpers.js.map +1 -1
  9. package/dist/agent-variants/contracts.d.ts +3 -3
  10. package/dist/agent-variants/contracts.d.ts.map +1 -1
  11. package/dist/agent-variants/contracts.js +2 -2
  12. package/dist/agent-variants/contracts.js.map +1 -1
  13. package/dist/cli/commands/libraryOpen.d.ts.map +1 -1
  14. package/dist/cli/commands/libraryOpen.js +5 -1
  15. package/dist/cli/commands/libraryOpen.js.map +1 -1
  16. package/dist/proxy-middleware/preview-bridge.d.ts.map +1 -1
  17. package/dist/proxy-middleware/preview-bridge.js +7 -5
  18. package/dist/proxy-middleware/preview-bridge.js.map +1 -1
  19. package/dist/proxy-middleware/preview-connections.d.ts +9 -0
  20. package/dist/proxy-middleware/preview-connections.d.ts.map +1 -0
  21. package/dist/proxy-middleware/preview-connections.js +30 -0
  22. package/dist/proxy-middleware/preview-connections.js.map +1 -0
  23. package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
  24. package/dist/proxy-middleware/proxy-config.js +41 -43
  25. package/dist/proxy-middleware/proxy-config.js.map +1 -1
  26. package/dist/routes/agentVariants.d.ts.map +1 -1
  27. package/dist/routes/agentVariants.js +8 -5
  28. package/dist/routes/agentVariants.js.map +1 -1
  29. package/dist/routes/mcp.d.ts.map +1 -1
  30. package/dist/routes/mcp.js +5 -1
  31. package/dist/routes/mcp.js.map +1 -1
  32. package/dist/services/DependencyPreparationService.d.ts +34 -0
  33. package/dist/services/DependencyPreparationService.d.ts.map +1 -0
  34. package/dist/services/DependencyPreparationService.js +344 -0
  35. package/dist/services/DependencyPreparationService.js.map +1 -0
  36. package/dist/services/HistoryReplayService.d.ts +5 -4
  37. package/dist/services/HistoryReplayService.d.ts.map +1 -1
  38. package/dist/services/HistoryReplayService.js +57 -14
  39. package/dist/services/HistoryReplayService.js.map +1 -1
  40. package/dist/services/OperatingSystemServices.d.ts +0 -10
  41. package/dist/services/OperatingSystemServices.d.ts.map +1 -1
  42. package/dist/services/OperatingSystemServices.js +23 -74
  43. package/dist/services/OperatingSystemServices.js.map +1 -1
  44. package/dist/services/ProjectPackageManager.d.ts +35 -0
  45. package/dist/services/ProjectPackageManager.d.ts.map +1 -0
  46. package/dist/services/ProjectPackageManager.js +201 -0
  47. package/dist/services/ProjectPackageManager.js.map +1 -0
  48. package/dist/services/TreeStore.d.ts.map +1 -1
  49. package/dist/services/TreeStore.js +3 -9
  50. package/dist/services/TreeStore.js.map +1 -1
  51. package/dist/services/WorktreeManager.d.ts +8 -10
  52. package/dist/services/WorktreeManager.d.ts.map +1 -1
  53. package/dist/services/WorktreeManager.js +87 -66
  54. package/dist/services/WorktreeManager.js.map +1 -1
  55. package/dist/utils/cloneOrCopyDirSync.d.ts.map +1 -1
  56. package/dist/utils/cloneOrCopyDirSync.js +2 -0
  57. package/dist/utils/cloneOrCopyDirSync.js.map +1 -1
  58. package/dist/utils/devServerError.d.ts +3 -1
  59. package/dist/utils/devServerError.d.ts.map +1 -1
  60. package/dist/utils/devServerError.js +5 -1
  61. package/dist/utils/devServerError.js.map +1 -1
  62. package/dist/utils/htmlDocument.d.ts +4 -5
  63. package/dist/utils/htmlDocument.d.ts.map +1 -1
  64. package/dist/utils/htmlDocument.js +20 -11
  65. package/dist/utils/htmlDocument.js.map +1 -1
  66. package/dist/utils/internalGitIdentity.d.ts +7 -0
  67. package/dist/utils/internalGitIdentity.d.ts.map +1 -0
  68. package/dist/utils/internalGitIdentity.js +17 -0
  69. package/dist/utils/internalGitIdentity.js.map +1 -0
  70. package/dist/utils/portUtils.d.ts +4 -2
  71. package/dist/utils/portUtils.d.ts.map +1 -1
  72. package/dist/utils/portUtils.js +4 -3
  73. package/dist/utils/portUtils.js.map +1 -1
  74. package/package.json +4 -2
  75. package/src/ui/dist/assets/{LibraryApp-PQNnarmo.js → LibraryApp-qbLqcNxM.js} +1 -1
  76. package/src/ui/dist/assets/{main-C7hdsU-C.js → main-touv07Dk.js} +76 -76
  77. package/src/ui/dist/index.html +1 -1
@@ -0,0 +1,344 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.previewDependencies = exports.DependencyPreparationService = void 0;
7
+ const promises_1 = __importDefault(require("fs/promises"));
8
+ const fs_1 = require("fs");
9
+ const path_1 = __importDefault(require("path"));
10
+ const crypto_1 = require("crypto");
11
+ const glob_1 = require("glob");
12
+ const package_manager_detector_1 = require("package-manager-detector");
13
+ const devServerError_1 = require("../utils/devServerError");
14
+ const OperatingSystemServices_1 = require("./OperatingSystemServices");
15
+ const ProjectPackageManager_1 = require("./ProjectPackageManager");
16
+ const MAX_CONCURRENT_INSTALLS = 2;
17
+ const INSTALL_TIMEOUT_MS = 5 * 60 * 1000;
18
+ const VERSION_TIMEOUT_MS = 20_000;
19
+ const TERMINATION_SETTLE_TIMEOUT_MS = 5_000;
20
+ const OUTPUT_TAIL_LIMIT = 4_000;
21
+ // Any manager's inputs and artifacts participate for every project: a stray
22
+ // config for a different manager still invalidates reuse, and absent files
23
+ // hash as absent.
24
+ const LOCKFILE_NAMES = new Set((0, ProjectPackageManager_1.forEveryPackageManager)(ProjectPackageManager_1.LOCKFILES));
25
+ const INPUT_FILES = [
26
+ 'package.json',
27
+ ...LOCKFILE_NAMES,
28
+ ...(0, ProjectPackageManager_1.forEveryPackageManager)(ProjectPackageManager_1.INSTALL_CONFIG_FILES),
29
+ ];
30
+ const INSTALL_ARTIFACT_PATHS = (0, ProjectPackageManager_1.forEveryPackageManager)(ProjectPackageManager_1.INSTALL_ARTIFACTS);
31
+ const INSTALL_CONTENT_GLOB_PATTERNS = (0, ProjectPackageManager_1.forEveryPackageManager)(ProjectPackageManager_1.INSTALL_CONTENT_GLOBS);
32
+ const INSTALL_ENVIRONMENT_PREFIXES = [
33
+ 'npm_config_',
34
+ 'yarn_',
35
+ 'pnpm_',
36
+ 'corepack_',
37
+ ];
38
+ const INSTALL_ENVIRONMENT_KEYS = new Set(['node_options', 'path']);
39
+ /** Selects environment variables that change how installs resolve or run. */
40
+ const isInstallEnvironmentKey = (key) => {
41
+ const lower = key.toLowerCase();
42
+ return (INSTALL_ENVIRONMENT_PREFIXES.some((prefix) => lower.startsWith(prefix)) ||
43
+ INSTALL_ENVIRONMENT_KEYS.has(lower));
44
+ };
45
+ /** Yarn 1 (classic) and 2+ (berry) take different frozen-install flags. */
46
+ const yarnAgentForVersion = (version) => Number.parseInt(version, 10) > 1 ? 'yarn@berry' : 'yarn';
47
+ /** Preserves installation output locally with a distinct preview failure reason. */
48
+ const preparationError = (message, detail = '') => new devServerError_1.DevServerStartError({
49
+ message: detail ? `${message}\n${detail}` : message,
50
+ reason: 'dependency_install_failed',
51
+ portInUse: false,
52
+ detail,
53
+ });
54
+ /** Prepares dependencies through the project's tool and reuses unchanged workspaces. */
55
+ class DependencyPreparationService {
56
+ pending = new Map();
57
+ prepared = new Map();
58
+ waiting = [];
59
+ activeInstalls = 0;
60
+ /** @effect Installs only within the supplied workspace; concurrent callers share preparation. */
61
+ async prepare(options) {
62
+ try {
63
+ const project = await (0, ProjectPackageManager_1.resolveProjectPackageManager)(options);
64
+ if (!project)
65
+ return { status: 'skipped' };
66
+ const existing = this.pending.get(project.rootPath);
67
+ if (existing)
68
+ return await existing;
69
+ const pending = this.prepareProject(project, options);
70
+ this.pending.set(project.rootPath, pending);
71
+ try {
72
+ return await pending;
73
+ }
74
+ finally {
75
+ this.pending.delete(project.rootPath);
76
+ }
77
+ }
78
+ catch (error) {
79
+ if (error instanceof devServerError_1.DevServerStartError)
80
+ throw error;
81
+ throw preparationError(`Could not prepare preview dependencies: ${error instanceof Error ? error.message : String(error)}`);
82
+ }
83
+ }
84
+ /** Releases preparation metadata when an owned workspace is removed. */
85
+ forget(workspaceRoot) {
86
+ let boundary = path_1.default.resolve(workspaceRoot);
87
+ try {
88
+ boundary = (0, fs_1.realpathSync)(boundary);
89
+ }
90
+ catch {
91
+ /* workspace was removed */
92
+ }
93
+ for (const root of this.prepared.keys()) {
94
+ if ((0, ProjectPackageManager_1.isWithinWorkspace)(boundary, root))
95
+ this.prepared.delete(root);
96
+ }
97
+ }
98
+ /** Waits for cancelled preparation to release its files before workspace teardown. */
99
+ async settle(workspaceRoot) {
100
+ if (this.pending.size === 0) {
101
+ this.forget(workspaceRoot);
102
+ return;
103
+ }
104
+ const boundary = await promises_1.default
105
+ .realpath(workspaceRoot)
106
+ .catch(() => path_1.default.resolve(workspaceRoot));
107
+ await Promise.allSettled([...this.pending.entries()]
108
+ .filter(([root]) => (0, ProjectPackageManager_1.isWithinWorkspace)(boundary, root))
109
+ .map(([, pending]) => pending));
110
+ this.forget(boundary);
111
+ }
112
+ async prepareProject(project, options) {
113
+ options.signal?.throwIfAborted();
114
+ await this.assertOwnedInstall(project, options.workspaceRoot);
115
+ const versionOutput = await this.run(project, ['--version'], VERSION_TIMEOUT_MS, options.signal);
116
+ const version = versionOutput
117
+ .trim()
118
+ .split(/\r?\n/)
119
+ .reverse()
120
+ .find((line) => /^\d+\.\d+\.\d+(?:-.+)?$/.test(line));
121
+ if (!version)
122
+ throw preparationError(`Could not identify the ${project.name} version`, versionOutput);
123
+ if (project.version && version !== project.version) {
124
+ throw preparationError(`This project requires ${project.name}@${project.version}, but the available command reports ${version}. Activate the project's package manager version, then retry the preview.`);
125
+ }
126
+ // The running binary's major version is the authoritative classic/berry
127
+ // signal; static detection from lockfile content is only a hint.
128
+ const agent = project.name === 'yarn' ? yarnAgentForVersion(version) : project.agent;
129
+ const fingerprint = await this.fingerprint(project, version);
130
+ const previous = this.prepared.get(project.rootPath);
131
+ if (!options.force &&
132
+ previous?.fingerprint === fingerprint &&
133
+ previous.artifacts === (await this.artifacts(project))) {
134
+ return { status: 'reused', packageManager: project };
135
+ }
136
+ this.prepared.delete(project.rootPath);
137
+ // An unlocked install may create a lockfile, but other inputs must stay stable.
138
+ const inputsBeforeInstall = project.hasLockfile
139
+ ? fingerprint
140
+ : await this.fingerprint(project, version, true);
141
+ const command = (0, package_manager_detector_1.resolveCommand)(agent, project.hasLockfile ? 'frozen' : 'install', []);
142
+ if (!command)
143
+ throw preparationError(`No dependency install command is available for ${project.name}`);
144
+ if (project.name === 'npm')
145
+ command.args.push('--no-audit', '--no-fund');
146
+ if (this.activeInstalls >= MAX_CONCURRENT_INSTALLS) {
147
+ await new Promise((resolve, reject) => {
148
+ const enter = () => {
149
+ options.signal?.removeEventListener('abort', abort);
150
+ resolve();
151
+ };
152
+ const abort = () => {
153
+ const index = this.waiting.indexOf(enter);
154
+ if (index !== -1)
155
+ this.waiting.splice(index, 1);
156
+ reject(options.signal?.reason);
157
+ };
158
+ this.waiting.push(enter);
159
+ options.signal?.addEventListener('abort', abort, { once: true });
160
+ if (options.signal?.aborted)
161
+ abort();
162
+ });
163
+ }
164
+ else {
165
+ this.activeInstalls++;
166
+ }
167
+ try {
168
+ options.signal?.throwIfAborted();
169
+ await this.run(project, command.args, INSTALL_TIMEOUT_MS, options.signal);
170
+ const completedFingerprint = await this.fingerprint(project, version);
171
+ const inputsAfterInstall = project.hasLockfile
172
+ ? completedFingerprint
173
+ : await this.fingerprint(project, version, true);
174
+ if (inputsAfterInstall !== inputsBeforeInstall) {
175
+ throw preparationError('Dependency inputs changed during installation. Retry the preview to prepare the updated project.');
176
+ }
177
+ // Installs may create lockfiles and loader metadata; fingerprint their completed state.
178
+ this.prepared.set(project.rootPath, {
179
+ fingerprint: completedFingerprint,
180
+ artifacts: await this.artifacts(project),
181
+ });
182
+ return { status: 'prepared', packageManager: project };
183
+ }
184
+ finally {
185
+ const next = this.waiting.shift();
186
+ if (next)
187
+ next();
188
+ else
189
+ this.activeInstalls--;
190
+ }
191
+ }
192
+ /** Prevents package managers from modifying an installation outside the direction. */
193
+ async assertOwnedInstall(project, workspaceRoot) {
194
+ const boundary = await promises_1.default.realpath(workspaceRoot);
195
+ for (const packagePath of project.packagePaths) {
196
+ for (const file of new Set([
197
+ '.yarn',
198
+ ...INSTALL_ARTIFACT_PATHS,
199
+ ...INPUT_FILES,
200
+ ])) {
201
+ const candidate = path_1.default.join(packagePath, file);
202
+ try {
203
+ const resolved = await promises_1.default.realpath(candidate);
204
+ if (!(0, ProjectPackageManager_1.isWithinWorkspace)(boundary, resolved))
205
+ throw preparationError(`Dependency path resolves outside the preview workspace: ${candidate}`);
206
+ }
207
+ catch (error) {
208
+ if (error.code !== 'ENOENT')
209
+ throw error;
210
+ const entry = await promises_1.default.lstat(candidate).catch(() => null);
211
+ if (entry?.isSymbolicLink())
212
+ throw preparationError(`Dependency path is a dangling symlink: ${candidate}`);
213
+ }
214
+ }
215
+ }
216
+ }
217
+ async fingerprint(project, version, ignoreLockfiles = false) {
218
+ const hash = (0, crypto_1.createHash)('sha256');
219
+ const environment = Object.entries(process.env)
220
+ .filter(([key]) => isInstallEnvironmentKey(key))
221
+ .sort(([a], [b]) => a.localeCompare(b));
222
+ hash.update(JSON.stringify([
223
+ project.rootPath,
224
+ project.name,
225
+ version,
226
+ process.execPath,
227
+ process.version,
228
+ process.platform,
229
+ process.arch,
230
+ environment,
231
+ ]));
232
+ const files = project.packagePaths.flatMap((root) => INPUT_FILES.map((file) => path_1.default.join(root, file)));
233
+ files.push(...(await (0, glob_1.glob)(INSTALL_CONTENT_GLOB_PATTERNS, {
234
+ cwd: project.rootPath,
235
+ absolute: true,
236
+ nodir: true,
237
+ })));
238
+ for (const file of [...new Set(files)].sort()) {
239
+ if (ignoreLockfiles && LOCKFILE_NAMES.has(path_1.default.basename(file)))
240
+ continue;
241
+ hash
242
+ .update(file)
243
+ .update('\0')
244
+ .update((await (0, ProjectPackageManager_1.readProjectFile)(file)) ?? '<absent>')
245
+ .update('\0');
246
+ }
247
+ return hash.digest('hex');
248
+ }
249
+ async artifacts(project) {
250
+ const result = [];
251
+ const pnpLoader = project.name === 'yarn'
252
+ ? await promises_1.default
253
+ .stat(path_1.default.join(project.rootPath, '.pnp.cjs'))
254
+ .catch((error) => {
255
+ if (error.code === 'ENOENT')
256
+ return null;
257
+ throw error;
258
+ })
259
+ : null;
260
+ // PnP dependencies live behind the loader. Frameworks may independently
261
+ // create node_modules for caches, which does not change that installation.
262
+ const artifacts = pnpLoader?.isFile()
263
+ ? INSTALL_ARTIFACT_PATHS.filter((file) => !file.startsWith('node_modules'))
264
+ : INSTALL_ARTIFACT_PATHS;
265
+ for (const root of project.packagePaths) {
266
+ for (const file of artifacts) {
267
+ try {
268
+ const stat = await promises_1.default.stat(path_1.default.join(root, file));
269
+ // Framework caches may add entries inside node_modules without changing its installation.
270
+ result.push(stat.isDirectory()
271
+ ? [root, file, stat.ino]
272
+ : [root, file, stat.ino, stat.mtimeMs, stat.size]);
273
+ }
274
+ catch (error) {
275
+ if (error.code !== 'ENOENT')
276
+ throw error;
277
+ }
278
+ }
279
+ }
280
+ return JSON.stringify(result);
281
+ }
282
+ /** @effect Runs a bounded package-manager process and retains only its output tail. */
283
+ run(project, args, timeoutMs, signal) {
284
+ return new Promise((resolve, reject) => {
285
+ const proc = OperatingSystemServices_1.selectedOperatingSystemServices.projectProcesses.start({ executable: project.name, args }, {
286
+ cwd: project.rootPath,
287
+ detached: process.platform !== 'win32',
288
+ env: {
289
+ ...process.env,
290
+ NODE_ENV: 'development',
291
+ CI: 'true',
292
+ ...(project.hasLockfile
293
+ ? {}
294
+ : { YARN_ENABLE_IMMUTABLE_INSTALLS: 'false' }),
295
+ },
296
+ stdio: 'pipe',
297
+ });
298
+ let output = '';
299
+ let interrupted = false;
300
+ let settleTimer;
301
+ const drain = (chunk) => {
302
+ output = (output + chunk.toString()).slice(-OUTPUT_TAIL_LIMIT);
303
+ };
304
+ proc.stdout?.on('data', drain);
305
+ proc.stderr?.on('data', drain);
306
+ proc.stdin?.end();
307
+ const stop = () => {
308
+ interrupted = true;
309
+ void OperatingSystemServices_1.selectedOperatingSystemServices.projectProcesses
310
+ .terminate(proc, { isForceful: true })
311
+ .catch(() => undefined);
312
+ // A child that survives termination must not hold this preparation
313
+ // (and its install slot) open forever; abandon it after a grace period.
314
+ settleTimer ??= setTimeout(() => {
315
+ cleanup();
316
+ reject(preparationError(`Dependency preparation could not be stopped: ${project.name} ${args.join(' ')} is still running. Stop the process, then retry the preview.`, output.trim()));
317
+ }, TERMINATION_SETTLE_TIMEOUT_MS);
318
+ };
319
+ const timer = setTimeout(stop, timeoutMs);
320
+ signal?.addEventListener('abort', stop, { once: true });
321
+ if (signal?.aborted)
322
+ stop();
323
+ const cleanup = () => {
324
+ clearTimeout(timer);
325
+ clearTimeout(settleTimer);
326
+ signal?.removeEventListener('abort', stop);
327
+ };
328
+ proc.once('error', (error) => {
329
+ cleanup();
330
+ reject(preparationError(`Could not run ${project.name} ${args.join(' ')}: ${error.message}`, output));
331
+ });
332
+ proc.once('close', (code) => {
333
+ cleanup();
334
+ if (code === 0 && !interrupted)
335
+ resolve(output);
336
+ else
337
+ reject(preparationError(`Dependency preparation failed: ${project.name} ${args.join(' ')} (${interrupted ? 'cancelled or timed out' : `exit ${code}`}). Fix the installation error, then retry the preview.`, output.trim()));
338
+ });
339
+ });
340
+ }
341
+ }
342
+ exports.DependencyPreparationService = DependencyPreparationService;
343
+ exports.previewDependencies = new DependencyPreparationService();
344
+ //# sourceMappingURL=DependencyPreparationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyPreparationService.js","sourceRoot":"","sources":["../../src/services/DependencyPreparationService.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export declare class HistoryReplayError extends Error {
14
14
  /**
15
15
  * Boots past dev-server variants from their tree-store refs: materialize the
16
16
  * exact committed tree as a detached worktree, overlay the gitignored runtime
17
- * the snapshot deliberately excludes (.env, node_modules), substitute the
17
+ * the snapshot deliberately excludes (.env), prepare its dependencies, substitute the
18
18
  * allocated port into the persisted serve recipe, and start the same dev
19
19
  * server the live session ran.
20
20
  *
@@ -29,6 +29,8 @@ export declare class HistoryReplayService {
29
29
  private readonly idleTtlMs;
30
30
  private readonly maxActiveReplays;
31
31
  private readonly replays;
32
+ private readonly stoppedWorkspaces;
33
+ private readonly runtimeOverlays;
32
34
  private globalProxyKey;
33
35
  /** Serializes run/stop transitions so a double-click can't boot two
34
36
  * servers for the same history target. */
@@ -69,9 +71,8 @@ export declare class HistoryReplayService {
69
71
  private touch;
70
72
  private enforceReplayLimit;
71
73
  /**
72
- * Copy/symlink the gitignored runtime the snapshot deliberately excludes:
73
- * `.env*` files (copied — secrets never enter the store) and the host
74
- * project's `node_modules` (symlinked — no install). Applied at the
74
+ * Copy the gitignored runtime the snapshot deliberately excludes:
75
+ * `.env*` files (copied — secrets never enter the store). Applied at the
75
76
  * worktree root and, for nested projects, at the recipe cwd.
76
77
  *
77
78
  * Root alignment: the snapshot (and hence the worktree and `recipe.cwd`)
@@ -1 +1 @@
1
- {"version":3,"file":"HistoryReplayService.d.ts","sourceRoot":"","sources":["../../src/services/HistoryReplayService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAgBjC,wEAAwE;AACxE,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,CACZ,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAEzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,qBAAqB;gBAAlD,IAAI,EAAE,oBAAoB,GAAG,qBAAqB,EAC3D,OAAO,EAAE,MAAM;CAKlB;AAaD;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,cAAc,CAAuB;IAC7C;+CAC2C;IAC3C,OAAO,CAAC,UAAU,CAAuC;gBAE7C,IAAI,EAAE;QAChB,OAAO,EAAE,qBAAqB,CAAC;QAC/B,UAAU,EAAE,sBAAsB,CAAC;QACnC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;QAClD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAWD,kEAAkE;IAClE,OAAO,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAYxE,6EAA6E;IAC7E,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOtD,GAAG,CAAC,IAAI,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC;IAyHtD,oEAAoE;IAC9D,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1E,kDAAkD;IAC5C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIjB,UAAU;YAsBV,cAAc;IAO5B,OAAO,CAAC,KAAK;YAcC,kBAAkB;IAYhC;;;;;;;;;;;;;OAaG;YACW,cAAc;YAkDd,eAAe;IAW7B,OAAO,CAAC,OAAO;CAMhB"}
1
+ {"version":3,"file":"HistoryReplayService.d.ts","sourceRoot":"","sources":["../../src/services/HistoryReplayService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAgBjC,wEAAwE;AACxE,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,CACZ,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAEzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,qBAAqB;gBAAlD,IAAI,EAAE,oBAAoB,GAAG,qBAAqB,EAC3D,OAAO,EAAE,MAAM;CAKlB;AAcD;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAG9B;IACJ,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAClE,OAAO,CAAC,cAAc,CAAuB;IAC7C;+CAC2C;IAC3C,OAAO,CAAC,UAAU,CAAuC;gBAE7C,IAAI,EAAE;QAChB,OAAO,EAAE,qBAAqB,CAAC;QAC/B,UAAU,EAAE,sBAAsB,CAAC;QACnC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;QAClD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAWD,kEAAkE;IAClE,OAAO,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAYxE,6EAA6E;IAC7E,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOtD,GAAG,CAAC,IAAI,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC;IA8ItD,oEAAoE;IAC9D,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB1E,kDAAkD;IAC5C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIjB,UAAU;YAsCV,cAAc;IAO5B,OAAO,CAAC,KAAK;YAcC,kBAAkB;IAYhC;;;;;;;;;;;;OAYG;YACW,cAAc;YA+Cd,eAAe;IAa7B,OAAO,CAAC,OAAO;CAMhB"}
@@ -8,6 +8,7 @@ const fs_1 = __importDefault(require("fs"));
8
8
  const promises_1 = __importDefault(require("fs/promises"));
9
9
  const path_1 = __importDefault(require("path"));
10
10
  const logger_1 = require("../utils/logger");
11
+ const DependencyPreparationService_1 = require("./DependencyPreparationService");
11
12
  const log = (0, logger_1.createLogger)('HistoryReplayService');
12
13
  // Replay servers are on-demand; reclaim one that hasn't been touched in a
13
14
  // while so browsed-then-abandoned history entries don't pin dev servers (and
@@ -32,7 +33,7 @@ exports.HistoryReplayError = HistoryReplayError;
32
33
  /**
33
34
  * Boots past dev-server variants from their tree-store refs: materialize the
34
35
  * exact committed tree as a detached worktree, overlay the gitignored runtime
35
- * the snapshot deliberately excludes (.env, node_modules), substitute the
36
+ * the snapshot deliberately excludes (.env), prepare its dependencies, substitute the
36
37
  * allocated port into the persisted serve recipe, and start the same dev
37
38
  * server the live session ran.
38
39
  *
@@ -47,6 +48,8 @@ class HistoryReplayService {
47
48
  idleTtlMs;
48
49
  maxActiveReplays;
49
50
  replays = new Map();
51
+ stoppedWorkspaces = new Map();
52
+ runtimeOverlays = new Map();
50
53
  globalProxyKey = null;
51
54
  /** Serializes run/stop transitions so a double-click can't boot two
52
55
  * servers for the same history target. */
@@ -105,8 +108,24 @@ class HistoryReplayService {
105
108
  let worktreePath = null;
106
109
  let port;
107
110
  try {
108
- worktreePath = await store.materializeWorktree(args.projectPath, manifest.tree.commitSha);
111
+ const stopped = this.stoppedWorkspaces.get(key);
112
+ this.stoppedWorkspaces.delete(key);
113
+ if (stopped &&
114
+ stopped.projectPath === args.projectPath &&
115
+ stopped.commitSha === manifest.tree.commitSha &&
116
+ fs_1.default.existsSync(stopped.worktreePath)) {
117
+ worktreePath = stopped.worktreePath;
118
+ }
119
+ else {
120
+ if (stopped)
121
+ await this.cleanupWorktree(stopped.projectPath, stopped.worktreePath);
122
+ worktreePath = await store.materializeWorktree(args.projectPath, manifest.tree.commitSha);
123
+ }
109
124
  await this.overlayRuntime(args.projectPath, worktreePath, recipe);
125
+ await DependencyPreparationService_1.previewDependencies.prepare({
126
+ cwd: path_1.default.resolve(worktreePath, recipe.cwd),
127
+ workspaceRoot: worktreePath,
128
+ });
110
129
  port = await this.devServers.findFreePortFrom(REPLAY_PORT_SCAN_START);
111
130
  const boundPort = port;
112
131
  const cwd = path_1.default.resolve(worktreePath, recipe.cwd);
@@ -116,6 +135,7 @@ class HistoryReplayService {
116
135
  ])));
117
136
  this.devServers.releasePort?.(boundPort);
118
137
  const replay = {
138
+ commitSha: manifest.tree.commitSha,
119
139
  key,
120
140
  sessionId: args.sessionId,
121
141
  variantId: args.variantId,
@@ -177,10 +197,16 @@ class HistoryReplayService {
177
197
  async stop(args) {
178
198
  await this.enqueue(async () => {
179
199
  if (args) {
180
- await this.stopReplay(replayKey(args.sessionId, args.variantId));
200
+ await this.stopReplay(replayKey(args.sessionId, args.variantId), {
201
+ retainWorkspace: true,
202
+ });
181
203
  return;
182
204
  }
183
205
  await this.stopAllReplays();
206
+ for (const stopped of this.stoppedWorkspaces.values()) {
207
+ await this.cleanupWorktree(stopped.projectPath, stopped.worktreePath);
208
+ }
209
+ this.stoppedWorkspaces.clear();
184
210
  });
185
211
  }
186
212
  /** @effect Full teardown for process shutdown. */
@@ -205,7 +231,21 @@ class HistoryReplayService {
205
231
  this.globalProxyKey = null;
206
232
  this.switchPreviewPort?.(null);
207
233
  }
208
- await this.cleanupWorktree(replay.projectPath, replay.worktreePath);
234
+ if (opts.retainWorkspace) {
235
+ this.stoppedWorkspaces.set(key, {
236
+ projectPath: replay.projectPath,
237
+ worktreePath: replay.worktreePath,
238
+ commitSha: replay.commitSha,
239
+ });
240
+ while (this.stoppedWorkspaces.size > this.maxActiveReplays) {
241
+ const oldest = this.stoppedWorkspaces.entries().next().value;
242
+ this.stoppedWorkspaces.delete(oldest[0]);
243
+ await this.cleanupWorktree(oldest[1].projectPath, oldest[1].worktreePath);
244
+ }
245
+ }
246
+ else {
247
+ await this.cleanupWorktree(replay.projectPath, replay.worktreePath);
248
+ }
209
249
  }
210
250
  async stopAllReplays() {
211
251
  const keys = Array.from(this.replays.keys());
@@ -232,9 +272,8 @@ class HistoryReplayService {
232
272
  }
233
273
  }
234
274
  /**
235
- * Copy/symlink the gitignored runtime the snapshot deliberately excludes:
236
- * `.env*` files (copied — secrets never enter the store) and the host
237
- * project's `node_modules` (symlinked — no install). Applied at the
275
+ * Copy the gitignored runtime the snapshot deliberately excludes:
276
+ * `.env*` files (copied — secrets never enter the store). Applied at the
238
277
  * worktree root and, for nested projects, at the recipe cwd.
239
278
  *
240
279
  * Root alignment: the snapshot (and hence the worktree and `recipe.cwd`)
@@ -246,6 +285,12 @@ class HistoryReplayService {
246
285
  * (<root>/app/app) and miss every overlay.
247
286
  */
248
287
  async overlayRuntime(projectPath, worktreePath, recipe) {
288
+ // Refresh only files we overlaid: committed .env files remain part of the saved direction.
289
+ for (const file of this.runtimeOverlays.get(worktreePath) ?? []) {
290
+ await promises_1.default.rm(file, { force: true });
291
+ }
292
+ const overlaid = new Set();
293
+ this.runtimeOverlays.set(worktreePath, overlaid);
249
294
  const hostRoot = resolveHostRoot(projectPath, recipe.cwd);
250
295
  const roots = [
251
296
  { host: hostRoot, target: worktreePath },
@@ -272,21 +317,19 @@ class HistoryReplayService {
272
317
  if (!fs_1.default.existsSync(dest)) {
273
318
  await promises_1.default
274
319
  .copyFile(path_1.default.join(host, entry), dest)
320
+ .then(() => {
321
+ overlaid.add(dest);
322
+ })
275
323
  .catch((err) => log.warn(`overlay: .env copy failed for ${dest}`, err));
276
324
  }
277
325
  }
278
326
  }
279
- const hostModules = path_1.default.join(host, 'node_modules');
280
- const targetModules = path_1.default.join(target, 'node_modules');
281
- if (fs_1.default.existsSync(hostModules) && !fs_1.default.existsSync(targetModules)) {
282
- await promises_1.default
283
- .symlink(hostModules, targetModules, 'dir')
284
- .catch((err) => log.warn(`overlay: node_modules symlink failed for ${targetModules}`, err));
285
- }
286
327
  }
287
328
  }
288
329
  async cleanupWorktree(projectPath, worktreePath) {
289
330
  try {
331
+ this.runtimeOverlays.delete(worktreePath);
332
+ DependencyPreparationService_1.previewDependencies.forget(worktreePath);
290
333
  await this.history.store.removeWorktree(projectPath, worktreePath);
291
334
  }
292
335
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"HistoryReplayService.js","sourceRoot":"","sources":["../../src/services/HistoryReplayService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HistoryReplayService.js","sourceRoot":"","sources":["../../src/services/HistoryReplayService.ts"],"names":[],"mappings":"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"}
@@ -25,20 +25,10 @@ export type HostCommandService = {
25
25
  */
26
26
  executeSync: (command: HostCommand, options: Omit<ExecFileSyncOptions, 'shell'>) => string | Buffer;
27
27
  };
28
- export type WorkspaceDependencyService = {
29
- /**
30
- * @effect Makes an existing dependency tree available at a workspace-local destination.
31
- */
32
- provision: (options: {
33
- sourceDirectory: string;
34
- destinationDirectory: string;
35
- }) => Promise<void>;
36
- };
37
28
  export type OperatingSystemServices = {
38
29
  operatingSystemFamily: 'windows' | 'posix';
39
30
  hostCommands: HostCommandService;
40
31
  projectProcesses: ProjectProcessService;
41
- workspaceDependencies: WorkspaceDependencyService;
42
32
  };
43
33
  export type OperatingSystemServiceDependencies = {
44
34
  spawn: typeof spawn;
@@ -1 +1 @@
1
- {"version":3,"file":"OperatingSystemServices.d.ts","sourceRoot":"","sources":["../../src/services/OperatingSystemServices.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAWvB,MAAM,MAAM,qBAAqB,GAC/B;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAEhD,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,KAAK,EAAE,CACL,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,YAAY,KAClB,YAAY,CAAC;IAClB;;OAEG;IACH,SAAS,EAAE,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,KAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C;;OAEG;IACH,WAAW,EAAE,CACX,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,KACxC,MAAM,GAAG,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,SAAS,EAAE,CAAC,OAAO,EAAE;QACnB,eAAe,EAAE,MAAM,CAAC;QACxB,oBAAoB,EAAE,MAAM,CAAC;KAC9B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,qBAAqB,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3C,YAAY,EAAE,kBAAkB,CAAC;IACjC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,qBAAqB,EAAE,0BAA0B,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAoOF;;GAEG;AACH,eAAO,MAAM,6BAA6B,GACxC,iBAAiB,MAAM,CAAC,QAAQ,EAChC,eAAc,kCAAwD,KACrE,uBAOF,CAAC;AAEF,eAAO,MAAM,+BAA+B,yBAE3C,CAAC"}
1
+ {"version":3,"file":"OperatingSystemServices.d.ts","sourceRoot":"","sources":["../../src/services/OperatingSystemServices.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAMvB,MAAM,MAAM,qBAAqB,GAC/B;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAEhD,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,KAAK,EAAE,CACL,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,YAAY,KAClB,YAAY,CAAC;IAClB;;OAEG;IACH,SAAS,EAAE,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,KAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C;;OAEG;IACH,WAAW,EAAE,CACX,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,KACxC,MAAM,GAAG,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,qBAAqB,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3C,YAAY,EAAE,kBAAkB,CAAC;IACjC,gBAAgB,EAAE,qBAAqB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAwJF;;GAEG;AACH,eAAO,MAAM,6BAA6B,GACxC,iBAAiB,MAAM,CAAC,QAAQ,EAChC,eAAc,kCAAwD,KACrE,uBAOF,CAAC;AAEF,eAAO,MAAM,+BAA+B,yBAE3C,CAAC"}