Skip to content

feat: add nested hierarchical groups for connection list#487

Merged
datlechin merged 3 commits intomainfrom
feat/nested-groups
Mar 28, 2026
Merged

feat: add nested hierarchical groups for connection list#487
datlechin merged 3 commits intomainfrom
feat/nested-groups

Conversation

@datlechin
Copy link
Copy Markdown
Collaborator

Summary

Closes #478

  • Nested groups — groups can contain subgroups up to 3 levels deep, following the existing FavoriteTreeItem + FavoritesTabView pattern
  • Tree data model — new ConnectionGroupTreeNode enum with recursive buildGroupTree, filterGroupTree, flattenVisibleConnections, plus utility functions for cascade delete, circular reference prevention, and depth validation
  • Native macOS UX — replaced flat Section headers with recursive DisclosureGroup for expand/collapse, matching the favorites sidebar pattern
  • Cascade delete — deleting a parent group removes all descendants and ungroups their connections
  • Hierarchical group picker — "Move to Group" menu and CreateGroupSheet now show nested hierarchy with parent selection
  • iCloud syncparentId and sortOrder fields added to CKRecord mapping
  • 30 unit tests for tree building, filtering, flattening, cycle detection, depth cap, and cascade logic

Test plan

  • Create top-level group, subgroup, and 3rd-level subgroup
  • Verify "New Subgroup" disabled at depth 3
  • Expand/collapse groups via disclosure triangle and Ctrl+H/L
  • Delete parent group — verify cascade removes subgroups, ungroups connections
  • Rename group — verify sibling duplicate check
  • Search filters connections while preserving parent group chain
  • Drag to reorder connections within a group and at top level
  • "Move to Group" context menu shows hierarchy
  • Group picker in connection form shows nested hierarchy
  • Keyboard navigation (arrows, Ctrl+J/K, Return, Cmd+A, Escape)
  • Double-click to connect
  • Multi-select context menu (batch connect, export, delete)
  • Run unit tests: xcodebuild test -only-testing:TableProTests/ConnectionGroupTreeTests

@datlechin datlechin force-pushed the feat/nested-groups branch from 04569c2 to 847bc26 Compare March 28, 2026 11:04
@datlechin datlechin force-pushed the feat/nested-groups branch from 888ad99 to b5ec940 Compare March 28, 2026 11:09
@datlechin datlechin merged commit 2f81a5c into main Mar 28, 2026
2 checks passed
@datlechin datlechin deleted the feat/nested-groups branch March 28, 2026 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: nested groups in the connection-list

1 participant