Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
29b16ab
Normalize front matter tag parsing
SMPL-Ai-Agency Nov 12, 2025
c7042fe
Merge pull request #1 from SMPL-Ai-Agency/codex/update-changelog-with…
SMPL-Ai-Agency Nov 12, 2025
cdb8832
Refine Supabase exclusions filtering and add coverage
SMPL-Ai-Agency Nov 12, 2025
0c8a110
Merge pull request #2 from SMPL-Ai-Agency/codex/refactor-removeexclud…
SMPL-Ai-Agency Nov 12, 2025
bb4e7be
Prevent duplicate MindMatrix event registrations
SMPL-Ai-Agency Nov 12, 2025
e09270c
Merge pull request #3 from SMPL-Ai-Agency/codex/add-guard-in-mindmatr…
SMPL-Ai-Agency Nov 12, 2025
6cb8946
Update TextSplitter chunk options handling
SMPL-Ai-Agency Nov 12, 2025
32ea5d0
Merge pull request #4 from SMPL-Ai-Agency/codex/modify-textsplitter-t…
SMPL-Ai-Agency Nov 12, 2025
c055295
Resolve delete queue to use file status IDs
SMPL-Ai-Agency Nov 12, 2025
a7abfb0
Merge branch 'main' into codex/update-queueservice-for-delete-task-ha…
SMPL-Ai-Agency Nov 12, 2025
dd8a351
Merge pull request #5 from SMPL-Ai-Agency/codex/update-queueservice-f…
SMPL-Ai-Agency Nov 12, 2025
006d913
Ensure QueueService validates chunk settings
SMPL-Ai-Agency Nov 12, 2025
cbff3ab
Merge pull request #7 from SMPL-Ai-Agency/codex/update-queueservice-a…
SMPL-Ai-Agency Nov 12, 2025
9c2898c
Rename plugin to Obsidian RAG
SMPL-Ai-Agency Nov 12, 2025
314a115
Merge pull request #10 from SMPL-Ai-Agency/codex/rename-mindmatrix-to…
SMPL-Ai-Agency Nov 12, 2025
e8ceeb0
fix: correct spelling in bread recipe fixture
SMPL-Ai-Agency Nov 12, 2025
730da85
Merge pull request #11 from SMPL-Ai-Agency/codex/edit-ferdinands-brot…
SMPL-Ai-Agency Nov 12, 2025
1dd9665
docs: refresh project structure overview
SMPL-Ai-Agency Nov 12, 2025
b2bc01b
Merge pull request #12 from SMPL-Ai-Agency/codex/inspect-repository-a…
SMPL-Ai-Agency Nov 12, 2025
fb03704
test: cover delete retry path
SMPL-Ai-Agency Nov 12, 2025
1935a46
Merge pull request #13 from SMPL-Ai-Agency/codex/extend-queueservice.…
SMPL-Ai-Agency Nov 12, 2025
29e4a59
Fix error notices to use normalized message
SMPL-Ai-Agency Nov 12, 2025
7138b01
Merge pull request #14 from SMPL-Ai-Agency/codex/update-error-handlin…
SMPL-Ai-Agency Nov 12, 2025
36b6e36
Add Ollama-first embedding service with OpenAI fallback
SMPL-Ai-Agency Nov 12, 2025
9407432
Merge pull request #15 from SMPL-Ai-Agency/codex/refactor-to-introduc…
SMPL-Ai-Agency Nov 12, 2025
87994e2
Enhance queue resilience and error handling
SMPL-Ai-Agency Nov 12, 2025
e5d60c6
Merge pull request #16 from SMPL-Ai-Agency/codex/implement-queue-serv…
SMPL-Ai-Agency Nov 12, 2025
3ebf555
Add adaptive initial sync batching and pending status handling
SMPL-Ai-Agency Nov 12, 2025
1982795
Merge pull request #17 from SMPL-Ai-Agency/codex/add-adaptive-batchin…
SMPL-Ai-Agency Nov 12, 2025
9de3350
Update TASKS.md
SMPL-Ai-Agency Nov 12, 2025
3446076
Update CLAUDE.md
SMPL-Ai-Agency Nov 12, 2025
5696540
Revise README for improved clarity and details
SMPL-Ai-Agency Nov 12, 2025
9db683b
Update README.md
SMPL-Ai-Agency Nov 12, 2025
ee0ba76
Update README.md
SMPL-Ai-Agency Nov 12, 2025
9b42cfd
Revise README for improved structure and clarity
SMPL-Ai-Agency Nov 12, 2025
962cf13
Enhance README with comprehensive plugin details
SMPL-Ai-Agency Nov 12, 2025
419aee5
Refine section headings in README.md
SMPL-Ai-Agency Nov 12, 2025
58a0700
Update README.md for clarity and formatting
SMPL-Ai-Agency Nov 12, 2025
9c1ac00
Revise plugin description for clarity and detail
SMPL-Ai-Agency Nov 12, 2025
2fb75f8
Update plugin description for clarity
SMPL-Ai-Agency Nov 12, 2025
4606799
Revise project structure formatting in README
SMPL-Ai-Agency Nov 13, 2025
82b6a52
Fix formatting in README.md
SMPL-Ai-Agency Nov 13, 2025
fa4ac3c
Update README to improve plugin description
SMPL-Ai-Agency Nov 13, 2025
645758f
Update README with Vibe coding and management note
SMPL-Ai-Agency Nov 13, 2025
713685f
Update program management experience description
SMPL-Ai-Agency Nov 13, 2025
a590a92
Revise README for clarity and proper attribution
SMPL-Ai-Agency Nov 13, 2025
2a55af6
Revise README for clarity and proper attribution
SMPL-Ai-Agency Nov 13, 2025
849da64
Update README to remove upcoming features section
SMPL-Ai-Agency Nov 13, 2025
de63937
Fix formatting in README.md
SMPL-Ai-Agency Nov 13, 2025
4cc4bf8
Enhance README with integration examples and details
SMPL-Ai-Agency Nov 13, 2025
a10c096
Align chunk settings and transactional chunk upserts
SMPL-Ai-Agency Nov 13, 2025
9ca9f47
Merge pull request #18 from SMPL-Ai-Agency/codex/standardize-chunk-ov…
SMPL-Ai-Agency Nov 13, 2025
23a8fc5
Add sync and embedding regression tests
SMPL-Ai-Agency Nov 13, 2025
ff9bc51
Merge pull request #19 from SMPL-Ai-Agency/codex/add-tests-for-embedd…
SMPL-Ai-Agency Nov 13, 2025
e044b48
Add Neo4j integration and entity extraction pipeline
SMPL-Ai-Agency Nov 13, 2025
4e0964b
Merge pull request #20 from SMPL-Ai-Agency/codex/implement-neo4j-inte…
SMPL-Ai-Agency Nov 13, 2025
4cd74aa
Add hybrid RAG orchestration and strategy controls
SMPL-Ai-Agency Nov 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
934 changes: 934 additions & 0 deletions .yarn/releases/yarn-4.6.0.cjs

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]

### Added
- Initial release of MindMatrix plugin
- Initial release of Obsidian RAG plugin
- Database management features
- Automated database setup
- Connection testing
Expand All @@ -30,6 +30,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Database connection issues
- Environment variable handling
- Build process optimizations
- Front matter tag parsing now splits comma-separated values into individual tags

## [0.1.0] - 2024-04-13

Expand Down
24 changes: 13 additions & 11 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# MindMatrix Architecture
# DEPRICATED: Obsidian RAG Architecture

This Project uses OpenAi Codex AGENTS.md file for this purpose.

## Overview

MindMatrix is an Obsidian plugin that enhances note-taking by synchronizing documents with a Supabase vector database for AI-powered search. The plugin provides semantic search capabilities through OpenAI embeddings while maintaining data integrity and user experience. It operates entirely within the Obsidian environment, leveraging remote services (Supabase and OpenAI) for data storage and processing.
Obsidian RAG is an Obsidian plugin that enhances note-taking by synchronizing documents with a Supabase vector database for AI-powered search. The plugin generates embeddings through a local-first Ollama integration with automatic OpenAI fallback while maintaining data integrity and user experience. It operates entirely within the Obsidian environment, leveraging remote services (Supabase and optional OpenAI) alongside self-hosted Ollama for data storage and processing.

The primary purpose of MindMatrix is to enable users to create chatbots through n8n that can query and interact with their Obsidian knowledge base. By storing document embeddings in Supabase, the plugin makes the entire vault searchable and accessible to AI-powered applications, allowing users to build custom workflows and chatbots that leverage their personal knowledge base.
The primary purpose of Obsidian RAG is to enable users to create chatbots through n8n that can query and interact with their Obsidian knowledge base. By storing document embeddings in Supabase, the plugin makes the entire vault searchable and accessible to AI-powered applications, allowing users to build custom workflows and chatbots that leverage their personal knowledge base.

The plugin implements a worker actor model with an in-memory event queue to ensure immediate response to user actions while maintaining data consistency. When a user starts typing in Obsidian, the plugin immediately detects these changes and queues them for processing, even while initialization and system startup procedures are running in the background.

Expand Down Expand Up @@ -113,7 +115,7 @@ The plugin implements a worker actor model with an in-memory event queue to ensu
- File content reading
- Content chunking with configurable strategies
- Metadata extraction and normalization
- OpenAI embedding generation
- Embedding generation via Ollama with OpenAI fallback
- Supabase database synchronization

- **Synchronization**:
Expand Down Expand Up @@ -167,7 +169,7 @@ The plugin implements a worker actor model with an in-memory event queue to ensu
### 7. Settings Management

- **Configuration Options**:
- API credentials (Supabase, OpenAI)
- API credentials (Supabase, Ollama, optional OpenAI)
- Processing parameters
- Exclusion patterns
- Chunking strategies
Expand Down Expand Up @@ -216,7 +218,7 @@ The plugin implements a worker actor model with an in-memory event queue to ensu
3. **Content Processing**:
- File is chunked according to strategy
- Metadata is extracted from content
- OpenAI API generates embeddings
- Embedding service requests vectors from Ollama, falling back to OpenAI when necessary
- Chunks and embeddings are prepared for storage

4. **Database Synchronization**:
Expand Down Expand Up @@ -283,9 +285,9 @@ The plugin implements a worker actor model with an in-memory event queue to ensu
- Test with different configurations

- **API Integration**:
- Test OpenAI API interactions
- Verify embedding generation
- Validate embedding quality
- Test Ollama endpoint interactions
- Test OpenAI fallback flows
- Verify embedding generation and dimensionality
- Test rate limiting handling
- Verify error recovery

Expand Down Expand Up @@ -398,7 +400,7 @@ The following checklist should be used to verify the database setup is correct b

## Project Structure

The MindMatrix plugin follows a simple, flat file structure organized by function:
The Obsidian RAG plugin follows a simple, flat file structure organized by function:

- **`models/`**: Data models and type definitions for domain objects
- **`services/`**: Business logic and core functionality
Expand Down Expand Up @@ -505,4 +507,4 @@ The MindMatrix plugin follows a simple, flat file structure organized by functio

## Conclusion

The MindMatrix architecture provides a robust, scalable solution for synchronizing Obsidian vaults with Supabase vector databases. By implementing a worker actor model with strict event ordering and atomic processing, the plugin ensures data consistency while maintaining performance. The hash-based change detection minimizes unnecessary processing and API calls, while the event queue system ensures reliable operation even during connectivity issues.
The Obsidian RAG architecture provides a robust, scalable solution for synchronizing Obsidian vaults with Supabase vector databases. By implementing a worker actor model with strict event ordering and atomic processing, the plugin ensures data consistency while maintaining performance. The hash-based change detection minimizes unnecessary processing and API calls, while the event queue system ensures reliable operation even during connectivity issues.
26 changes: 15 additions & 11 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
Before you begin, ensure you have:
- [Obsidian](https://obsidian.md/) installed
- A [Supabase](https://supabase.com) account
- An [OpenAI](https://platform.openai.com/) API key
- Access to an [Ollama](https://ollama.com/) server (local or remote)
- *(Optional)* An [OpenAI](https://platform.openai.com/) API key for fallback embeddings

### Installation Steps

Expand All @@ -16,14 +17,14 @@ Before you begin, ensure you have:
#### Method 1: Through Obsidian (Recommended)
- Open Obsidian Settings
- Go to Community Plugins
- Search for "Mind Matrix"
- Search for "Obsidian RAG"
- Click Install and Enable

#### Method 2: Manual Installation
- Download the latest release from [GitHub Releases](https://github.com/yourusername/mindmatrix/releases)
- Download the latest release from [GitHub Releases](https://github.com/smpl-ai-automations/obsidian-rag/releases)
- Extract the files to your vault's plugins directory:
```
.obsidian/plugins/mind-matrix/
.obsidian/plugins/obsidian-rag/
```
- Restart Obsidian
- Enable the plugin in Community Plugins settings
Expand All @@ -36,11 +37,14 @@ Before you begin, ensure you have:
- Copy your Project URL

3. **Configure the Plugin**
- Open Mind Matrix settings in Obsidian
- Open Obsidian RAG settings in Obsidian
- Enter your Supabase credentials:
- Project URL
- Database Password
- Enter your OpenAI API key
- Configure the Embeddings section:
- Confirm the Ollama server URL and model (defaults to `http://localhost:11434` and `nomic-embed-text`)
- Enable or disable Ollama usage as needed
- (Optional) Provide an OpenAI API key to enable fallback embedding generation
- Click "Initialize Database" to create the required tables

4. **Start Using**
Expand All @@ -53,7 +57,7 @@ Before you begin, ensure you have:
### Prerequisites

Before you begin, ensure you have the following installed:
- [Node.js](https://nodejs.org/) (v16 or higher)
- [Node.js](https://nodejs.org/) (v18 or higher)
- [Yarn](https://yarnpkg.com/) package manager
- [PostgreSQL](https://www.postgresql.org/) (v14 or higher)
- [jq](https://stedolan.github.io/jq/) (for password encoding)
Expand All @@ -65,8 +69,8 @@ The inspiration for this plugin came from watching Nate Herk's YouTube video [St

1. **Clone the repository**
```bash
git clone https://github.com/yourusername/mindmatrix.git
cd mindmatrix
git clone https://github.com/smpl-ai-automations/obsidian-rag.git
cd obsidian-rag
```

2. **Install dependencies**
Expand All @@ -75,9 +79,9 @@ The inspiration for this plugin came from watching Nate Herk's YouTube video [St
```

3. **Set up environment variables**
- Copy `.env.test` to `.env`:
- Copy `.env.template` to `.env`:
```bash
cp .env.test .env
cp .env.template .env
```
- Update the `.env` file with your Supabase credentials:
```
Expand Down
67 changes: 37 additions & 30 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,23 @@

# Development commands
dev:
@if ! command -v node &> /dev/null; then \
echo "❌ Error: Node.js is not installed" && \
echo "Please run 'make install-node' to install Node.js" && \
exit 1; \
fi && \
if ! command -v yarn &> /dev/null; then \
echo "❌ Error: Yarn is not installed" && \
echo "Please run 'make install-yarn' to install Yarn" && \
exit 1; \
fi && \
@if ! command -v node &> /dev/null; then \
echo "❌ Error: Node.js is not installed" && \
echo "Please run 'make install-node' to install Node.js" && \
exit 1; \
fi && \
NODE_VERSION=$$(node -v | sed 's/v//') && \
NODE_MAJOR=$${NODE_VERSION%%.*} && \
if [ $$NODE_MAJOR -lt 18 ]; then \
echo "❌ Error: Node.js 18+ is required (found $$NODE_VERSION)" && \
echo "Please upgrade Node.js before running development commands" && \
exit 1; \
fi && \
if ! command -v yarn &> /dev/null; then \
echo "❌ Error: Yarn is not installed" && \
echo "Please run 'make install-yarn' to install Yarn" && \
exit 1; \
fi && \
yarn dev

# Install Node.js
Expand Down Expand Up @@ -73,12 +80,12 @@ install-timeout:

# Check environment setup
check-env:
@if [ ! -f .env ]; then \
echo "📝 Creating .env file from template..." && \
cp .env.test .env && \
echo "✅ .env file created. Please update the values in .env" && \
exit 0; \
fi && \
@if [ ! -f .env ]; then \
echo "📝 Creating .env file from template..." && \
cp .env.template .env && \
echo "✅ .env file created. Please update the values in .env" && \
exit 0; \
fi && \
export $$(grep -v '^#' .env | xargs) && \
if [ -z "$$SUPABASE_URL" ] || [ -z "$$SUPABASE_DB_PASSWORD" ]; then \
echo "❌ Error: SUPABASE_URL or SUPABASE_DB_PASSWORD not set in .env" && \
Expand Down Expand Up @@ -108,11 +115,11 @@ setup-db:
echo "📦 Setting up database..." && \
timeout 30s psql "$$DB_URL" -f sql/setup.sql && \
echo "✅ Database setup complete!"; \
else \
echo "❌ Error: .env file not found" && \
echo "Please run 'make check-env' first" && \
exit 1; \
fi
else \
echo "❌ Error: .env file not found" && \
echo "Please run 'make check-env' first (uses .env.template)" && \
exit 1; \
fi

# Initialize project and database
init: install-node install-yarn install-postgres install-jq install-timeout check-env
Expand Down Expand Up @@ -179,11 +186,11 @@ test-db:
fi; \
exit 1; \
}; \
else \
echo "❌ Error: .env file not found"; \
echo "Please create a .env file based on .env.test"; \
exit 1; \
fi
else \
echo "❌ Error: .env file not found"; \
echo "Please create a .env file based on .env.template"; \
exit 1; \
fi

# Reset database command - runs reset.sql followed by setup.sql
reset:
Expand Down Expand Up @@ -216,10 +223,10 @@ reset:
fi; \
exit 1; \
}; \
else \
echo "Error: .env file not found. Please create one based on .env.test"; \
exit 1; \
fi
else \
echo "Error: .env file not found. Please create one based on .env.template"; \
exit 1; \
fi

# Release targets
.PHONY: release-major release-minor release-patch
Expand Down
Loading