From 8220ec66b77296e982e3a58583561eddaa70c5f4 Mon Sep 17 00:00:00 2001 From: Fusion Date: Tue, 12 May 2026 20:35:00 -0700 Subject: [PATCH] feat(FN-4238): export merger errors from engine and polish workflow results Exports merger error types from the engine package for use in the dashboard and CLI. Adds tests for the engine barrel exports and fixes workflow results tab styling to align the edit toggle with button styles. Fusion-Task-Id: FN-4238 --- .changeset/fn-4238-export-merger-errors.md | 5 ++ .../app/components/WorkflowResultsTab.css | 28 ++++++--- .../app/components/WorkflowResultsTab.tsx | 2 +- .../__tests__/WorkflowResultsTab.test.tsx | 11 ++++ .../src/__tests__/engine-public-api.test.ts | 60 +++++++++++++++++++ packages/engine/src/index.ts | 3 + 6 files changed, 99 insertions(+), 10 deletions(-) create mode 100644 .changeset/fn-4238-export-merger-errors.md create mode 100644 packages/engine/src/__tests__/engine-public-api.test.ts diff --git a/.changeset/fn-4238-export-merger-errors.md b/.changeset/fn-4238-export-merger-errors.md new file mode 100644 index 000000000..b189d81d3 --- /dev/null +++ b/.changeset/fn-4238-export-merger-errors.md @@ -0,0 +1,5 @@ +--- +"@runfusion/fusion": minor +--- + +Export `DiffVolumeRegressionError`, `MergeAbortedError`, and `SquashAuditError` from `@fusion/engine` so consumers can use `instanceof` checks without deep-importing. diff --git a/packages/dashboard/app/components/WorkflowResultsTab.css b/packages/dashboard/app/components/WorkflowResultsTab.css index cbebf2fc4..0b241f3d2 100644 --- a/packages/dashboard/app/components/WorkflowResultsTab.css +++ b/packages/dashboard/app/components/WorkflowResultsTab.css @@ -54,19 +54,13 @@ .workflow-results-edit-toggle { width: auto; - height: calc(var(--space-lg) * 2 - var(--space-xs)); - padding: 0 calc(var(--space-sm) + var(--space-xs) * 0.5); - border: 1px solid var(--border); - border-radius: var(--radius-sm); - background: var(--surface); + min-height: calc(var(--space-lg) * 2 - var(--space-xs)); + padding-inline: calc(var(--space-sm) + var(--space-xs) * 0.5); color: var(--text-muted); - font-size: calc(var(--space-sm) + var(--space-xs)); - font-weight: 500; gap: calc(var(--space-xs) + var(--space-xs) * 0.5); } .workflow-results-edit-toggle:hover { - background: var(--card-hover); color: var(--text); } @@ -229,7 +223,7 @@ /* Phase badge base and modifier classes */ .phase-badge { margin-inline-start: var(--space-xs); - font-size: 11px; + font-size: calc(var(--space-sm) + var(--space-xs) * 0.75); padding: var(--space-xs) var(--space-sm); border-radius: var(--radius-sm); } @@ -293,6 +287,7 @@ .workflow-result-output-header { display: flex; + flex-wrap: wrap; align-items: center; gap: var(--space-sm); margin-bottom: var(--space-xs); @@ -307,6 +302,8 @@ } .workflow-result-output-preview { + flex: 1 1 calc(var(--space-2xl) * 6); + min-width: 0; font-size: calc(var(--space-sm) + var(--space-xs) * 0.75); color: var(--text-dim); font-style: italic; @@ -504,6 +501,19 @@ min-height: calc(var(--space-lg) * 2 + var(--space-xs)); } + .workflow-result-output-header { + align-items: flex-start; + } + + .workflow-result-output-preview { + flex-basis: 100%; + order: 3; + } + + .workflow-result-mode-toggle { + margin-left: 0; + } + .workflow-configured-header { align-items: flex-start; } diff --git a/packages/dashboard/app/components/WorkflowResultsTab.tsx b/packages/dashboard/app/components/WorkflowResultsTab.tsx index b19c1f07b..0771a2fb3 100644 --- a/packages/dashboard/app/components/WorkflowResultsTab.tsx +++ b/packages/dashboard/app/components/WorkflowResultsTab.tsx @@ -570,7 +570,7 @@ export function WorkflowResultsTab({ const editButton = canEdit ? (