Releases: Delta4AI/GraphLensLite
v1.15.3
v1.15.2
v1.15.2
v1.15.1
Saved graph files load unchanged — this release is bug fixes only.
Fixes
- Arrange Selection tools now work. All six tools (shrink/expand/circle/force/grid/random) were silent no-ops: positions were persisted before being pushed to the graph, and the persist path re-synced node state from graphology — clobbering the freshly computed coordinates before they reached the renderer. Positions are now pushed to the graph first, then persisted. The circle/force/random geometry is also rebuilt on graphology layouts (circular/forceAtlas2/random) run over a subgraph of the selection and recentered on the selection centroid, replacing the hand-rolled force sim that drifted toward world-origin.
- Bubble and heatmap overlays stay aligned across DPR changes. Moving the window to a monitor with a different device-pixel-ratio left bubble groups and the heatmap field misaligned until a sidebar toggle forced a resize. A DPR watcher now forces a full sigma resize and re-render on every ratio change, and the overlay canvases own their CSS display size so they stay 1:1 with the WebGL layers regardless of resize timing.
v1.15.0
Existing graph files (including version-less JSON saved by 1.14.x) load unchanged — this release adds and replaces functionality without breaking the saved-file format.
Features
Renderer migration: AntV G6 → Sigma.js (WebGL)
The entire rendering stack moved from AntV G6 5.x (canvas) to Sigma.js v3 (WebGL nodes/edges, canvas labels) on a graphology data model. Measured on the 6000-node / 9000-edge benchmark (see MIGRATION.md for the full record):
| Metric | G6 (1.14.x) | Sigma (1.15.0) |
|---|---|---|
| Load (data → rendered) | 1.6 s | 0.79 s |
| Wheel-zoom FPS | ~4 | ~60 |
| First-interaction stall | ~11 s | 64 ms |
| 500-node select | 140 ms | 46 ms |
- All six node shapes ported (circle and square as native WebGL programs; hexagon, diamond, triangle, star as crisp SVG textures)
- Selection, hover-highlight and dim states reimplemented as sigma reducers; lasso select is a custom canvas overlay; click/shift-select, node drag with position persistence, and tooltips preserved
- Bubble groups drawn natively on a canvas layer under the nodes via
bubblesets-js; member sync, styling UI and filter/manual membership unchanged - Minimap and PNG export (with the bubble-set layer composited) reimplemented on sigma
- Distribution is ≈0.9 MB smaller (the 1.1 MB vendored
g6.min.jsis gone; sigma + graphology + headless layouts add ≈0.2 MB) - Documented degradations: dashed edges render solid and polyline edges render curved (no off-the-shelf WebGL programs for either)
Layouts
- Live-animating ForceAtlas2 driven by a web-worker supervisor, so force layouts settle visibly without blocking the UI.
- Dagre layered layout, circlepack, and random added to the layout options.
- Full-workspace re-layout control to re-run a layout across the entire workspace, with animated transitions between layouts.
- Optional noverlap overlap-removal post-pass.
- Headless layouts: circular/grid (geometric), radial/concentric/mds (
@antv/layoutv2).
Communities & metrics
- Louvain community detection (weighted, with a tunable resolution) that populates manual bubble groups directly.
- Network centralities now come from
graphology-metricsinstead of the hand-rolled implementations.
Edges & flow
- Animated directional edge flow on both straight and curved edges, with
dash,pulse,cometandchevronstyles plus speed, colour, opacity and density controls. - Edge arrow markers and halos, with arrow fill, border-colour and border-size controls.
Nodes & styling
- Pie-chart nodes that render proportional slices from data.
- GLSL circle borders via
@sigma/node-border. - Node badges with a size control and a scale-with-node option.
- Dark-mode toggle.
Heatmap
- Density heatmap overlay — an atmospheric node-density layer beneath the graph, off by default and toggled from the workspace toolbar, with opacity, intensity, gamma/contrast, threshold, bandwidth/radius and colour-ramp controls (default / viridis / magma / accent / grayscale) plus an optional dim-graph mode. Replaces the former selection glow.
- Bubble-group label placement, close-to-path and auto-rotate knobs are now honoured by the renderer (previously no-ops).
UI
- Reworked selection grouping and selection-driven styling cards.
- Compact, density-aware filter panel redesign; redesigned selection, styling and toolbar surfaces for clarity.
- Selection HUD now defaults to the top-right corner and snaps to a grid; tooltips are suppressed during shift+click multi-select.
- Subtle top-centre loading indicator card; compact header.
Export & IO
- SVG vector export alongside JSON and PNG; high-resolution PNG export.
- JSON saves now carry a top-level
versionstamp; loading a file saved by a newer app surfaces a soft notice (older and version-less files load as before). - The density-heatmap overlay (enabled state + appearance settings) is saved into the JSON export and restored on load.
Performance
- Network metrics are computed lazily, only while the metrics panel is open.
- Removed the automatic disabling of hover effects on large graphs (no longer needed on the WebGL renderer).
Fixes
- Fixed slow deselection when clicking empty canvas on large graphs (antvis/G6#7195) — removed from Known Issues.
- PNG export: corrected dark-mode background, hi-res scaling and label z-order; dropped the unreliable 8× scale and added a GPU framebuffer ceiling margin so high-res exports no longer come out blurry or blank.
- Anchored popovers are clamped to the viewport so the right edge never truncates.
- Float filter sliders use a continuous step so a column's maximum value stays selectable.
- Heavy layouts keep the UI blocked on large graphs until the layout completes.
- The reset-style button no longer claims to reset node positions.
- Graceful guard when WebGL2 is unavailable, plus a redraw after container resize.
v1.14.0
Features
HTTP Ingest Service (new)
Standalone HTTP service (npm run serve:api) that lets other applications push graphs and watch them render live in a browser. Independent of the Electron desktop app — the desktop build never starts a server.
POST /api/graphingest endpoint protected by a bearer token; replaces the current graph and pushes it to connected viewers- Live viewer over Server-Sent Events (
GET /api/events) — pushes render immediately and replace the current graph without a reload GET /api/graph(latest graph,204until first ingest) andGET /health(liveness with version) endpoints- Environment-based configuration:
GLL_API_TOKEN,GLL_API_PORT,GLL_API_HOST,GLL_MAX_BODY_BYTES,GLL_STATIC_DIR(see SERVICE.md and.env.example) - Payload reference for external apps and agents documented in API.md
Security
- Cross-origin browser
POSTs rejected (403on anyOriginheader) as a CSRF defence - Incoming JSON sanitized against prototype pollution —
__proto__,constructor, andprototypekeys stripped at every level
Fixes
- Fixed pushed graphs not rendering reliably in the live viewer
v1.13.1
1.13.1
v1.13.0
Features
Graph Assistant (new)
Local Ollama-powered chat panel with a live context snapshot of your graph, selection, and metric values.
- Safe, structured query generation — produces guaranteed-valid GLL queries grounded in your real property hierarchy, so the assistant can't invent property names or emit broken syntax
- Suggested Queries panel with Copy / Select / Open-in-editor; Select pans and zooms to matches
- Live budget meter next to Send with per-section breakdown and a pre-send modal when you'd exceed the context window
- First-run setup and settings modal with model picker, endpoint probing, and
http(s)-only validation with local/private-IP detection - Reasoning-trace visualization for thinking models with a live token counter
- Empty-state starter chips, resizable sidebar, and clickable in-reply action glyphs
- GFM markdown rendering with DOMPurify sanitization and per-code-block copy buttons
- Guided tour step covering query suggestions, setup, and the budget pill
Fixes
- Fixed tooltip
z-indexrendering below overlay UI - Fixed guided-tour teardown where
Popup.close()could tear down open panels mid-transition
UI
- Replaced lasso SVG mask with curly-loop glyph
v1.12.0
Features
- Added toggle button for hover highlight effect with hotkey (H) and auto-clear of highlight/dim states on disable
- Added fine-grained bubble-set label controls with tabbed UI
- Show data source label in header and improve export filenames
Fixes
- Fixed edges rendering on top of nodes after dragging a node and then hovering — reset zIndex elevated by G6's
frontElementafter drag ends - Fixed group-contiguous column order in Excel export
- Fixed new columns being inserted at end instead of next to their group
- Fixed apply button not enabling after row deletion in data editor
v1.11.2
1.11.2