Commit graph

66 commits

Author SHA1 Message Date
fe754229d3 Show full region names on root map instead of CSS ellipsis.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 17:11:09 +08:00
137597cd25 Harden UME/LLDP link ports and canvas styles around UME authority.
Resolve ports from EQ+PTP first, enrich from LLDP when compatible, miss only on valid LLDP evidence, and paint UME solid blue / LLDP dashed / missing red. Also localize new root maps as Root map in English.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 16:33:25 +08:00
77832b271d Align folder permissions: roots deletable, root maps rename-only, world map locked.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 14:48:22 +08:00
1b592490a5 Protect root maps and auto world map; only sub-regions are deletable.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 14:41:06 +08:00
8fa4b2e4ea Allow deleting UME-synced sub-regions like manual regions.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 14:31:09 +08:00
467079d6ca Fix world-map zoom-out starfield, tree search canvas hits, and sidebar scroll.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 14:23:21 +08:00
fdab188cc1 Render world map overview as a screen-space starfield and rename it to 世界地图.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 11:02:23 +08:00
961d523479 Harden topology tree against bad view filters and allow deleting UME World.
Coerce non-dict filter JSON so /tree no longer 500s, surface API failure details, and let users remove the UME World container for local resets.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 09:58:20 +08:00
990798987b Fix empty topology create-root and cut navigation loading flash.
Keep the hidden system root built-in; speed tree bootstrap, unblock new-root UI, and soften query/Suspense refetch jank.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 09:18:13 +08:00
c4911b6ddc Add Google-Earth style world-map LOD with 1:1 coords and sticky tiles.
Keep visited regions when panning, prefetch detail on search locate with a gold flashing target highlight, and shrink default NE icons so dense UME layouts stay readable.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 03:57:24 +08:00
af331e92ca Fix empty world map by auto-fitting after load and sampling NEs across the extent.
World coords sit far outside the default viewport, so opening the flat map looked blank; also lower minZoom and stride-sample so the overview is visible without a truncate banner.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 02:35:26 +08:00
48b10656d2 Unify manual topology roots with UME World: auto root map, and fix empty UME canvas.
Top-level folders are nav-only with a unique system root map; UI drops custom/extra L2 creates. Batched dock-to-Fabric apply avoids PG lock OOM so World NEs can render, with subtree region counts restored.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 02:22:58 +08:00
edfa3f8756 Move topology display, align, and find into one panel that works in fullscreen.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 01:03:37 +08:00
1ef43fdcd4 Unify UME World as hex nav with conditional flat world map.
Seed a unique L2 World canvas under the UME World container, show the flat map only when nested regions have NEs, pack blocks without overlap, allow drag overrides on the world map while forbidding direct NE adds, and hide the world-map truncation banner.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 00:51:08 +08:00
155cb4e921 Defer manual canvas edges to Save and restore center-anchor connect.
Keep connect/delete/move as dirty local edits until Save, use straight edges again, and drop Visio side handles so lines attach at the NE center like discovered links.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 23:48:27 +08:00
b4f0e468cb Make neighbor projection save-deferred and Visio-style connect.
Project-neighbors supports dry_run for local dirty canvas; Save flushes adds. Connect mode uses drag-from side anchors with smoothstep elbows instead of click-click.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 23:11:13 +08:00
a746a84d01 Fix placeholder toggle to hide only the TOPO/LLDP badge.
Keep placeholder NEs on the canvas; Display menu controls the corner badge only (off by default).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 22:55:58 +08:00
73cd2704eb Hide TOPO/LLDP placeholder NEs on the canvas by default.
Add a Display toggle to show placeholders; hide their incident edges and skip them in canvas find while hidden.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 22:52:10 +08:00
6e2c8517cf Defer canvas edge deletes to Save and cascade orphan Fabric on NE detach.
Queue fabric edge deletes until Save with undo-safe pending state; hard-delete topology/LLDP placeholders from the canvas; purge fully orphaned fabric nodes after inventory detach, with a periodic reconcile GC.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 22:43:03 +08:00
2aafb72676 Fix topology truncate false positives and reduce graph/discover load.
Batch ManagedNE lookups, correct project-neighbors truncation/frozen signals, page discover polls, and delete both nodes and edges when multi-selected.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 21:48:08 +08:00
03ef9eb39a Project discover neighbors from scanned seeds only.
Accept optional seed ids on project-neighbors; canvas discover passes scanned fabric nodes and places new peers near them.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 21:34:20 +08:00
617d4245b0 Harden topology canvas edge delete, discover cancel, and map UX.
Persist Fabric edge deletes, stop LLDP jobs from the canvas, surface truncation/placeholders/stale edges, and fix LLDP job deep-links.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 21:23:00 +08:00
84a4fc037a Open LLDP job detail when jumping from canvas discover.
Pass job_id in the LLDP page URL so the network module auto-opens the task detail modal.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 19:27:52 +08:00
51f061032a Default discover auto-placeholder and canvas neighbor project on.
Sync the canvas auto-add toggle with the shared LLDP collect policy so topology collect and canvas discover stay consistent.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 19:09:09 +08:00
241093343e Add topology-canvas placeholder NE create (source=topology).
Toolbar and pane context menu create placeholders that follow the same setup path as LLDP in NE management and WebCRT.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 17:42:51 +08:00
5821d08d63 Fit topology canvas after the pane has a real size.
Avoid the corner-only first paint on slow layouts by deferring fitView until the container is ready and re-fitting on resize.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 16:47:08 +08:00
00926196f0 Widen the topology Display panel into a two-column card.
Lay out toggles and color pickers side by side with a viewport-capped height so the menu no longer runs off-screen.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 09:36:14 +08:00
a412ca7cbc Preserve NE icon white textures when applying vendor tint colors.
Layer the original PNG under a color blend tint so luminosity highlights stay visible while brand hues remain editable.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 09:34:29 +08:00
65afe8f29f Add topology display pickers for label, edge-number, and vendor icon colors.
Persist choices in localStorage, apply via canvas CSS variables, and tint router icons with mask fills so each vendor color is editable.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 09:29:02 +08:00
4a0918ab44 Hide white React Flow edge-label backgrounds on the topology canvas.
Disable labelShowBg for straight edges and suppress the default SVG textbg so link numbers render as text only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 09:21:55 +08:00
2a650ca09b Switch topology canvas and left chrome to a dark theme.
Align the default canvas background, region list, and canvas name styles with the dark ops shell, and migrate the old light canvas default.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 00:16:20 +08:00
3e7bfdb8e9 Unify dark UI surfaces and add adjustable topology canvas background.
Lazy-load module routes, restyle remaining light cards/modals/sidebars, and let canvas background be tuned from the display menu.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 23:56:18 +08:00
af29977878 Stop auto-creating maps on new regions; keep aggregate edges single-width by default. 2026-08-04 19:09:32 +08:00
c4968e334f Route incomplete topology terminals to NE inventory instead of a mini form.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 15:23:44 +08:00
14251f4698 Fully clear topology edge port labels when hide-ports is enabled.
Stop falling back to stale labels and pass hidePorts into link aggregation so only ×N remains for bundles.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 14:14:45 +08:00
1d742e58a1 Hide port names on aggregated topology links when hide-ports is on.
Bundle edges only keep a ×N count label; single-link ports stay fully hidden.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 14:11:46 +08:00
bee86eea0d Require vendor when completing unmanaged NEs from topology.
Persist vendor on create/update and refresh the canvas node so icon tone matches inventory.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 11:50:05 +08:00
57f45fdaaf Add topology link aggregation and fix WebCRT clipboard.
Default logical bundles for parallel links with optional physical expand and clearer NE-named ports; capture selection on context menu so copy/paste works again.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 11:42:41 +08:00
6e7d84b782 Restore topology fitView with off-screen nodes.
onlyRenderVisibleElements leaves nodes unmeasured; fitView now uses includeHiddenNodes so declared sizes still drive the viewport.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 10:53:18 +08:00
4600629d3a Fix topology edges to meet router icons again.
Predetermined handle coords used the 160px node box edges while DOM handles sit on the icon center, leaving a floating gap.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 10:47:46 +08:00
71acbc747f Simplify topology edge selection highlight and remove arrowheads.
Keep straight undirected links that meet nodes; selected edges only get a light blue stroke.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 10:36:04 +08:00
728894a692 Improve topology terminal open flow and edge selection feedback.
Managed NEs reuse stored credentials; unmanaged/LLDP placeholders get an IP and SSH/Telnet form. Selected links now show a clear highlight, and login page flare tweaks are included.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 10:15:59 +08:00
2d92dde8e5 Add filter-based topology bulk writes and refine API key scopes UX.
Filter add/layout/remove keeps MCP payloads small; tokens default MCP scopes and edit them in a modal with a compact help tip.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 07:39:14 +08:00
bf0dfd66d8 Add standalone topology MCP with skill, scopes UI, and opt-in live sync.
Splits canvas/Fabric tools into netx-topology-mcp, documents install and a companion Cursor skill, lets API keys grant ne:write explicitly, and adds optional topology live sync so operators can watch agent drawing without constant polling.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 00:16:02 +08:00
c13ab48ba7 Improve topology UX, traffic discover logs, and CLI wrap parsing.
Paginate LLDP job items, surface port-traffic raw logs with a 300s default, harden topology discover/edit/zoom/fullscreen, and join mid-token CLI wraps before TextFSM.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-03 19:24:43 +08:00
393fd0e0b4 Switch CLI parsing to TextFSM and polish topology/workbench UX.
Use custom cli_templates plus community ntc-templates for LLDP and port traffic across ZTE/Huawei/Cisco/H3C/Juniper/Nokia, drop regex parsers, and surface Admin/Phy/Prot on port discover. Also batch-add topology NEs and tighten workbench branding.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 23:06:40 +08:00
cb8e0d23c5 Polish topology tree UI and harden LLDP peer matching.
Make left-tree selection, hex browser, and sidebar chrome clearer while matching peers by hostname/ports instead of mgmt IP and reducing fabric-node insert deadlocks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 15:42:15 +08:00
a5a3a4f156 Add topology classify inventory, fabric lifecycle, and broader collect targets.
Treat Fabric as an inventory sheet for role/region tagging and slices; detach fabric links on managed/UME delete instead of cascading map deletes. Extend collection to all managed and UME NEs, show NE source in management, and refine canvas vendor icon tones.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 11:09:58 +08:00
e7f97b7cf6 Harden LLDP collect ops: edge list, job reclaim, and schedule hygiene.
Add fabric link browsing, conservative job retention, hour-based intervals, multi-worker start locking, and trim canvas discover UI in favor of the LLDP page.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 03:58:03 +08:00
d05ba0f1f7 Add LLDP collect page with conservative fabric edge lifecycle.
Move scheduled discovery under Network → LLDP links, mark absent edges missing after one successful scan, purge only after four miss cycles, and expose unmatched/raw job detail.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 03:39:15 +08:00