fix(dashboard): restore graph visual preferences (#247) #250

Merged
xiaomo merged 2 commits from fix/dashboard-graph-visual-247 into main 2026-05-14 03:43:32 +00:00
Owner

What

Restore workflow graph visual preferences that were never committed to code.

Why

The graph had visual clutter (dashed FALLBACK edges, FALLBACK labels, clickable inactive nodes, overlapping feedback edges).

Changes

Phase 1 (closes #248)

  • condition-edge.tsx: unified solid lines (no strokeDasharray), hide FALLBACK labels, unified stroke color
  • role-node.tsx: cursor-pointer only on active/completed nodes

Phase 2 (closes #249)

  • types.ts: add feedbackSide to ConditionEdgeData
  • use-layout.ts: alternate feedback edges left/right per target node
  • condition-edge.tsx: feedbackPath() supports left-side routing

Ref

Closes #247, #248, #249

## What Restore workflow graph visual preferences that were never committed to code. ## Why The graph had visual clutter (dashed FALLBACK edges, FALLBACK labels, clickable inactive nodes, overlapping feedback edges). ## Changes ### Phase 1 (closes #248) - **condition-edge.tsx**: unified solid lines (no strokeDasharray), hide FALLBACK labels, unified stroke color - **role-node.tsx**: cursor-pointer only on active/completed nodes ### Phase 2 (closes #249) - **types.ts**: add feedbackSide to ConditionEdgeData - **use-layout.ts**: alternate feedback edges left/right per target node - **condition-edge.tsx**: feedbackPath() supports left-side routing ## Ref Closes #247, #248, #249
xingyue added 2 commits 2026-05-14 03:42:24 +00:00
What: Restore graph visual preferences — all edges solid, FALLBACK labels hidden,
inactive nodes not clickable.

Why: Visual consistency and cleaner graph appearance per design preferences.

Changes:
- condition-edge.tsx: remove strokeDasharray, unify stroke color, hide FALLBACK labels
- role-node.tsx: cursor-pointer only on non-default state nodes

Ref: #247, closes #248
What: Feedback (back) edges now alternate between left and right sides
instead of all routing to the right.

Why: Multiple feedback edges targeting the same node (e.g. reviewer→coder
and tester→coder) were overlapping on the right side.

Changes:
- types.ts: add feedbackSide field to ConditionEdgeData
- use-layout.ts: track feedback count per target, alternate sides
- condition-edge.tsx: feedbackPath() accepts side param, mirrors path for left

Ref: #247, closes #249
xiaomo approved these changes 2026-05-14 03:43:28 +00:00
xiaomo left a comment
Owner

LGTM. Clean implementation across both phases:

Phase 1: Unified solid edges (removed dashed fallback styling), hidden FALLBACK labels, conditional cursor-pointer only on non-default state nodes — all good.

Phase 2: Alternating left/right feedback edge routing via per-target counter is a nice approach. The side parameter and directional multiplier d keep the path math clean.

Approved.

LGTM. Clean implementation across both phases: **Phase 1:** Unified solid edges (removed dashed fallback styling), hidden FALLBACK labels, conditional cursor-pointer only on non-default state nodes — all good. **Phase 2:** Alternating left/right feedback edge routing via per-target counter is a nice approach. The `side` parameter and directional multiplier `d` keep the path math clean. Approved.
xiaomo merged commit 3384c38d02 into main 2026-05-14 03:43:32 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#250