Date: 2026-01-23
The ref directory serves as a comprehensive knowledge base and reference repository for the NoteConnection_app. It contains source code and documentation for several open-source projects that align with the core features of NoteConnection: Knowledge Graph Visualization, AI/Semantic Analysis, Infinite Canvas, and Document Reading.
These references suggest that NoteConnection aims to synthesize these capabilities into a unified application, leveraging modern web technologies (Electron/Next.js/Tauri) and potentially Godot for specialized rendering.
- Project:
obsidian-smart-connections - Tech Stack: TypeScript/JavaScript, Obsidian API,
obsidian-smart-env(Embeddings/Vector DB). - Key Features:
- Local Embeddings: "Zero-setup" local model for privacy-first semantic search.
- Connections View: Shows semantically related notes.
- Smart Context: Aggregates notes for AI chat context.
- Relevance: Direct reference for implementing the "AI Connection" feature in NoteConnection, specifically how to manage local embeddings and rank connections.
- Project:
joplin-link-graph - Tech Stack: TypeScript, Joplin Plugin API, D3.js (implied for graph).
- Key Features:
- Force-Directed Graph: Dynamic visualization of note links.
- Real-time Updates: Reacts to note changes and selection.
- Relevance: Reference for the "Graph View" UI, specifically handling graph data structures (
Node,Edge) and synchronizing the graph with the active note editor.
- Project:
readest - Tech Stack: Next.js 16, Tauri v2, Rust.
- Key Features:
- Multi-format Support: EPUB, PDF, MOBI, etc.
- Modern Web Architecture: Uses React/Next.js for the UI, suitable for an Electron-based app like NoteConnection.
- Relevance: Reference for the file parsing and reading interface, ensuring robust handling of various document formats.
- Project:
Lorien(Infinite Canvas) &Arrow(Narrative Design) - Tech Stack: Godot Engine (Lorien), HTML/JS (Arrow).
- Key Features:
- Lorien: Performance-focused infinite canvas using vector points (not bitmaps).
- Arrow: Visual node-based logic editor.
- Relevance:
Lorienprovides a blueprint for a high-performance "Whiteboard" feature.Arrowoffers insights into visual programming interfaces / node graphs.
- Plugin Architecture: Both
obsidian-smart-connectionsandjoplin-link-graphfollow strict plugin architectures. They isolate core logic (data processing) from UI rendering (Views).- Example:
obsidian-smart-connectionsextends a baseSmartPluginclass and delegates environment tasks toSmartEnv, keeping the main plugin file clean.
- Example:
- Message Passing:
joplin-link-graphdemonstrates a clear separation of concerns between the plugin process and the webview UI, communicating via apollmechanism and message passing (panels.onMessage). This is a critical pattern for Electron apps (Main vs. Renderer process).
- TypeScript Usage:
joplin-link-graphutilizes TypeScript interfaces to strictly define the Graph model:This ensures data consistency when passing complex graph structures between components.interface Edge { source: string; target: string; ... } interface Node { id: string; title: string; ... }
- Weighted Connections:
obsidian-smart-connectionsimplements weighted random selection for "serendipitous" discovery (get_random_connection.js), using score-based probability. This adds a layer of sophistication beyond simple "nearest neighbor" lookups.
- Non-Blocking UI: Both graph and AI references heavily use
async/awaitto prevent freezing the main thread.obsidian-smart-connectionsusesawait this.SmartEnv.wait_for({ loaded: true })to ensure dependencies are ready before enabling features, a robust initialization pattern.
- Adopt Typed Interfaces: Mimic
joplin-link-graph's use of TS interfaces for the graph data model to ensure stability in the frontend visualization. - Separate Computation: Like
obsidian-smart-connections, offload heavy tasks (embedding generation, graph force simulation) to workers or a separate process/environment (SmartEnvequivalent) to keep the UI responsive. - Unified "Smart" Environment: Consider a shared internal module similar to
obsidian-smart-envthat manages the state of embeddings and file indexing, decoupled from the specific UI views (Graph, Chat, Search).