Commit graph

284 commits

Author SHA1 Message Date
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
71c5193ecd Open WebCRT New Session setup for LLDP placeholders.
Claim the existing placeholder in place and promote source to webcrt instead of prompting for password-only auth.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 17:20:26 +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
6642f4b8b5 Add collect dashboard KPIs and create-job modal.
Align collection tasks with LLDP/config-sync chrome, and refresh active-task overview when jobs change.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 14:08:13 +08:00
0100fb8430 Show collect job run details in the shared ops modal.
Replace the inline expand row with the same detail dialog used by LLDP and config sync.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 11:34:22 +08:00
19e06e4a2d Darken WebCRT session tabs and action bar after login.
Match the right-side chrome (tab strip and toolbar) to the dark ops shell instead of the leftover light panels.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 10:14:52 +08:00
a54c642bd9 Shorten the UME AI alarm monitor card title.
Drop the OClaw WhatsApp parenthetical from the workbench-facing label.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 10:09:51 +08:00
b7a179d492 Unify ops detail dialogs and rename workbench monitoring section.
LLDP job detail, config-sync cycle tasks, and UME fold panels now use the shared modal layout; workbench section label is 系统对接.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 10:04:19 +08:00
5a77e36839 Show network config content in a dark modal dialog.
Move the inline config viewer into the shared modal chrome so viewing stays consistent with other network management dialogs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 09:50:39 +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
83acb5eef1 Move integration health into active tasks and fix dark topology labels.
Drop header netx-api/oclaw pills, restore UME/OClaw runtime rows in ops tasks, and raise node/edge label contrast on the dark canvas.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 09:16:52 +08:00
4dd121b42f Darken topology classify section dividers to match the ops shell.
Replace the light section border and help-control colors so the bottom slice block no longer shows a white hairline.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 00:33:59 +08:00
8a856fa2ac Darken collect-task and network monitoring chrome leftovers.
Unify chips, filters, previews, toasts, and related task-page controls with the dark ops shell.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 00:31:52 +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
2de8786f85 Finish replacing CDN font stacks with local system fonts.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 23:57:52 +08:00
cc3f1b3a92 Remove Google Fonts CDN to restore fast module tab loads.
Workbench styling pulled fonts.googleapis.com which often stalls ~5s on blocked networks; switch to local system font stacks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 23:57:31 +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
254c50a2c0 Add dark workbench dashboard with host CPU/memory gauges.
Sample Windows CPU via Processor Utility so values match Task Manager, and expose host metrics on /v1/metrics/json for the workbench poll.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 23:20:29 +08:00
8ded8eeb7d Add LLDP pause/resume/stop with restart recovery, and localize ops task titles.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 22:23:44 +08:00
90bd323115 Include UME inventory NEs in LLDP all-inventory discovery.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 20:06:21 +08:00
a5d88f8a24 Fix NE connect detail crash and dark pre text contrast. 2026-08-04 19:31:27 +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
925726002f Allow editing management IP when updating an existing NE.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 15:35:15 +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
48cc381afd Allow promoting LLDP/WebCRT placeholder NEs to real device types.
Accept generic/linux on update, expose them in the device-type meta list, and auto-pick zte_zxros when vendor changes from a placeholder type.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 14:27:46 +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
bd97e1b875 Reuse stored managed-NE credentials when opening WebCRT from topology.
Deep-link open was missing has_password/protocol, so SSH always prompted for login.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 10:40:22 +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
306f90a21c Refine login layout with left earth stage and natural sunlight.
Move the globe beside the form, drop the orbit ring, and soften a blue atmospheric limb that fades into space.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 09:08:44 +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
a95b96f648 Collapse port-traffic discover logs by default.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-03 19:40:04 +08:00
4c256c521a Modernize the NETX login page with brand-first atmosphere.
Refresh typography, soft topology grid backdrop, and motion while keeping the force-change flow on the same shell.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-03 19:37:22 +08:00
4c74d34d91 Remove local-account hint from the NETX login page.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-03 19:27:26 +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
d2fb33ec0d Fix ZTE LLDP Scope table parse and skip discover without vendor.
Match ZXROS Scope/Holdtime columns, disable Netmiko cmd_verify on show commands, and do not SSH LLDP when vendor/device_type cannot be resolved.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 23:26:28 +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
69b8c7f23c Tone down WebCRT SFTP column headers to plain text.
Global app-main button styles were painting white pills on sort headers; override them to small muted labels that match the panel.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 19:33:37 +08:00
e684339511 Fix WebCRT Quick Connect stuck on authenticating.
New-session path filled wsUrl after mount, remounting the terminal and dropping the connect wait WS. Mint tickets from sessionId only and ignore late wsUrl changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 19:17:36 +08:00
fb3da4dfc7 Fix WebCRT terminal not mounting when only sessionId is set.
Reconnect and tab restore clear wsUrl; the pane still gated on wsUrl so Telnet stayed on authenticating with an empty terminal. Mount/render from sessionId instead.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 19:14:30 +08:00
c92879daf3 Stop prompting SSH credentials for Telnet WebCRT sessions.
Telnet should authenticate interactively in the terminal; only managed/quick-connect SSH without a saved password opens the credential dialog.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 19:10:49 +08:00