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:
gsxdsm
2026-05-23 11:01:05 -07:00
parent ec1269fd84
commit 8f5c1f97ad
10 changed files with 19 additions and 11 deletions

View File

@@ -2461,6 +2461,7 @@ describe("aiMergeTask post-squash audit gate", () => {
mergeIntegrationWorktree: "cwd-main" as const,
testCommand: "pnpm test",
mergeConflictStrategy: "ai-only",
directMergeCommitStrategy: "auto",
worktreeRebaseBeforeMerge: false,
worktreeRebaseLocalBase: false,
...overrides,

View File

@@ -163,7 +163,7 @@ export async function advanceIntegrationBranchRef(args: {
["merge-base", "--is-ancestor", expectedCurrentSha, newSha],
rootDir,
);
} catch (error: unknown) {
} catch (_error: unknown) {
const diagnostic = `newSha ${newSha} is not a descendant of ${expectedCurrentSha} on ${ref}`;
await emitRefAdvance({
succeeded: false,

View File

@@ -5824,7 +5824,7 @@ function resolveDirectMergeCommitStrategy(
return { strategy: promptOverride, source: "prompt" };
}
return {
strategy: settings.directMergeCommitStrategy ?? "auto",
strategy: settings.directMergeCommitStrategy ?? "always-squash",
source: "project",
};
}