Huawei NEs still tagged zte_zxros were getting show lldp neighbor brief and timing out; use display lldp neighbor and align UME inventory vendor before the jump.
Co-authored-by: Cursor <cursoragent@cursor.com>
Some hops only accept stelnet in system-view; make it a saved yes/no setting (default off) instead of auto-retry, and always ALTER the new column on API boot when Alembic skips legacy DDL.
Co-authored-by: Cursor <cursoragent@cursor.com>
Skip Huawei special_login_handler under interactive WebCRT, harden stelnet host-key auth, and echo hop/login progress into the terminal during connect.
Co-authored-by: Cursor <cursoragent@cursor.com>
Topology MCP adds pull/compact/bundle/suggest-hubs with a no-template skill path; API gains fabric level and NE collection policy; web list pages get paging and denser collect/network workflows.
Co-authored-by: Cursor <cursoragent@cursor.com>
Reject non-interactive CLI work early across exec, LLDP, config sync, collection, traffic, and connect-test flows so tasks record a clear reason instead of launching a doomed session.
Co-authored-by: Cursor <cursoragent@cursor.com>
Mirror config-sync retry_failed so operators can re-collect hard failures and empty/stub LLDP results without re-running the full scope.
Co-authored-by: Cursor <cursoragent@cursor.com>
Ensure startup safety-net adds a_ifname/z_ifname on brownfield DBs, and normalize ADD COLUMN IF NOT EXISTS for SQLite tests.
Co-authored-by: Cursor <cursoragent@cursor.com>
execManagedNe can take ne_ids/ume_ne_ids/targets and POST /v1/managed-ne/exec-batch so many show commands run in parallel instead of serial one-NE MCP loops.
Co-authored-by: Cursor <cursoragent@cursor.com>
Pass view kind into membership so metro maps are not capped at core=80, add region-scoped neighbor projection, and align UI/tests with one physical canvas per region.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Old installs hung the canvas on the top-level region; migrate those views under a system root map so tree load and create-root keep working.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
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>
Live TopoNodes use MD=...;ME=<uuid> / SBN=<uuid> without nodeId; extract those uuids as stable PKs and parent refs so reconcile drops old name:hash rows.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use savepoint upserts with payload dedupe, finalize jobs on a fresh sibling session, serialize concurrent topology syncs, and reap stale running rows so the scheduler does not keep spawning orphans.
Co-authored-by: Cursor <cursoragent@cursor.com>
Phase-1 docks both topology APIs without writing Fabric; expose a 24h topology_auto_sync task and domain=topology manual sync for later LLDP alignment.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop infinite reconnect loops when ZTE returns HTML 500 for a dead stream id and surface re-establish in the UI.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
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>
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>
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>
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>
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>