Commit graph

222 commits

Author SHA1 Message Date
bbbc5a9f25 Show folder breadcrumb hierarchy with one-level back, and drop unused P/N badges.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 17:32:54 +08:00
f1058f5581 Default topology canvas tool to pan instead of select.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 17:15:59 +08:00
fe754229d3 Show full region names on root map instead of CSS ellipsis.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 17:11:09 +08:00
137597cd25 Harden UME/LLDP link ports and canvas styles around UME authority.
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>
2026-08-07 16:33:25 +08:00
77832b271d Align folder permissions: roots deletable, root maps rename-only, world map locked.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 14:48:22 +08:00
1b592490a5 Protect root maps and auto world map; only sub-regions are deletable.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 14:41:06 +08:00
8fa4b2e4ea Allow deleting UME-synced sub-regions like manual regions.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 14:31:09 +08:00
467079d6ca Fix world-map zoom-out starfield, tree search canvas hits, and sidebar scroll.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 14:23:21 +08:00
fdab188cc1 Render world map overview as a screen-space starfield and rename it to 世界地图.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 11:02:23 +08:00
8444d85005 Heal UME dock-to-Fabric gaps: partial jobs, startup apply, and one-click UI.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 10:33:25 +08:00
961d523479 Harden topology tree against bad view filters and allow deleting UME World.
Coerce non-dict filter JSON so /tree no longer 500s, surface API failure details, and let users remove the UME World container for local resets.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 09:58:20 +08:00
990798987b Fix empty topology create-root and cut navigation loading flash.
Keep the hidden system root built-in; speed tree bootstrap, unblock new-root UI, and soften query/Suspense refetch jank.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 09:18:13 +08:00
c4911b6ddc Add Google-Earth style world-map LOD with 1:1 coords and sticky tiles.
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>
2026-08-07 03:57:24 +08:00
af331e92ca Fix empty world map by auto-fitting after load and sampling NEs across the extent.
World coords sit far outside the default viewport, so opening the flat map looked blank; also lower minZoom and stride-sample so the overview is visible without a truncate banner.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 02:35:26 +08:00
48b10656d2 Unify manual topology roots with UME World: auto root map, and fix empty UME canvas.
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>
2026-08-07 02:22:58 +08:00
edfa3f8756 Move topology display, align, and find into one panel that works in fullscreen.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 01:03:37 +08:00
1ef43fdcd4 Unify UME World as hex nav with conditional flat world map.
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>
2026-08-07 00:51:08 +08:00
4fcec36514 Fix UME topology sync stuck running and unique-key flush failures.
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>
2026-08-06 18:42:02 +08:00
fe483f51cc Add UME TopoNodes/TopologicalLinks daily sync into local tables.
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>
2026-08-06 18:17:45 +08:00
4054f55988 Map OClaw bridge connect failures to readable fwd status codes.
Replace cryptic WinError 10061 flashes with i18n hints when the gateway is down or auth fails.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 15:34:43 +08:00
20c2fcd496 Harden auth with revocable sessions, cookies, and single-login default.
Issue short-lived access JWTs backed by AuthSession rows, HttpOnly cookies with refresh rotation, idle timeout, session management UI, WebCRT ownership caps, and optional Redis login rate limits; new logins revoke other sessions by default.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 14:13:37 +08:00
ba33ab5c4f Fix WebCRT copy/paste on HTTP LAN by falling back off Clipboard API.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 11:02:10 +08:00
4ea3b737f2 Close only this WebCRT window's sessions on leave; require manual reconnect.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 10:20:08 +08:00
938cd39c06 Show netx database used size on the workbench storage gauge.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 09:36:17 +08:00
155cb4e921 Defer manual canvas edges to Save and restore center-anchor connect.
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>
2026-08-05 23:48:27 +08:00
b4f0e468cb Make neighbor projection save-deferred and Visio-style connect.
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>
2026-08-05 23:11:13 +08:00
a746a84d01 Fix placeholder toggle to hide only the TOPO/LLDP badge.
Keep placeholder NEs on the canvas; Display menu controls the corner badge only (off by default).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 22:55:58 +08:00
73cd2704eb Hide TOPO/LLDP placeholder NEs on the canvas by default.
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>
2026-08-05 22:52:10 +08:00
6e2c8517cf Defer canvas edge deletes to Save and cascade orphan Fabric on NE detach.
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>
2026-08-05 22:43:03 +08:00
2aafb72676 Fix topology truncate false positives and reduce graph/discover load.
Batch ManagedNE lookups, correct project-neighbors truncation/frozen signals, page discover polls, and delete both nodes and edges when multi-selected.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 21:48:08 +08:00
03ef9eb39a Project discover neighbors from scanned seeds only.
Accept optional seed ids on project-neighbors; canvas discover passes scanned fabric nodes and places new peers near them.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 21:34:20 +08:00
7cd89aaae9 Localize LLDP and topology classify English leftovers.
Translate job status/trigger/scope, item result, edge labels, and classify role/source option text in zh/en.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 21:28:17 +08:00
617d4245b0 Harden topology canvas edge delete, discover cancel, and map UX.
Persist Fabric edge deletes, stop LLDP jobs from the canvas, surface truncation/placeholders/stale edges, and fix LLDP job deep-links.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 21:23:00 +08:00
5e567408e7 Darken the topology canvas LLDP discover progress panel.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 19:32:19 +08:00
84a4fc037a Open LLDP job detail when jumping from canvas discover.
Pass job_id in the LLDP page URL so the network module auto-opens the task detail modal.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 19:27:52 +08:00
fa8e3abcc7 Move LLDP collect policy auto-placeholder help into a title hint.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 19:21:44 +08:00
51f061032a Default discover auto-placeholder and canvas neighbor project on.
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>
2026-08-05 19:09:09 +08:00
af91c09d80 Rename topology placeholder action label to New NE.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 17:43:45 +08:00
241093343e Add topology-canvas placeholder NE create (source=topology).
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>
2026-08-05 17:42:51 +08:00
71c5193ecd Open WebCRT New Session setup for LLDP placeholders.
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>
2026-08-05 17:20:26 +08:00
5821d08d63 Fit topology canvas after the pane has a real size.
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>
2026-08-05 16:47:08 +08:00
6642f4b8b5 Add collect dashboard KPIs and create-job modal.
Align collection tasks with LLDP/config-sync chrome, and refresh active-task overview when jobs change.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 14:08:13 +08:00
0100fb8430 Show collect job run details in the shared ops modal.
Replace the inline expand row with the same detail dialog used by LLDP and config sync.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 11:34:22 +08:00
19e06e4a2d Darken WebCRT session tabs and action bar after login.
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>
2026-08-05 10:14:52 +08:00
a54c642bd9 Shorten the UME AI alarm monitor card title.
Drop the OClaw WhatsApp parenthetical from the workbench-facing label.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 10:09:51 +08:00
b7a179d492 Unify ops detail dialogs and rename workbench monitoring section.
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>
2026-08-05 10:04:19 +08:00
5a77e36839 Show network config content in a dark modal dialog.
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>
2026-08-05 09:50:39 +08:00
00926196f0 Widen the topology Display panel into a two-column card.
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>
2026-08-05 09:36:14 +08:00
a412ca7cbc Preserve NE icon white textures when applying vendor tint colors.
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>
2026-08-05 09:34:29 +08:00
65afe8f29f Add topology display pickers for label, edge-number, and vendor icon colors.
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>
2026-08-05 09:29:02 +08:00