noteconnection
v1.7.0
Published
Hierarchical Knowledge Graph Visualization System
Maintainers
Readme
2026-03-24 v1.6.0
NoteConnection Knowledge Graph
Legacy Navigation Row (from shared bilingual table)
| English | Key Features | Hardware | Architecture | Quick Start | CLI | Changelog | | :---------: | :------------------------------: | :----------------------: | :------------------------------: | :----------------------------: | :------------: | :------------------------: | | 中文 | 核心特性 | 硬件配置 | 系统架构 | 快速开始 | CLI | 更新日志 |
NoteConnection: Hierarchical Knowledge Graph Visualization System
Unlock the Structure of Your Knowledge.
NoteConnection is a high-performance, standalone visualization system engineered to transform unstructured Markdown knowledge bases into Directed Acyclic Graphs (DAGs).
Unlike traditional "network" views that show a messy web of links, NoteConnection reveals the hierarchy, learning paths, and dependency structures hidden within your notes. It is built for scalability, capable of handling tens of thousands of nodes with ease, and operates completely independently of any specific note-taking app.
🚀 Key Features
1. Visualization & Layout
- Structure Over Chaos: Switch between Force-Directed (Physics) and DAG (Hierarchical) layouts. The DAG layout automatically identifies "Prerequisites" and "Next Steps" to arrange concepts in logical layers.
- Dual Rendering Engine (v0.8.7): Seamlessly toggle between SVG (for interactivity) and Canvas (for high-performance rendering of 10,000+ nodes).
- Interactive Focus Mode: Click any node to isolate it and its context. Features Freeze on Select (v0.8.9) to prevent drift, adjustable Vertical/Horizontal Spacing (v0.8.8), and absolute visual consistency upon exit. Use the Random Focus (dice icon) to discover new connections (v1.0.0).
- Absolute Offline Support (v1.0.0): All library dependencies (D3, KaTeX, Marked, Mermaid, JSZip) are migrated to local assets, ensuring 100% functionality without internet.
2. Intelligence & Inference
- Hybrid Inference Engine: Combines Statistical Probability ($P(A|B)$) and Vector Similarity (TF-IDF) to infer hidden dependencies (e.g., "Fluorescence" implies "Photon") without external AI APIs.
- Scalable Clustering: Aggregates thousands of nodes into high-level "Concept Bubbles" based on folder structure or tags for a cleaner overview.
3. Path Mode: Structured Learning (v1.2.0)
- Curriculum Generation: Instantly transforms your graph into linear learning paths.
- Domain Learning: Master an entire concept cluster (Topological Sort).
- Diffusion Learning: Find the most efficient path to a specific goal (Shortest Path + Prerequisites).
- Hybrid Architecture: Connects to a high-fidelity Godot 4.3 Desktop Renderer via WebSocket (
ws://localhost:9876) for AAA-quality visualization, while maintaining full web compatibility. - Smart Strategies: Choose "Foundational" (Base-first) or "Core" (Importance-first) sorting to suit your learning style.
4. Performance & Control
- High-Capacity Parallel Processing: Utilizes Node.js
worker_threads(up to 12 cores) to distribute computationally intensive keyword matching. - Simulation Controls (v0.9.0): Fine-tune the physics with a Speed/Damping Slider or use the Freeze Layout switch to stop the simulation for stable manual arrangement.
- Hover Lock: Hovering over a node temporarily locks its position, allowing for stable inspection of connections.
💻 Hardware & Driver Requirements
Supported AMDGPU Architectures
NoteConnection utilizes gpu.js for WebGL-based acceleration and plans to support local AI inference via ROCm.
- RDNA 3 (Recommended): Radeon RX 7000 Series (e.g., RX 7900 XT/XTX).
- Status: Best performance for both WebGL and Compute.
- RDNA 2: Radeon RX 6000 Series.
- Status: Stable and mature support.
Driver Configuration
Windows (Development Environment)
- Driver: AMD Software: Adrenalin Edition (23.12.1+).
- Required for DirectX 12/Vulkan/OpenGL support which underpins WebGL.
- Build Tools: To compile
headless-glfor Node.js:- Python 3.x installed and in PATH.
- Visual Studio Build Tools (C++ workload).
Linux (Recommended for AI)
- Mesa (RADV/Radeonsi): Default open-source driver. Best for general WebGL and
gpu.js. - ROCm (Radeon Open Compute): Install only if planning to develop the AI inference features (future roadmap). NoteConnection's core visualization runs fine on standard Mesa drivers.
🏢 System Architecture
NoteConnection is built on a modular architecture designed for performance and extensibility.
Backend (src/backend)
- GraphBuilder: The core orchestrator. It manages the pipeline from file reading to graph construction.
- Worker Threads: Heavy lifting (keyword matching, text analysis) is offloaded to a pool of worker threads (
src/backend/workers), ensuring the main thread remains responsive. - Inference Engines:
StatisticalAnalyzer: Calculates co-occurrence matrices.VectorSpace: Handles TF-IDF embedding and cosine similarity.HybridEngine: Combines signals to suggest directed edges.
Frontend (src/frontend)
- Dual-Engine Renderer:
- D3.js (SVG): Used for high-fidelity, interactive graphs with detailed tooltips and CSS styling.
- HTML5 Canvas: Optimized for rendering massive datasets where DOM manipulation overhead is too high.
- State Management:
SettingsManagerpersists user preferences (Physics, Visuals) tolocalStorage. - Layout Logic: Custom algorithms for Sugiyama-style layering and Force-directed physics.
Desktop Bridge (src/core)
- PathBridge: standard WebSocket server (Port 9876) that exposes the internal graph state to external applications (e.g., Godot Engine), enabling hybrid web/native visualization pipelines.
📦 Quick Start
Option 1: Windows Installer (Recommended)
- Download
NoteConnection.Setup.exefrom the Latest Releases. - Run the installer.
- Launch NoteConnection from your desktop or start menu.
Option 2: Run with npx
No installation required.
npx noteconnectionOption 3: Global Installation
npm install -g noteconnection
noteconnectionOption 4: Local Development
git clone https://github.com/Jacobinwwey/NoteConnection.git
cd NoteConnection
npm install
npm start- Server runs at:
http://localhost:3000
Option 5: Mobile Support (Android)
NoteConnection now supports two Android generation paths:
- Capacitor APK path (web-asset runtime, stable for reader/visualization workflows).
- Tauri Android path (native shell pipeline aligned with
docs/tauri_brainstorming.md).
Prerequisites
- Node.js (LTS)
- Java JDK (17 or higher)
- Android SDK (Configured in
ANDROID_HOMEor via Android Studio)
Method A: Capacitor Build (Stable)
Simply run the included batch script on Windows:
build_apk.batThis script automatically:
- Checks your environment (Node, Java, Android SDK).
- Installs dependencies.
- Builds web assets.
- Syncs with Capacitor.
- Compiles the APK using Gradle.
You can also trigger the same pipeline through npm:
npm run mobile:build:capacitorMethod B: Tauri Android Build (Native Shell)
# First-time setup on the machine
npm run tauri:android:init
# Build APK/AAB through Tauri Android pipeline
npm run tauri:android:buildMethod C: Capacitor Manual Build Steps
- Build Web Assets:
npm run build - Sync to Android Platform:
npx cap sync - Build APK:
Open the
androiddirectory in Android Studio and build, or use the command line:
APK will be located at:cd android ./gradlew assembleDebugandroid/app/build/outputs/apk/debug/app-debug.apk
Mobile Capability Boundary
- Capacitor path currently packages web assets and does not embed the local Node sidecar workflow (
/api/build,/api/folders,/api/content). - Tauri Android path is provided as the native-shell migration route and should be used when mobile-side parity with the Tauri architecture is required.
3. Usage Guide
- Select Source: Use the dropdown in the top-left to choose a folder from
Knowledge_Base. - Load: Click "Load". For large datasets (>200 files), parallel processing engages automatically.
- Explore:
- Layout: Toggle DAG for hierarchy or Force for clusters.
- Renderer: Switch to Canvas if the graph feels sluggish.
- Focus: Click a node to enter Focus Mode. Use the sliders to adjust spacing.
- Control: Use the Simulation panel to freeze the layout or adjust speed.
🖥️ CLI Usage (v0.9.71)
You can load a knowledge base and build the graph directly from the command line without using the UI. This is useful for automated builds or headless environments.
Usage
npm start -- --path "<path_to_knowledge_base>" [options]Options
| Option | Description | Default |
| ----------- | -------------------------------------------------------------------- | ------------------------------ |
| --path | Absolute path to the folder containing your Markdown files. | Knowledge_Base |
| --gpu | Enable AMDGPU/WebGL acceleration for layout and vector calculations. | true (if hardware supported) |
| --no-gpu | Disable GPU acceleration (Force CPU). | false |
| --static | Enable Static Mode (Backend calculation only, frozen frontend). | false |
| --workers | Number of worker threads to use. | numCPUs - 1 |
Example
# Basic Load
npm start -- --path "C:/Users/MyName/Documents/MyNotes"
# GPU Accelerated Build
npm start -- --path "E:/Knowledge/ObsidianVault" --gpu
# Force CPU (if GPU has issues)
npm start -- --path "E:/Knowledge/ObsidianVault" --no-gpuNote: CLI runs generate unique data files (data_cli_{kb_name}_{time}.js) to preserve the original data.js. When the server starts, it will automatically serve these specific files to the frontend.
📂 User-Defined Knowledge Base (v1.0.0)
Managing your knowledge base source is now easier than ever.
- First Run Setup: On first launch, you will be prompted to select your
Knowledge_Basefolder. - Persistent Config (
app_config.toml): Your KB path, language, and multi-window preferences are saved in%LOCALAPPDATA%/NoteConnection/app_config.toml(Windows default) and remembered across restarts. - Legacy Auto-Migration: If a legacy
kb_config.jsonexists in the same config directory, NoteConnection automatically migrates it toapp_config.toml. - Change Anytime: Use the File > Change Knowledge Base... menu option to switch folders instantly.
- Reset: Use File > Reset to Default to return to the bundled demo notes.
- Config Path Overrides: Set
NOTE_CONNECTION_CONFIG_PATH(full file path) orNOTE_CONNECTION_CONFIG_DIR(directory) to customize whereapp_config.tomlis stored. - Window Behavior Tuning: Edit
[multi_window]inapp_config.toml(single_window_mode,hide_tauri_when_pathmode_opens,restore_tauri_when_pathmode_exits,confirm_before_full_shutdown_from_godot,sync_language). - Reader Protocol Tuning: Edit
[frontend_settings.reading]to control markdown rendering runtime (markdown_engine,chunk_block_size,prefetch_blocks,index_cache_ttl_sec,max_doc_bytes). - Detailed Config Guide: See
docs/en/app_config.toml_guide.mdand templatedocs/examples/app_config.template.toml.
# Minimal recommended app_config.toml
knowledge_base_path = "E:/Knowledge_project/NoteConnection_app/Knowledge_Base"
user_language = "en"
[multi_window]
single_window_mode = true
hide_tauri_when_pathmode_opens = true
restore_tauri_when_pathmode_exits = true
confirm_before_full_shutdown_from_godot = true
sync_language = true
[frontend_settings.reading]
mode = "window"
markdown_engine = "auto" # "legacy" | "pulldown" | "auto"
chunk_block_size = 36
prefetch_blocks = 8
index_cache_ttl_sec = 1800
max_doc_bytes = 100663296Markdown Reader Protocol (v1.6.8)
- Dual-engine gray release:
markdown_engine = "auto": preferpulldown-cmark, fallback to legacy on failure.markdown_engine = "pulldown": keep automatic fallback to legacy to avoid blank readers.markdown_engine = "legacy": force original parser path.
- Unified cross-window behavior: Tauri reader and Godot reader now both consume the same sidecar markdown protocol (
index/chunk/resolve-node/resolve-wiki). - Large file stability: reader no longer requires single-shot full markdown payloads and supports block-based incremental loading.
- Mermaid reliability hardening:
- Godot reader Mermaid rendering now uses
renderer = "auto"so it can prefer frontend bridge and automatically fallback to localresvgwhen bridge render is unavailable. - Mermaid fences must start on a new line; inline
$$```mermaidpatterns can break block classification. - Use
npm run verify:markdown:mermaid:fence -- Knowledge_Base/testconceptto catch malformed inline Mermaid fences before release.
- Godot reader Mermaid rendering now uses
- Local MCP web-debug baseline (Runbrowser):
- Build locally from source:
pnpm --filter @jiweiyuan/runbrowser-server build,pnpm --filter @jiweiyuan/runbrowser-core build,pnpm --filter @jiweiyuan/runbrowser-mcp build. - Run local MCP entrypoint:
node E:\Knowledge_project\tools\runbrowser\packages\mcp\bin.js.
- Build locally from source:
🏗️ Build & Deployment
For developers building from source, NoteConnection offers two build modes:
Electron desktop pipeline was removed on 2026-03-01 (deprecated and decommissioned).
Tauri Full Build (
npm run tauri:build): Builds desktop package with full frontend assets.Tauri Mini Build (
npm run tauri:build:mini): Builds desktop package excluding large pre-generated graph data files.GPU Dev Start (
npm run tauri:dev:mini:gpu): Recommended GPU-enabled Tauri development command.Do not use
npm run tauri:dev:mini --gpubecause npm treats--gpuas config and prints warnings.
📚 Documentation Architecture (Diataxis + MkDocs)
- Canonical long-form docs remain under
docs/en/*anddocs/zh/*. - Diataxis navigation pages are maintained under
docs/diataxis/<lang>/*. - Mapping governance is versioned in
docs/diataxis-map.json. - Run mapping validation:
npm run docs:diataxis:check. - Run local docs site preview:
npm run docs:site:serve. - Build static docs site:
npm run docs:site:build. - GitHub Pages Docs Portal (project site):
https://jacobinwwey.github.io/NoteConnection/. - Host root (for routing baseline):
https://jacobinwwey.github.io/. - Recommended lookup entry points:
- Users:
/diataxis/zh/tutorials/first-run/or/diataxis/en/tutorials/first-run/ - Developers:
/diataxis/en/reference/interfaces-and-runtime/and/diataxis/en/reference/release-and-governance/
- Users:
- CI auto publish workflow (GitHub Pages):
.github/workflows/docs-github-pages-publish.yml. - Manual rollback entry: run workflow dispatch and set
git_refto a stable tag/commit. - MkDocs base/path can be overridden by environment variables:
MKDOCS_SITE_URL,MKDOCS_BASE_PATH. - CI policy gate for docs mapping and site build:
.github/workflows/docs-diataxis-site.yml. - Docs release + rollback runbook:
🛠️ Hardware & Driver Requirements (AMDGPU)
For optimal performance with "GPU Optimised Rendering", especially on AMD RDNA cards (like RX 7900XT):
- Drivers: Ensure you have the latest AMD Adrenalin Edition drivers installed.
- Node.js: The project uses
gpu.jswhich relies onheadless-glfor Node.js context.- On Windows, this usually works out of the box with standard build tools (
windows-build-tools). - If you encounter
glerrors, ensure Python and C++ compilers are available.
- On Windows, this usually works out of the box with standard build tools (
📅 Changelog
v1.6.7 - Docs Governance Cleanup & GitHub Pages Stabilization (2026-03-29)
- Removed unrelated external community UI documentation references from the repository documentation system.
- Replaced legacy external runbooks with project-owned docs operations runbooks:
docs/en/docs_release_and_rollback.mddocs/zh/docs_release_and_rollback.md
- Updated Diataxis governance mapping and cross-links to use the new canonical runbook paths.
- Added GitHub Pages preflight verification in docs publish workflow to surface clear warnings when Pages is not enabled.
- Resolved docs portal 404 condition by enabling repository Pages with
gh-pagesbranch as publish source. - Prepared formal release metadata and version alignment to
1.6.7(npm + Tauri).
v1.6.6 - Unified Provider Runtime & TOML Settings Consolidation (2026-03-26)
- Upgraded NoteMD API calling flow to a definition-driven provider architecture inspired by recent obsidian-NotEMD and cline patterns.
- Added transport-based dispatch (openai-compatible, anthropic, google, azure-openai, ollama) and provider metadata (apiKeyMode, apiTestMode, category).
- Expanded built-in provider presets: Qwen, Doubao, Moonshot, GLM, MiniMax, Groq, Together, Fireworks, Requesty, OpenAI Compatible.
- Unified runtime settings persistence in app_config.toml across Tauri + Godot + NoteMD:
- full NoteMD settings in [notemd] + [[notemd.providers]] (with legacy [notemd.api] compatibility mirror)
- Godot Path Mode settings in [path_mode] with runtime API endpoint /api/path-mode/settings
- Godot settings panel migrated to runtime TOML sync path.
- Hardened Rust-side TOML writes to preserve unknown sections, preventing accidental loss of [notemd] / [path_mode] when Tauri updates KB path or language.
- Updated bilingual documentation and templates for v1.6.6 schema and operations.
v1.6.5 - Documentation Portal Update (2026-03-26)
- Published MkDocs documentation to GitHub Pages project site.
- Added bilingual README guidance for docs lookup paths (user/tutorial and developer/reference entry points).
- Standardized docs publish flow for maintainers:
npm run docs:site:build.github/workflows/docs-github-pages-publish.yml(workflow_dispatchsupportsgit_refrollback)
v1.6.0 - Unified Runtime, NoteMD Integration & Release Hardening (2026-03-23)
Tag Compare Snapshot (
v1.3.0..v1.6.0):107commits,301files changed,+125,957 / -10,083churn.- File-level status:
241added,56modified,3deleted,1renamed. - Largest engineering footprint:
src/,docs/,scripts/,path_mode/,src-tauri/.
Single-Window Runtime Orchestration:
- Implemented Tauri <-> Godot visibility handoff so only one primary window is shown at a time.
- Added Godot close-confirm flow ("Return to main interface" vs "Close all windows") to prevent accidental full shutdown.
- Stabilized Godot window visibility control and removed deprecated foreground APIs.
NoteMD Embedded Experience:
- Kept NoteMD as an embedded experience (not a standalone desktop window) aligned with both Tauri and Godot flows.
- Fixed non-responsive
Browseactions in Tauri NoteMD (file/folder/save pickers now complete the IPC flow). - Defaulted embedded NoteMD to a single
One-Click Extractworkflow that chains concept extraction, batch generation from titles, and batch Mermaid repair into a source-file-named KB folder. - Moved embedded NoteMD API configuration into
app_config.tomlunder[notemd]and[notemd.api], with matching fields in the embedded NoteMD window. - Added
noteconnection notemd ...CLI entrypoints for shared NoteMD actions. - Added user guidance that PDF files must be converted to Markdown via Mineru before import.
Platform & Toolchain Release Readiness:
- Standardized Java policy to JDK 21+ and verified support for JDK 23.0.1 in Android prerequisites/build tooling.
- Added Android/Tauri patching and verification scripts for prerequisite checks, sidecar validation, and strict evidence gates.
Reliability & Security Gates:
- Expanded CI/workflow coverage for FixRisk operational readiness, mobile e2e contracts, wasm parity, SBOM, attestation, and signature/privacy checks.
- Added broad contract-level regression coverage across mobile/runtime/pathbridge/storage layers.
- Included pre-release CI compatibility fixes for runtime bridge invoke-contract assertions and unsigned SBOM transparency policy handling.
Build Performance & Developer Experience:
- Added low-memory Tauri build wrappers and release-profile safeguards for constrained environments.
- Added sidecar readiness preflight to skip redundant rebuilds during dev startup, reducing warm
tauri:dev:mini:gpustartup latency.
v1.5.58 - Godot Path UI Enhancements (2026-03-19)
- Visuals: Added Vertical/Horizontal main spine layout toggle and premium aesthetic color schemes (Nord, Tokyo Night, etc).
- Interactions: Upgraded hover info box with deep node interactivity (Left/Double/Right click).
v1.5.x Migration Runtime Logs (Canonical Archive)
- Full bilingual logs are centrally archived in
export.md. - This README keeps summary pointers in the changelog for readability.
2026-03-03 v1.5.10: Option A P0 Status Update (Tauri Android Native Folder/Build/Content Flow)2026-03-03 v1.5.5: Migration Status Revalidation2026-03-03 v1.5.3: Migration Gate Closure Update2026-03-02 v1.5.1: Tauri Migration Progress Update (Desktop + Android)
v1.4.5 - Physically-Based Bubbles & Interactive Physics (2026-03-01)
- Godot Renderer Upgrade:
- Spectral Bubble Shader: Introduced an advanced 81-wavelength Thin-Film Interference shader (
sp_spectral_filter) combined with 3D noise for hyper-realistic iridescent soap bubbles. - Interactive Physics: Converted all static bubbles into physically simulated
RigidBody3Dentities. Bubbles now gently float, bump into each other, and orbit their targets naturally. - Environment Cleared: Removed the floor to allow 360-degree floating visualization without ground clipping.
- Spectral Bubble Shader: Introduced an advanced 81-wavelength Thin-Film Interference shader (
- UI Enhancements:
- Cancel Completion: The "Mark Complete" button dynamically turns into "Cancel Completion" for already learned nodes, making curriculum management much more forgiving and interactive.
v1.4.4 - Tauri Bridge Stabilization & Cache Workflow Hardening (2026-03-01)
- Electron -> Tauri Runtime Alignment:
- Path Consistency: Unified runtime path resolution so sidecar graph artifacts are read from bundled frontend assets and written to a writable runtime data directory.
- Knowledge Base Discovery: Standardized folder listing and loading flow for
Knowledge_Basesource roots in Bridge-first mode.
- Build/Load Safety:
- Cache Decision Flow: Restored pre-build decision behavior (
Load ExistingvsRegenerate) when target cache already exists. - Duplicate Request Suppression: Added frontend + backend de-dup guards to prevent repeated restore/build execution on a single load action.
- Cache Decision Flow: Restored pre-build decision behavior (
- PathBridge / WebSocket Stability:
- Client Diagnostics: Added tagged client connect/close logging (id, tag, code, reason) for precise bridge RCA.
- Godot URL Compatibility: Fixed Godot websocket URL parsing by switching to
ws://127.0.0.1:9876/?client=godot. - Idle Reconnect Elimination (Tauri): Disabled
frontend-earlyauto-connect in Tauri mode to stop background1001reconnect churn.
- Language/Menu Sync Robustness:
- Idempotent Sync: Added language sync guards in both frontend i18n and Tauri Rust command handlers to avoid repeated no-op menu updates.
v1.4.3 - 9-Rule Tree Layout Engine (2026-02-26)
- Layout Engine Upgrade:
- Spine & Tributaries Logic: Replaced basic geometric node placement with a robust 9-Rule Topological Layout engine (Expansion Order, Preceding Immunity, Following Migration, Single Appearance, Cross-Tributary Isolation, Spine Always Visible, Sticky Claim, Unit Migration, Tributary Hierarchy Immunity).
- Node Ownership: Implemented a recursive claiming system where expanding nodes naturally claim their prerequisites (tributaries), arranging them in a visually structured hierarchy.
- Frontend Enhancements:
- Expansion Tracking: The system now seamlessly tracks node expansion orders, ensuring precise deterministic rendering as complex prerequisite chains are unspooled.
- Sticky Claims (Configurable): Node ownership persists across view updates, avoiding jarring layout reorganizations during consecutive clicks.
- Godot Renderer Adaptations:
- Expansion Badges: Added intuitive
[+]/[-]badges in the Godot desktop renderer to indicate combinable prerequisite branches visually. - Spine Highlighting: Core critical-path nodes ("Spine") receive an elegant glowing border to distinguish the primary learning flow from peripheral branches.
- Expansion Badges: Added intuitive
v1.4.1 - Tree View Interaction Fixes (2026-02-01)
- Interaction Polish:
- Long Press Navigation: Fixed an issue where Long Press (0.6s) on a node would trigger the Context Menu instead of navigating to the node. Now correctly switches the Central Node.
- Collapse All: Added a dedicated
[-]button to the Learning Path header and enabled Middle Click to instantly collapse all expanded nodes. - Right-Click Toggle: Fixed a regression where Right-Click would not correctly toggle node expansion states.
- Lazy Loading UI: Replaced separate
(+)/(-)buttons with a unified, state-aware[Count]indicator that toggles visibility of prerequisite chains.
v1.4.0 - Path Mode Learning UX & Tree View (2026-01-30)
- Path Mode Bug Fixes:
- Unmark Sync Fix: Added
unmarkCompleteandcompletionSynchandlers toPathBridge.ts. - UI Sync on Unmark: Tree panel refresh + central bubble progress update after unmarking.
- Shader Syntax Fix: Corrected
depth_draw_alpha_prepasstodepth_prepass_alpha.
- Unmark Sync Fix: Added
- Path Mode Learning UI:
- Navigation History: Return button with dropdown for learning history.
- Edit Mode: Toggle to enable/disable unmarking nodes on PC.
- Tree Panel: Collapsible dependency tree with visual states.
- Progress Display: "X of N" progress indicator on central bubble.
- Planned: Enhanced Graphical Tree View:
- SubViewport overlay with bezier curves (mind-map style).
- 4 visual themes: Colorful (default), Dark, Glass, Minimal.
v1.3.0 - Path Mode Polish & UI Refinements (2026-01-24)
- Reader Integration:
- Seamless Access: Double-clicking the central node in "Orbital Layout" now instantly opens the
Reader, displaying full node content. - Data Fetching: Fixed a critical issue where the reader would open empty; now correctly retrieves full metadata from the global graph state.
- Seamless Access: Double-clicking the central node in "Orbital Layout" now instantly opens the
- Visual Polish:
- Orbital Layout: Significantly improved node dispersion (Radius 350-950px) to reduce label overlap.
- Edge Clarity: In Orbital mode, strictly hides edges not connected to the central node, reducing visual clutter by 90%.
- Label Visibility: Peripheral nodes now always display labels, sized proportionally to their distance (max 16px).
- Depth of Field: Adjusted opacity falloff to ensure distant nodes remain visible (min 0.4 opacity).
- UX Improvements:
- Target Selection: Increased the "Target Node" search limit from 20 to 300, ensuring users can find any node in the graph.
- Interactive Layers: Fixed
z-indexlayering issues where the Reader window was previously hidden behind the Path visualization.
v1.2.0 - Path Mode & Desktop Renderer (2026-01-23)
- Path Mode: Introduced a major new feature set for converting graphs into linear learning paths.
- Learning Modes: 'Domain Learning' (Topological) and 'Diffusion Learning' (Goal-oriented).
- Visualization: New Radial and Tree layouts powered by D3/Canvas.
- Strategies: 'Foundational' and 'Core' sorting algorithms.
- Hybrid Architecture:
- Godot Bridge: Implemented
PathBridge.tsto sync graph state with external renderers via WebSocket (Port 9876). - Native Rendering: Added support for Godot 4.3 to render the graph with high-fidelity Vulkan graphics (Source in
path_mode/).
- Godot Bridge: Implemented
- DevOps:
- NPM Scripts: Added
pathmode:devandpathmode:testworkflows. - UI Stability: Fixed critical bugs in Radial Layout visibility (
centerView) and Exit Mode logic.
- NPM Scripts: Added
v1.1.2 - Path Resolution & UI Stability (2026-01-23)
- Backend Protocol Fix:
- Improved
src/server.tsto correctly handle URL query parameters (e.g.,?v=timestamp) for static files. - Resolves issues where cache-busting URLs would return 404 on Windows.
- Improved
- UI Interaction Fix:
- Welcome Modal: Fixed a bug in
welcome.jswhere skipping the tutorial would cause the folder selection menu to become unresponsive due toz-indexclobbering. - Guaranteed
z-index: 1000preservation for#source-controlacross all modal dismissal paths.
- Welcome Modal: Fixed a bug in
v1.1.1 - Mobile Build Automation (2026-01-22)
- Mobile DevOps:
- Introduced
build_apk.batfor one-click Android APK generation on Windows. - Automated environment checks (Node, JDK, Android SDK) and project scaffolding.
- Introduced
- Documentation: Added comprehensive guides for mobile building in README and User Manual.
v1.1.0 - CI/CD Automation (2026-01-22)
- GitHub Actions Integration:
- Added automated npm publishing workflow triggered on releases and version tags.
- Added version consistency check to prevent mismatched releases.
- DevOps: Streamlined release process with
git tag v1.1.0 && git push --tags.
v1.0.1 - Maintenance & UX Refinement (2026-01-21)
- Multilingual Consolidation:
- Removed redundant hardcoded translation logic in
app.js. - Centralized all UI strings into
I18nManagerfor consistent language switching. - Fixed "Mixed Language" issue in Welcome Modal where some labels remained in English.
- Removed redundant hardcoded translation logic in
- Onboarding UX Fixes:
- Tutorial Stability: Fixed a crash in Focus Mode tutorial by exposing
enterFocusModecorrectly. - Welcome Modal Timing: Resolved race conditions in
source_manager.jsto ensure the modal displays accurately after data is loaded.
- Tutorial Stability: Fixed a crash in Focus Mode tutorial by exposing
- Protocol & Caching:
- Cache-Busting Handler: Implemented a dynamic script loader in
source_manager.jsusing timestamps to prevent browsers from serving staledata.jsorapp.js. - Refined Protocol Handler: Optimized
app://protocol inmain.tsusingnet.fetchfor more robust local file serving in production.
- Cache-Busting Handler: Implemented a dynamic script loader in
v1.0.0 - Production Release (2026-01-14)
- Stability & Mini Build Reliability: Major fixes for the "Mini" build mode.
- First-Run Fix: Resolved critical crashes when no data is present on first launch (Added
typeofsafety checks). - Artifact Cleanup: Build process now automatically cleans up previous data artifacts to ensure minimum installer size (~70MB).
- Worker Path Fix: Corrected path resolution for backend workers in production builds (Resolved double-dist folder issue).
- First-Run Fix: Resolved critical crashes when no data is present on first launch (Added
- Absolute Offline Strategy: All external CDN dependencies migrated to local assets. The system is now 100% functional without an internet connection.
- Focus Mode Refinement:
- Visual Restoration: Fixed a bug where nodes retained Focus Mode sizes after exit. Now perfectly restores pre-focus radius and font-size.
- Stability: Fixed D3 sibling selection (
getAttribute) errors during Focus entry.
- Physics & Spacing Overhaul:
- New Defaults: Standard link distance increased to 250px and collision radius to 25px.
- Expanded Customization: Slider ranges increased significantly (up to 600px distance / 100px collision).
- Quality of Life: Knowledge Base "All Folders" is now automatically selected in Electron mode for a smoother start.
- Performance & Focus Overhaul:
- O(1) Neighbor Lookup: Adjacency caching reduces transition time from O(N*M) to O(1).
- Batched Rendering: UI updates synchronized via
requestAnimationFrame.
- User-Defined Knowledge Base: New First-Run Setup, persistent configuration, and menu controls.
- Security & CSP: Enhanced CSP for extreme offline security and removed deprecated flags.
v0.9.83 (2026-01-13)
- GPU Worker Integration: Fully enabled GPU acceleration in the frontend Simulation Worker. The worker now dynamically imports
gpu-browser.min.jsandlayout_gpu.jsand respects thegpuRenderingsetting. - Performance Fix: Resolved an issue where "GPU Optimised Rendering" was ignored during the initialization phase, forcing CPU calculation. Large graphs now load significantly faster.
- Robustness: Fixed a critical bug in
updateParamswhere existing GPU force instances were accidentally overwritten by CPU forces when changing physics settings.
v0.9.82 (2026-01-12)
- Worker Sync & Stability: Introduced the Worker Handshake Protocol (
isLayoutSwitching) to eliminate layout "bounce" and race conditions during transitions. - Focus Mode Interaction: Decoupled manual dragging from physics in Focus Mode, ensuring nodes stay exactly where positioned without simulation interference.
- Layout Persistence: Added a 50% restoration safety threshold to the layout cache; automatically falls back to simulation relaxation if data is inconsistent.
- Analysis Stability: Optimized layout logic to prevent redundant resets during panel resizing while "Freeze Layout" is active.
v0.9.74 (2026-01-12)
- GPU Link Force: Implemented high-performance GPU-accelerated spring forces using
gpu.js. Supports "Gather" algorithm for efficient neighbor processing. - Physics Robustness: Introduced velocity clamping (MAX_VELOCITY=100) and NaN/Infinity safety guards in GPU kernels to prevent node "explosions" and disappearing nodes.
- Layout Switching Fix: Implemented robust state preservation (
layoutCache) for Force and DAG layouts, ensuring node positions are saved and restored without "teleportation". Fixed a critical crash inupdateLayoutand added Focus Mode support for GPU forces. - GPU Resource Management: Refactored
layout_gpu.jsto use a Singleton pattern for the GPU context, preventing WebGL context leaks (limit 16) when toggling settings.
v0.9.71 (2026-01-10)
- Backend Parallel Layout: Accelerated front-end loading by pre-calculating node positions on the backend using worker threads or GPU.
- GPU Optimised Rendering: In the backend layout, added support for AMDGPU acceleration.
- Static Mode: Implemented strict simulation freezing for massive graphs (>5000 nodes) to save resources.
- CLI Support: Added full CLI argument support for automated building and loading.
- Extreme Scale Optimization: Disabled edge rendering entirely for graphs with >10,000 nodes to prevent browser crashes.
v0.9.70 - Frontend Initialization Fix (2026-01-09)
- [x] Critical Fix: Fixed a race condition where the rendering loop started before UI controls were fully initialized, causing blank screens and unresponsive buttons on large datasets.
v0.9.69 - Frontend Crash Fix (2026-01-09)
- [x] Critical Fix: Resolved a "Maximum call stack size exceeded" crash in the frontend when loading graphs with over 100,000 edges. This fixes the "Nodes: 0" issue for massive datasets.
v0.9.67 - Compact Mode & Canvas Fix (2026-01-08)
- [x] Compact Mode: Added a new mode that hides edges by default to improve performance for massive graphs (>5k nodes). This mode is automatically enabled for large datasets but can be toggled in settings.
- [x] Canvas Fix: Resolved an issue where large graphs would display a blank screen on load by forcing an initial canvas render frame.
- [x] Optimization: Rendering loop now completely skips edge iteration in Compact Mode, significantly reducing CPU usage during idle or pan/zoom.
v0.9.61 - Frontend Memory Optimization (2026-01-07)
- [x] Smart Rendering: Automatically switches to Canvas mode by default when the graph contains more than 3000 nodes.
- [x] Performance: Reduces browser memory footprint and improves frame rates for large datasets on initial load.
v0.9.60 - Parallel Graph Metrics (2026-01-07)
- [x] Performance: Parallelized the "Graph Metrics" calculation (Betweenness Centrality) using worker threads.
- [x] Scalability: Distributed heavy Brandes Algorithm computations across multiple CPU cores, ensuring faster graph construction for large datasets.
2026-01-07 v0.9.59 - Vector Space Memory Fix (Sparse Matrix)
Goal: Resolve the "Heap out of memory" crash on Windows 10/11 (128GB RAM) when processing 13k+ files by replacing the dense TF-IDF matrix with a Sparse Vector implementation.
- [x] Memory Optimization
- [x] Sparse Vectors: Refactored
VectorSpaceto useUint32Array(indices) andFloat32Array(values) instead of standard Javascript Arrays. - [x] Efficiency: Reduced memory footprint for 13k files from ~10GB+ (dense) to <500MB (sparse).
- [x] Algorithm: Optimized Cosine Similarity calculation to use sparse dot product ($O(min(N, M))$).
- [x] Config: Increased default Node.js heap limit to 12GB (
--max-old-space-size=12288) inpackage.jsonto utilize available system RAM.
- [x] Sparse Vectors: Refactored
2026-01-07 v0.9.58 - Hybrid Inference Resource Reuse (Optimization)
- [x] Memory Optimization: Implemented resource reuse logic for "Statistical Matrix" and "Vector Space" in
GraphBuilder. - [x] Efficiency: Prevents redundant recalculation of heavy data structures during Hybrid Inference, eliminating memory spikes and resolving OOM crashes on large datasets.
- [x] Cleanup: Added strict memory cleanup steps after inference tasks complete.
v0.9.57 - Worker Memory Optimization (2026-01-07)
- [x] Stability Fix: Resolved "Heap out of memory" crashes when processing large datasets (>13k files) by optimizing the data transfer strategy for Worker Threads.
- [x] Efficiency: Workers now receive file paths and read content on-demand, eliminating the memory overhead of cloning large file content strings across threads.
v0.9.56 - Hybrid Inference Memory Optimization (2026-01-05)
- [x] Memory Analysis: Added granular performance logging to the Hybrid Inference engine, tracking heap usage every 1000 nodes to identify memory spikes on Windows.
- [x] Optimization: Implemented aggressive memory cleanup (clearing matrices and nullifying vector space) immediately after inference completion to prevent Heap OOM.
v0.9.55 - Heap OOM Fix & Iterative DFS (2026-01-05)
- [x] Stability Fix: Resolved "Heap out of memory" crashes on Windows 10/11 by implementing explicit memory clearing for file content before the algorithmic phase.
- [x] Robustness: Refactored
CycleDetectorto use an Iterative DFS (stack-based) approach, eliminating stack overflow risks on deep graphs. - [x] Observability: Split performance logging for "Algorithmic Core" into distinct "Cycle Detection" and "Topological Sort" phases for precise debugging.
v0.9.54 - Welcome Experience (2026-01-05)
- [x] Onboarding: Added a "Welcome" modal that appears when the graph is empty, guiding new users to select a source and load data.
- [x] UX: Highlights the "Source Select" controls during the welcome state.
v0.9.53 - Core API Decoupling (2026-01-05)
- [x] Architecture Refactor: Extracted the core graph building logic into a standalone
NoteConnectionclass (src/core/NoteConnection.ts). - [x] Plugin Prep: Decoupled the core API from CLI/Server-specific file operations, enabling direct integration with future Joplin/Obsidian plugins.
- [x] Documentation: Updated User Manual with missing "Max Workers" performance setting.
v0.9.52 - Cycle Detection Memory Optimization (2026-01-05)
- [x] Stability Fix: Resolved a critical "Heap out of memory" crash on Windows 10/11 when building large graphs with many cycles.
- [x] Algorithm Optimization: Updated
CycleDetectorto limit the number of detected cycles, preventing excessive memory consumption during recursion.
v0.9.51 - Performance Logging & Crash Reporting (2026-01-03)
- [x] System Monitoring: Implemented comprehensive performance logging for backend processes (CPU, Memory, Time).
- [x] GPU Diagnostics: Added execution timing and memory tracking for GPU acceleration steps.
- [x] Crash Reporting: Implemented
CrashLoggerto automatically record unhandled exceptions and worker failures tocrash.logfor debugging stability issues on Windows 11. - [x] Optimization: Integrated
PerformanceLoggeracross the entire Graph Construction pipeline (Node Init, Edge Matching, Inference).
v0.9.50 - GPU Acceleration (2026-01-02)
- [x] Verification: Confirmed feasibility of using AMD Radeon 7900XT for graph construction acceleration via
gpu.js. - [x] Strategy: Validated that Mathematical Inference (Vector Similarity) can be offloaded to GPU, while Text Processing remains optimized on CPU.
- [x] Implementation: Added
amdgpumodule withVectorSpaceGPUclass. Integrated intoGraphBuilderto automatically use GPU for Cosine Similarity matrix calculations when enabled.
v0.9.49 - Statistical Analysis Memory Optimization (2026-01-02)
- [x] Performance: Fixed a critical "Heap out of memory" crash when processing large datasets (>10,000 files) by optimizing the Statistical Analyzer algorithm.
- [x] Efficiency: Reduced the complexity of co-occurrence matrix calculation by ~30x using a sparse, file-centric approach.
v0.9.49 - UI Controls for Parallel Processing (2026-01-02)
- [x] Settings UI: In the Settings Modal, added a "Performance" section with a slider and number input to control "Max Workers".
- [x] API Integration: The "Load" button now sends the user-defined worker limit to the backend build process.
- [x] Persistence: The worker setting is saved in
localStoragealongside other preferences.
v0.9.48 - Parallel Processing Optimization (2026-01-02)
- [x] Configurable Workers: Added 'maxWorkers' configuration to allow utilizing more CPU cores for graph building and statistical inference. Removed the hardcoded limit of 12 workers.
v0.9.47 - Focus Mode Interaction & Layout Fixes (2026-01-02)
- [x] Interaction Logic: Fixed an issue where double-clicking a node to enter Focus Mode would accidentally trigger a zoom-in event. Added event propagation control to prevent this (SVG & Canvas).
- [x] Vertical Layout Spacing: Increased the horizontal offset of node labels in Vertical Focus Mode to prevent text from overlapping with nodes, improving readability (SVG & Canvas).
v0.9.46 - Focus Mode UI Cleanup & Canvas Edge Fix (2025-12-26)
- [x] Immersive Focus: The main control panel and source selection bar are now completely hidden during Focus Mode for a distraction-free experience.
- [x] Canvas Polish: Removed edge rendering in Canvas Focus Mode to reduce visual noise.
v0.9.45 - Canvas Interactivity & Cleanup (2025-12-26)
- [x] Canvas Interactive: Canvas mode now supports Hover (Highlight), Single Click (Stats), and Double Click (Focus Mode) interactions, bringing it to feature parity with SVG.
- [x] Visual Fixes: Fixed an issue where nodes in Canvas mode were rendered too large; they now respect "Size By" settings.
- [x] Cleanup: Removed the deprecated "View Mode" (Clusters) feature.
v0.9.44 - Independent Focus Mode Spacing (2025-12-26)
- [x] Smart Spacing: "Layer-Space" and "Node-Space" settings are now saved independently for "Horizontal" and "Vertical" focus layouts.
- [x] Optimized Defaults: Reduced default Horizontal Layer-Space by 50% and Vertical Node-Space by 75% for tighter, more readable layouts.
v0.9.43 - Context-Aware Settings UI (2025-12-26)
- [x] Dynamic Labels: The "Repulsion Strength" label in the settings now dynamically changes between "Repulsion (Force)" and "Repulsion (DAG)" to clearly indicate which layout configuration is being modified.
v0.9.42 - Distinct Repulsion Settings (2025-12-26)
- [x] Mode-Specific Physics: "Repulsion Strength" is now configured independently for "Force" and "DAG" modes.
- [x] Smart Defaults: Set default repulsion to -550 for Force layout (clusters) and -850 for DAG layout (hierarchy) to optimize initial visual separation.
- [x] Context-Aware Settings: The Settings Modal automatically shows the repulsion value for the current layout.
v0.9.41 - Settings Modal Simulation Freeze (2025-12-26)
- [x] Resource Saving: The simulation now automatically pauses when the "Visualization Settings" modal is opened, reducing CPU usage during configuration. It resumes upon closing unless "Freeze Layout" is globally enabled.
v0.9.40 - Freeze Layout Priority Fix (Settings Modal) (2025-12-26)
- [x] Settings Isolation: Adjusting parameters in the "Visualization Settings" modal (e.g., Repulsion, Opacity) no longer triggers a simulation restart if the layout is frozen. Visual changes apply immediately, while physics updates await unfreezing.
v0.9.39 - Layout Switch Relaxation & Freeze Logic (2025-12-26)
- [x] Consistent Transition: Switching layouts now triggers the same "Rapid Relaxation" (0.2 damping for 2s) as the initial load, ensuring nodes arrange themselves quickly.
- [x] Smart Freeze: If "Freeze Layout" is active during a switch, the simulation runs for the 2-second relaxation period to establish the new structure before automatically freezing.
v0.9.38 - Quick Start Guide HTML Rendering Fix (2025-12-26)
- [x] Rich Text Support: Fixed an issue where HTML tags (e.g., bold text, line breaks) in the localized UI were displayed as raw text. The system now correctly renders HTML formatting in translations.
v0.9.37 - Rapid Relaxation Strategy (2025-12-26)
- [x] Smart Damping: The simulation now starts with low friction (0.2) for 2 seconds to allow rapid untangling of nodes ("relaxation"), then automatically increases to high friction (0.95) for stability.
v0.9.36 - Freeze Layout Priority Fix (2025-12-26)
- [x] Strict Freeze: If "Freeze Layout" is active, changing "Degree Basis" or "Size By" settings no longer wakes up the simulation. Visuals update (node sizes change) while positions remain strictly locked.
v0.9.35 - Viewport Culling Relaxation (2025-12-26)
- [x] Smoother Culling: Increased the off-screen "active" buffer to 800px (visual), preventing nodes near the edge from freezing abruptly during panning.
- [x] Extended Zoom: Lowered the global simulation freeze threshold from 0.4x to 0.1x, allowing physics to continue running even when significantly zoomed out.
v0.9.34 - Global Layout Update Fix (2025-12-26)
- [x] Layout Transition Logic: Implemented a global unfreeze mechanism during layout switching.
- [x] Override Culling: Switching layouts (e.g., Force to DAG) now forcefully clears viewport culling locks (
isCulled,fx,fy), ensuring all nodes, including off-screen ones, correctly participate in the new layout arrangement.
v0.9.33 - Layout State Caching (Instant Switch) (2025-12-26)
- [x] Template States: Implemented independent state caching for "Force" and "DAG" layouts.
- [x] Instant Switch: Switching layouts now saves the current state and restores the target state instantly without recalculation or visual movement, preserving the exact arrangement of each view.
v0.9.32 - High Damping & Render Optimization (2025-12-26)
- [x] Damping: Increased default friction to 0.92 for faster settling.
- [x] Render Culling: DOM updates are skipped for off-screen frozen nodes.
v0.9.31 - Simulation Optimization (Viewport Culling) (2025-12-26)
- [x] Performance: Implemented smart viewport culling to reduce simulation load.
- [x] Full View Freeze: Automatically freezes the simulation when zoomed out (< 0.4x) to view the entire graph.
- [x] Off-screen Freezing: When zoomed in, only nodes within the visible viewport (plus a buffer) are simulated; off-screen nodes are frozen.
v0.9.30 - Focus Mode Layout Isolation (2025-12-26)
- [x] Position Consistency: Implemented coordinate backup/restore logic (
x,y,fx,fy) for Focus Mode. - [x] Behavior: Exiting Focus Mode now reverts the graph layout to its exact state prior to entry, discarding any temporary arrangements or drags made during the focused session.
- [x] UX: Fulfills the requirement that Focus Mode should have zero impact on the main interface's layout structure.
v0.9.29 - Freeze Layout Persistence (2025-12-26)
- [x] Bug Fix: Resolved an issue where opening the Analysis Panel or resizing the window would override the "Freeze Layout" state, causing unwanted node movement.
- [x] Robustness: The physics simulation now strictly respects the frozen state during layout changes, ensuring nodes remain stationary as expected.
v0.9.27 - Freeze Layout Priority Fix (2025-12-26)
- [x] Logic Correction: Resolved a conflict where "Exit Focus Mode" would unconditionally restart the physics simulation, overriding the "Freeze Layout" state.
- [x] Priority Enforcement: If "Freeze Layout" is checked, exiting Focus Mode now stops the simulation and forces a static render update, ensuring nodes remain strictly inactive as requested.
v0.9.26 - UX Enhancements & Quick Start (2025-12-26)
- [x] Freeze Layout Quick Button: Added a dedicated freeze button (❄️) to the main interface for instant access, improving mobile usability.
- [x] Sync: State is synchronized with the simulation panel checkbox.
- [x] Visuals: Button turns red when frozen.
- [x] Quick Start Manual: Implemented a "Quick Start Guide" modal for new users.
- [x] Content: Covers Loading, Navigation, Focus Mode, and Controls.
- [x] Onboarding: Automatically shows on first visit (unless "Don't show again" is checked).
- [x] Access: Accessible anytime via the new "Help" (❓) button.
- [x] Localization: Fully localized new UI elements in English and Chinese.
v0.9.25 - Freeze Layout Optimization (2025-12-25)
- [x] Resource Optimization: In the main interface (SVG Mode), enabling "Freeze Layout" now completely disables node dragging in addition to stopping the simulation.
- [x] Logic: Prevents the physics simulation from restarting (waking up) due to drag events, ensuring maximum CPU/Memory savings.
- [x] Focus Mode Preservation: Dragging and manual positioning capabilities remain fully active in Focus Mode, unaffected by the global freeze setting.
v0.9.24 - Focus Mode Memory Optimization (2025-12-25)
- [x] Simulation Optimization: Restricted physics simulation during Focus Mode to only active nodes (focus center + neighbors).
- [x] Resource Saving: Background nodes are frozen (removed from simulation loop), significantly reducing CPU/Memory usage while maintaining their exact visual state.
- [x] Seamless Restoration: Background nodes are instantly restored to their original positions upon exiting Focus Mode.
v0.9.23 - Default Settings Adjustment (2025-12-25)
- [x] Reading Window: Set default font size (zoom level) to minimum (0.5x) for compact reading.
- [x] Simulation Physics: Increased default Damping (velocityDecay) from 0.4 to 0.6 for more stable graph movement.
v0.9.22 - Mobile Popup Adaptation (2025-12-25)
- [x] Touch Interaction: Added support for dragging the statistics popup on mobile devices by holding the title bar.
- [x] Pinch-to-Zoom: Implemented two-finger pinch gesture to resize/scale the popup content on touch screens.
- [x] UX Polish: Prevented page scrolling during popup interactions for a smoother experience.
v0.9.21 - Strict Edge Visibility & Optimization (2025-12-25)
- [x] Strict Edge Visibility: Enforced rule where edges are completely hidden (opacity 0) by default in SVG mode, matching Canvas mode behavior.
- [x] Performance Optimization: Reduced rendering overhead by ensuring relationship lines are calculated and drawn only during interaction (Hover/Click/Focus), complying with strict visibility requirements.
v0.9.20 - Selection State Auto-Clear on Focus Entry (2025-12-24)
- [x] Clean Focus Transition: When double-clicking a node to enter Focus Mode, any existing selection or highlight state is now automatically cleared, providing a clean and uncluttered focused view.
- [x] Auto-Hide Popup: The statistics popup is automatically hidden when entering Focus Mode, preventing visual conflicts.
- [x] Enhanced UX: Ensures users always start with a pristine focused context without residual artifacts from previous node selections.
v0.9.19 - Focus Mode & Popup Enhancements (2025-12-24)
- [x] Focus Mode Re-entry: Fixed issue where double-clicking a related node while in focus mode wouldn't refresh properly. Now seamlessly switches focus between connected nodes.
- [x] Draggable Popup: Node statistics popup can now be dragged by its header to any screen position for better workspace organization.
- [x] Zoomable Popup: Added zoom controls (+/−/⟲) to scale popup content from 0.5x to 2.0x for improved readability.
- [x] Resizable Popup: Enabled browser-native resize handle for manual popup size adjustment.
- [x] State Management: Improved node visibility flag reset to prevent accumulation issues when switching focus contexts.
v0.9.18 - Node Highlighting Refactor (2025-12-24)
- [x] Modular Architecture: Created dedicated
NodeHighlightManagerclass for clean separation of highlighting logic. - [x] Unified Interface: Single API for both PC (hover) and mobile (click) interactions.
- [x] State Management: Proper tracking of highlight/frozen states with focus mode awareness.
- [x] Enhanced Rendering: Consistent visual behavior across SVG and Canvas modes.
- [x] Bilingual Documentation: Comprehensive Chinese/English comments throughout the codebase.
- [x] Robust Integration: Full compatibility with existing focus mode, analysis panel, and statistics popup features.
v0.9.17 - SVG Visual Completeness
- [x] Colored Arrows: SVG edges now use Red and Blue arrowheads when highlighted, ensuring the entire connection is color-coded.
v0.9.16 - Interaction Completeness
- [x] Full Context: Clicking or hovering a node now reveals all connections (In & Out) regardless of the active filter mode.
- [x] Canvas Polish: Added bold styling for highlighted edges in the Canvas renderer.
v0.9.14 - Visual & Data Fixes
- [x] Edge Highlighting: Fixed an issue where edge colors (Red/Blue) and bold styling were not applying correctly in SVG mode.
- [x] Data Deduplication: Ensured neighbor lists in the Statistics Popup do not contain duplicate entries.
v0.9.13 - Focus Mode Isolation
- [x] Interaction Constraint: Ensured that the floating statistics popup and associated highlighting are strictly disabled when Focus Mode is active, preventing context conflict.
v0.9.12 - Independent Statistics Popup
- [x] Node Statistics: Implemented a separate floating window for node details (In/Out Degree) to decouple it from the main Degree Analysis panel.
- [x] Visualization: In-degree and Out-degree relationships are clearly distinguished with Red/Blue indicators in the popup.
v0.9.10 - Interaction Refinement (Click-to-Freeze)
- [x] Inspection: Clicking a node now freezes the entire simulation for stable inspection of connections.
- [x] Resume: Clicking the background resumes the simulation (if not manually frozen).
v0.9.9 - Mobile Analysis Panel Polish
- [x] Mobile Adaptation: Implemented slide gestures (up/down) to resize the analysis panel, full-screen drag snap, and drag handle.
- [x] Interaction: Verified node click sync between analysis panel and graph.
v0.9.8 - Analysis Interaction Refinement
- [x] Graph Sync: Clicking table rows now highlights nodes in the graph.
- [x] Mobile UX: Fixed mobile scrolling in Analysis Panel.
v0.9.7 - Focus Mode Interaction Fix
- [x] Focus Mode: Fixed a bug where changing the layout type did not trigger an immediate refresh.
v0.9.6 - Analysis & Visuals Polish
- [x] Analysis Panel: Added "Full Screen" toggle and "Pinch-to-Zoom" for better mobile readability.
- [x] Visuals: Fixed Mermaid Zoom text styling; Added background click to clear highlights.
v0.9.5 - Refined Mobile Experience & Focus Semantics
- [x] Focus Mode: Added "Hierarchical (Left-Right)" layout and semantic labels ("Helping to understand" / "Further exploration").
- [x] Analysis Panel: Optimized for mobile (scrollable) and added click-to-highlight interaction with the main graph.
- [x] Visuals: Enhanced Mermaid diagram text visibility for light backgrounds; Fixed Focus Mode centering.
v0.9.2 - Mobile UI Optimization
- [x] Responsive Controls: Main panel collapses on mobile; Focus UI moved to bottom.
- [x] Touch Zoom: Added pinch-to-zoom support in the Reading Window.
v0.9.0 - Precise Control & Stability (2025-12-23)
- [x] Hover Lock: Hovering over a node locks its position to prevent inspection drift.
- [x] Simulation Controls: Added Freeze Layout checkbox and Speed/Damping slider.
v0.8.9 - Stability Improvements
- [x] Freeze on Select: Nodes in Focus Mode retain their position after interaction.
v0.8.8 - Scalability Defaults
- [x] Clutter Reduction: Edges and orphans hidden by default.
- [x] Horizontal Spacing: New slider for horizontal node separation in Focus Mode.
v0.8.7 - Rendering Engine
- [x] Canvas Renderer: Added HTML5 Canvas support for high performance.
- [x] Worker Scaling: Increased thread limit to 12.
中文文档
2026-03-29 v1.6.7
NoteConnection: 层级知识图谱可视化系统
解锁你知识库的深层结构。
NoteConnection 是一个高性能的独立可视化系统,旨在将非结构化的 Markdown 知识库转化为有向无环图 (DAG)。
与展示杂乱链接网的传统“网络”视图不同,NoteConnection 揭示了隐藏在笔记中的层级关系、学习路径和依赖结构。它专为可扩展性而设计,能够轻松处理数万个节点,并且完全独立于任何特定的笔记应用程序运行。
🚀 核心特性
1. 可视化与布局
- 结构优于混沌: 在 力导向 (Force-Directed) 和 DAG (层级) 布局之间切换。DAG 布局自动识别“先决条件”和“后续步骤”,将概念按逻辑分层排列。
- 双渲染引擎 (v0.8.7): 无缝切换 SVG (用于交互) 和 Canvas (用于 10,000+ 节点的高性能渲染)。
- 交互式专注模式: 点击任意节点以隔离它及其上下文。包含 选中冻结 (v0.8.9) 以防止漂移,可调节的 垂直/水平间距 (v0.8.8),以及退出后完美的视觉状态恢复 (v1.0.0)。
- 完全离线化支持 (v1.0.0): 所有关键库依赖(D3, KaTeX, Marked, Mermaid 等)均已本地化,确保 100% 离线可用性。
2. 智能与推断
- 混合推断引擎: 结合 统计概率 ($P(A|B)$) 和 向量相似度 (TF-IDF) 推断隐藏的依赖关系(例如,“荧光”隐含“光子”),无需外部 AI API。
- 可扩展聚类: 基于文件夹结构或标签,将数千个节点聚合为高级“概念气泡”,提供清晰的概览。
3. Path Mode (路径模式): 结构化学习 (v1.2.0)
- 课程生成: 将复杂的网状图瞬间转化为线性的学习路径。
- 领域学习 (Domain Learning): 掌握整个概念集群(拓扑排序)。
- 扩散学习 (Diffusion Learning): 寻找通往特定目标的最优路径(最短路径 + 前置依赖)。
- 混合架构: 通过 WebSocket (
ws://localhost:9876) 连接到高保真 Godot 4.3 桌面渲染器,实现 3A 级的可视化效果,同时保持完全的 Web 兼容性。 - 智能策略: 支持 "基础优先" (Foundational) 或 "核心优先" (Core) 排序,适应不同的学习风格。
4. 性能与控制 (Performance & Control)
- 高容量并行处理: 利用 Node.js
worker_threads(最多 12 核) 分发计算密集的关键词匹配任务。 - 模拟控制 (v0.9.0): 通过 速度/阻尼滑块 微调物理效果,或使用 冻结布局 开关停止模拟以进行稳定的手动排列。
- 悬停锁定: 悬停在节点上时暂时锁定其位置,以便稳定地检查连接。
💻 硬件与驱动要求 (Hardware & Driver Requirements)
支持的 AMDGPU 架构
NoteConnection 利用 gpu.js 进行基于 WebGL 的加速,并计划通过 ROCm 支持本地 AI 推断。
- RDNA 3 (推荐): Radeon RX 7000 系列 (例如 RX 7900 XT/XTX)。
- 状态: WebGL 和计算性能最佳。
- RDNA 2: Radeon RX 6000 系列。
- 状态: 稳定且成熟的支持。
驱动配置
Windows (开发环境)
- 驱动程序: AMD Software: Adrenalin Edition (23.12.1+)。
- 需要 DirectX 12/Vulkan/OpenGL 支持以底层支持 WebGL。
- 构建工具: 用于为 Node.js 编译
headless-gl:- 安装 Python 3.x 并加入 PATH。
- Visual Studio Build Tools (C++ 工作负载)。
Linux (AI 推荐)
- Mesa (RADV/Radeonsi): 默认开源驱动。最适合通用 WebGL 和
gpu.js。 - ROCm (Radeon Open Compute): 仅在计划开发 AI 推断功能(未来路线图)时安装。NoteConnection 的核心可视化在标准 Mesa 驱动上运行良好。
🏗️ 系统架构
NoteConnection 基于模块化架构构建,旨在实现高性能和可扩展性。
后端 (src/backend)
- GraphBuilder: 核心协调器。管理从文件读取到图构建的整个流程。
- Worker Threads: 繁重的任务(关键词匹配、文本分析)被卸载到工作线程池 (
src/backend/workers),确保主线程保持响应。 - 推断引擎:
StatisticalAnalyzer: 计算共现矩阵。VectorSpace: 处理 TF-IDF 嵌入和余弦相似度。HybridEngine: 结合信号建议有向边。
前端 (src/frontend)
- 双引擎渲染器:
- D3.js (SVG): 用于高保真、交互式图表,具有详细的工具提示和 CSS 样式。
- HTML5 Canvas: 针对海量数据集进行了优化,消除了 DOM 操作的开销。
- 状态管理:
SettingsManager将用户偏好(物理、视觉)持久化到localStorage。 - 布局逻辑: 自定义的 Sugiyama 风格分层算法和力导向物理算法。
桌面桥接 (Desktop Bridge) (src/core)
- PathBridge: 标准 WebSocket 服务器 (端口 9876),将内部图谱状态暴露给外部应用程序(例如 Godot 引擎),实现混合 Web/原生可视化管线。
📦 快速开始
选项 1: Windows 安装程序 (推荐)
- 从 最新发布页面 下载
NoteConnection.Setup.exe。 - 运行安装程序。
- 从桌面或开始菜单启动 NoteConnection。
选项 2: 使用 npx 运行
无需安装。
npx noteconnection选项 3: 全局安装
npm install -g noteconnection
noteconnection选项 4: 本地开发
git clone https://github.com/Jacobinwwey/NoteConnection.git
cd NoteConnection
npm install
npm start- 服务器运行于:
http://localhost:3000
选项 5: 移动端支持 (Android)
NoteConnection 现支持 两条 Android 生成路径:
- Capacitor APK 路径(Web 资产运行时,适合阅读与可视化流程)。
- Tauri Android 路径(原生壳流程,对齐
docs/tauri_brainstorming.md)。
先决条件
- Node.js (LTS)
- Java JDK (17 或更高版本)
- Android SDK (配置在
ANDROID_HOME或通过 Android Studio 安装)
方法 A: Capacitor 构建(稳定)
在 Windows 上直接运行包含的批处理脚本:
build_apk.bat该脚本会自动:
- 检查您的环境 (Node, Java, Android SDK)。
- 安装依赖项。
- 构建 Web 资源。
- 同步 Capacitor。
- 使用 Gradle 编译 APK。
也可以通过 npm 脚本触发同一路径:
npm run mobile:build:capacitor方法 B: Tauri Android 构建(原生壳)
# 机器首次初始化
npm run tauri:android:init
# 通过 Tauri Android 流水线构建
npm run tauri:android:build方法 C: Capacitor 手动构建步骤
- 构建 Web 资源:
npm run build - 同步到 Android 平台:
npx cap sync - 构建 APK:
在 Android Studio 中打开
android目录并构建,或使用命令行:
APK 将位于:cd android ./gradlew assembleDebugandroid/app/build/outputs/apk/debug/app-debug.apk
移动端能力边界
- Capacitor 路径当前是 Web 资产打包,不内置桌面端本地 Node sidecar 流程(
/api/build、/api/folders、/api/content)。 - 若需要与 Tauri 架构一致的移动端原生壳路线,请使用 Tauri Android 路径。
🖥️ CLI 命令行使用 (v0.9.71)
您可以直接从命令行加载知识库并构建图谱,而无需使用 UI。这对于自动构建或无头环境非常有用。
使用方法
npm start -- --path "<知识库路径