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>
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>
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>
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>
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>
onlyRenderVisibleElements leaves nodes unmeasured; fitView now uses includeHiddenNodes so declared sizes still drive the viewport.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Mint a fresh ws_ticket on every terminal mount, soft-retry transient WS drops without killing the PTY, auto-reattach on tab focus, and persist open sessions across leaving /webcrt.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep two warm terminals, coalesce stdout per frame, trim scrollback, and allow Telnet credential prompts for managed/quick-connect targets.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract ume_support/ume_router and alarms_router so main stays startup-focused, add topology fabric/views import surfaces, and gate managed-NE writes by ne:write.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add capability RBAC, Alembic bootstrap, optional worker schedulers, and close public docs by default so lab installs stay usable without shared signing keys.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Unify live runners in /audit/tasks (including UME sync and connect tests), extend port-traffic compare past now via ahead_hours, and distinguish WebCRT connecting/ready/detached.
Co-authored-by: Cursor <cursoragent@cursor.com>
Fix unreadable collect-log contrast, surface errors on the Logs button, and let operators re-link a monitor to a chosen inventory NE without wiping samples.
Co-authored-by: Cursor <cursoragent@cursor.com>
Mirror LLDP job retention so finished sync cycles are pruned by policy while keeping per-NE config version history separate.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
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>
Stream large uploads/downloads with progress, raise the size cap, and support drag-drop folders plus fixed/resizable columns.
Co-authored-by: Cursor <cursoragent@cursor.com>
Open SFTP on the live session transport after SSH connect, pass the target path on every list refresh, and use folder/file icons in the browser panel.
Co-authored-by: Cursor <cursoragent@cursor.com>
Reuse detached sessions on reconnect, mount only the active tab, surface backpressure drops, gate SFTP for unsupported targets, and polish attach replay, find/recording performance, and terminal i18n.
Co-authored-by: Cursor <cursoragent@cursor.com>