Skip to content

Commit c0f088d

Browse files
Merge branch 'master' into Comment-section
2 parents 1e24b71 + 4191aad commit c0f088d

File tree

14 files changed

+300
-8
lines changed

14 files changed

+300
-8
lines changed

.github/workflows/build-and-preview-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
build-and-deploy-preview:
2222
runs-on: ubuntu-24.04
2323
env:
24-
HUGO_VERSION: 0.157.0
24+
HUGO_VERSION: 0.158.0
2525

2626
steps:
2727
- name: Checkout PR code

.github/workflows/hugo.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
deploy:
2929
runs-on: ubuntu-24.04
3030
env:
31-
HUGO_VERSION: 0.157.0
31+
HUGO_VERSION: 0.158.0
3232
steps:
3333
- name: Install Hugo CLI
3434
run: |

build/meshery-cloud.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v1.0.5
1+
v1.0.6

build/meshery-extensions.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v1.0.5-1
1+
v1.0.6-1

charts/index.yaml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,26 @@ entries:
4747
- charts/kratos-0.39.1.tgz
4848
version: 0.39.1
4949
layer5-cloud:
50+
- apiVersion: v2
51+
appVersion: v1.0.6
52+
created: "2026-04-09T06:39:07.451014412Z"
53+
dependencies:
54+
- condition: kratos.enabled
55+
name: kratos
56+
repository: '@ory'
57+
version: 0.60.0
58+
- condition: ory/hydra.enabled
59+
name: hydra
60+
repository: '@ory'
61+
version: 0.60.0
62+
description: Layer5 Cloud is a collection of services that can be deployed on-premises.
63+
digest: eeba9e85bb60485e08a58fbf5781590e544afb1622577ef0dfdefc6526540ae6
64+
icon: data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNDEuNzMgMTQxLjczIj48dGl0bGU+NS1saWdodC1iZzwvdGl0bGU+PHJlY3QgaWQ9Il9QYXRoXyIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIHg9Ijc5LjYzIiB5PSIyMy45NyIgd2lkdGg9IjM2LjkzIiBoZWlnaHQ9IjE3Ljc5IiBzdHlsZT0iZmlsbDojMDBiMzlmIi8+PHBhdGggaWQ9Il9QYXRoXzIiIGRhdGEtbmFtZT0iJmx0O1BhdGgmZ3Q7IiBkPSJNMTE5LjkyLDgzLjlWNzYuNTNjMC04LjQ5LTcuMTQtMTUuMzctMTUuOTQtMTUuMzdINDQuMzhWNTYuMzFIMjIuNTZ2MjFIOTguMVY4My45WiIgc3R5bGU9ImZpbGw6IzAwYjM5ZiIvPjxwb2x5Z29uIGlkPSJfUGF0aF8zIiBkYXRhLW5hbWU9IiZsdDtQYXRoJmd0OyIgcG9pbnRzPSI0NC4zOCA1MC41IDQ0LjM4IDQxLjc2IDczLjYgNDEuNzYgNzMuNiAyMy45NyAyMi41NiAyMy45NyAyMi41NiA1MC41IDQ0LjM4IDUwLjUiIHN0eWxlPSJmaWxsOiMwMGQzYTkiLz48cGF0aCBpZD0iX1BhdGhfNCIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIGQ9Ik05OC4xLDg5LjYyVjEwMEg2OC44OHYxNy43OWgzNmExNC43NywxNC43NywwLDAsMCwxNS0xNC40OVY4OS42MloiIHN0eWxlPSJmaWxsOiMwMGQzYTkiLz48cGF0aCBpZD0iX1BhdGhfNSIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIGQ9Ik00Mi42Myw5MC41OFYxMDBINjIuODV2MTcuNzloLTI2YTE0Ljc3LDE0Ljc3LDAsMCwxLTE1LTE0LjQ5VjkwLjU4WiIgc3R5bGU9ImZpbGw6IzAwYjM5ZiIvPjwvc3ZnPg==
65+
name: layer5-cloud
66+
type: application
67+
urls:
68+
- https://docs.layer5.io/charts/layer5-cloud-v1.0.6.tgz
69+
version: v1.0.6
5070
- apiVersion: v2
5171
appVersion: v1.0.5
5272
created: "2026-04-07T18:01:56.073231712Z"
@@ -8479,4 +8499,4 @@ entries:
84798499
urls:
84808500
- https://docs.layer5.io/charts/layer5-cloud-v0.8.235.tgz
84818501
version: v0.8.235
8482-
generated: "2026-04-07T18:01:56.067214733Z"
8502+
generated: "2026-04-09T06:39:07.444717652Z"

charts/layer5-cloud-v1.0.6.tgz

63.8 KB
Binary file not shown.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: v1.0.6
3+
date: 2026-04-09T06:38:13Z
4+
tag: v1.0.6
5+
prerelease: false
6+
toc_hide: true
7+
---
8+
9+
- Fix all-organizations provider admin flow @arjunmehta-git (#5005)
10+
- Transition UUID type references to schemas core.Uuid @yi-nuo426 (#5003)
11+
12+
### 👨🏽‍💻 Contributors
13+
14+
Thank you to our contributors for making this release possible:
15+
@arjunmehta-git, @hamza-mohd, @l5io, @leecalcote and @yi-nuo426
16+

content/en/kanvas/advanced/performance/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,9 @@ To optimize performance, consider the following:
9898
2. Prioritize using smaller file sizes whenever possible. Use the `webp` image format over `png`, `jpg`, or `gif` as it generally provides significantly better compression, resulting in faster design save times without sacrificing much image quality.
9999
3. Remove any unnecessary images from your design.
100100
4. Use image compression tools to reduce the size of your images before adding them to your design.
101+
102+
## Render Modes for Performance
103+
104+
Kanvas provides multiple render modes that dramatically reduce rendering overhead for large designs. The Adaptive mode automatically switches between modes based on real-time performance measurements.
105+
106+
For detailed information about each render mode and how to use Adaptive mode, see [Render Modes](/kanvas/advanced/render-modes/).
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
---
2+
title: Render Modes
3+
description: >
4+
Control rendering fidelity and performance in Kanvas with four render modes and an intelligent Adaptive mode that automatically optimizes the experience.
5+
weight: 3
6+
categories: [Designer, Operator]
7+
tags: [performance, rendering]
8+
---
9+
10+
Kanvas supports multiple render modes that control the level of visual detail and interactivity on the canvas. Higher-fidelity modes show more detail but require more processing power, while lower-fidelity modes strip visual elements for better performance on large designs.
11+
12+
The Adaptive mode acts like an automatic transmission -- it monitors render performance in real time and seamlessly shifts between modes to maintain smooth interactivity.
13+
14+
## Render Modes
15+
16+
Kanvas provides four render modes, each offering a different balance of visual fidelity and performance:
17+
18+
| Mode | Fidelity | Description |
19+
|------|----------|-------------|
20+
| Full | Highest | Complete rendering with all details, badges, TagSets, animations |
21+
| Medium (Style-Only) | High | Full component styles but no badges, TagSets, or animations |
22+
| Wireframe | Low | Simple outlines and straight-line connections, no SVGs or styling |
23+
| View Only | Lowest | Static wireframe snapshot with no interactivity |
24+
25+
### Full Mode
26+
27+
Full mode renders every visual element in your design:
28+
29+
- **SVG backgrounds** and gradient fills on all components
30+
- **All badges** -- compound node, label, external link, expand/collapse, managed-by-Meshery, terminal session, and error badges
31+
- **TagSets** (BubbleSets) showing visual groupings of related components
32+
- **Mount animations** when components appear on the canvas
33+
- **Edge styling** with bezier curves and colored arrows
34+
35+
Full mode is best for reviewing final visuals, detailed inspection, and pixel-perfect output. It uses the most resources and may impact performance on large or complex designs.
36+
37+
### Medium Mode (Style-Only)
38+
39+
Medium mode preserves component appearance while stripping decorative overlays:
40+
41+
- **Kept:** Component SVG backgrounds, node shapes, and edge styling
42+
- **Kept:** Expand/collapse badges (essential for navigating compound nodes) and error badges
43+
- **Stripped:** Decorative badges (compound node, label, external link, managed-by-Meshery, terminal session)
44+
- **Stripped:** TagSets, mount animations, and gradient fills
45+
46+
Medium mode is ideal for everyday editing where you want to see component detail without visual clutter. It is significantly lighter than Full mode.
47+
48+
### Wireframe Mode
49+
50+
Wireframe mode reduces the canvas to basic structural outlines:
51+
52+
- **No SVG background images** on any components
53+
- **Edges rendered as straight gray lines** -- no bezier curves or colored arrows
54+
- **All badges stripped**
55+
- **All TagSets disabled**
56+
- **Layout animations disabled**
57+
58+
Wireframe mode is best for quick layout work, performance-critical scenarios, and focusing purely on design structure. It is very lightweight and handles large designs well.
59+
60+
### View Only Mode
61+
62+
View Only mode extends Wireframe rendering with complete removal of interactivity:
63+
64+
- Same visual rendering as Wireframe mode
65+
- **All nodes locked** -- cannot be moved or resized
66+
- **All event handlers removed** -- no click, hover, grab, drag, resize, or double-click responses
67+
68+
View Only mode is best for embedding designs, sharing read-only views, and generating static documentation screenshots. It uses minimal resources.
69+
70+
{{< alert type="info" >}}
71+
In View Only mode, users cannot interact with the canvas at all. Switch to another mode to resume editing.
72+
{{< /alert >}}
73+
74+
## Switching Render Modes
75+
76+
### Using the Layers Panel
77+
78+
The **Render Mode Switcher** is located in the Layers panel in the left sidebar. To change modes:
79+
80+
1. Click the current mode icon in the Layers panel to open the mode selector.
81+
2. Select the desired mode from the dropdown menu.
82+
3. The canvas updates immediately.
83+
84+
### Using URL Parameters
85+
86+
You can also set the render mode via URL query parameter. Append the `render` parameter to your Kanvas design URL:
87+
88+
- `render=full` -- Full rendering with all details
89+
- `render=medium` -- Style-only rendering without badges and TagSets
90+
- `render=wireframe` -- Outline-only rendering
91+
- `render=viewOnly` -- Non-interactive wireframe snapshot
92+
93+
For example: `https://kanvas.new/extension/meshmap?render=wireframe&mode=design&design=xxxx`
94+
95+
For more details on URL parameters, see [Design Render Quality](/kanvas/advanced/url-parameters/).
96+
97+
## Adaptive Mode
98+
99+
Adaptive mode automatically adjusts the render mode based on real-time performance measurements. When enabled, Kanvas monitors canvas responsiveness and shifts between modes to maintain smooth interactivity -- downshifting when performance degrades and upshifting when it recovers.
100+
101+
### How It Works
102+
103+
Adaptive mode monitors two performance metrics in real time:
104+
105+
- **Render latency** -- the time to complete a render cycle (measured at the p95 percentile)
106+
- **Interaction latency** -- the time from user input (pan, zoom) to visual response (measured at the p95 percentile)
107+
108+
Performance is tracked using a rolling window of the last 20 samples. When the p95 render latency exceeds 150ms or the p95 interaction latency exceeds 80ms, the mode automatically downshifts (for example, Full to Medium, or Medium to Wireframe). When performance recovers -- render latency drops below 60ms and interaction latency drops below 30ms for 10 consecutive samples -- the mode upshifts.
109+
110+
### Hysteresis (Preventing Flicker)
111+
112+
Adaptive mode uses asymmetric thresholds to prevent rapid mode switching:
113+
114+
- **Downshifting happens quickly** -- with a 3-second cooldown between shifts. Users notice lag immediately, so the system responds fast.
115+
- **Upshifting is cautious** -- requiring 10 consecutive good samples before shifting up. This prevents the mode from flickering back and forth at the boundary.
116+
117+
The result is fast response to performance problems and careful, stable recovery.
118+
119+
### Ceiling Mode
120+
121+
When you enable Adaptive mode, your currently selected render mode becomes the **ceiling** -- the highest fidelity that Adaptive will use. Adaptive mode will never upshift above your ceiling.
122+
123+
For example, if you set the ceiling to Medium, Adaptive will shift between Medium and Wireframe as needed but will never go to Full mode. This is useful when you know you do not need badges or tagsets and want to prevent unnecessary rendering overhead.
124+
125+
### Enabling Adaptive Mode
126+
127+
To enable Adaptive mode:
128+
129+
1. Open the **Render Mode Switcher** in the Layers panel.
130+
2. Toggle the **Adaptive** switch.
131+
3. When active, an "AUTO" indicator appears next to the current mode.
132+
133+
Manual mode selections while Adaptive is active set the new ceiling. For example, switching from Full to Medium while Adaptive is on means Adaptive will now treat Medium as the highest mode it can use.
134+
135+
You can also enable Adaptive mode via URL parameter: `?adaptive=true`
136+
137+
For example: `https://kanvas.new/extension/meshmap?adaptive=true&mode=design&design=xxxx`
138+
139+
{{< alert type="note" >}}
140+
Adaptive mode is event-driven -- it only samples performance when you interact with the canvas (pan, zoom, edit). There is zero overhead when the canvas is idle.
141+
{{< /alert >}}
142+
143+
## Performance Guidance
144+
145+
When Adaptive mode downshifts, Kanvas may display suggestions to help you optimize your design. These appear as toast notifications with actionable recommendations:
146+
147+
- **"N tagsets detected"** -- Large numbers of TagSets (BubbleSets) are computationally expensive. Consider disabling some via the Layers panel.
148+
- **"N parent nodes detected"** -- Deeply nested compound nodes increase render complexity. Collapsing some parent nodes may help.
149+
- **"N components visible"** -- High-density designs benefit from layer filtering to hide components you are not currently working with.
150+
- **"N relationships"** -- Designs with many relationships render faster in Wireframe mode.
151+
152+
Each suggestion is shown at most once per minute to avoid notification fatigue.
153+
154+
## Best Practices
155+
156+
1. **Start with Adaptive mode** for everyday work -- it handles performance automatically and keeps the canvas responsive.
157+
2. **Use Full mode selectively** -- reserve it for final visual review or documentation screenshots.
158+
3. **Switch to Wireframe for layout work** -- it is the fastest mode for rearranging large designs.
159+
4. **Use View Only for sharing** -- when embedding designs or sharing read-only snapshots where editing should be prevented.
160+
5. **Set an appropriate ceiling** -- if you do not need badges or tagsets, set the ceiling to Medium to avoid unnecessary rendering overhead.
161+
6. **Break large designs into smaller ones** -- designs beyond 500 components benefit from being split regardless of render mode. See [Performance Limits and Tuning](/kanvas/advanced/performance/) for more guidance.
162+
163+
## Known Limitations
164+
165+
- Render mode applies globally to the entire canvas -- you cannot set different modes for different areas of a design.
166+
- View Only mode strips all interactivity. You must switch to another mode to resume editing.
167+
- Adaptive mode thresholds are fixed and cannot be customized per-user or per-design.
168+
- Mode transitions may cause a brief visual flash as styles update across all elements.
169+
- The performance guidance system analyzes design structure, not actual GPU or CPU load -- suggestions are heuristic-based.
170+
171+
## Render Modes in Designer vs Operator
172+
173+
All four render modes work in both Designer and Operator contexts:
174+
175+
- In **Designer mode**, render modes control the fidelity of your editable design canvas. All modes except View Only allow full editing.
176+
- In **Operator mode**, the `managed-by-Meshery` and `terminal session` badges follow the same suppression rules as in Designer -- they are visible in Full mode and hidden in Medium, Wireframe, and View Only modes.
177+
- **View Only mode is particularly useful in Operator** for monitoring dashboards where accidental edits should be prevented.

content/en/kanvas/advanced/url-parameters/index.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,25 @@ To use full render mode effectively:
5252
When sharing a design link with `render=full` for review, advise collaborators to also enable the relevant toggles in their **Layers panel**. This helps prevent discrepancies caused by individual layer settings, ensuring everyone sees the same details.
5353

5454
3. **Check the Layers Panel if Details Are Missing**
55-
If `render=full` is active in your URL but expected elements (like **TagSets**) are not visible, verify that their visibility is enabled in your **Layers panel**. Your Layers settings can hide elements even when full render is requested.
55+
If `render=full` is active in your URL but expected elements (like **TagSets**) are not visible, verify that their visibility is enabled in your **Layers panel**. Your Layers settings can hide elements even when full render is requested.
56+
57+
## Additional Render Mode Parameters
58+
59+
You can specify render modes via the `render` parameter:
60+
61+
- `render=full` -- Full rendering with all details
62+
- `render=medium` -- Style-only rendering without badges and TagSets
63+
- `render=wireframe` -- Outline-only rendering
64+
- `render=viewOnly` -- Non-interactive wireframe snapshot
65+
66+
For example: `https://kanvas.new/extension/meshmap?render=wireframe&mode=design&design=xxxx`
67+
68+
See [Render Modes](/kanvas/advanced/render-modes/) for detailed descriptions of each mode.
69+
70+
## Adaptive Mode Parameter
71+
72+
You can enable Adaptive mode via URL parameter:
73+
74+
`https://kanvas.new/extension/meshmap?adaptive=true&mode=design&design=xxxx`
75+
76+
When `adaptive=true` is set, Kanvas will automatically monitor performance and switch render modes as needed. The current render mode (set via the `render` parameter or the default) becomes the ceiling -- the highest fidelity Adaptive mode will use. See [Render Modes](/kanvas/advanced/render-modes/) for details.

0 commit comments

Comments
 (0)