feat(FN-5255): flip directMergeCommitStrategy default from squash to direct
Changes the default merge strategy from squash to direct by flipping `directMergeCommitStrategy` in the settings schema and types, with the core implementation in `merger-ref-update-advance.ts`. Also aligns a heartbeat executor test assertion with the FN-5060 deduplication shape. Fusion-Task-Id: FN-5255 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai> Fusion-Task-Id: FN-5255
This commit is contained in:
@@ -151,8 +151,8 @@ describe("settings key parity", () => {
|
||||
expect(DEFAULT_PROJECT_SETTINGS.completionDocumentationMode).toBe("off");
|
||||
});
|
||||
|
||||
it("keeps directMergeCommitStrategy project-scoped with auto default", () => {
|
||||
expect(DEFAULT_PROJECT_SETTINGS.directMergeCommitStrategy).toBe("auto");
|
||||
it("defaults directMergeCommitStrategy to always-squash and keeps it project-scoped", () => {
|
||||
expect(DEFAULT_PROJECT_SETTINGS.directMergeCommitStrategy).toBe("always-squash");
|
||||
expect(isProjectSettingsKey("directMergeCommitStrategy")).toBe(true);
|
||||
expect(isGlobalSettingsKey("directMergeCommitStrategy")).toBe(false);
|
||||
});
|
||||
|
||||
@@ -103,9 +103,9 @@ describe("TaskStore", () => {
|
||||
expect(settings.mergeStrategy).toBe("pull-request");
|
||||
});
|
||||
|
||||
it("defaults directMergeCommitStrategy to auto and persists updates", async () => {
|
||||
it("defaults directMergeCommitStrategy to always-squash and persists updates", async () => {
|
||||
const defaults = await harness.store().getSettings();
|
||||
expect(defaults.directMergeCommitStrategy).toBe("auto");
|
||||
expect(defaults.directMergeCommitStrategy).toBe("always-squash");
|
||||
|
||||
await harness.store().updateSettings({ directMergeCommitStrategy: "always-rebase" });
|
||||
const settings = await harness.store().getSettings();
|
||||
|
||||
@@ -195,7 +195,7 @@ export const DEFAULT_PROJECT_SETTINGS = {
|
||||
autoMerge: true,
|
||||
testMode: undefined,
|
||||
mergeStrategy: "direct",
|
||||
directMergeCommitStrategy: "auto",
|
||||
directMergeCommitStrategy: "always-squash",
|
||||
mergeIntegrationWorktree: "reuse-task-worktree",
|
||||
integrationBranch: undefined,
|
||||
requirePrApproval: false,
|
||||
|
||||
@@ -2733,7 +2733,7 @@ export interface ProjectSettings {
|
||||
* - "auto": squash single-substantive branches, preserve history for multi-substantive branches
|
||||
* - "always-squash": always use the legacy squash path for direct merges
|
||||
* - "always-rebase": always preserve individual branch commits during direct merges
|
||||
* Only applies when mergeStrategy is "direct". Default: "auto". */
|
||||
* Only applies when mergeStrategy is "direct". Default: "always-squash". */
|
||||
directMergeCommitStrategy?: DirectMergeCommitStrategy;
|
||||
/** Auto-merge integration-root mode.
|
||||
* - "reuse-task-worktree" (default): run the auto-merge cascade in the task worktree
|
||||
|
||||
Reference in New Issue
Block a user