Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .github/workflows/loctree-ci.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Loctree CI - Codebase Health Analysis
# Uses loctree 0.8.0+ for dead code detection, circular imports, and health scoring
#
# Co-Authored-By: Maciej <void@div0.space> & Klaudiusz <the1st@whoai.am>
# Co-Authored-By: Vetcoders <hello@vetcoders.io>

name: Loctree CI

Expand Down
1 change: 0 additions & 1 deletion .vibecrafted/plans

This file was deleted.

1 change: 0 additions & 1 deletion .vibecrafted/reports

This file was deleted.

10 changes: 5 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ All notable changes to this project will be documented in this file.

### Changed
- **Rebranded: `rmcp-memex` → `rust-memex`.** Crate name on crates.io, binary name `rmcp-memex` → `rust-memex`, library path `rmcp_memex` → `rust_memex`, and all internal imports `use rmcp_memex::` → `use rust_memex::`. User-facing `RMCP_MEMEX_*` environment variables preserved as-is for backward compatibility.
- **Moved to Loctree org:** `https://github.com/VetCoders/rmcp-memex` → `https://github.com/Loctree/rust-memex`. Docs, install CTAs, and issue tracker URLs updated across README, docs/, install.sh, and Makefile.
- **Authors + license unchanged.** Maciej Gad & Monika Szymanska remain the Cargo authors; dual MIT OR Apache-2.0 license retained for library-friendly downstream use.
- **Moved to Loctree org:** `https://github.com/vetcoders/rmcp-memex` → `https://github.com/Loctree/rust-memex`. Docs, install CTAs, and issue tracker URLs updated across README, docs/, install.sh, and Makefile.
- **Authors + license unchanged.** Vetcoders remains the Cargo author; dual MIT OR Apache-2.0 license retained for library-friendly downstream use.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Correct the release note about authors and license

This line says authors and license are unchanged, but this same commit changes Cargo.toml to authors = ["Vetcoders <hello@vetcoders.io>"], and the package/license file advertise BUSL-1.1 rather than MIT/Apache. For release consumers checking attribution or licensing, the changelog now gives incorrect compliance guidance; please either document the author metadata change and BUSL license or remove the claim.

Useful? React with 👍 / 👎.


### Added
- `rust-memex reindex` subcommand for rebuilding namespace contents with paginated source reads, preflight embedding checks, and target-namespace safety guards
Expand Down Expand Up @@ -171,7 +171,7 @@ All notable changes to this project will be documented in this file.
- **CLI `--auto-route` flag** - Automatic search mode selection for `search` command
- Analyzes query intent and selects optimal mode (vector/bm25/hybrid)
- Displays intent, confidence, and loctree suggestions when applicable
- Example: `rust-memex search -n memories -q "when did we buy dragon" --auto-route`
- Example: `rust-memex search -n memories -q "when did we buy the laptop" --auto-route`
- **MCP `auto_route` parameter** - Added to `rag_search` and `memory_search` tools
- When `true`, QueryRouter overrides explicit `mode` parameter
- Enables intelligent mode selection for AI agents
Expand Down Expand Up @@ -216,7 +216,7 @@ All notable changes to this project will be documented in this file.
### Added
- **MemexEngine** - High-level API for library consumers
- `MemexEngine::for_app()` - quick setup for any application with auto-config
- `MemexEngine::for_vista()` - Vista-optimized defaults (1024 dims, qwen3-embedding:0.6b)
- `MemexEngine::for_app_optimized()` - optimized defaults (1024 dims, qwen3-embedding:0.6b)
- CRUD operations: `store()`, `search()`, `get()`, `delete()`
- Batch operations: `store_batch()` for efficient bulk inserts
- Filtered operations: `search_filtered()`, `delete_by_filter()` for GDPR-compliant deletion
Expand Down Expand Up @@ -370,4 +370,4 @@ All notable changes to this project will be documented in this file.

---

Vibecrafted with AI Agents by Loctree (c)2025 The LibraxisAI Team
Vibecrafted with AI Agents by Loctree (c)2025 Vetcoders
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = "0.6.0"
edition = "2024"
rust-version = "1.88"
description = "Operator CLI + MCP server: canonical corpus second: semantic index second to aicx"
authors = ["Maciej Gad <void@div0.space>", "Monika Szymanska <hello@vetcoders.io>"]
authors = ["Vetcoders <hello@vetcoders.io>"]
license = "BUSL-1.1"
repository = "https://github.com/Loctree/rust-memex"
homepage = "https://github.com/Loctree/rust-memex"
Expand Down
12 changes: 6 additions & 6 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,24 @@ License text copyright (c) 2020 MariaDB Corporation Ab, All Rights Reserved.

Parameters

Licensor: VetCoders (Maciej Gad & Monika Szymanska)
Licensor: Vetcoders
Licensed Work: Rust Memex - The Intentions Kernel.
The Licensed Work is (c) 2024-2026 VetCoders.
The Licensed Work is (c) 2024-2026 Vetcoders.
Additional Use Grant: You may make production use of the Licensed Work,
provided Your use does not include offering the
Licensed Work to third parties on a hosted or embedded
basis in order to compete with VetCoders' paid
basis in order to compete with Vetcoders' paid
version(s) of the Licensed Work. For purposes of this
license:

A "competitive offering" is a Product that is offered
to third parties on a paid basis, including through
paid support arrangements, that significantly overlaps
with the capabilities of VetCoders' paid version(s) of
with the capabilities of Vetcoders' paid version(s) of
the Licensed Work. If Your Product is not a competitive
offering when You first make it generally available, it
will not become a competitive offering later due to
VetCoders releasing a new version of the Licensed Work
Vetcoders releasing a new version of the Licensed Work
with additional capabilities. In addition, Products
that are not provided on a paid basis are not
competitive.
Expand Down Expand Up @@ -48,7 +48,7 @@ Change Date: 2030-03-24
Change License: Apache License, Version 2.0

For information about alternative licensing arrangements for the Licensed
Work, please contact void@div0.space.
Work, please contact hello@vetcoders.io.

Notice

Expand Down
12 changes: 6 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# rust-memex Makefile
# ============================================================================
# Service management, build, and maintenance targets
# Created by M&K (c)2026 Loctree
# Created by vetcoders (c)2026 Loctree
# ============================================================================
#
# RAM DISK MODE (Dragon 512GB):
# RAM DISK MODE (512GB host):
# make ramdisk-up - Create 50GB RAM disk, copy DB, start service
# make ramdisk-down - Sync to disk, unmount RAM disk, stop service
# make snapshot - Sync RAM disk to disk (backup)
Expand All @@ -14,7 +14,7 @@
SHELL := /bin/bash
BINARY := rust-memex
INSTALL_PATH := $(HOME)/.cargo/bin/$(BINARY)
LAUNCHD_PLIST := $(HOME)/Library/LaunchAgents/ai.libraxis.rust-memex.plist
LAUNCHD_PLIST := $(HOME)/Library/LaunchAgents/ai.vetcoders.rust-memex.plist

# Disk paths
DB_PATH_DISK := $(HOME)/.ai-memories/lancedb
Expand Down Expand Up @@ -63,14 +63,14 @@ start: ## Start memex service via launchd
echo "Service already running on port $(HTTP_PORT)"; \
else \
launchctl bootstrap gui/$$(id -u) $(LAUNCHD_PLIST) 2>/dev/null || \
launchctl kickstart gui/$$(id -u)/ai.libraxis.rust-memex 2>/dev/null || \
launchctl kickstart gui/$$(id -u)/ai.vetcoders.rust-memex 2>/dev/null || \
$(INSTALL_PATH) serve --db-path $(DB_PATH) --http-port $(HTTP_PORT) --http-only & \
Comment on lines 65 to 67

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep launchd fallback for the previous service label

On macOS upgrades where the existing LaunchAgent is still installed as ~/Library/LaunchAgents/ai.libraxis.rust-memex.plist, this rebrand makes make start miss it: bootstrap now points at the new plist path and kickstart targets the new service label, while launchctl's documented form is kickstart [-kp] service-target (man page). With no migration or old-label fallback in this recipe, the command falls through to an unmanaged background rust-memex serve, losing the launchd lifecycle users previously configured.

Useful? React with 👍 / 👎.

sleep 3; \
echo "Started memex on port $(HTTP_PORT)"; \
fi

stop: ## Stop memex service
@-launchctl bootout gui/$$(id -u)/ai.libraxis.rust-memex 2>/dev/null
@-launchctl bootout gui/$$(id -u)/ai.vetcoders.rust-memex 2>/dev/null
@-pkill -f "$(BINARY) serve" 2>/dev/null
@echo "Stopped memex service"

Expand Down Expand Up @@ -105,7 +105,7 @@ dashboard: ## Open dashboard in browser
@open http://localhost:$(HTTP_PORT)/

# ============================================================================
# RAM DISK (Dragon 512GB - full DB in RAM)
# RAM DISK (512GB host - full DB in RAM)
# ============================================================================

ramdisk-create: ## Create 50GB RAM disk (requires sudo for mount)
Expand Down
25 changes: 12 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,17 +148,17 @@ async fn main() -> anyhow::Result<()> {
}
```

### Vista Integration
### Optimized Profile

For Vista PIMS, use the optimized constructor:
For a smaller-footprint setup, use the optimized constructor:

```rust
use rust_memex::MemexEngine;

// Vista-optimized: 1024 dims, qwen3-embedding:0.6b model
let engine = MemexEngine::for_vista().await?;
// Optimized: 1024 dims, qwen3-embedding:0.6b model
let engine = MemexEngine::for_app_optimized().await?;

// Store visit notes
// Store notes
engine.store(
"visit-456",
"SOAP note: Feline diabetes mellitus diagnosis...",
Expand Down Expand Up @@ -205,7 +205,7 @@ use rust_memex::{MemexEngine, SearchMode};
let engine = MemexEngine::for_app("my-app", "documents").await?;

// Hybrid search with BM25 + vector fusion (recommended)
let results = engine.search_hybrid("dragon mac studio", 10).await?;
let results = engine.search_hybrid("fast mac studio", 10).await?;
for r in &results {
println!("{}: {} (combined: {:.2}, vector: {:.2}, bm25: {:.2})",
r.id, r.document, r.combined_score, r.vector_score, r.bm25_score);
Expand Down Expand Up @@ -613,15 +613,15 @@ curl -X POST http://localhost:8997/upsert \
# Search
curl -X POST http://localhost:8997/search \
-H "Content-Type: application/json" \
-d '{"query": "context", "namespace": "agent1", "k": 10, "project": "Vista", "deep": true}'
-d '{"query": "context", "namespace": "agent1", "k": 10, "project": "Demo", "deep": true}'

# SSE streaming search
curl -N "http://localhost:8997/sse/search?query=context&namespace=agent1&limit=5&project=Vista&layer=1"
curl -N "http://localhost:8997/sse/search?query=context&namespace=agent1&limit=5&project=Demo&layer=1"
```

### Multi-Host Database Paths

For setups with multiple machines (e.g., dragon, mgbook16), use per-host database paths:
For setups with multiple machines (e.g., laptop, workstation), use per-host database paths:

```bash
# Per-host paths (each machine gets own database)
Expand Down Expand Up @@ -685,7 +685,7 @@ Intelligent query intent detection for automatic search mode selection:

```bash
# Auto-detect query intent and select optimal mode
rust-memex search -n memories -q "when did we buy dragon" --auto-route
rust-memex search -n memories -q "when did we buy the laptop" --auto-route
# Output: Query intent: temporal (confidence: 0.70)
# Selects: hybrid mode with date boosting

Expand All @@ -695,7 +695,7 @@ rust-memex search -n code -q "who imports main.rs" --auto-route
# Consider: loctree query --kind who-imports --target main.rs

# Deep exploration with all onion layers
rust-memex dive -n memories -q "dragon" --verbose
rust-memex dive -n memories -q "laptop" --verbose
```

**Intent Types:**
Expand Down Expand Up @@ -817,5 +817,4 @@ Add to `~/.claude.json`:

---

Vibecrafted with AI Agents by Loctree (c)2025 The LibraxisAI Team
Co-Authored-By: [Maciej](void@div0.space) & [Klaudiusz](the1st@whoai.am)
Vibecrafted with AI Agents by Loctree (c)2025 Vetcoders
2 changes: 1 addition & 1 deletion ai-hooks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,4 @@ Add to `~/.claude/settings.json`:

---

Vibecrafted with AI Agents by Loctree (c)2026 The LibraxisAI Team
Vibecrafted with AI Agents by Loctree (c)2026 Vetcoders
2 changes: 1 addition & 1 deletion ai-hooks/memex-context.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export PATH="$HOME/.cargo/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:$PA
# - jq for JSON parsing (optional)
#
# ============================================================================
# Created by M&K (c)2026 The LibraxisAI Team
# Created by vetcoders (c)2026
# ============================================================================

set -uo pipefail
Expand Down
2 changes: 1 addition & 1 deletion ai-hooks/memex-startup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export PATH="$HOME/.cargo/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:$PA
# - SessionStart hook
#
# ============================================================================
# Created by M&K (c)2026 The LibraxisAI Team
# Created by vetcoders (c)2026
# ============================================================================

set -uo pipefail
Expand Down
5 changes: 2 additions & 3 deletions docs/01_security.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Zamiast hardcoded ograniczenia do `$HOME` i `cwd`, wprowadzono konfigurowalną l
# ~/.rmcp-servers/rust-memex/config.toml
allowed_paths = [
"~", # Home directory
"/Volumes/LibraxisShare/data", # External volume
"/Volumes/ExternalDrive/data", # External volume
"/opt/shared/documents" # Shared directory
]
```
Expand Down Expand Up @@ -334,5 +334,4 @@ key_derivation = "argon2id"

---

Vibecrafted with AI Agents by Loctree (c)2025 The LibraxisAI Team
Co-Authored-By: [Maciej](void@div0.space) & [Klaudiusz](the1st@whoai.am)
Vibecrafted with AI Agents by Loctree (c)2025 Vetcoders
5 changes: 2 additions & 3 deletions docs/02_configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ log_level = "info"
# Jeśli puste, domyślnie $HOME i current working directory
allowed_paths = [
"~",
"/Volumes/LibraxisShare/Klaudiusz",
"/Volumes/Shared/notes",
"/opt/shared/documents"
]

Expand Down Expand Up @@ -264,5 +264,4 @@ rust-memex serve --log-level trace

---

Vibecrafted with AI Agents by Loctree (c)2025 The LibraxisAI Team
Co-Authored-By: [Maciej](void@div0.space) & [Klaudiusz](the1st@whoai.am)
Vibecrafted with AI Agents by Loctree (c)2025 Vetcoders
Loading
Loading