feat(FN-4069): add direct merge commit routing to merger

Adds direct merge commit routing to the merger, allowing non-squash merges to bypass the squash-audit path when configured. The feature includes new `mergeCommitStrategy` settings, updated dashboard UI, expanded merger lifecycle tests, and documentation.

Fusion-Task-Id: FN-4069
This commit is contained in:
Fusion
2026-05-12 15:50:22 -07:00
committed by gsxdsm
parent dfb613e2f1
commit be5e1fbd97
17 changed files with 899 additions and 135 deletions

View File

@@ -177,6 +177,7 @@ const defaultSettings = {
overlapIgnorePaths: [],
autoMerge: true,
mergeStrategy: "direct",
directMergeCommitStrategy: "auto",
pushAfterMerge: false,
pushRemote: "origin",
verificationFixRetries: 2,
@@ -248,6 +249,17 @@ describe("SettingsModal", () => {
expect(container.querySelectorAll(".settings-section-heading").length).toBeGreaterThan(0);
});
it("shows direct merge commit routing only for direct merges", async () => {
renderModal();
await waitForSettingsModalReady();
await userEvent.click(screen.getByRole("button", { name: /^Merge$/ }));
expect(screen.getByLabelText("Direct merge commit routing")).toHaveValue("auto");
await userEvent.selectOptions(screen.getByLabelText("Auto-completion mode"), "pull-request");
expect(screen.queryByLabelText("Direct merge commit routing")).not.toBeInTheDocument();
});
beforeEach(() => {
vi.clearAllMocks();
clearPluginUiSlotsCache();