Commit graph

269 commits

Author SHA1 Message Date
4fa1b9b4dc Add biz_state monitoring with shared LLDP parse and batch collect.
Introduce ParseProfile-based business state tasks that reuse LLDP parsing for snapshot batches (separate from topology Fabric writes), with scheduler, export, and a Phase1 UI under network tasks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 16:17:04 +08:00
5d2c05a286 Fix Accordion expandedKeys type for HeroUI build.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 09:40:31 +08:00
41fd5b62a4 Polish network shell and UME with HeroUI chips and denser layouts.
Refresh left-nav/main chrome, unify list status chips across network pages, and merge UME token with alarm subscription into one top card.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 00:13:24 +08:00
0a4561f385 Remove legacy OClaw alarm WSS and fix key-alert rules table layout.
Key alerts now deliver only via the DSH hub; Modal Body no longer flex-shrinks the rules rows to empty.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 23:10:26 +08:00
f937efa0f9 Fix API token name Input to use native disabled prop.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 00:08:11 +08:00
6d21d45185 Embed login password eye toggle inside the field.
EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 23:51:33 +08:00
b5da5948a8 Make UME CLI sample NE test a filterable picker.
Pull top-5 matches from UME inventory, expand the list in-flow under the input, and auto-scroll the modal to keep results visible.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 17:38:27 +08:00
cd6e1f1069 Redesign workbench FLEET into aligned donuts and a clickable sched dartboard.
Drop fabric reconcile as redundant with topology, open the traffic wall from the sched card, and surface scheduler tick ages in metrics types.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 16:55:09 +08:00
c4526e36d8 Polish HeroUI chrome, topology toolbar, and session client IP.
Checkpoint before workbench facade redesign: list defaults, API key quota, toast portal, topology canvas editor toolbar with More menu, and trusted-proxy client IP for sessions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 15:10:57 +08:00
5096117ad4 Show DSH alarm hub multi-subscriber status instead of OClaw single link.
Track per-connection metadata on the hub and surface it in the UME key-alert UI so operators can see which Netx Ops clients are subscribed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 16:57:42 +08:00
f4ce8caf3e Harden WebCRT Enter audit so logged commands match the visible line.
Fix bare Enter re-audits, Tab expansion lag, and history mid-line edits by preferring the xterm/device row at Enter and rejecting empty-prompt snapshots.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 22:01:28 +08:00
302ebfac23 Tighten WebCRT command audit: reject device errors and stdout replay.
Only audit interactive commands from frontend audit_line with a CLI prompt prefix; skip prompt-sync Enter and device error echoes; join wrapped xterm rows for long commands.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 14:47:12 +08:00
52424dce37 Dedupe WebCRT command audit on double-fired Enter.
xterm and keydown can both emit carriage return for one keypress; skip duplicate Enter frames on the client and collapse identical audits within 450ms on the server.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 14:25:27 +08:00
7ca57278fe Skip WebCRT audit for empty Enter on prompt-only lines.
Do not reuse the previous command when the operator presses Enter on a blank prompt; validate prompt-only rows on both frontend and backend.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 11:37:06 +08:00
b35e56afb0 Prefer xterm visible line for WebCRT command audit on Enter.
PTY stdout/stdin carry backspace and edit noise during typing; record only the final row the operator sees when pressing Enter.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 11:13:41 +08:00
6ea14e6d5e Audit WebCRT commands from device stdout after tab completion.
ZTE tab redraws the input line via carriage return; parse the last prompt line from PTY stdout on Enter instead of stdin keystrokes. Also remove remaining ?? in AuditPage.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 10:53:15 +08:00
a9c7e81793 Fix WebCRT build regression and AuditPage nullish coalescing.
Remove duplicate serializeTerminal fragment that broke WebTerminal compilation; rewrite ne.exec_batch count without mixing ?? and ||.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 10:33:10 +08:00
3fd1e9131d Record WebCRT commands from xterm visible line including prompt.
On Enter, send audit_line from the terminal row so tab completion and edits match what the operator executed; keep the device prompt prefix in audit logs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 09:58:48 +08:00
eb76e07a46 Fix AuditPage build error mixing nullish coalescing with logical OR.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 09:34:15 +08:00
dd35234599 Remove the operation-log noise hint from the audit page.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 21:57:11 +08:00
d35d3992c2 Dedupe auth.unauthorized floods from unauthenticated page loads.
Keep one 401 audit per IP+path window, and hide historical unauthorized noise from the default business view.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 21:48:18 +08:00
c181158209 Drop HTTP polling noise from operation audit by default.
Persist only business events and mutating/failed HTTP calls, and default the audit UI to a business view with an explicit HTTP filter.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 21:41:05 +08:00
8915455b52 Record WebCRT device login/commands and NE exec in operation audit.
Make session lifecycle and typed CLI lines searchable in audit_log with password redaction, and surface summaries plus device filters in the ops UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 21:36:44 +08:00
497a5e048e Add topology situational overlays and harden live sync.
Show connect/alarm/level on the canvas with display toggles, refresh overlay fields even on dirty edits, fix connect-test dots and create-place messaging, and deep-link node alarms into the network alarms page.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 21:13:15 +08:00
56569e49d1 Add topology NE create/connect flows and trim connect-test logs.
Bring full managed-NE create onto the canvas (keep placeholders), add single/multi connect test and multi discover links, split topology/managedNe dialogs into modules, and shorten redundant connectivity failure details.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 20:37:42 +08:00
b36174bfa4 Add explicit Huawei hop system-view option and startup column safety-net.
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>
2026-08-28 23:58:05 +08:00
cacd8c7b75 Keep WebCRT login failures in-terminal CRT-style and skip duplicate bootstrap replay.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 22:33:19 +08:00
6ed08e24de Stream WebCRT login live and unblock Huawei hop interactive connect.
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>
2026-08-28 21:41:36 +08:00
3f18702edc Drop legacy NetX wording from collect commands hint.
Keep the practical usage note without the old-format parenthetical.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 16:48:58 +08:00
984585c384 Fix collect policy commands field overflowing the viewport.
Use the stacked form-grid layout instead of the nowrap policy-field flex row so the long label/hint no longer pushes the textarea aside.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 16:44:55 +08:00
b81e5869a6 Ship gated eye polish, fabric levels, and collection UI refresh.
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>
2026-08-12 16:13:05 +08:00
b1aee86701 Split topology page into modules and hooks; add SVG/XML export.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 22:00:38 +08:00
b4514c13aa Support bastion hop hosts as FQDN and pasted OpenSSH destinations.
Use placeholder examples (example.com / RFC5737) in docs and tests.
EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 17:36:45 +08:00
35e7bb4667 Preserve WebCRT connect errors instead of masking them as websocket 4502.
EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 16:59:44 +08:00
dcdf4147a6 Add LLDP collect retry for failed and weak-evidence NEs.
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>
2026-08-11 11:25:57 +08:00
e4a135ec16 Fix fabric path search, read scope, orbit total ranking, and edge menu clamp.
Prefer BFS shortest paths, allow ne:read on path find, honor objective=total clearance trades, and keep context menus on-screen without a11y clock spam.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 21:31:50 +08:00
37dd43923f Restore workbench clock, offline world map, and keep edge menus on-screen.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 00:39:06 +08:00
99d180c501 Drop workbench card blurbs and let API key secrets dismiss after copy.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 00:22:31 +08:00
52cd4d1298 Polish topology chrome for denser dark UI and canvas-aware overlays.
Flatten nested toolbar boxes, add a resizable sidebar and selective off-map NE add, and make fullscreen floats/minimap follow canvas background.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 00:02:44 +08:00
75d03f5f9b Raise physical canvas capacity and keep region==canvas rules consistent.
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>
2026-08-09 23:23:09 +08:00
9bcb8ee0e3 Improve frontend load performance and fix UME/login UX.
Defer topology xyflow and WebCRT xterm until needed, calm idle polling, bake login earth brightness, and let AI alert rules scroll as one natural panel.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 22:54:42 +08:00
a0170907e4 Show full NE canvas labels and use dark green for selected links.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 22:03:56 +08:00
4b7d13d62b Unify directory NE badges as distinct fabric ids across membership and home.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 18:16:21 +08:00
3d86bc7594 Count manual canvas NE badges from view membership, not only fabric region ownership.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 18:01:53 +08:00
1373eff4ab Stop applying UME inventory totals to empty manual root maps.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 17:57:33 +08:00
104de449cf Count directory NE badges from fabric inventory, with shared whole-network totals.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 17:53:53 +08:00
617ab469ae Restore NE count badges as real subtree totals instead of map-count P labels.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 17:40:39 +08:00
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