Skip to content

0.9.1-15 Added Group mode to Graph View#36

Merged
TheWover merged 20 commits into0.9.1from
0.9.1-15
Jan 4, 2026
Merged

0.9.1-15 Added Group mode to Graph View#36
TheWover merged 20 commits into0.9.1from
0.9.1-15

Conversation

@TheWover
Copy link
Copy Markdown
Member

@TheWover TheWover commented Jan 2, 2026

Added a Group mode to the Graph View that allows the user to create multiple sets of filters and render each on a canvas. The user can do things like create a Group by filtering for a specific tag (such as device type in a network diagram). They will see that group and any other that they wish to see.

image

Additionally, groups can be viewed in nesting mode so that superset Groups are rendered as containing subsets Groups.

image

There is also a Cards mode.

image

Note

Adds a fourth Graph sub-view, enabling set-based visualization and management.

  • New Group view (frontend/src/views/GroupView.tsx) renders filter-defined groups using React Flow; supports flat Hasse-diagram edges or nested boxes, with optional in-group node cards and soft-link edges
  • Group management UI: GroupManagerPanel.tsx (create/enable/rename/delete up to 50 groups; per-group filters) and GroupOptionsTray.tsx (nesting, show node cards, max cards, cap indicator, JSON export/import)
  • State/persistence: useGroupViewStore (frontend/src/store/groupViewState.ts) with per-tab localStorage save/load and config export/import
  • Group layout/logic: frontend/src/utils/grouping.ts (equivalence boxes, subset cover reduction, remainders) with a lightweight spec (grouping.spec.ts)
  • Graph wiring: sub-view switcher updated in Graph.tsx; context menu variant in NodeContextMenu.tsx adds canvas "Save as PNG"; new GroupBoxNode component for group boxes
  • Docs: docs/graph-view.md updated to include Group view and usage; Desktop Electron devDependency bumped to ^38.7.2 (lockfile updated)

Written by Cursor Bugbot for commit 2dc7388. This will update automatically on new commits. Configure here.

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Comment thread frontend/src/components/graph/GroupBoxNode.tsx
@TheWover TheWover linked an issue Jan 4, 2026 that may be closed by this pull request
@TheWover TheWover added the enhancement New feature or request label Jan 4, 2026
@TheWover TheWover added this to the 0.9.1 milestone Jan 4, 2026
@TheWover TheWover self-assigned this Jan 4, 2026
Comment thread frontend/src/views/GroupView.tsx
@TheWover TheWover merged commit 8c59387 into 0.9.1 Jan 4, 2026
1 check passed
@TheWover TheWover deleted the 0.9.1-15 branch January 4, 2026 21:56
}

return { flowNodes: nodes, flowEdges: edges }
}, [equivalence, layout.boxes, options.nestGroups, options.showNodeCards, options.maxCardsPerGroup, options.showCapIndicator, idToMeta])
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing dependencies in useMemo cause stale node data

The useMemo computing flowNodes and flowEdges uses idToPath (lines 229, 373) and verbweaverNodes (lines 230, 374) inside the callback, but these are missing from the dependency array. When nodes are updated in the store, the memoized computation won't re-run, causing node cards to display stale metadata (title, type, etc.) until another listed dependency changes.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sub-group view on Mind Map

1 participant