Skip to content

Releases: SBangslund/samind-3d-graph

2.3.3

Choose a tag to compare

@github-actions github-actions released this 07 Sep 12:01

Fixed

  • Cluster physics jitter: nodes never settled and kept visibly vibrating after the previous release's force tuning - the cluster force recomputed each cluster's centroid from its members' current, still-moving positions every tick, then pulled members toward it, creating a feedback loop between the moving target and the nodes chasing it. The centroid is now smoothed with an EMA instead, which removes most of the oscillation; force caps were also dialed back and damping/alpha-decay tuned so any remaining settle-in wobble resolves quickly
  • Cluster hover/click hit-testing raycast an invisible, padded axis-aligned bounding box instead of the actual rendered shape - for convex-hull clusters (or just elongated ones) that invisible hitbox extended well past the visible outline into a neighboring cluster's space, so hovering near one cluster's outline often highlighted the wrong one. Now raycasts the actual rendered mesh directly

Changed

  • Cluster physics settings simplified from 6 raw force-tuning sliders down to 3 plain-language ones (cluster tightness, cluster separation, explode spread), each 0-10 - the underlying physics values are now derived internally instead of exposed directly, since fine-tuning six interacting raw parameters was confusing and easy to leave in an unstable combination
  • Settings sliders now show a live numeric tooltip while dragging

2.3.2

Choose a tag to compare

@github-actions github-actions released this 25 Aug 17:21

Fixed

  • McpServer.ts mixed a type-only import type {...} from 'http' with a separate runtime require('http') cast via as typeof import('http') - under the review's type-checking this resolved Server to TypeScript's internal error placeholder rather than a real type, cascading into "unsafe any" warnings across nearly the entire file. Replaced with a single import * as http from 'http' (still compiles to the same externalized require("http") in the bundle, since http is already marked external in esbuild.config.mjs) - no require() call or eslint-disable needed at all
  • SnippetOverlayService.ts: SVG elements were created via document.createElementNS(...) as SVGSVGElement/as SVGLineElement; switched to Obsidian's typed createSvg() helper, which needs no assertion
  • Remaining direct .style.*/.style.setProperty() mutations in SnippetOverlayService.ts replaced with setCssStyles/setCssProps

2.3.1

Choose a tag to compare

@github-actions github-actions released this 25 Aug 17:01

2.3.0 never actually published - its own release build failed the same
tsc error below, so no release/assets exist for it. This supersedes it.

Fixed

  • Build was broken: registerHoverLinkSource was called on app.workspace, but it's a method on Plugin itself (this.registerHoverLinkSource(...)) - the release workflow's own build step failed the same way, so 2.3.0 never got far enough to reach the community review
  • MCP server sent Access-Control-Allow-Origin: * with no authentication, while exposing tools that read arbitrary vault file content - real MCP clients (OpenCode, etc.) are native/CLI tools that don't send an Origin header and aren't subject to CORS at all, so this only ever served to let any webpage open in a browser on the same machine read vault content via fetch(). Removed entirely - the browser's own same-origin policy now blocks that

Changed

  • MCP server is now off by default, behind a new toggle in the graph's Settings panel (gear icon → MCP Server) - it previously started unconditionally on every plugin load
  • README's privacy section updated to describe the optional MCP server truthfully instead of claiming no network activity at all

2.2.1

Choose a tag to compare

@github-actions github-actions released this 21 Aug 15:06

Fixed

  • minAppVersion was still declared as 1.2.3, but 2.2.0's getFileByPath() node-click lookup requires 1.5.7 - bumped to match

2.2.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 13:05

Added

  • Convex hull cluster boundaries — clusters now wrap their actual node positions instead of an axis-aligned box; switchable back to box via a new Cluster Shape dropdown in Display settings
  • Translucent cluster fill — a coloured semi-transparent volume inside each boundary makes cluster territories immediately readable at a glance
  • Freeze Layout toggle — stops the physics simulation so nodes stay put; re-enabling it reheats the simulation. Double-clicking a cluster to explode it is also blocked while frozen
  • Landmark node labels — the top 8 most important nodes always show their label regardless of mouse position, sized and weighted by their importance score (falls back to link count when no AI analysis is loaded)
  • Cluster importance score (importance field on clusters in analysis.json) — drives label font size and weight so the most prevalent topics stand out; the AI skill has been updated to generate this field
  • Always-visible cluster labels — cluster labels are now permanently visible at base opacity instead of only appearing on mouse hover

Changed

  • Cluster boundary opacity raised significantly (box 0.35→0.55, fill 0.07→0.13, label 0.6→0.75) for better readability
  • Convex hull expands beyond its nodes by BOX_PADDING so the boundary is easier to hover and click
  • Minimum node count for convex hull lowered from 4 to 2 (degenerate cases fall back to box automatically)
  • Physics simulation default cooldownTime reduced from 15 s to 8 s for faster settling

Fixed

  • Release workflow now includes SKILL.md as a release asset
  • Clicking a node in a highlighted cluster caused severe lag — checkRelations was cloning the entire graph on every recursive ancestor step; it now reads the source graph directly and a visited guard prevents infinite loops on bidirectional links
  • Node click file lookup was O(n) (vault.getFiles().find()); now O(1) via vault.getFileByPath()
  • Convex hull was offset because vertices were in world space but then repositioned by the cluster centroid; vertices are now centroid-relative before hull construction
  • Orphan nodes were kept in the physics simulation even when hidden (only nodeVisibility hid them visually); they are now excluded from graphData entirely, removing their simulation and render cost
  • Exploding a cluster no longer reheats the simulation when Freeze Layout is on

2.1.0

Choose a tag to compare

@github-actions github-actions released this 19 Aug 20:38

Added

  • First-run onboarding: a dismissible banner in the graph view when no AI analysis exists yet, with a step-by-step setup modal explaining how to generate one

Fixed

  • Cluster boxes fully enclosed by another cluster's box were permanently unreachable by hover/click - hit-testing now prefers the innermost contained box instead of always picking the nearest outer one

2.0.4

Choose a tag to compare

@github-actions github-actions released this 19 Aug 19:37

See commit history for changes.

2.0.3

Choose a tag to compare

@github-actions github-actions released this 19 Aug 19:14

See commit history for changes.

2.0.2

Choose a tag to compare

@github-actions github-actions released this 19 Aug 18:52

See commit history for changes.

2.0.1

Choose a tag to compare

@github-actions github-actions released this 19 Aug 18:43

See commit history for changes.