Skip to content

Fix/topo issues#342

Merged
mayanayza merged 7 commits intodevfrom
fix/topo-issues
Dec 20, 2025
Merged

Fix/topo issues#342
mayanayza merged 7 commits intodevfrom
fix/topo-issues

Conversation

@mayanayza
Copy link
Collaborator

No description provided.

  When running discovery multiple times, duplicate Docker bridge interfaces
  and empty host entries were created instead of conflating with existing
  entities.

  Root causes:
  - Interface equality only compared IP + subnet_id, so containers with
    changed IPs (Docker DHCP) were treated as new interfaces
  - Docker discovery didn't include the daemon host's physical interfaces,
    so network discovery couldn't match hosts by MAC or subnet+IP

  Changes:
  - Add MAC address to Interface PartialEq and Hash implementations
  - Include daemon host physical interfaces in Docker discovery temp host
  When running discovery multiple times, duplicate Docker bridge interfaces
  and empty host entries were created instead of conflating with existing
  entities.

  Root causes:
  - Interface equality only compared IP + subnet_id, so containers with
    changed IPs (Docker DHCP) were treated as new interfaces
  - Docker discovery didn't include the daemon host's physical interfaces,
    so network discovery couldn't match hosts by MAC or subnet+IP

  Changes:
  - Add MAC address to Interface PartialEq and Hash implementations
  - Include daemon host physical interfaces in Docker discovery temp host
…ap prevention

  Add horizontal compression pass that runs after edge optimization:
  - Subnets with non-horizontal (vertical/mixed) edges are locked in place
  - Unlocked subnets are compressed toward locked ones to minimize empty space
  - Subnets with no locked neighbors compress toward the left edge

  Fix subnet overlap bug in apply_non_overlap_constraint:
  - Previous logic could oscillate between positions when multiple subnets
    wanted the same X coordinate (e.g., docker bridges connecting to same host)
  - New approach generates candidate positions at subnet edges and selects
    the valid non-overlapping position closest to the optimal edge length

  Add SUBNET_PADDING constant (125px) for consistent spacing throughout
  the subnet positioning algorithm.
  - Fix auto reload toggle not persisting across page reloads by adding
    localStorage save/load logic and preventing initial subscription from
    overwriting stored value
  - Align backend default for group_docker_bridges_by_host to true,
    matching the frontend default
  - Hide interface edge labels when both connected nodes are on the same
    subnet to reduce visual clutter
@mayanayza mayanayza merged commit cb8e535 into dev Dec 20, 2025
4 checks passed
@mayanayza mayanayza deleted the fix/topo-issues branch December 21, 2025 22:03
mayanayza added a commit that referenced this pull request Feb 24, 2026
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.

1 participant