@fern-api/replay 0.1.0 → 0.3.0

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 (53) hide show
  1. package/dist/FernignoreMigrator.d.ts +1 -7
  2. package/dist/FernignoreMigrator.d.ts.map +1 -1
  3. package/dist/FernignoreMigrator.js +1 -7
  4. package/dist/FernignoreMigrator.js.map +1 -1
  5. package/dist/LockfileManager.d.ts +4 -0
  6. package/dist/LockfileManager.d.ts.map +1 -1
  7. package/dist/LockfileManager.js +16 -0
  8. package/dist/LockfileManager.js.map +1 -1
  9. package/dist/ReplayApplicator.d.ts +3 -15
  10. package/dist/ReplayApplicator.d.ts.map +1 -1
  11. package/dist/ReplayApplicator.js +6 -25
  12. package/dist/ReplayApplicator.js.map +1 -1
  13. package/dist/ReplayDetector.d.ts +2 -0
  14. package/dist/ReplayDetector.d.ts.map +1 -1
  15. package/dist/ReplayDetector.js +40 -0
  16. package/dist/ReplayDetector.js.map +1 -1
  17. package/dist/ReplayService.d.ts +25 -28
  18. package/dist/ReplayService.d.ts.map +1 -1
  19. package/dist/ReplayService.js +186 -156
  20. package/dist/ReplayService.js.map +1 -1
  21. package/dist/cli.js +9 -31
  22. package/dist/cli.js.map +1 -1
  23. package/dist/commands/bootstrap.js +2 -16
  24. package/dist/commands/bootstrap.js.map +1 -1
  25. package/dist/git/CommitDetection.d.ts +1 -7
  26. package/dist/git/CommitDetection.d.ts.map +1 -1
  27. package/dist/git/CommitDetection.js +2 -10
  28. package/dist/git/CommitDetection.js.map +1 -1
  29. package/dist/git/GitClient.d.ts +5 -0
  30. package/dist/git/GitClient.d.ts.map +1 -1
  31. package/dist/git/GitClient.js +14 -0
  32. package/dist/git/GitClient.js.map +1 -1
  33. package/dist/index.d.ts +1 -4
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -4
  36. package/dist/index.js.map +1 -1
  37. package/dist/types.d.ts +1 -5
  38. package/dist/types.d.ts.map +1 -1
  39. package/dist/types.js +1 -7
  40. package/dist/types.js.map +1 -1
  41. package/package.json +43 -43
  42. package/dist/ConflictPrompt.d.ts +0 -13
  43. package/dist/ConflictPrompt.d.ts.map +0 -1
  44. package/dist/ConflictPrompt.js +0 -38
  45. package/dist/ConflictPrompt.js.map +0 -1
  46. package/dist/ConflictResolver.d.ts +0 -11
  47. package/dist/ConflictResolver.d.ts.map +0 -1
  48. package/dist/ConflictResolver.js +0 -53
  49. package/dist/ConflictResolver.js.map +0 -1
  50. package/dist/environment.d.ts +0 -5
  51. package/dist/environment.d.ts.map +0 -1
  52. package/dist/environment.js +0 -14
  53. package/dist/environment.js.map +0 -1
@@ -6,29 +6,16 @@ import { LockfileManager } from "./LockfileManager.js";
6
6
  import { ReplayDetector } from "./ReplayDetector.js";
7
7
  import { ReplayApplicator } from "./ReplayApplicator.js";
8
8
  import { ReplayCommitter } from "./ReplayCommitter.js";
9
- import { resolveConflictMarkers } from "./ConflictResolver.js";
10
- import { promptForConflictResolution } from "./ConflictPrompt.js";
11
- import { isCI } from "./environment.js";
12
- export class ReplayConflictError extends Error {
13
- report;
14
- constructor(report) {
15
- super(`Replay produced ${report.patchesWithConflicts} patch conflict(s)`);
16
- this.name = "ReplayConflictError";
17
- this.report = report;
18
- }
19
- }
20
9
  export class ReplayService {
21
10
  git;
22
- config;
23
11
  detector;
24
12
  applicator;
25
13
  committer;
26
14
  lockManager;
27
15
  outputDir;
28
- constructor(outputDir, config) {
16
+ constructor(outputDir, _config) {
29
17
  const git = new GitClient(outputDir);
30
18
  this.git = git;
31
- this.config = config;
32
19
  this.outputDir = outputDir;
33
20
  this.lockManager = new LockfileManager(outputDir);
34
21
  this.detector = new ReplayDetector(git, this.lockManager, outputDir);
@@ -39,6 +26,9 @@ export class ReplayService {
39
26
  * Run the full replay flow.
40
27
  */
41
28
  async runReplay(options) {
29
+ if (options?.skipApplication) {
30
+ return this.handleSkipApplication(options);
31
+ }
42
32
  const flow = this.determineFlow();
43
33
  switch (flow) {
44
34
  case "first-generation":
@@ -49,6 +39,30 @@ export class ReplayService {
49
39
  return this.handleNormalRegeneration(options);
50
40
  }
51
41
  }
42
+ /**
43
+ * Sync the lockfile after a divergent PR was squash-merged.
44
+ * Call this BEFORE runReplay() when the CLI detects a merged divergent PR.
45
+ */
46
+ async syncFromDivergentMerge(generationCommitSha, options) {
47
+ const treeHash = await this.git.getTreeHash(generationCommitSha);
48
+ const timestamp = (await this.git.exec(["log", "-1", "--format=%aI", generationCommitSha])).trim();
49
+ const record = {
50
+ commit_sha: generationCommitSha,
51
+ tree_hash: treeHash,
52
+ timestamp,
53
+ cli_version: options?.cliVersion ?? "unknown",
54
+ generator_versions: options?.generatorVersions ?? {},
55
+ };
56
+ if (!this.lockManager.exists()) {
57
+ this.lockManager.initializeInMemory(record);
58
+ }
59
+ else {
60
+ this.lockManager.read();
61
+ this.lockManager.addGeneration(record);
62
+ this.lockManager.clearPatches();
63
+ }
64
+ this.lockManager.save();
65
+ }
52
66
  /**
53
67
  * Determine which flow to use based on lockfile state.
54
68
  */
@@ -92,6 +106,45 @@ export class ReplayService {
92
106
  conflicts: [],
93
107
  };
94
108
  }
109
+ /**
110
+ * Skip-application mode: commit the generation and update the lockfile
111
+ * but don't detect or apply patches. Sets a marker so the next normal
112
+ * run skips revert detection in preGenerationRebase().
113
+ */
114
+ async handleSkipApplication(options) {
115
+ const commitOpts = options ? {
116
+ cliVersion: options.cliVersion ?? "unknown",
117
+ generatorVersions: options.generatorVersions ?? {},
118
+ } : undefined;
119
+ await this.committer.commitGeneration("Update SDK (replay skipped)", commitOpts);
120
+ const genRecord = await this.committer.createGenerationRecord(commitOpts);
121
+ if (this.lockManager.exists()) {
122
+ this.lockManager.read();
123
+ this.lockManager.addGeneration(genRecord);
124
+ }
125
+ else {
126
+ this.lockManager.initializeInMemory(genRecord);
127
+ }
128
+ this.lockManager.setReplaySkippedAt(new Date().toISOString());
129
+ this.lockManager.save();
130
+ // Commit the lockfile update so it's pushed with the branch.
131
+ // Without this, the marker and generation record stay in the
132
+ // working tree and are lost when GithubStep pushes.
133
+ if (!options?.stageOnly) {
134
+ await this.committer.commitReplay(0);
135
+ }
136
+ else {
137
+ await this.committer.stageAll();
138
+ }
139
+ return {
140
+ flow: "skip-application",
141
+ patchesDetected: 0,
142
+ patchesApplied: 0,
143
+ patchesWithConflicts: 0,
144
+ patchesSkipped: 0,
145
+ conflicts: [],
146
+ };
147
+ }
95
148
  /**
96
149
  * No existing patches - detect new ones and apply if any.
97
150
  */
@@ -120,10 +173,6 @@ export class ReplayService {
120
173
  if (newPatches.length > 0) {
121
174
  results = await this.applicator.applyPatches(newPatches);
122
175
  }
123
- // Phase 1: Resolve conflict markers on disk BEFORE rebasing.
124
- // This ensures rebasePatches() captures clean file content, not
125
- // content with conflict markers baked in.
126
- await this.resolveConflictsOnDisk(results, newPatches, "no-patches", options, warnings);
127
176
  // Rebase cleanly applied patches to the current generation.
128
177
  // This prevents recurring conflicts on subsequent regenerations.
129
178
  const rebaseCounts = await this.rebasePatches(results, genRecord.commit_sha);
@@ -135,9 +184,6 @@ export class ReplayService {
135
184
  }
136
185
  }
137
186
  this.lockManager.save();
138
- // Phase 2: For "fail" policy, throw AFTER lockfile save so patches
139
- // aren't lost, but BEFORE replay commit so broken code isn't committed.
140
- this.enforceConflictFailPolicy(results, newPatches, "no-patches", options, warnings, rebaseCounts);
141
187
  if (newPatches.length > 0) {
142
188
  if (!options?.stageOnly) {
143
189
  const appliedCount = results.filter((r) => r.status === "applied" || r.status === "conflict").length;
@@ -155,11 +201,11 @@ export class ReplayService {
155
201
  * Normal flow - apply existing patches + detect new ones.
156
202
  */
157
203
  async handleNormalRegeneration(options) {
158
- const existingPatches = this.lockManager.getPatches();
159
- const newPatches = await this.detector.detectNewPatches();
160
- const warnings = [...this.detector.warnings];
161
- const allPatches = [...existingPatches, ...newPatches];
162
204
  if (options?.dryRun) {
205
+ const existingPatches = this.lockManager.getPatches();
206
+ const newPatches = await this.detector.detectNewPatches();
207
+ const warnings = [...this.detector.warnings];
208
+ const allPatches = [...existingPatches, ...newPatches];
163
209
  return {
164
210
  flow: "normal-regeneration",
165
211
  patchesDetected: allPatches.length,
@@ -171,6 +217,24 @@ export class ReplayService {
171
217
  warnings: warnings.length > 0 ? warnings : undefined,
172
218
  };
173
219
  }
220
+ // Pre-generation rebase: update stale/modified patches while HEAD has customer code.
221
+ let existingPatches = this.lockManager.getPatches();
222
+ const preRebaseCounts = await this.preGenerationRebase(existingPatches);
223
+ // Dedup patches by content hash after pre-generation rebase.
224
+ existingPatches = this.lockManager.getPatches();
225
+ const seenHashes = new Set();
226
+ for (const p of existingPatches) {
227
+ if (seenHashes.has(p.content_hash)) {
228
+ this.lockManager.removePatch(p.id);
229
+ }
230
+ else {
231
+ seenHashes.add(p.content_hash);
232
+ }
233
+ }
234
+ existingPatches = this.lockManager.getPatches();
235
+ const newPatches = await this.detector.detectNewPatches();
236
+ const warnings = [...this.detector.warnings];
237
+ const allPatches = [...existingPatches, ...newPatches];
174
238
  const commitOpts = options ? {
175
239
  cliVersion: options.cliVersion ?? "unknown",
176
240
  generatorVersions: options.generatorVersions ?? {},
@@ -178,8 +242,6 @@ export class ReplayService {
178
242
  await this.committer.commitGeneration("Update SDK", commitOpts);
179
243
  const genRecord = await this.committer.createGenerationRecord(commitOpts);
180
244
  const results = await this.applicator.applyPatches(allPatches);
181
- // Phase 1: Resolve conflict markers on disk BEFORE rebasing.
182
- await this.resolveConflictsOnDisk(results, allPatches, "normal-regeneration", options, warnings);
183
245
  // Rebase cleanly applied patches to the current generation.
184
246
  const rebaseCounts = await this.rebasePatches(results, genRecord.commit_sha);
185
247
  // Save lockfile BEFORE commit — lockfile is source of truth.
@@ -190,8 +252,6 @@ export class ReplayService {
190
252
  }
191
253
  }
192
254
  this.lockManager.save();
193
- // Phase 2: For "fail" policy, throw AFTER lockfile save.
194
- this.enforceConflictFailPolicy(results, allPatches, "normal-regeneration", options, warnings, rebaseCounts);
195
255
  if (options?.stageOnly) {
196
256
  await this.committer.stageAll();
197
257
  }
@@ -201,119 +261,7 @@ export class ReplayService {
201
261
  await this.committer.commitReplay(appliedCount, allPatches);
202
262
  }
203
263
  }
204
- return this.buildReport("normal-regeneration", allPatches, results, options, warnings, rebaseCounts);
205
- }
206
- /**
207
- * Get the active conflict policy based on config and environment.
208
- * Returns undefined when on_conflict is not configured (backwards-compatible).
209
- */
210
- getConflictPolicy() {
211
- const onConflict = this.config.on_conflict;
212
- if (!onConflict)
213
- return undefined;
214
- return isCI() ? onConflict.ci : onConflict.local;
215
- }
216
- /**
217
- * Auto-resolve all conflict markers in conflicted files.
218
- * "ours" = keep generated code, "theirs" = keep user customization.
219
- */
220
- async autoResolveConflicts(results, strategy) {
221
- const { join } = await import("node:path");
222
- for (const result of results) {
223
- if (result.status !== "conflict" || !result.fileResults)
224
- continue;
225
- for (const fileResult of result.fileResults) {
226
- if (fileResult.status !== "conflict")
227
- continue;
228
- const filePath = join(this.outputDir, fileResult.file);
229
- await resolveConflictMarkers(filePath, strategy);
230
- fileResult.status = "merged";
231
- fileResult.reason = `auto-resolved (${strategy === "ours" ? "keep-generated" : "keep-mine"})`;
232
- }
233
- // If all files resolved, mark the patch as applied
234
- const allResolved = result.fileResults.every((f) => f.status !== "conflict");
235
- if (allResolved) {
236
- result.status = "applied";
237
- }
238
- }
239
- }
240
- /**
241
- * Phase 1: Resolve conflict markers on disk BEFORE rebasing.
242
- * Handles keep-mine, keep-generated, and prompt policies.
243
- * Must run before rebasePatches() so rebased content captures clean files.
244
- */
245
- async resolveConflictsOnDisk(results, allPatches, flow, options, warnings) {
246
- const hasConflicts = results.some((r) => r.status === "conflict");
247
- if (!hasConflicts)
248
- return;
249
- const policy = this.getConflictPolicy();
250
- if (policy === undefined)
251
- return; // backwards-compatible: commit with markers
252
- switch (policy) {
253
- case "fail":
254
- // Don't resolve — enforceConflictFailPolicy() handles this after lockfile save
255
- break;
256
- case "keep-mine":
257
- await this.autoResolveConflicts(results, "theirs");
258
- break;
259
- case "keep-generated":
260
- await this.autoResolveConflicts(results, "ours");
261
- break;
262
- case "prompt": {
263
- if (!process.stdin.isTTY)
264
- break; // No TTY → fall through to default
265
- const { join } = await import("node:path");
266
- for (const result of results) {
267
- if (result.status !== "conflict" || !result.fileResults)
268
- continue;
269
- for (const fileResult of result.fileResults) {
270
- if (fileResult.status !== "conflict")
271
- continue;
272
- const answer = await promptForConflictResolution({
273
- patchId: result.patch.id,
274
- patchMessage: result.patch.original_message,
275
- file: fileResult,
276
- });
277
- if (answer === "abort") {
278
- const report = this.buildReport(flow, allPatches, results, options, warnings);
279
- throw new ReplayConflictError(report);
280
- }
281
- if (answer === "ours" || answer === "theirs") {
282
- const filePath = join(this.outputDir, fileResult.file);
283
- await resolveConflictMarkers(filePath, answer);
284
- fileResult.status = "merged";
285
- fileResult.reason = `resolved (${answer === "ours" ? "keep-generated" : "keep-mine"})`;
286
- }
287
- // "manual" → leave conflict markers
288
- }
289
- const allResolved = result.fileResults.every((f) => f.status !== "conflict");
290
- if (allResolved) {
291
- result.status = "applied";
292
- }
293
- }
294
- break;
295
- }
296
- case "create-pr":
297
- // Future feature. Fall through with a warning.
298
- if (warnings) {
299
- warnings.push("on_conflict: create-pr is not yet implemented; conflict markers left in place");
300
- }
301
- break;
302
- }
303
- }
304
- /**
305
- * Phase 2: Throw for "fail" policy AFTER lockfile save.
306
- * This ensures the lockfile is preserved even when we reject the commit.
307
- */
308
- enforceConflictFailPolicy(results, allPatches, flow, options, warnings, rebaseCounts) {
309
- const hasConflicts = results.some((r) => r.status === "conflict");
310
- if (!hasConflicts)
311
- return;
312
- const policy = this.getConflictPolicy();
313
- if (policy !== "fail")
314
- return;
315
- const report = this.buildReport(flow, allPatches, results, options, warnings, rebaseCounts);
316
- throw new ReplayConflictError(report);
264
+ return this.buildReport("normal-regeneration", allPatches, results, options, warnings, rebaseCounts, preRebaseCounts);
317
265
  }
318
266
  /**
319
267
  * Rebase cleanly applied patches so they are relative to the current generation.
@@ -325,9 +273,7 @@ export class ReplayService {
325
273
  let repointed = 0;
326
274
  let contentRebased = 0;
327
275
  let keptAsUserOwned = 0;
328
- // Track content hashes seen during rebase to absorb duplicates.
329
- // When incremental patches (e.g., commit A adds method, commit B renames it)
330
- // are both rebased, they capture the same cumulative diff and become redundant.
276
+ // Track content hashes to deduplicate converging incremental patches.
331
277
  const seenContentHashes = new Set();
332
278
  const absorbedPatchIds = new Set();
333
279
  for (const result of results) {
@@ -340,14 +286,7 @@ export class ReplayService {
340
286
  if (patch.base_generation === currentGenSha)
341
287
  continue;
342
288
  try {
343
- // Check if any files in this patch are user-owned and can never
344
- // be "absorbed" by the generator. Three cases:
345
- // 1. File doesn't exist in the gen commit tree (truly new file)
346
- // 2. File is protected by .fernignore (preserved during gen wipe,
347
- // so it exists in the gen tree, but the generator didn't produce it)
348
- // 3. File IS .fernignore itself (always preserved during gen wipe,
349
- // but doesn't list itself in its own patterns)
350
- // In all cases, git diff returns empty, but removing the patch is wrong.
289
+ // Check if any files are user-owned (new, .fernignore-protected, or .fernignore itself).
351
290
  const fernignorePatterns = this.readFernignorePatterns();
352
291
  const isUserOwned = await Promise.all(patch.files.map(async (file) => {
353
292
  // .fernignore itself is always user-owned
@@ -380,9 +319,8 @@ export class ReplayService {
380
319
  ]).catch(() => null);
381
320
  if (!diff || !diff.trim()) {
382
321
  // Patch is now empty — customization was absorbed by the generator.
383
- // Only removePatch (not absorbedPatchIds) — new patches that haven't
384
- // been added yet are correctly ignored by the no-op removePatch.
385
322
  this.lockManager.removePatch(patch.id);
323
+ absorbedPatchIds.add(patch.id);
386
324
  absorbed++;
387
325
  continue;
388
326
  }
@@ -410,6 +348,94 @@ export class ReplayService {
410
348
  }
411
349
  return { absorbed, repointed, contentRebased, keptAsUserOwned, absorbedPatchIds };
412
350
  }
351
+ /**
352
+ * Pre-generation rebase: update patches using the customer's current state.
353
+ * Called BEFORE commitGeneration() while HEAD has customer code.
354
+ */
355
+ async preGenerationRebase(patches) {
356
+ const lock = this.lockManager.read();
357
+ const currentGen = lock.current_generation;
358
+ // If the previous run was skip-application, clear the marker and
359
+ // skip all revert detection. Patches are preserved as-is.
360
+ if (this.lockManager.isReplaySkipped()) {
361
+ this.lockManager.clearReplaySkippedAt();
362
+ return { conflictResolved: 0, conflictAbsorbed: 0, contentRefreshed: 0 };
363
+ }
364
+ let conflictResolved = 0;
365
+ let conflictAbsorbed = 0;
366
+ let contentRefreshed = 0;
367
+ for (const patch of patches) {
368
+ if (patch.base_generation === currentGen) {
369
+ // Content refresh: check if user modified their customization
370
+ // since the last replay commit.
371
+ try {
372
+ const diff = await this.git.exec(["diff", currentGen, "HEAD", "--", ...patch.files]).catch(() => null);
373
+ if (diff === null)
374
+ continue;
375
+ if (!diff.trim()) {
376
+ // User reverted all customizations in this patch
377
+ this.lockManager.removePatch(patch.id);
378
+ contentRefreshed++;
379
+ continue;
380
+ }
381
+ const newContentHash = this.detector.computeContentHash(diff);
382
+ if (newContentHash !== patch.content_hash) {
383
+ // User changed their customization — update patch content
384
+ // and recalculate the files list (some files may no longer differ)
385
+ const filesOutput = await this.git.exec(["diff", "--name-only", currentGen, "HEAD", "--", ...patch.files]).catch(() => null);
386
+ const newFiles = filesOutput
387
+ ? filesOutput.trim().split("\n").filter(Boolean)
388
+ .filter((f) => !f.startsWith(".fern/"))
389
+ : patch.files;
390
+ if (newFiles.length === 0) {
391
+ this.lockManager.removePatch(patch.id);
392
+ }
393
+ else {
394
+ this.lockManager.updatePatch(patch.id, {
395
+ patch_content: diff,
396
+ content_hash: newContentHash,
397
+ files: newFiles,
398
+ });
399
+ }
400
+ contentRefreshed++;
401
+ }
402
+ }
403
+ catch {
404
+ // If anything fails, leave the patch unchanged
405
+ }
406
+ continue;
407
+ }
408
+ try {
409
+ // Check for unresolved conflict markers in HEAD
410
+ const markerFiles = await this.git.exec(["grep", "-l", "<<<<<<<", "HEAD", "--", ...patch.files]).catch(() => "");
411
+ if (markerFiles.trim())
412
+ continue;
413
+ // Compute customer's resolved state relative to current generation
414
+ const diff = await this.git.exec(["diff", currentGen, "HEAD", "--", ...patch.files]).catch(() => null);
415
+ // Diff command failed (e.g., invalid SHA) — skip this patch
416
+ if (diff === null)
417
+ continue;
418
+ if (!diff.trim()) {
419
+ // Empty diff — customer reverted their customization
420
+ this.lockManager.removePatch(patch.id);
421
+ conflictAbsorbed++;
422
+ continue;
423
+ }
424
+ // Update the patch with the resolved content
425
+ const newContentHash = this.detector.computeContentHash(diff);
426
+ this.lockManager.updatePatch(patch.id, {
427
+ base_generation: currentGen,
428
+ patch_content: diff,
429
+ content_hash: newContentHash,
430
+ });
431
+ conflictResolved++;
432
+ }
433
+ catch {
434
+ // If anything fails, leave the patch unchanged
435
+ }
436
+ }
437
+ return { conflictResolved, conflictAbsorbed, contentRefreshed };
438
+ }
413
439
  /**
414
440
  * Read .fernignore patterns from the output directory.
415
441
  * Returns an empty array if .fernignore doesn't exist.
@@ -426,7 +452,7 @@ export class ReplayService {
426
452
  /**
427
453
  * Build the final report from results.
428
454
  */
429
- buildReport(flow, patches, results, options, warnings, rebaseCounts) {
455
+ buildReport(flow, patches, results, options, warnings, rebaseCounts, preRebaseCounts) {
430
456
  const conflictResults = results.filter((r) => r.status === "conflict");
431
457
  const conflictDetails = conflictResults
432
458
  .map((r) => ({
@@ -446,6 +472,10 @@ export class ReplayService {
446
472
  patchesRepointed: rebaseCounts && rebaseCounts.repointed > 0 ? rebaseCounts.repointed : undefined,
447
473
  patchesContentRebased: rebaseCounts && rebaseCounts.contentRebased > 0 ? rebaseCounts.contentRebased : undefined,
448
474
  patchesKeptAsUserOwned: rebaseCounts && rebaseCounts.keptAsUserOwned > 0 ? rebaseCounts.keptAsUserOwned : undefined,
475
+ patchesConflictResolved: preRebaseCounts && (preRebaseCounts.conflictResolved + preRebaseCounts.conflictAbsorbed) > 0
476
+ ? preRebaseCounts.conflictResolved + preRebaseCounts.conflictAbsorbed : undefined,
477
+ patchesRefreshed: preRebaseCounts && preRebaseCounts.contentRefreshed > 0
478
+ ? preRebaseCounts.contentRefreshed : undefined,
449
479
  conflicts: conflictResults
450
480
  .flatMap((r) => r.fileResults?.filter((f) => f.status === "conflict") ?? []),
451
481
  conflictDetails: conflictDetails.length > 0 ? conflictDetails : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"ReplayService.js","sourceRoot":"","sources":["../src/ReplayService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReplayService.js","sourceRoot":"","sources":["../src/ReplayService.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -4,13 +4,12 @@ import { existsSync } from "node:fs";
4
4
  import { GitClient } from "./git/GitClient.js";
5
5
  import { LockfileManager } from "./LockfileManager.js";
6
6
  import { ReplayDetector } from "./ReplayDetector.js";
7
- import { ReplayService, ReplayConflictError } from "./ReplayService.js";
7
+ import { ReplayService } from "./ReplayService.js";
8
8
  import { FernignoreMigrator } from "./FernignoreMigrator.js";
9
9
  import { bootstrap } from "./commands/bootstrap.js";
10
10
  import { forget } from "./commands/forget.js";
11
11
  import { reset } from "./commands/reset.js";
12
12
  import { resolve as resolveConflicts } from "./commands/resolve.js";
13
- import { DEFAULT_REPLAY_CONFIG } from "./types.js";
14
13
  const COMMANDS = ["bootstrap", "status", "detect", "replay", "migrate", "forget", "reset", "resolve"];
15
14
  function usage() {
16
15
  console.log(`Usage: fern-replay <command> <sdk-dir> [options]
@@ -30,7 +29,6 @@ Options:
30
29
  --no-check Skip conflict marker check (resolve command only)
31
30
  --migrate-fernignore Move untrackable .fernignore patterns to replay.yml
32
31
  --max-commits <n> Max commits to scan (default: 500)
33
- --on-conflict <policy> Override on_conflict policy (fail, keep-mine, keep-generated, prompt)
34
32
 
35
33
  Examples:
36
34
  fern-replay bootstrap ./my-sdk
@@ -75,9 +73,6 @@ function parseArgs(argv) {
75
73
  else if (arg === "--max-commits" && args[i + 1]) {
76
74
  flags.maxCommits = args[++i];
77
75
  }
78
- else if (arg === "--on-conflict" && args[i + 1]) {
79
- flags.onConflict = args[++i];
80
- }
81
76
  else if (arg === "--force") {
82
77
  flags.force = true;
83
78
  }
@@ -211,31 +206,8 @@ async function runReplay(dir, flags) {
211
206
  console.log("(dry-run mode)\n");
212
207
  else
213
208
  console.log();
214
- // Build config with optional --on-conflict override
215
- const config = { ...DEFAULT_REPLAY_CONFIG, enabled: true };
216
- if (flags.onConflict) {
217
- const policy = flags.onConflict;
218
- config.on_conflict = {
219
- ci: policy,
220
- local: policy,
221
- };
222
- }
223
- const service = new ReplayService(dir, config);
224
- let report;
225
- try {
226
- report = await service.runReplay({ dryRun });
227
- }
228
- catch (err) {
229
- if (err instanceof ReplayConflictError) {
230
- report = err.report;
231
- printReport(report);
232
- console.error("\nReplay failed: conflicts detected (on_conflict: fail)");
233
- console.error("Resolve conflicts manually, then run: fern-replay resolve <dir>");
234
- console.error("Or run: fern-replay forget <file-pattern> to remove problematic patches");
235
- process.exit(1);
236
- }
237
- throw err;
238
- }
209
+ const service = new ReplayService(dir, { enabled: true });
210
+ const report = await service.runReplay({ dryRun });
239
211
  printReport(report);
240
212
  }
241
213
  function printReport(report) {
@@ -256,6 +228,12 @@ function printReport(report) {
256
228
  if (report.patchesKeptAsUserOwned) {
257
229
  console.log(`Patches kept (user-owned files): ${report.patchesKeptAsUserOwned}`);
258
230
  }
231
+ if (report.patchesConflictResolved) {
232
+ console.log(`Patches conflict-resolved (pre-rebase): ${report.patchesConflictResolved}`);
233
+ }
234
+ if (report.patchesRefreshed) {
235
+ console.log(`Patches refreshed (user modified): ${report.patchesRefreshed}`);
236
+ }
259
237
  if (report.wouldApply && report.wouldApply.length > 0) {
260
238
  console.log("\nWould apply:");
261
239
  for (const patch of report.wouldApply) {