Keep the facade for callers, retarget unit-test patches to ne_session_connect, and fix the ConnectHandler coverage case to use a non-Cisco device type.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep thin facades for existing imports, tighten CSV import required columns, and restore Chinese WebCRT connection labels in status responses.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract channel/session modules and CLI guard, move UME sidebands out of main, and default NETX_RUN_INLINE_SCHEDULERS off so ops run python -m netx_api.worker.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract shared brownfield patches, add the legacy revision, and default to upgrade-head plus skip of duplicate inline DDL (with legacy fallback if Alembic fails).
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>
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>
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>
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>
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>
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>
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>
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>
Align session credential checks with connectivity test so target password can live only on the bastion.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use raw Telnet reads for ANSI backspace, drop local erase so Tab/completion stays in sync, and make WebSocket attach exclusive so StrictMode remounts cannot drop the first echo.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the complete session_log replay including the final prompt, and stop clearing bootstrap on attach so StrictMode remounts do not blank the CRT.
Co-authored-by: Cursor <cursoragent@cursor.com>
Capture Netmiko session_log for login replay, open NE terminals in a fresh tab, tidy the device list UI with reconnect/log/clear/copy, and paint a live prompt after attach so the first keystrokes behave normally.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drain and nudge the device prompt after Netmiko login, replay bootstrap stdout when the WebSocket attaches, and surface connect errors in the terminal pane.
Co-authored-by: Cursor <cursoragent@cursor.com>
Huawei/ZTE/Cisco Telnet often rejects xterm DEL and CSI arrows; rewrite them to BS and emacs Ctrl-B/F/P/N so editing and history work.
Co-authored-by: Cursor <cursoragent@cursor.com>