feat(FN-4072): add diff volume gate to merger
Added a diff volume gate to the merger that blocks or warns on large diffs before merge completes. The feature includes a new `merger-diff-volume-gate` module wired into the merger, configurable via project settings, with tests covering all gate paths. Also updated docs and the changeset for the `@r Fusion-Task-Id: FN-4072
This commit is contained in:
@@ -211,6 +211,9 @@ export const DEFAULT_PROJECT_SETTINGS = {
|
||||
worktreeRebaseRemote: "",
|
||||
worktreeRebaseLocalBase: true,
|
||||
mergeConflictStrategy: "smart-prefer-main",
|
||||
mergeDiffVolumeMinLines: undefined,
|
||||
mergeDiffVolumeThreshold: undefined,
|
||||
mergeDiffVolumeAllowlist: undefined,
|
||||
mergeStrategyOverlapBehavior: "flip-to-prefer-branch",
|
||||
workflowStepTimeoutMs: 360_000,
|
||||
workflowRevisionForkOnScopeMismatch: true,
|
||||
|
||||
@@ -2203,6 +2203,12 @@ export interface ProjectSettings {
|
||||
/** Strategy used when a merge conflict can't be resolved by AI. See
|
||||
* {@link MergeConflictStrategy}. Default: "smart". */
|
||||
mergeConflictStrategy?: MergeConflictStrategy;
|
||||
/** Minimum branch net line volume before the pre-commit diff-volume gate evaluates a file. Default applied at read site: 20. */
|
||||
mergeDiffVolumeMinLines?: number;
|
||||
/** Minimum staged/branch-net ratio required by the pre-commit diff-volume gate. Default applied at read site: 0.2. */
|
||||
mergeDiffVolumeThreshold?: number;
|
||||
/** Additional file globs allowlisted by the pre-commit diff-volume gate on top of generated/lockfile patterns. Default applied at read site: []. */
|
||||
mergeDiffVolumeAllowlist?: string[];
|
||||
/** Controls overlap protection when `mergeConflictStrategy="smart-prefer-main"`
|
||||
* reaches its Attempt 3 fallback. Default: "flip-to-prefer-branch". */
|
||||
mergeStrategyOverlapBehavior?: MergeStrategyOverlapBehavior;
|
||||
|
||||
Reference in New Issue
Block a user