diff --git a/apps/desktop/src/components/diff/SchemaDiffConfigStep.vue b/apps/desktop/src/components/diff/SchemaDiffConfigStep.vue
index 6946109c2d..129fafa971 100644
--- a/apps/desktop/src/components/diff/SchemaDiffConfigStep.vue
+++ b/apps/desktop/src/components/diff/SchemaDiffConfigStep.vue
@@ -448,28 +448,6 @@ async function fetchDbVersion(connectionId: string, database: string, schema: st
/>
-
-
-
-
-
-
-
- {{ t("diff.tableSelectionUnrestricted") }}
-
-
-
-
{{ t("diff.info") }}
@@ -555,17 +533,6 @@ async function fetchDbVersion(connectionId: string, database: string, schema: st
/>
-
-
-
{{ t("diff.autoMatchHint") }}
-
- {{ t("diff.matchedTables", { matched: matchResult.matched.length, total: localSelectedTables.length }) }}
-
-
- {{ t("diff.missingTargetTables", { tables: missingTargetTables.join(", ") }) }}
-
-
-
{{ t("diff.info") }}
@@ -585,6 +552,41 @@ async function fetchDbVersion(connectionId: string, database: string, schema: st
+
+
+
+
+
+
+
+
+ {{ t("diff.tableSelectionUnrestricted") }}
+
+
+
+
+
+
+
{{ t("diff.autoMatchHint") }}
+
+ {{ t("diff.matchedTables", { matched: matchResult.matched.length, total: localSelectedTables.length }) }}
+
+
+ {{ t("diff.missingTargetTables", { tables: missingTargetTables.join(", ") }) }}
+
+
+
+
diff --git a/apps/desktop/src/components/diff/__tests__/SchemaDiffDialog.spec.ts b/apps/desktop/src/components/diff/__tests__/SchemaDiffDialog.spec.ts
index 16ba33f997..2cd2c8753c 100644
--- a/apps/desktop/src/components/diff/__tests__/SchemaDiffDialog.spec.ts
+++ b/apps/desktop/src/components/diff/__tests__/SchemaDiffDialog.spec.ts
@@ -54,4 +54,21 @@ describe("SchemaDiffDialog fullscreen layout", () => {
expect(configStepSource).toContain('v-if="restrictTables && canConfigureTableSelection"');
expect(configStepSource).toContain("restrictTables && localSelectedTables.length && canConfigureTableSelection && isTableIdentityReady('target')");
});
+
+ it("keeps explicit table selection in a shared scope below both sides", () => {
+ const comparisonScope = configStepSource.indexOf("");
+ const targetInfo = configStepSource.indexOf("");
+ const options = configStepSource.indexOf("");
+ const tableSelectors = configStepSource.match(/
", comparisonScope);
+
+ expect(comparisonScope).toBeGreaterThan(targetInfo);
+ expect(comparisonScope).toBeLessThan(options);
+ expect(tableSelectors).toHaveLength(1);
+ expect(tableSelector).toBeGreaterThan(comparisonScope);
+ expect(tableSelector).toBeLessThan(options);
+ expect(targetMatch).toBeGreaterThan(comparisonScope);
+ expect(targetMatch).toBeLessThan(options);
+ });
});