Releases: Delta4AI/GraphLensLite
Release list
v1.15.4
Saved graph files load unchanged; older files default the two new per-view settings to the previous behavior (OR, non-strict).
Features
- OR / AND filter combination. The filter panel (under ⚙ Details) can now combine active filters with AND as well as the default OR. AND counts only the filters you have actually narrowed, so switching modes while everything is at its default leaves the graph unchanged instead of emptying it. A Complete cases only option additionally hides elements that are missing any of those filters (evaluated per element type). The join mode and complete-cases flag are saved per workspace view in exported JSON.
- Added an
IS MISSINGquery-DSL operator — true when a property is absent/empty or belongs to the other element type — used to express the non-strict AND join. The query-editor help, guided tour, and API grammar reference now document it.
v1.15.3
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
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