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>
Add quick-connect sessions with credential retry, raw interactive drivers, bootstrap banner replay, Huawei telnet prompt cleanup, and session rename/delete in the tree.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove the edge legend and React Flow attribution, and fix layout/align select padding so Chinese labels render fully.
Co-authored-by: Cursor <cursoragent@cursor.com>
Align NE, UME, system, topology, and WebCRT with shared list styling, and set the browser tab title to NetX.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the sidebar title/collapse chrome and align devices, alarms, configs, collect, and sync pages to the shared list layout.
Co-authored-by: Cursor <cursoragent@cursor.com>
Persist board/panel layouts server-side, open each board outside the network shell so workbench reloads do not refresh walls, and fix mapped-baseline chart overlay plus fullscreen fit.
Co-authored-by: Cursor <cursoragent@cursor.com>
Split the ops wall to its own route with fullscreen charts, persist collect errors as device events, and polish wall legend layout.
Co-authored-by: Cursor <cursoragent@cursor.com>
Default auto-layout-after-discover to off (persisted), skip fitView unless layout ran, and dismiss the display details panel on outside click or Esc.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use SVG sidebar icons and ASCII separators, tighten chrome, add connect-mode hint, and drop the redundant status bar.
Co-authored-by: Cursor <cursoragent@cursor.com>
Group tools with display, drop the redundant locate button, clear find query after Enter, and restore corrupted edit/delete/collapse glyphs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Report unmatched/stub neighbors and matched links, move result lists into detail dialogs, deep-link edges to port traffic, and add fuzzy type-ahead canvas/palette NE search.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add tool modes, layouts, and per-edge/default style overrides with a cleaner toolbar and context menus.
Co-authored-by: Cursor <cursoragent@cursor.com>
Set uPlot data before toggling baseline series, keep previous compare data while refetching, and resize after legend layout changes.
Co-authored-by: Cursor <cursoragent@cursor.com>
Compare by interface target_id with optional mapped baseline (same window or time-shifted), keep chart samples on target_row_id, and unify UI wording to interface.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extend port discovery/sampling beyond ZTE, harden IOSv session prep, and avoid send_command_timing so Building configuration does not truncate config sync.
Co-authored-by: Cursor <cursoragent@cursor.com>
Require up/down admin columns and known iface name prefixes so device prompts are not treated as ports.
Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid window.open(url, namedWindow) reloads that wiped WebCRT sessions; reclaim named windows without navigating when already open.
Co-authored-by: Cursor <cursoragent@cursor.com>
Config/NE/topology links now focus the webcrt window instead of replacing network routes; formatSystemTime treats naive API timestamps as UTC.
Co-authored-by: Cursor <cursoragent@cursor.com>
Per-NE failures stay in fail_count for retry; completed cycles no longer fail the whole run. Configurations page can download txt/zip snapshots.
Co-authored-by: Cursor <cursoragent@cursor.com>
Disable auto-sync by default, enforce single-flight cycles with crash requeue, delay new scheduled runs after restart, and make the network sidebar collapsible.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep disable_paging for collection/MCP; WebCRT opens sessions with interactive=True so the device CLI is not pre-seeded.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the top selection bar with a context menu, tighten map/palette cards and fullscreen controls, and tint the router asset by vendor (ZTE keeps default blue).
Co-authored-by: Cursor <cursoragent@cursor.com>
These raw fetch/navigation paths skipped Authorization after login was required, same class of bug as topology discover stream.
Co-authored-by: Cursor <cursoragent@cursor.com>
The SSE discover endpoint used raw fetch without Authorization, so login sessions got unauthorized after auth was enabled.
Co-authored-by: Cursor <cursoragent@cursor.com>
Nested stelnet/telnet captures hop TTY width at start; Netmiko's default 511 cols made mid-line edit redraws wrap and garble in ~80-col WebCRT.
Co-authored-by: Cursor <cursoragent@cursor.com>
Normalize SS3 arrows to CSI and stop remapping to Ctrl-B so left/right actually move the device cursor after login.
Co-authored-by: Cursor <cursoragent@cursor.com>
Gate netx Web/API/WebCRT with JWT and per-user API tokens, bootstrap an admin with forced password change, and expose users/audit/API-key management under a System section. MCP can reuse data/auth/mcp_token without extra env for local labs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Nested Huawei/ZTE/Cisco jumps keep the hop channel open after quit/exit; detect nested close or hop prompt return and tear down WebCRT so users cannot operate the proxy.
Co-authored-by: Cursor <cursoragent@cursor.com>