Root cause: fitToGraph's clampPan clamped against graphBoundsRef, which a separate effect populated from NORMALIZED bounds — on first paint the ref was still {0,0,0,0}, so pan clamped to +/-viewport (off-center) and only a manual drag re-ran clampPan against the committed bounds. Fit now runs on normalizedPositions (fit-space == render-space == clamp-space), after the setGraphBounds effect, deferred a double-rAF so the committed bounds are live before clampPan; ResizeObserver still drives the hidden->visible 0->N fit. Manual-layout opt-out preserved.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- List view: remove the 'X of Y tasks' count from the desktop sidebar toolbar and the border between the controls row and the quick-add box (mobile count kept). Count-display tests now verify the filter via rendered rows.
- Command Center Overview: View Board / View Agents are btn btn-secondary (taller, centered) matching the Stop AI Engine button.
- Dependency graph: fit/center on load — the initial fit ran before the viewport was measured + before nodes were positioned (async), and never re-fit. Now fits only when fittable (nodes + measured viewport) and re-fits when the node set changes (covers async load + re-entering the view).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Broaden dependency graph layout coverage for empty and populated desktop/mobile surfaces.
- replace two separate full-width layout tests with a table-driven suite
- cover both empty and populated graph states on desktop-width and mobile-width surfaces
- keep the flex-parent fill assertion shared across all enumerated surfaces
Files changed:
.../src/__tests__/DependencyGraph.test.tsx | 37 +++++++++++++++-------
1 file changed, 25 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-6019
Fusion-Task-Lineage: a34b2bdd-d489-4e84-9604-e6265bce733a
Ensure the bundled dependency graph stretches to the full available dashboard width.
- add flex sizing and min-width rules so the dependency graph fills its parent container
- cover empty-state and populated mobile-width layouts with CSS-backed flex sizing assertions
- add a patch changeset for the published CLI bundle
Files changed:
.changeset/sharp-graphs-stretch.md | 5 +++
plugins/fusion-plugin-dependency-graph/src/DependencyGraph.css | 3 ++
plugins/fusion-plugin-dependency-graph/src/__tests__/DependencyGraph.test.tsx | 44 ++++++++++++++++++++++
3 files changed, 52 insertions(+)
Fusion-Task-Id: FN-6019
Fusion-Task-Lineage: a34b2bdd-d489-4e84-9604-e6265bce733a
Align the dependency graph plugin's dashboard interop declarations with the current dashboard contract.
- import ReactNode for plugin task card rendering support
- add DetailTaskTab, PluginToastType, and PluginTaskView type exports
- update PluginDashboardViewContext to require workflowSteps and the expanded openTaskDetail signature
- add optional renderTaskCard and addToast hooks to match dashboard expectations
Files changed:
.../src/dashboard-interop.d.ts | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-5935
Fusion-Task-Lineage: 32313a96-1008-4de6-a7cb-e6bfbc385534
The Binary Release workflow stopped producing any GitHub Release assets
because every release had at least one failing build leg, and the
github-release job (needs: all four builds, no if:) was skipped whenever
any leg failed — suppressing even successfully-built platforms.
Root causes fixed:
- github-release: add `if: !cancelled()` + zero-artifact guard so a single
failing leg yields a partial release instead of none.
- setup-node-pnpm cache key: add runner.arch. runner.os is only
Linux/macOS/Windows, so arm64 runners restored x64 node_modules missing
native deps (@rollup/rollup-linux-arm64-gnu), crashing `pnpm build`.
- macOS CLI sign step: guard on APPLE_CERTIFICATE_BASE64 so unsigned
binaries still publish when certs are absent; add timeout-minutes: 30 to
build-binaries to avoid 24h runner hangs.
- dependency-graph plugin: replace unix cp/mkdir -p (failed on Windows
cmd.exe) with a cross-platform node copy script.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>