wu-sheng opened a new pull request, #33:
URL: https://github.com/apache/skywalking-horizon-ui/pull/33

   Three independent improvements found while validating the live 3D map and 
the per-layer pages. Each is a self-contained commit group; happy to split into 
separate PRs if preferred.
   
   ## 1. 3D map — render-loop CPU cap (`339e8e9`)
   The `/3d/map` scene renders continuously; on a high-refresh display the loop 
ran at 60–120fps and pegged a CPU core (the per-frame cientos `<Html>` 
reprojection for ~80 chips/labels dominates). Cap the whole loop with TresJS's 
native `fpsLimit=30` — render + animation + `<Html>` updates all throttle 
together, roughly halving (or quartering at 120Hz) the renderer CPU with no 
visual change.
   
   ## 2. Per-layer URL / dashboard hydration fixes (`a527f03`…`9f22c36`)
   A chain of related deep-link / config-readiness bugs in the layer shell + 
dashboards:
   - **Same-layer rehydrate** — the shell watched only `layerKey`, and 
`resetForLayer` early-returned on the same layer, so a same-layer deep link 
with new `?service/?instance/?endpoint` kept the stale pick. Watch the seed 
params and re-seed on same-layer params (sticky pick preserved for paramless 
tab nav).
   - **`?service=` outside the landing sample** — validated only against the 
top-N sample, so a valid low-traffic service was overwritten by the first row 
(clearing instance/endpoint). Validate against the full roster 
(`useLayerServices`); only a genuinely-absent id auto-corrects.
   - **`?endpoint=` outside the recent top-N** — discarded; add a targeted name 
lookup, and make `effectiveEndpoint` accept the confirmed pin so it actually 
drives the fetch.
   - **Metrics before config** — the dashboard query fired with an empty widget 
list (→ BFF defaults) before the config bundle resolved. Gate on resolved 
widgets; an empty resolved config shows **No widgets defined** instead of 
looping on **Reading data…**.
   - The page-init orchestrator now receives the *effective* (validated) entity 
refs, matching the actual fetch gate.
   
   ## 3. API dependency graph — zoom + fit + name clipping (`4fe7d02`)
   The endpoint-dependency graph rendered at full width in a scroll container, 
so wider chains clipped and edges to off-screen nodes looked like stray lines. 
Now:
   - **Fit-to-view by default** (viewBox + `preserveAspectRatio`) — every 
column visible, no dangling edges.
   - **Zoom** via wheel + drag-pan + +/−/fit buttons (toolbar over the canvas).
   - **Clip node text** to the box (clipPath + tighter truncation) so long 
endpoint names no longer overflow.
   - Drop the `L0 / L+1` column-name headers (operator feedback).
   
   ## Validation
   UI + BFF `type-check` and `license-eye` clean throughout. **The layer-URL 
and dependency-graph changes need browser/deep-link validation** (URL hydration 
+ SVG rendering can't be exercised headlessly) — concretely: deep-link a 
low-traffic service, an endpoint outside the recent 20, same-layer re-nav, a 
fresh dashboard load, and the dependency-graph zoom/fit/pan.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to