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>
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>
Keep connect/delete/move as dirty local edits until Save, use straight edges again, and drop Visio side handles so lines attach at the NE center like discovered links.
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>
Add a Display toggle to show placeholders; hide their incident edges and skip them in canvas find while hidden.
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>
Sync the canvas auto-add toggle with the shared LLDP collect policy so topology collect and canvas discover stay consistent.
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>
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>
Align collection tasks with LLDP/config-sync chrome, and refresh active-task overview when jobs change.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>