Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
63e4d32
chore(deprivatize): remove internal architecture docs and private art…
m-szymanska Jun 29, 2026
9757ab2
chore(deprivatize): collapse author/people/brand identifiers to vetco…
m-szymanska Jun 29, 2026
55ee917
chore(deprivatize): neutralize private machine name in examples and t…
m-szymanska Jun 29, 2026
228e2ba
chore(deprivatize): scrub Vista codename and Libraxis org references
m-szymanska Jun 29, 2026
493d942
fix: repair scrub-broken project-filter tests + clippy -D warnings
Jun 29, 2026
0882719
fix(tui): allow unreachable code in probe_gpu on non-macOS
Jun 29, 2026
df4be8b
chore(deprivatize): use approved /Users/tester placeholder in HTTP_AP…
Jul 10, 2026
7c5c884
chore(deprivatize): normalize Vetcoders prose brand casing in credit …
Jul 10, 2026
2c50593
refactor(embeddings): genericize dragon provider to embedder
Jul 10, 2026
70ce262
chore(legal): set Libraxis AI as license Licensor and Cargo author
Jul 10, 2026
314e137
docs(changelog): correct license claim and restore historical repo UR…
Jul 10, 2026
e457915
docs(security): use confirmed security@loctree.com reporting mailbox
Jul 10, 2026
1a18917
chore(ci): unify loctree-ci header to Loctree copyright form
Jul 10, 2026
40e5627
docs(readme): generalize example prose to neutral notes/records domain
Jul 10, 2026
4976c2f
test(fixtures): neutralize private content in transcript and API fixt…
Jul 10, 2026
461e079
docs: translate security and configuration guides to English
Jul 10, 2026
178f65b
chore(legal): unify remaining BUSL identity strings to Libraxis AI
Jul 10, 2026
d5ebd34
fix(deps): bump ethnum to 1.5.3 to fix E0512 on rustc 1.97
Jul 10, 2026
ef2cac6
style(cli): drop redundant borrow in search result formatting
Jul 11, 2026
020dba8
refactor(engine): default optimized db_path via effective_db_path
Jul 11, 2026
c3a78b6
fix(config): accept legacy dragon_url/dragon_port mlx keys as aliases
Jul 11, 2026
b362717
docs(changelog): document BUSL licensor and Libraxis AI authorship
Jul 11, 2026
a9083c1
fix(embeddings): accept legacy DRAGON_* env vars as fallbacks
Jul 11, 2026
0d1d52f
docs(readme): bump dependency example to 0.6
Jul 11, 2026
2c8335e
fix(embeddings): keep localhost provider port off legacy DRAGON fallback
Jul 11, 2026
6c27238
docs(changelog): describe 0.3.0 optimized constructor generically
Jul 11, 2026
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>
# Copyright (c) 2025-2026 Loctree (https://loct.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.

8 changes: 4 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ 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.
- **License + authorship:** the crate ships under the Business Source License 1.1 (BUSL-1.1) with Libraxis AI as Licensor; see `LICENSE` for terms and the Apache-2.0 change license. Cargo `authors` metadata records the Libraxis AI legal entity.

### 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)
- Optimized-profile constructor - 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
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

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 = ["Libraxis AI sp. z o.o. <contact@libraxis.ai>"]
Comment thread
m-szymanska marked this conversation as resolved.
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: Libraxis AI sp. z o.o.
Licensed Work: Rust Memex - The Intentions Kernel.
The Licensed Work is (c) 2024-2026 VetCoders.
The Licensed Work is (c) 2024-2026 Libraxis AI sp. z o.o.
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 Libraxis AI's 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 Libraxis AI's 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
Libraxis AI 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 contact@libraxis.ai.

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 thread
m-szymanska marked this conversation as resolved.
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
48 changes: 23 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,10 @@ As an MCP (Model Context Protocol) server, `rust-memex` provides:

```toml
# Full library with CLI
rust-memex = "0.5"
rust-memex = "0.6"

# Library only (no CLI dependencies)
rust-memex = { version = "0.5", default-features = false }
rust-memex = { version = "0.6", default-features = false }
```

### Basic Usage
Expand All @@ -126,12 +126,12 @@ async fn main() -> anyhow::Result<()> {
// Store a document
engine.store(
"doc-1",
"Patient presented with lethargy and decreased appetite",
json!({"patient_id": "P-123", "visit_type": "checkup"})
"Onboarding notes: new users need a guided setup walkthrough",
json!({"source": "support", "topic": "onboarding"})
).await?;

// Search semantically
let results = engine.search("lethargy symptoms", 10).await?;
let results = engine.search("user onboarding setup", 10).await?;
for r in &results {
println!("{}: {} (score: {:.2})", r.id, r.text, r.score);
}
Expand All @@ -148,21 +148,21 @@ 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?;
Comment thread
m-szymanska marked this conversation as resolved.

// Store visit notes
// Store notes
engine.store(
"visit-456",
"SOAP note: Feline diabetes mellitus diagnosis...",
json!({"patient_id": "P-789", "doc_type": "soap_note"})
"note-456",
"Release notes: summary of shipped features and known issues...",
json!({"doc_type": "release_note", "version": "1.2.0"})
).await?;
```

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 @@ -309,9 +309,8 @@ MEMEX_BM25_PATH=~/.rmcp-servers/myapp/bm25
# ADVANCED: Multiple providers (fallback cascade)
# =============================================================================

# Remote embedding server fallback
# DRAGON_BASE_URL=http://your-server.local
# DRAGON_EMBEDDER_PORT=12345
# Remote embedding server fallback (uses EMBEDDER_PORT below)
# EMBEDDER_BASE_URL=http://your-server.local

# MLX embedder for Apple Silicon
# EMBEDDER_PORT=12300
Expand Down Expand Up @@ -613,15 +612,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 All @@ -633,7 +632,7 @@ rust-memex wizard

The TUI wizard auto-detects hostname and offers:
- **Shared mode**: `~/.ai-memories/lancedb` (same path everywhere)
- **Per-host mode**: `~/.ai-memories/lancedb.dragon`, `~/.ai-memories/lancedb.mgbook16`, etc.
- **Per-host mode**: `~/.ai-memories/lancedb.host-a`, `~/.ai-memories/lancedb.host-b`, etc.

### Configuration (TOML)

Expand Down Expand Up @@ -685,7 +684,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 +694,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 +816,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 SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
Please use GitHub Security Advisories for responsible disclosure:
https://github.com/Loctree/rust-memex/security/advisories/new

If GitHub Advisories are unavailable, email security@loct.io with a
If GitHub Advisories are unavailable, email security@loctree.com with a
summary, affected version, reproduction steps, and expected impact.

Please do not report suspected vulnerabilities in public GitHub issues.
Expand Down
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
Loading
Loading