Releases: ovitrac/RAGIX
RAGIX 0.60.0 β Contractive Reasoning & Agentic Profiles
RAGIX v0.60.0 Release Notes
Release Date: 2025-12-14
Author: Olivier Vitrac, PhD, HDR | olivier.vitrac@adservio.fr | Adservio
Overview
Version 0.60.0 enhances RAGIX's position as a sovereign swiss knife for industrial-scale code auditing. This release focuses on:
- MCP Server Enhancement β 5 new tools for comprehensive system introspection
- Parallel KOAS Execution β Faster audits through dependency-aware parallelization
- French i18n Fixes β Proper UTF-8 diacritics in audit reports
- System Introspection β GPU, CPU, memory, and model management
Key Features
1. MCP Server v0.8.0 (22 Tools Total)
Five new tools expand RAGIX's MCP capabilities:
| Tool | Purpose |
|---|---|
ragix_ast_scan |
Extract AST symbols from source code |
ragix_ast_metrics |
Compute code quality metrics |
ragix_models_list |
List available Ollama models |
ragix_model_info |
Get detailed model information |
ragix_system_info |
Comprehensive system introspection |
Example: System Info
result = ragix_system_info()
# Returns: platform, cpu, memory, gpu (CUDA), disk, ollama statusExample: AST Scan
result = ragix_ast_scan("/path/to/project", language="auto")
# Returns: symbols, summary (classes, methods, functions)2. Parallel KOAS Execution
The koas_run tool now supports parallel kernel execution:
# Sequential (default)
koas_run(workspace, stage=0) # ~5-10s for 60K LOC
# Parallel (new)
koas_run(workspace, stage=0, parallel=True, workers=4) # ~3.4s for 60K LOCPerformance gains:
- Stage 1 (Data Collection): 2-3x faster
- Stage 2 (Analysis): ~2x faster with batching
- Stage 3 (Reporting): Unchanged (sequential for consistency)
3. French i18n Corrections
Fixed 50+ translation strings for proper UTF-8 diacritics in French reports:
| Before | After |
|---|---|
| Methodologie | MΓ©thodologie |
| Synthese Executive | Synthèse Exécutive |
| Complexite | ComplexitΓ© |
| Indice de Maintenabilite | Indice de MaintenabilitΓ© |
| Γvaluation des Risques | Γvaluation des Risques |
Files updated:
ragix_kernels/audit/report/i18n.pyragix_kernels/audit/report/templates.pyragix_kernels/audit/section_drift.py
4. Claude Code Slash Commands
New and updated commands:
| Command | Description |
|---|---|
/koas-audit |
Full audit with --parallel option |
/ragix-system |
System introspection for deployment |
/ragix-models |
Model management and selection |
Technical Details
New MCP Tool Signatures
# AST Analysis
def ragix_ast_scan(
path: str,
language: str = "auto",
include_private: bool = False,
) -> Dict[str, Any]: ...
def ragix_ast_metrics(
path: str,
language: str = "auto",
) -> Dict[str, Any]: ...
# Model Management
def ragix_models_list() -> Dict[str, Any]: ...
def ragix_model_info(model: str) -> Dict[str, Any]: ...
# System Info
def ragix_system_info() -> Dict[str, Any]: ...KOAS Run Enhanced Signature
def koas_run(
workspace: str,
stage: int = 0,
kernels: str = "",
parallel: bool = False, # NEW
workers: int = 4, # NEW
) -> Dict[str, Any]:
# Returns: status, stages_run, results, report_path,
# execution_mode, workers, duration_secondsTest Coverage
New test file: tests/test_mcp_server.py
18 tests covering:
- AST scan single file and directory
- Private symbol filtering
- Non-existent path handling
- Metrics computation
- Model listing (mocked Ollama)
- Model info retrieval
- System info structure
- KOAS parallel parameter validation
- Tool availability checks (core, KOAS, v0.8.0)
pytest tests/test_mcp_server.py -v
# Result: 18 passed in 4.34sPerformance Benchmarks
IOWIZME Audit (Java, 60K LOC)
| Metric | Value |
|---|---|
| Total Files | 806 |
| Total Classes | 582 |
| Total Methods | 2,704 |
| Lines of Code | 60,157 |
| Audit Time (parallel) | 3.4 seconds |
| Maintainability Index | 100/100 (Grade A) |
| Technical Debt | 0.0 days |
Throughput Estimates
| Project Size | Time (parallel) | Hourly Rate |
|---|---|---|
| 10K LOC | ~1s | 3,600/hour |
| 60K LOC | ~3-4s | 900-1,200/hour |
| 200K LOC | ~10-15s | 240-360/hour |
| 1M LOC | ~60s | 60/hour |
Installation
No new dependencies required. Existing installations update automatically:
pip install --upgrade ragix
# Or from source:
pip install -e .Migration Notes
From v0.59.0
- No breaking changes
- All existing MCP tools continue to work
- KOAS workspaces are fully compatible
- New tools available immediately after upgrade
For MCP Clients
Update tool invocations to use new features:
// Old
{"tool": "koas_run", "workspace": "/path"}
// New (with parallel)
{"tool": "koas_run", "workspace": "/path", "parallel": true, "workers": 4}Known Issues
None reported.
What's Next (v0.61.0)
Potential areas for future improvement:
- GPU acceleration for AST parsing (CUDA)
- Streaming audit progress via MCP
- Multi-repository batch auditing
- Real-time audit dashboard
Video Demonstration
Watch the RAGIX demo showcasing key features:
https://www.youtube.com/watch?v=vDHI70ZPnDE
Industrial Applications
RAGIX v0.60.0 is ready for:
- Enterprise Code Audits: Thousands of files, millions of classes
- MCO (Maintenance) Assessments: Technical debt quantification
- Continuous Quality Monitoring: Regular codebase reviews
- Documentation Gap Analysis: Code-spec drift detection
With proper GPU and CPU resources, organizations can audit:
- 3-20 codebases per hour (depending on size)
- Hundreds of projects per day
- Full deterministic, statistical, and AI-powered analysis
Contributors
- Olivier Vitrac β Architecture, implementation, testing
Generated by KOAS (Kernel-Orchestrated Audit System)
RAGIX β Retrieval-Augmented Generative Interactive eXecution Agent
RAGIX 0.56.0 β Improved Dead Code Detection
RAGIX 0.56.0 delivers improved dead code detection, enhanced partitioner UI, and all features from 0.55 including enterprise-grade code audit, codebase partitioning, and MDS graph layout.
RAGIX v0.56.0 β Enterprise Code Audit & Codebase Partitioner
This release transforms RAGIX from a development assistant into a professional code audit platform capable of analyzing enterprise Java codebases with 15,000+ classes. Key capabilities:
- Codebase Partitioner β Automatic application boundary detection with D3.js force-directed visualization
- Enterprise Service Detection β Support for multiple service naming conventions (SK/SC/SG, spre##, custom patterns)
- MDS Graph Layout β Precomputed positions using eigendecomposition for large graphs
- Multi-Module Maven Support β Auto-detect complex project structures
- Code Tracker β Outliers, complexity hotspots, dead code, coupling issues
- Project RAG β ChromaDB vector store with concept exploration
What's New in v0.56.0
| Category | Feature | Description |
|---|---|---|
| Partitioner | Force-Directed Graph | D3.js physics simulation with partition clustering |
| Partitioner | MDS Layout | Eigendecomposition-based positioning for <500 nodes |
| Partitioner | Partition-Based Layout | O(n) circular layout for >500 nodes (17K+ supported) |
| Partitioner | Export System | SVG, PNG, JSON, CSV formats |
| Audit | Service Pattern Presets | IOWIZME (SK/SC/SG), Enterprise (spre##), Combined |
| Audit | Multi-Module Maven | Auto-detect app-*/src/main/java/ structures |
| Audit | Risk Analysis | Timeline-based risk scoring with configurable weights |
| Audit | Service Lifecycle | NEW/ACTIVE/MATURE/LEGACY categorization |
| Code Tracker | Complexity Hotspots | Identify methods with CC > threshold |
| Code Tracker | Dead Code Detection | Isolated class detection (no callers AND no callees) |
| Code Tracker | Coupling Issues | Ca/Ce/Instability metrics per package |
| Project RAG | Concept Explorer | Dual-view (files + D3.js graph) |
| Project RAG | Knowledge Summary | LLM-powered concept summarization |
| UI | Audit Settings | Configurable thresholds, weights, service patterns |
| UI | Label Visibility | All node labels visible at max zoom |
| UI | Line Navigation | Smooth scrolling in code preview |
Version History:
- v0.33 β Agentic reasoning, threads, RAG router
- v0.35 β Project RAG with concept exploration
- v0.40 β Code audit capabilities, service detection
- v0.50 β Code tracker, RAG stats integration
- v0.51 β Project discovery, type safety fixes
- v0.55 β Codebase partitioner, MDS layout, enterprise patterns
- v0.56 β Improved dead code detection (isolated classes only), partitioner UI
Codebase Partitioner (New in v0.55)
The Partitioner analyzes dependency graphs to automatically identify application boundaries within monolithic codebases β essential for modernization and refactoring planning.
Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Codebase Partitioner β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Configuration Visualization Export β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β Application β β D3.js Force β β SVG / PNG β β
β β Patterns β ββββΊ β Directed β ββββΊ β JSON / CSV β β
β β (pkg/class/ β β Graph β β XLSX β β
β β keyword) β β β β β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β β β
β βΌ βΌ β
β βββββββββββββββ βββββββββββββββ β
β β Fingerprint β β MDS / Part. β β
β β Matching β β Layout β β
β βββββββββββββββ βββββββββββββββ β
β β β β
β βΌ βΌ β
β βββββββββββββββ βββββββββββββββ β
β β Graph β β Auto-Stop β β
β β Propagation β β Simulation β β
β βββββββββββββββ βββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Fingerprint Matching
Classes are assigned to partitions based on configurable patterns:
# Example configuration
{
"applications": [
{
"name": "APP_A",
"color": "#4fc3f7",
"patterns": {
"packages": ["com.company.app_a"],
"classes": ["*ServiceA*", "*ControllerA*"],
"keywords": ["module_a", "feature_a"]
}
},
{
"name": "APP_B",
"color": "#81c784",
"patterns": {
"packages": ["com.company.app_b"],
"classes": ["*ServiceB*"],
"keywords": ["module_b"]
}
}
],
"shared_patterns": {
"packages": ["com.company.common", "com.company.util"],
"classes": ["*Utils*", "*Helper*", "*Constants*"]
}
}Graph Propagation
Unassigned classes are propagated based on dependency relationships:
- Fingerprint matching β Direct pattern match β High confidence (0.9)
- Import propagation β Majority of imports from partition β Medium confidence (0.7)
- Reverse propagation β Used by partition classes β Low confidence (0.5)
Dead Code Detection
Classes are classified as DEAD_CODE only when they are completely isolated:
DEAD_CODE criteria:
βββ No incoming dependencies (nobody calls this class)
βββ No outgoing dependencies (this class doesn't call anything)
βββ Not an entry point pattern (*Controller, *Test, *Main, etc.)
Why this approach?
In Java/Spring applications, many classes appear to have no callers in static analysis but are actually used via:
- Dependency Injection β Spring wires
@Service,@Repository,@Componentvia reflection - JPA/ORM β Entities are loaded by Hibernate, not direct calls
- Event listeners β
@EventListenermethods are invoked by the framework - Scheduled tasks β
@Scheduledmethods run via Spring scheduler
A class that calls other classes but has no callers is likely still active (loaded via reflection). Only classes with no connections at all are truly dead code.
| Condition | Classification |
|---|---|
| Has callers | LIVE |
| No callers, but calls others | LIVE (likely DI/reflection) |
| No callers AND no callees | DEAD_CODE |
| Entry point pattern (*Controller, *Test) | LIVE (always) |
MDS Layout Algorithm
For graphs with <500 nodes, we use Classical Multidimensional Scaling:
def _mds_layout(node_ids, width, height):
"""
Classical MDS using eigendecomposition.
1. Build shortest-path distance matrix (Floyd-Warshall for small graphs)
2. Double-center the squared distance matrix
3. Extract top 2 eigenvectors
4. Scale to viewport dimensions
"""
n = len(node_ids)
# Build adjacency and compute shortest paths
D = floyd_warshall(adjacency_matrix)
# Double centering: B = -0.5 * J * DΒ² * J where J = I - 1/n * 11'
D_sq = D ** 2
row_mean = D_sq.mean(axis=1, keepdims=True)
col_mean = D_sq.mean(axis=0, keepdims=True)
grand_mean = D_sq.mean()
B = -0.5 * (D_sq - row_mean - col_mean + grand_mean)
# Eigendecomposition
eigenvalues, eigenvectors = np.linalg.eigh(B)
idx = np.argsort(eigenvalues)[::-1]
# Extract top 2 dimensions
coords = eigenvectors[:, idx[:2]] * np.sqrt(eigenvalues[idx[:2]])
# Scale to viewport
return scale_to_viewport(coords, width, height)Partition-Based Layout (Large Graphs)
For graphs with >500 nodes (like enterprise codebases with 17K+ classes), we use a fast partition-based circular layout:
def _partition_based_layout(node_ids, width, height):
"""
O(n) layout using partition clustering.
1. Group nodes by partition assignment
2. Arrange partitions in a circle
3. Place nodes in spiral pattern within partition sector
"""
# Group by partition
partition_groups = defaultdict(list)
for node_id in node_ids:
partition = assignments.get(node_id, "UNKNOWN")
partition_groups[partition].append(node_id)
# Arrange partitions in circle
center_x, center_y = width / 2, height / 2
radius = min(width, height) * 0.35
positions = {}
for i, (partition, nodes) in enumerate(partition_groups.items()):
# Partition center on circle
angle = 2 * pi * i / len(partition_groups)
px = center_x + radius * cos(angle)
py = center_y + radius * sin(angle)
# Spiral arrangement within partition
for j, node_id in enumerate(nodes):
r = 20 + j * 3 # Expanding spiral
a = angle + j * 0.3
positions[node_id] = (px + r * cos(a), py + r * sin(a))
return positionsForce-Directed Visualization
The D3.js visualization includes:
| Control | Function |
|---|---|
| Zoom/Pan | Mouse wheel zoom, drag to pan |
| Force Sliders | Repulsion, Link Distance, Link Strength, Center Gravity, Collision |
| Force Presets | Separated, Clustered, Balanced configurations |
| Labels Toggle | Show/hide node labels |
| Connections Toggle | ... |
RAGIX 0.55.0 β Contractive Reasoning & Agentic Profiles
RAGIX 0.55.0 is a major milestone delivering enterprise-grade code audit, codebase partitioning, MDS graph layout, and multi-module Maven support for large-scale Java applications.
RAGIX v0.55.0 β Enterprise Code Audit & Codebase Partitioner
This release transforms RAGIX from a development assistant into a professional code audit platform capable of analyzing enterprise Java codebases with 15,000+ classes. Key capabilities:
- Codebase Partitioner β Automatic application boundary detection with D3.js force-directed visualization
- Enterprise Service Detection β Support for multiple service naming conventions (SK/SC/SG, spre##, custom patterns)
- MDS Graph Layout β Precomputed positions using eigendecomposition for large graphs
- Multi-Module Maven Support β Auto-detect complex project structures
- Code Tracker β Outliers, complexity hotspots, dead code, coupling issues
- Project RAG β ChromaDB vector store with concept exploration
What's New in v0.55.0
| Category | Feature | Description |
|---|---|---|
| Partitioner | Force-Directed Graph | D3.js physics simulation with partition clustering |
| Partitioner | MDS Layout | Eigendecomposition-based positioning for <500 nodes |
| Partitioner | Partition-Based Layout | O(n) circular layout for >500 nodes (17K+ supported) |
| Partitioner | Export System | SVG, PNG, JSON, CSV formats |
| Audit | Service Pattern Presets | IOWIZME (SK/SC/SG), Enterprise (spre##), Combined |
| Audit | Multi-Module Maven | Auto-detect app-*/src/main/java/ structures |
| Audit | Risk Analysis | Timeline-based risk scoring with configurable weights |
| Audit | Service Lifecycle | NEW/ACTIVE/MATURE/LEGACY categorization |
| Code Tracker | Complexity Hotspots | Identify methods with CC > threshold |
| Code Tracker | Dead Code Detection | Static reachability analysis |
| Code Tracker | Coupling Issues | Ca/Ce/Instability metrics per package |
| Project RAG | Concept Explorer | Dual-view (files + D3.js graph) |
| Project RAG | Knowledge Summary | LLM-powered concept summarization |
| UI | Audit Settings | Configurable thresholds, weights, service patterns |
| UI | Label Visibility | All node labels visible at max zoom |
| UI | Line Navigation | Smooth scrolling in code preview |
Version History:
- v0.33 β Agentic reasoning, threads, RAG router
- v0.35 β Project RAG with concept exploration
- v0.40 β Code audit capabilities, service detection
- v0.50 β Code tracker, RAG stats integration
- v0.51 β Project discovery, type safety fixes
- v0.55 β Codebase partitioner, MDS layout, enterprise patterns
Codebase Partitioner (New in v0.55)
The Partitioner analyzes dependency graphs to automatically identify application boundaries within monolithic codebases β essential for modernization and refactoring planning.
Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Codebase Partitioner β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Configuration Visualization Export β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β Application β β D3.js Force β β SVG / PNG β β
β β Patterns β ββββΊ β Directed β ββββΊ β JSON / CSV β β
β β (pkg/class/ β β Graph β β XLSX β β
β β keyword) β β β β β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β β β
β βΌ βΌ β
β βββββββββββββββ βββββββββββββββ β
β β Fingerprint β β MDS / Part. β β
β β Matching β β Layout β β
β βββββββββββββββ βββββββββββββββ β
β β β β
β βΌ βΌ β
β βββββββββββββββ βββββββββββββββ β
β β Graph β β Auto-Stop β β
β β Propagation β β Simulation β β
β βββββββββββββββ βββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Fingerprint Matching
Classes are assigned to partitions based on configurable patterns:
# Example configuration
{
"applications": [
{
"name": "APP_A",
"color": "#4fc3f7",
"patterns": {
"packages": ["com.company.app_a"],
"classes": ["*ServiceA*", "*ControllerA*"],
"keywords": ["module_a", "feature_a"]
}
},
{
"name": "APP_B",
"color": "#81c784",
"patterns": {
"packages": ["com.company.app_b"],
"classes": ["*ServiceB*"],
"keywords": ["module_b"]
}
}
],
"shared_patterns": {
"packages": ["com.company.common", "com.company.util"],
"classes": ["*Utils*", "*Helper*", "*Constants*"]
}
}Graph Propagation
Unassigned classes are propagated based on dependency relationships:
- Fingerprint matching β Direct pattern match β High confidence (0.9)
- Import propagation β Majority of imports from partition β Medium confidence (0.7)
- Reverse propagation β Used by partition classes β Low confidence (0.5)
MDS Layout Algorithm
For graphs with <500 nodes, we use Classical Multidimensional Scaling:
def _mds_layout(node_ids, width, height):
"""
Classical MDS using eigendecomposition.
1. Build shortest-path distance matrix (Floyd-Warshall for small graphs)
2. Double-center the squared distance matrix
3. Extract top 2 eigenvectors
4. Scale to viewport dimensions
"""
n = len(node_ids)
# Build adjacency and compute shortest paths
D = floyd_warshall(adjacency_matrix)
# Double centering: B = -0.5 * J * DΒ² * J where J = I - 1/n * 11'
D_sq = D ** 2
row_mean = D_sq.mean(axis=1, keepdims=True)
col_mean = D_sq.mean(axis=0, keepdims=True)
grand_mean = D_sq.mean()
B = -0.5 * (D_sq - row_mean - col_mean + grand_mean)
# Eigendecomposition
eigenvalues, eigenvectors = np.linalg.eigh(B)
idx = np.argsort(eigenvalues)[::-1]
# Extract top 2 dimensions
coords = eigenvectors[:, idx[:2]] * np.sqrt(eigenvalues[idx[:2]])
# Scale to viewport
return scale_to_viewport(coords, width, height)Partition-Based Layout (Large Graphs)
For graphs with >500 nodes (like enterprise codebases with 17K+ classes), we use a fast partition-based circular layout:
def _partition_based_layout(node_ids, width, height):
"""
O(n) layout using partition clustering.
1. Group nodes by partition assignment
2. Arrange partitions in a circle
3. Place nodes in spiral pattern within partition sector
"""
# Group by partition
partition_groups = defaultdict(list)
for node_id in node_ids:
partition = assignments.get(node_id, "UNKNOWN")
partition_groups[partition].append(node_id)
# Arrange partitions in circle
center_x, center_y = width / 2, height / 2
radius = min(width, height) * 0.35
positions = {}
for i, (partition, nodes) in enumerate(partition_groups.items()):
# Partition center on circle
angle = 2 * pi * i / len(partition_groups)
px = center_x + radius * cos(angle)
py = center_y + radius * sin(angle)
# Spiral arrangement within partition
for j, node_id in enumerate(nodes):
r = 20 + j * 3 # Expanding spiral
a = angle + j * 0.3
positions[node_id] = (px + r * cos(a), py + r * sin(a))
return positionsForce-Directed Visualization
The D3.js visualization includes:
| Control | Function |
|---|---|
| Zoom/Pan | Mouse wheel zoom, drag to pan |
| Force Sliders | Repulsion, Link Distance, Link Strength, Center Gravity, Collision |
| Force Presets | Separated, Clustered, Balanced configurations |
| Labels Toggle | Show/hide node labels |
| Connections Toggle | Show/hide cross-partition edges |
| Auto-Stop | Simulation stabilizes with precomputed positions |
Export Formats
| Format | Content |
|---|---|
| SVG | Vector graphics for documentation |
| PNG | High-resolution raster (2x resolution) |
| JSON | Full metadata: FQN, partition, confidence, evidence, LOC |
| CSV | Spreadsheet-ready format |
| XLSX | Excel workbook with multiple sheets |
API Endpoints
POST /api/ast/partition # Run partition analysis
GET /api/ast/partition/presets # Get preset configurations
GET /api/ast/partition/export # Export results (format query param)
GET /api/ast/partition/status # Check partitioner availability
Enterprise Service Detection
RAGIX v0.55 supports multiple service naming conventions for enterprise Java applications:
Supported Patterns
| Pattern Type | Examples | Use Case |
|---|---|---|
| SK/SC/SG | SK01, SC04, SG02 |
Service Keys, Screen Codes, General Services |
| spre## | spre28ws, spre13, sprebpm |
Enterprise web services, JMS handlers |
| s[Action] | sAffecterTache, sCloturerIncident |
Task operations |
| Custom | User-defined regex patterns | Project-specific conventions |
Detection Sources
# Annotation pattern...RAGIX 0.33.0 β Contractive Reasoning & Agentic Profiles
RAGIX 0.33.0 is the largest leap forward since the project began.
It delivers a production-ready agentic reasoning framework, Claude Code-style shell execution, hybrid RAG retrieval, and a full graphical web interface.
π RAGIX v0.33.0 β The Agentic Reasoning Platform
This release marks RAGIX's transition from a Unix-only automation agent (0.11) into a complete AI-powered development assistant with:
- Reflective Reasoning Graph (v0.30) β Production-ready multi-node reasoning
- Claude Code-style Shell Sandbox β Safe command execution with audit logging
- Hybrid RAG β BM25 + Vector search with multiple fusion strategies
- AST Analysis β Python/Java code understanding
- RAGIX-web β Full graphical interface
π What's New in v0.33.0
| Category | Feature | Description |
|---|---|---|
| Web UI | RAG Router | /api/rag endpoints for index management |
| Web UI | Threads Router | /api/threads for multi-conversation support |
| Web UI | Cancellation | Interrupt long-running LLM operations |
| Web UI | RAG Context Display | Show retrieved documents in chat |
| Core | Session Management | Full session lifecycle with memory |
| Core | Global Context | Inject persistent context across messages |
| Research | Contractive Reasoning | Entropy-based tree decomposition |
| Research | Peer Review | Multi-model answer validation |
Version History:
- v0.30 β Reasoning Graph architecture
- v0.31 β Agent specialization (code/doc/git/test)
- v0.32 β Hybrid RAG, AST analysis
- v0.33 β Sessions, threads, RAG router, experimental reasoning
β¨ Core Architecture (Production)
1. Reflective Reasoning Graph (reasoning_v30/)
The production reasoning engine implements a state machine graph with specialized nodes:
CLASSIFY β DIRECT_EXEC (bypass/simple)
β
PLAN β EXECUTE β REFLECT β VERIFY β RESPOND
β β
βββββββββββ (retry loop)
| Node | Function |
|---|---|
| CLASSIFY | Route by task complexity: BYPASS / SIMPLE / MODERATE / COMPLEX |
| DIRECT_EXEC | Handle simple tasks without formal planning |
| PLAN | Generate structured execution plans |
| EXECUTE | Execute plan steps with tool calls |
| REFLECT | Diagnose failures, generate revised plans |
| VERIFY | Validate complex task results |
| RESPOND | Format final response, emit events |
Key features:
- Full execution trace for debugging
- Event emission for experience corpus
- Configurable iteration limits
- Tool result integration
2. Shell Sandbox (Claude Code-style)
from ragix_core.tools_shell import ShellSandbox
sandbox = ShellSandbox(
root="/workspace",
dry_run=False,
profile="dev",
allow_git_destructive=False
)
result = sandbox.run("grep -r 'def main' .")Safety features:
- Confines execution to sandbox root
- Hard denylist (DANGEROUS_PATTERNS)
- Blocks destructive git commands by default
- Full command logging with timestamps
- Dry-run mode for testing
3. Hybrid RAG Retrieval
from ragix_core.hybrid_search import HybridSearchEngine, FusionStrategy
engine = HybridSearchEngine(
bm25_index=bm25_idx,
vector_index=vec_idx,
fusion_strategy=FusionStrategy.RRF, # Reciprocal Rank Fusion
)
results = engine.search("authentication middleware", top_k=10)Fusion strategies:
| Strategy | Description |
|---|---|
RRF |
Reciprocal Rank Fusion (default) |
WEIGHTED |
Weighted score combination |
INTERLEAVE |
Round-robin interleaving |
BM25_RERANK |
Vector search, BM25 rerank |
VECTOR_RERANK |
BM25 search, vector rerank |
4. AST Analysis (Python + Java)
from ragix_core.ast_python import PythonASTBackend
backend = PythonASTBackend()
ast_tree = backend.parse_file(Path("src/main.py"))
# Extract classes, functions, imports, decorators, type annotations
for node in ast_tree.children:
print(f"{node.node_type}: {node.name}")Extracts:
- Classes with inheritance hierarchy
- Functions and methods
- Imports (import and from...import)
- Decorators
- Type annotations
- Docstrings
- Module-level constants
β¨ RAGIX-web: Full Graphical Interface
RAGIX-web is the flagship interface β a production-ready FastAPI application with WebSocket real-time communication.
Architecture
ragix_web/
βββ server.py # FastAPI server (50k+ lines)
βββ routers/ # Modular API endpoints
β βββ agents.py # Agent configuration & personas
β βββ reasoning.py # Reasoning graph state & control
β βββ rag.py # RAG index management (v0.33)
β βββ sessions.py # Session lifecycle management
β βββ memory.py # Message history & context
β βββ context.py # User context injection
β βββ threads.py # Multi-thread conversations (v0.33)
β βββ logs.py # Audit log access
β
βββ static/ # Frontend application
βββ app.js # Main WebSocket client
βββ workflow.js # D3.js reasoning graph visualization
βββ diff.js # Side-by-side diff viewer
βββ files.js # File browser
βββ logs.js # Log viewer
βββ js/
βββ dependency_explorer.js # Force-directed dependency graph
βββ virtual_fs.js # In-browser filesystem
βββ browser_tools.js # Browser-based tools
βββ wasp_runtime.js # WASP workflow runtime
REST API Endpoints
| Router | Prefix | Features |
|---|---|---|
| Sessions | /api/sessions |
Create/list/delete sessions, model selection |
| Memory | /api/sessions/{id}/memory |
View/edit/delete message history |
| Context | /api/sessions/{id}/context |
Global context injection |
| Agents | /api/agents |
Agent config, model assignment, personas |
| Reasoning | /api/reasoning |
Graph state, step control, experience corpus |
| RAG | /api/rag |
Index status, document upload, enable/disable |
| Threads | /api/threads |
Multi-thread management, thread switching |
| Logs | /api/logs |
Audit log browsing, command history |
WebSocket Real-Time Features
// Connect to session
ws = new WebSocket(`ws://localhost:8000/ws/chat/${sessionId}`);
// Message types
- 'user_message' // User input
- 'agent_message' // Agent response
- 'thinking' // Progress indicator (cancellable)
- 'rag_context' // RAG retrieval notification
- 'cancel_ack' // Cancellation confirmed
- 'status' // Connection statusInteractive Visualizations
Workflow Visualizer (D3.js):
- Force-directed graph of reasoning nodes
- Real-time status colors (pending/running/completed/failed)
- Zoom/pan navigation
- Node inspection on click
Diff Viewer:
- Split and unified view modes
- Accept/reject changes
- Syntax highlighting
- Multi-file navigation
Dependency Explorer:
- Package clustering
- Edge bundling for clarity
- Search and filter
- Export to SVG/PNG
Optional Integrations
| Integration | Availability | Purpose |
|---|---|---|
| AST Analysis | Optional | Python/Java code graphs, metrics |
| Maven Parser | Optional | POM.xml analysis, dependency conflicts |
| SonarQube | Optional | Code quality reports |
| Prompt Database | Optional | Reusable prompt templates |
| Workflow Templates | Optional | Predefined task workflows |
Security Model
- Launch Directory Confinement: Sandbox restricted to server start directory
- CORS: Enabled for local development (localhost only)
- Session Isolation: Each session has isolated state
- Cancellation Support: Background tasks can be interrupted
Quick Start
# Start the web server
ragix-web
# With custom port and sandbox
ragix-web --port 8080 --sandbox ./my-project
# Open browser
http://localhost:8000β¨ Unix-RAG Agent
The original RAGIX pattern β lightweight Unix-based retrieval with LLM orchestration:
from ragix_unix import UnixRAGAgent
agent = UnixRAGAgent(
llm=ollama_llm,
sandbox=ShellSandbox(root="./project"),
)
# Uses grep, find, sed, awk for retrieval β no vector DB required
response = agent.run("Find all functions that handle authentication")Unix-RAG Tools:
| Tool | Command | Purpose |
|---|---|---|
grep |
grep -r -n |
Content search with line numbers |
find |
find -name |
File discovery by pattern |
head/tail |
head -n, tail -n |
View file portions |
sed |
sed -n 'X,Yp' |
Extract line ranges |
wc |
wc -l |
Count lines |
awk |
awk '{...}' |
Field extraction |
Key advantages:
- Zero-setup (no embedding models, no vector DB)
- Works on any Unix system
- Predictable, auditable retrieval
- Low memory footprint
β¨ Agent Framework
Specialized Agents
| Agent | Purpose |
|---|---|
code_agent |
Code generation, refactoring, bug fixing |
doc_agent |
Documentation generation and analysis |
git_agent |
Git operations, commit analysis |
test_agent |
Test generation and execution |
Agent Configuration
from ragix_core.agent_config import AgentConfig
config = AgentConfig(
model="mistral:7b-instruct",
max_iterations=10,
reflection_enabled=True,
experience_corpus_path="./experience",
)Experience Corpus
The system learns from past executions:
from ragix_core.experience_corpus import ExperienceCorpus
corpus = ExperienceCorpus("./experience")
similar = corpus.find_similar(goal="implement authentication", top_k=3)β¨ CLI Improvements
# Run reasoning on a goal
ragix reason "Implement user authentication with JWT"
# Interactive shell mode
ragix shell --sandbox /workspace
# Profile a model
...RAGIX v0.11.1
RAGIX Release v0.11.1
Build: 202511281400
Date: 2025-11-28
1. Overview
Version 0.20.0 marks a major leap forward for RAGIX, evolving it from a development assistant into a production-ready, multi-agent orchestration platform. This release introduces a powerful AST-based code analysis engine, a comprehensive Web UI, and a full suite of documentation, solidifying its position as a sovereign, local-first tool for professional software engineering.
2. π Major Features & Capabilities
This release is packed with new, deeply integrated capabilities that provide a powerful and cohesive experience.
2.1. Advanced AST Code Analysis
RAGIX now parses your entire codebase (Python & Java) into an Abstract Syntax Tree (AST), enabling deep, structural analysis and visualization.
- Key Features: Dependency graph generation, cycle detection, code metrics (cyclomatic complexity, technical debt), and an interactive query language.
- Example (
ragix-astCLI): Find all classes that extendBaseServiceand are decorated with@Transactional.ragix-ast search ./src "type:class extends:BaseService @Transactional"
2.2. Multi-Agent Orchestration
Define, execute, and stream complex workflows with a dependency-aware graph executor.
- Key Features: Pre-built templates for common tasks (
bug_fix,code_review,feature_addition), parallel execution, and a clear separation of Planner, Worker, and Verifier agents. - Example (Python):
from ragix_core import get_template_manager manager = get_template_manager() graph = manager.instantiate("bug_fix", { "bug_description": "TypeError in handler.py", }) # ... then run with GraphExecutor
2.3. Hybrid Search Engine
Combine the best of keyword-based (BM25) and semantic (Vector) search for highly accurate code retrieval.
- Key Features: Multiple fusion strategies (
RRF,Weighted,Interleave), clear source attribution for results, and a simple API.
2.4. Flexible LLM Backends
Choose the right LLM for the job, with a clear distinction between sovereign and cloud-based models.
- Sovereign (Default): π’ Ollama. 100% local, private, and free. Recommended for sensitive codebases.
- Cloud-Based: π΄ Claude & OpenAI. Higher reasoning quality at the cost of sending data to third-party APIs.
2.5. Production-Grade Infrastructure
- Monitoring: Health checks for system components (
/api/health). - Resilience: Built-in patterns like
CircuitBreakerandretry_asyncfor robust tool execution. - Caching: In-memory and disk-based caching for LLM responses and tool calls to improve performance.
3. π» Developer Experience & Usability
3.1. Comprehensive Documentation Suite
A full suite of documentation has been created to make RAGIX accessible and easy to learn.
| Document | Location | Description |
|---|---|---|
| CLI Guide | docs/CLI_GUIDE.md |
A complete reference for all ragix-* commands. |
| AST Guide | docs/AST_GUIDE.md |
A deep dive into code analysis with ragix-ast. |
| API Reference | docs/API_REFERENCE.md |
REST API documentation for the ragix-web server. |
| Architecture | docs/ARCHITECTURE.md |
An overview of the system architecture. |
| Playbook Guide | docs/PLAYBOOK_GUIDE.md |
How to write ragix-batch automation playbooks. |
3.2. New Web UI
A new, comprehensive Web UI (ragix-web) provides a graphical interface for:
- Interactive agent chat.
- Live AST visualizations (dependency graphs, DSM matrices, radial explorers).
- Session management and log viewing.
3.3. Project Reorganization
- The project root has been cleaned significantly.
- Old development and planning documents are now in
docs/archive/. - Internal technical notes are consolidated in
docs/developer/. - Every project folder now contains a
README.md.
4. π Bug Fixes
- Web UI: Fixed a critical
AttributeErroron the/api/agents/configendpoint that caused a 500 Internal Server Error. - Numerous other minor stability improvements.
RAGIX v0.7.0 - Sovereign Multi-Agent Platform
What's New
π Launcher & Web GUI
./launch_ragix.shβ One-command setup with condaragix_app.pyβ Streamlit dashboard at http://localhost:8501
π€ Multi-Agent Workflows
- 8 built-in templates:
bug_fix,feature_addition,code_review, and more - Graph-based execution with explicit dependencies
- Streaming events for real-time progress and status updates
π Hybrid Search
- BM25 keyword + vector semantic search pipeline
- 5 fusion strategies (RRF, weighted, and others) for flexible ranking
- Code-aware tokenization optimized for repositories
π Sovereignty
- π’ Ollama: 100% local, air-gapped capable
- π΄ Claude / OpenAI: optional cloud backends with explicit warnings
Quick Start
./launch_ragix.shor
./launch_ragix.sh gui
π€π’ All features remain 100% sovereign (local-first)
Enjoy sovereignty. Olivier Vitrac, PhD, HDR