Files
wehub-resource-sync 23f7624596
ADR-166 MCP Bridge Security Lock / Static-source security lock (push) Failing after 0s
ADR-166 MCP Bridge Security Lock / Compose default binds loopback + Mongo has auth (push) Failing after 2s
CodeQL Advanced / Analyze (rust) (push) Failing after 0s
ADR-166 MCP Bridge Security Lock / plugin-agent-federation bindHost default (push) Failing after 1s
ADR-166 MCP Bridge Security Lock / Runtime behavior — 401 + terminal gate + fail-closed (push) Failing after 4s
business-pods-smoke / smoke (push) Failing after 1s
all-plugins-smoke / smoke-all (push) Failing after 2s
CI/CD Pipeline / Security & Code Quality (push) Failing after 1s
CI/CD Pipeline / Test Suite (ubuntu-latest) (push) Failing after 1s
CI/CD Pipeline / Build & Package (macos-latest) (push) Has been skipped
CI/CD Pipeline / Build & Package (ubuntu-latest) (push) Has been skipped
CI/CD Pipeline / Build & Package (windows-latest) (push) Has been skipped
CI/CD Pipeline / Documentation & Examples (push) Failing after 1s
Clone Tracker (14-day rolling) / Snapshot clones for ruflo ecosystem (push) Failing after 1s
CodeQL Advanced / Analyze (actions) (push) Failing after 1s
CodeQL Advanced / Analyze (javascript-typescript) (push) Failing after 1s
federation-peer-rust / stable-noop (push) Failing after 1s
metaharness-ci / score (push) Failing after 1s
metaharness-ci / router-compat (push) Failing after 0s
metaharness-ci / similarity-tests (push) Failing after 0s
no-agentbbs-smoke / smoke-without-agentbbs (push) Failing after 1s
V3 CI/CD Pipeline / Build V3 (windows-latest) (push) Has been skipped
codex-integration-audit / Codex integration audit (push) Failing after 1s
helpers-manifest-guard / guard (push) Failing after 1s
🔗 Cross-Agent Integration Tests / 🤝 Agent Coordination Tests (push) Has been skipped
🔗 Cross-Agent Integration Tests / 🧠 Memory Sharing Integration (push) Has been skipped
🔗 Cross-Agent Integration Tests / 🛡️ Fault Tolerance Tests (push) Has been skipped
🔗 Cross-Agent Integration Tests / ⚡ Performance Integration Tests (push) Has been skipped
metaharness-ci / mcp-scan (push) Failing after 1s
metaharness-ci / eject-dryrun (push) Failing after 1s
metaharness-ci / metaharness-real-data (push) Failing after 0s
no-cli-optdep-bloat-2561 / guard (push) Failing after 1s
no-metaharness-smoke / smoke-without-metaharness (push) Failing after 1s
no-phantom-agentic-flow-subpath / guard (push) Failing after 1s
🔄 Automated Rollback Manager / 🚨 Failure Detection (push) Failing after 1s
V3 CI/CD Pipeline / Plugin hooks smoke / ubuntu-latest / Node 22 (push) Failing after 1s
V3 CI/CD Pipeline / ruflo-graph-intelligence build + test smoke (#2044, ADR-123) (push) Failing after 1s
CVE Audit Gate / Audit root (critical-blocking) (push) Failing after 2s
cost-tracker-smoke / smoke (push) Failing after 3s
oia-audit-weekly / audit (push) Failing after 2s
ruflo-agent-smoke / ruflo-agent structural smoke (push) Failing after 1s
📊 Status Badges Update / 📊 Update Status Badges (push) Failing after 1s
V3 CI/CD Pipeline / Static regression guards (#2267 YAML + (push) Failing after 1s
V3 CI/CD Pipeline / Test V3 Packages (push) Failing after 0s
V3 CI/CD Pipeline / agent_execute provider routing smoke (#2042) (push) Failing after 0s
CVE Audit Gate / Audit v3 (critical-blocking) (push) Failing after 1s
federation-peer-rust / stable-native (push) Failing after 2s
🔗 Cross-Agent Integration Tests / 🚀 Integration Test Setup (push) Failing after 2s
neural-trader-smoke / runtime-smoke (push) Failing after 1s
V3 CI/CD Pipeline / Build V3 (macos-latest) (push) Has been skipped
V3 CI/CD Pipeline / Build V3 (ubuntu-latest) (push) Has been skipped
V3 CI/CD Pipeline / Type Check V3 (push) Failing after 1s
V3 CI/CD Pipeline / Smoke (no better-sqlite3) / ubuntu-latest / Node 24 (push) Failing after 1s
V3 CI/CD Pipeline / Smoke (no better-sqlite3) / ubuntu-latest / Node 22 (push) Failing after 2s
V3 CI/CD Pipeline / browser rvf create flag smoke (#2015) (push) Failing after 0s
V3 CI/CD Pipeline / Dependency review (#2046) (push) Has been skipped
V3 CI/CD Pipeline / Supply-chain audit (#2046) (push) Failing after 0s
V3 CI/CD Pipeline / witness marker drift smoke (#2021) (push) Failing after 1s
V3 CI/CD Pipeline / neural-trader portfolio CG smoke (#2068, ADR-126 Phase 3) (push) Failing after 1s
V3 CI/CD Pipeline / neural-trader backtest signing smoke (#2068, ADR-126 Phase 4) (push) Failing after 1s
V3 CI/CD Pipeline / kg-extract type-import classification smoke (#2049) (push) Failing after 0s
V3 CI/CD Pipeline / witness verify precondition smoke (#1880) (push) Failing after 2s
V3 CI/CD Pipeline / neural-trader pipeline risk-gate smoke (#2068, ADR-126 Phase 5) (push) Failing after 0s
V3 CI/CD Pipeline / neural-trader feature attribution smoke (#2068, ADR-126 Phase 6) (push) Failing after 0s
V3 CI/CD Pipeline / plugin-registry signature verification smoke (#1922, CWE-347) (push) Failing after 4s
V3 CI/CD Pipeline / memory stats legacy-DB smoke (#2120) (push) Failing after 4s
V3 CI/CD Pipeline / github deprecated actions smoke (#2089, ADR-127 Phase 3) (push) Failing after 1s
V3 CI/CD Pipeline / graph query + pathfinder smoke (ADR-130 P2+P5) (push) Has been skipped
V3 CI/CD Pipeline / graph trajectory hooks smoke (ADR-130 P3) (push) Has been skipped
V3 CI/CD Pipeline / graph plugin adapter smoke (ADR-130 P4) (push) Has been skipped
V3 CI/CD Pipeline / graph benchmark (ADR-130 P6) (push) Has been skipped
V3 CI/CD Pipeline / statusline generator delegation smoke (#2195) (push) Failing after 1s
V3 CI/CD Pipeline / wizard init regression guard (#2206 (push) Failing after 1s
V3 CI/CD Pipeline / memory no-stray-db smoke (ADR-125 P7) (push) Failing after 1s
V3 CI/CD Pipeline / github-safe injection smoke (#2089, ADR-127 Phase 1) (push) Failing after 1s
V3 CI/CD Pipeline / github actions pin smoke (#2089, ADR-127 Phase 1) (push) Failing after 1s
V3 CI/CD Pipeline / github attribution opt-in smoke (#2089, ADR-127 Phase 4) (push) Failing after 1s
V3 CI/CD Pipeline / pre-bash hook safety smoke (#2017) (push) Failing after 1s
V3 CI/CD Pipeline / Memory import smoke / ubuntu-latest (push) Failing after 0s
V3 CI/CD Pipeline / MCP protocol smoke / ubuntu-latest (push) Failing after 2s
V3 CI/CD Pipeline / ruvllm WASM auto-init smoke (#2086) (push) Failing after 4s
V3 CI/CD Pipeline / MCP paired-tool round-trip smoke (#1889) (push) Failing after 1s
V3 CI/CD Pipeline / Plugin package install-safety (#1902/#1903/#1904) (push) Failing after 1s
V3 CI/CD Pipeline / Tool description discoverability (ADR-112) (push) Failing after 3s
V3 CI/CD Pipeline / CLI npx-install smoke (#1147 / (22) (push) Failing after 1s
V3 CI/CD Pipeline / CLI npx-install smoke (#1147 / (24) (push) Failing after 1s
V3 CI/CD Pipeline / Windows hook shim smoke (#2132) / ubuntu-latest (push) Failing after 2s
V3 CI/CD Pipeline / Windows hook execution smoke (#2132) / ubuntu-latest (push) Failing after 1s
V3 CI/CD Pipeline / Windows init hooks smoke (#2132) / ubuntu-latest (push) Failing after 1s
V3 CI/CD Pipeline / Vector-index dimension audit (#1947) (push) Failing after 0s
V3 CI/CD Pipeline / Hook-command install safety (#1921) (push) Failing after 1s
V3 CI/CD Pipeline / ToolOutputGuardrail smoke (ADR-131, (push) Failing after 1s
V3 CI/CD Pipeline / init-bundle invariants smoke (#2095, ADR-128 Phase 5) (push) Failing after 1s
V3 CI/CD Pipeline / wasm provider bridge smoke (ADR-129 P1) (push) Failing after 2s
V3 CI/CD Pipeline / wasm gallery CRUD smoke (ADR-129 P3) (push) Failing after 1s
V3 CI/CD Pipeline / wasm plugin bridge smoke (ADR-129 P4) (push) Failing after 0s
V3 CI/CD Pipeline / wasm compose smoke (ADR-129 P2) (push) Failing after 4s
V3 CI/CD Pipeline / graph schema smoke (ADR-130 P1) (push) Failing after 0s
Validate Marketplace / validate (push) Failing after 1s
🔍 Verification Pipeline / 🚀 Setup Verification (push) Failing after 1s
🔍 Verification Pipeline / 🛡️ Security Verification (push) Has been skipped
🔍 Verification Pipeline / 📝 Code Quality (push) Has been skipped
🔍 Verification Pipeline / 🧪 Test Verification (${{ matrix.os }}, Node ${{ matrix.node }}) (push) Has been skipped
🔍 Verification Pipeline / 🏗️ Build Verification (push) Has been skipped
🔍 Verification Pipeline / 📚 Documentation Verification (push) Has been skipped
CVE Audit Gate / High-severity report (warn only) (push) Has been cancelled
🔄 Automated Rollback Manager / 🔄 Execute Rollback (push) Has been cancelled
🔄 Automated Rollback Manager / ✅ Post-Rollback Verification (push) Has been cancelled
🔄 Automated Rollback Manager / 📊 Rollback Monitoring (push) Has been cancelled
V3 CI/CD Pipeline / Windows init hooks smoke (#2132) / windows-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook execution smoke (#2132) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook execution smoke (#2132) / windows-latest (push) Has been cancelled
🔄 Automated Rollback Manager / ⏳ Manual Rollback Approval (push) Has been cancelled
V3 CI/CD Pipeline / MCP protocol smoke / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Memory import smoke / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook shim smoke (#2132) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook shim smoke (#2132) / windows-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows init hooks smoke (#2132) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Witness verify (signed manifest) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Witness verify (signed manifest) / ubuntu-latest (push) Has been cancelled
V3 CI/CD Pipeline / Witness verify (signed manifest) / windows-latest (push) Has been cancelled
V3 CI/CD Pipeline / Publish to npm (alpha) (push) Has been cancelled
V3 CI/CD Pipeline / Smoke (no better-sqlite3) / macos-latest / Node 22 (push) Has been cancelled
V3 CI/CD Pipeline / Plugin hooks smoke / macos-latest / Node 22 (push) Has been cancelled
CI/CD Pipeline / Deploy & Release (push) Has been cancelled
CI/CD Pipeline / CI Status (push) Has been cancelled
🔗 Cross-Agent Integration Tests / 📊 Integration Test Report (push) Has been cancelled
🔄 Automated Rollback Manager / 🔍 Pre-Rollback Validation (push) Has been cancelled
🔍 Verification Pipeline / ⚡ Performance Verification (push) Has been cancelled
🔍 Verification Pipeline / 📊 Verification Report (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:02:19 +08:00

1402 lines
30 KiB
Markdown

# Migration Guide: v2 → v3
Complete guide for upgrading from Claude Flow v2 to v3.0.0-alpha.1
---
## Table of Contents
1. [Overview](#overview)
2. [Pre-Migration Checklist](#pre-migration-checklist)
3. [Breaking Changes](#breaking-changes)
4. [Step-by-Step Migration](#step-by-step-migration)
5. [Module-by-Module Guide](#module-by-module-guide)
6. [Configuration Changes](#configuration-changes)
7. [Code Updates](#code-updates)
8. [Testing Migration](#testing-migration)
9. [Rollback Plan](#rollback-plan)
10. [Common Issues](#common-issues)
---
## Overview
### What's Changed
Claude Flow v3 is a complete architectural overhaul based on 10 Architecture Decision Records (ADRs). The migration involves:
- **Code reduction**: 15,000+ lines → <5,000 lines
- **Module architecture**: Monolith → 10 @claude-flow modules
- **Foundation**: Custom implementation → agentic-flow@alpha core
- **Memory**: 6+ fragmented systems → Unified AgentDB
- **Testing**: Jest → Vitest (10x faster)
- **Platform**: Node.js + Deno → Node.js 20+ only
### Migration Timeline
- **Small projects**: 1-2 hours
- **Medium projects**: 4-8 hours
- **Large projects**: 1-2 days
### Risk Level
**Medium**: Breaking changes in API, configuration, and dependencies. Follow this guide carefully.
---
## Pre-Migration Checklist
### 1. Backup Current Setup
```bash
# Backup your v2 installation
cp -r ~/.claude-flow ~/.claude-flow.v2.backup
cp -r ./node_modules ./node_modules.v2.backup
cp package.json package.json.v2.backup
cp package-lock.json package-lock.json.v2.backup
# Export v2 memory (if using memory features)
npx agentic-flow memory export --output ./v2-memory-backup.json
```
### 2. Document Current Configuration
```bash
# Save current configuration
cat ~/.claude-flow/config.json > v2-config-backup.json
# List installed agents
npx agentic-flow --list > v2-agents-list.txt
# Export environment variables
env | grep CLAUDE_FLOW > v2-env-backup.txt
```
### 3. System Requirements Check
```bash
# Check Node.js version (must be 20.x or higher)
node --version # Should be v20.x.x or higher
# Check npm version
npm --version # Should be 10.x.x or higher
# Check available disk space (need ~500MB for v3)
df -h
# Check platform compatibility
uname -a # Windows/macOS/Linux
```
### 4. Review Dependencies
```bash
# Check for conflicting dependencies
npm list agentic-flow
npm list agentdb
npm list @ruvector/attention
npm list @ruvector/sona
# Check for custom plugins or extensions
ls ~/.claude-flow/plugins/
```
---
## Breaking Changes
### 1. Removed Features
#### Deno Support (ADR-010)
```diff
- # v2: Deno support
- deno run --allow-all agentic-flow.ts
+ # v3: Node.js 20+ only
+ node --version # Must be v20.x.x+
```
**Action Required**: Migrate all Deno code to Node.js.
#### Jest Testing Framework (ADR-008)
```diff
- # v2: Jest
- "test": "jest"
- "testMatch": ["**/*.test.js"]
+ # v3: Vitest (10x faster)
+ "test": "vitest"
+ "testMatch": ["**/*.test.ts"]
```
**Action Required**: Convert all Jest tests to Vitest format.
#### Legacy Memory Systems (ADR-006)
```diff
- # v2: Multiple memory backends
- npx agentic-flow memory --backend filesystem
- npx agentic-flow memory --backend redis
- npx agentic-flow memory --backend mongodb
+ # v3: Unified AgentDB
+ npx @claude-flow/memory unify --backend agentdb
```
**Action Required**: Migrate all memory data to AgentDB.
#### Multiple Swarm Coordinators (ADR-003)
```diff
- # v2: 6+ different coordinators
- import { HierarchicalCoordinator } from './coordinators/hierarchical'
- import { MeshCoordinator } from './coordinators/mesh'
- import { AdaptiveCoordinator } from './coordinators/adaptive'
+ # v3: Single UnifiedSwarmCoordinator
+ import { SwarmCoordinator } from '@claude-flow/swarm'
```
**Action Required**: Update all coordinator imports and usage.
### 2. API Changes
#### MCP-First Design (ADR-005)
```diff
- # v2: Direct function calls
- const result = await agent.execute(task);
+ # v3: MCP protocol
+ const result = await mcp.call('agent_execute', { task });
```
#### Event Sourcing (ADR-007)
```diff
- # v2: Direct state mutation
- agent.state.status = 'running';
- agent.save();
+ # v3: Event sourcing
+ await agent.emit('status_changed', {
+ from: 'idle',
+ to: 'running',
+ timestamp: Date.now()
+ });
```
#### Module-Based Imports (ADR-002)
```diff
- # v2: Monolithic imports
- import { Security, Memory, Swarm } from 'agentic-flow';
+ # v3: Module imports
+ import { SecurityModule } from '@claude-flow/security';
+ import { MemoryModule } from '@claude-flow/memory';
+ import { SwarmModule } from '@claude-flow/swarm';
```
### 3. Configuration Changes
#### Memory Configuration
```diff
- # v2: config.json
- {
- "memory": {
- "backend": "filesystem",
- "path": "./memory"
- }
- }
+ # v3: config.json
+ {
+ "memory": {
+ "backend": "hybrid",
+ "agentdb": {
+ "path": "./data/agentdb",
+ "hnsw": { "efConstruction": 200, "M": 16 }
+ },
+ "sqlite": {
+ "path": "./data/sqlite.db"
+ }
+ }
+ }
```
#### Security Configuration
```diff
- # v2: Minimal security
- {
- "security": {
- "enabled": false
- }
- }
+ # v3: Security-first (strict by default)
+ {
+ "security": {
+ "strict": true,
+ "validation": { "maxInputSize": 10000 },
+ "paths": { "allowedDirectories": ["./src/", "./tests/"] },
+ "execution": { "shell": false, "timeout": 30000 }
+ }
+ }
```
---
## Step-by-Step Migration
### Step 1: Clean Install
```bash
# 1. Remove v2 (keep backups!)
npm uninstall agentic-flow
rm -rf node_modules
rm package-lock.json
# 2. Install v3 alpha
npm install agentic-flow@3.0.0-alpha.1
# 3. Install required @claude-flow modules
npm install @claude-flow/security@latest
npm install @claude-flow/memory@latest
npm install @claude-flow/integration@latest
npm install @claude-flow/performance@latest
npm install @claude-flow/swarm@latest
npm install @claude-flow/cli@latest
# 4. Install peer dependencies
npm install agentdb@2.0.0-alpha.3.4
npm install @ruvector/attention@0.1.3
npm install @ruvector/sona@0.1.5
# 5. Install dev dependencies
npm install --save-dev vitest@^2.1.8
npm install --save-dev @vitest/ui@^2.1.8
```
### Step 2: Update Configuration
```bash
# 1. Initialize v3 configuration
npx agentic-flow@3.0.0-alpha.1 init --v3
# 2. Migrate v2 configuration (manual merge)
# Edit ~/.claude-flow/config.json with your v2 settings
# Follow new schema from v3/config/schema.json
# 3. Set environment variables
export CLAUDE_FLOW_VERSION=3
export CLAUDE_FLOW_MODE=production
export CLAUDE_FLOW_MEMORY_BACKEND=agentdb
```
#### Windows Configuration
```powershell
# PowerShell
setx CLAUDE_FLOW_VERSION "3"
setx CLAUDE_FLOW_MODE "production"
setx CLAUDE_FLOW_MEMORY_BACKEND "agentdb"
# Update config path
$env:CLAUDE_FLOW_CONFIG = "$env:APPDATA\claude-flow\config.json"
```
#### macOS/Linux Configuration
```bash
# Bash/Zsh
export CLAUDE_FLOW_VERSION=3
export CLAUDE_FLOW_MODE=production
export CLAUDE_FLOW_MEMORY_BACKEND=agentdb
# Update config path
export CLAUDE_FLOW_CONFIG="$HOME/.claude-flow/config.json"
# Add to ~/.bashrc or ~/.zshrc for persistence
```
### Step 3: Migrate Memory Data
```bash
# 1. Export v2 memory
npx agentic-flow@2.x memory export --output ./v2-memory.json
# 2. Initialize v3 memory backend
npx @claude-flow/memory init --backend agentdb
# 3. Import v2 memory into v3
npx @claude-flow/memory import ./v2-memory.json --format v2
# 4. Verify migration
npx @claude-flow/memory stats
# Should show: "Migrated X patterns from v2"
# 5. Optimize with HNSW indexing
npx @claude-flow/memory optimize --hnsw
```
### Step 4: Update Code
#### 4a. Update Imports
```typescript
// Before (v2)
import {
Agent,
Swarm,
Memory,
Security
} from 'agentic-flow';
// After (v3)
import { Agent } from 'agentic-flow';
import { SwarmCoordinator } from '@claude-flow/swarm';
import { MemoryModule } from '@claude-flow/memory';
import { SecurityModule } from '@claude-flow/security';
```
#### 4b. Update Agent Initialization
```typescript
// Before (v2)
const agent = new Agent({
name: 'coder',
memory: new FileSystemMemory(),
coordinator: new HierarchicalCoordinator()
});
// After (v3)
const security = new SecurityModule({ strict: true });
const memory = new MemoryModule({ backend: 'agentdb' });
const swarm = new SwarmCoordinator({ topology: 'hierarchical-mesh' });
const agent = new Agent({
name: 'coder',
modules: { security, memory, swarm }
});
```
#### 4c. Update Swarm Coordination
```typescript
// Before (v2)
const swarm = new HierarchicalCoordinator({
agents: [agent1, agent2, agent3]
});
await swarm.execute(task);
// After (v3)
const swarm = new SwarmCoordinator({
topology: 'hierarchical-mesh',
agents: [agent1, agent2, agent3]
});
await swarm.coordinate(task);
```
#### 4d. Update Memory Operations
```typescript
// Before (v2)
await memory.store(key, value);
const result = await memory.retrieve(key);
// After (v3)
await memory.storePattern({
sessionId: 'session-1',
task: 'example',
input: 'data',
output: 'result',
reward: 0.95
});
const results = await memory.searchPatterns({
task: 'example',
k: 5,
minReward: 0.8
});
```
### Step 5: Update Tests
#### 5a. Migrate Jest to Vitest
```typescript
// Before (v2) - Jest
import { describe, it, expect } from '@jest/globals';
import { mock } from 'jest-mock';
describe('Agent Tests', () => {
it('should execute task', async () => {
const agent = new Agent();
const result = await agent.execute(task);
expect(result).toBeDefined();
});
});
// After (v3) - Vitest
import { describe, it, expect, vi } from 'vitest';
describe('Agent Tests', () => {
it('should execute task', async () => {
const agent = new Agent();
const result = await agent.execute(task);
expect(result).toBeDefined();
});
});
```
#### 5b. Update Test Configuration
```javascript
// Before (v2) - jest.config.js
module.exports = {
testEnvironment: 'node',
testMatch: ['**/*.test.js'],
collectCoverage: true
};
// After (v3) - vitest.config.ts
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
environment: 'node',
include: ['**/*.test.ts'],
coverage: {
provider: 'v8',
reporter: ['text', 'json', 'html']
}
}
});
```
#### 5c. Update package.json Scripts
```json
{
"scripts": {
"test": "vitest",
"test:ui": "vitest --ui",
"test:coverage": "vitest --coverage",
"test:watch": "vitest --watch"
}
}
```
### Step 6: Security Audit
```bash
# 1. Run v3 security audit
npx @claude-flow/security audit --strict
# 2. Fix any CVEs automatically
npx @claude-flow/security fix --auto
# 3. Validate credentials
npx @claude-flow/security validate-credentials
# 4. Check path security
npx @claude-flow/security check-paths
# 5. Review security report
cat ~/.claude-flow/security-report.json
```
### Step 7: Performance Validation
```bash
# 1. Run performance benchmarks
npx @claude-flow/performance benchmark
# 2. Compare with v2 baseline
npx @claude-flow/performance compare --baseline v2
# 3. Validate targets
# - Flash Attention: 2.49x-7.47x speedup
# - Vector Search: 150x-12,500x faster
# - Memory: 50-75% reduction
# - CLI Startup: <500ms
# 4. Profile memory usage
npx @claude-flow/performance profile --memory
# 5. Analyze bottlenecks
npx @claude-flow/performance analyze
```
### Step 8: Integration Testing
```bash
# 1. Test agentic-flow integration
npx @claude-flow/integration test --agentic-flow-version alpha
# 2. Test all modules
npm run test:modules
# 3. Test cross-platform (if applicable)
npm run test:cross-platform
# 4. Test with real agents
npx agentic-flow --agent coder --task "Hello v3"
# 5. Test swarm coordination
npx @claude-flow/swarm test --agents 15
```
---
## Module-by-Module Guide
### @claude-flow/security Migration
#### Before (v2)
```typescript
// No dedicated security module
// Security was ad-hoc
```
#### After (v3)
```typescript
import { SecurityModule } from '@claude-flow/security';
const security = new SecurityModule({
strict: true,
validation: {
maxInputSize: 10000,
allowedChars: /^[a-zA-Z0-9._\-\s]+$/
},
paths: {
allowedDirectories: ['./src/', './tests/'],
blockedPatterns: ['../', '~/', '/etc/']
}
});
// Validate input
await security.validateInput(userInput);
// Sanitize output
const safe = await security.sanitizeOutput(output);
// Check credentials
await security.validateCredentials();
```
### @claude-flow/memory Migration
#### Before (v2)
```typescript
import { Memory } from 'agentic-flow';
const memory = new Memory({ backend: 'filesystem' });
await memory.store('key', value);
const result = await memory.retrieve('key');
```
#### After (v3)
```typescript
import { MemoryModule } from '@claude-flow/memory';
const memory = new MemoryModule({
backend: 'hybrid', // SQLite + AgentDB
agentdb: {
path: './data/agentdb',
hnsw: { efConstruction: 200, M: 16 }
}
});
// Store with ReasoningBank pattern
await memory.storePattern({
sessionId: 'session-1',
task: 'code-implementation',
input: requirements,
output: code,
reward: 0.95,
success: true,
critique: 'Good test coverage'
});
// Search with vector similarity (150x faster)
const patterns = await memory.searchPatterns({
task: 'code-implementation',
k: 5,
minReward: 0.85
});
// GNN-enhanced retrieval (+12.4% accuracy)
const enhanced = await memory.gnnEnhancedSearch(embedding, {
k: 10,
graphContext: dependencyGraph
});
```
### @claude-flow/swarm Migration
#### Before (v2)
```typescript
import {
HierarchicalCoordinator,
MeshCoordinator,
AdaptiveCoordinator
} from 'agentic-flow/coordinators';
// Multiple coordinator implementations
const coordinator = new HierarchicalCoordinator({
agents: [agent1, agent2]
});
```
#### After (v3)
```typescript
import { SwarmCoordinator } from '@claude-flow/swarm';
// Single unified coordinator
const swarm = new SwarmCoordinator({
topology: 'hierarchical-mesh',
agents: [agent1, agent2, agent3],
consensus: 'attention', // or 'byzantine', 'raft'
selfHealing: true,
autoSpawn: true
});
// Coordinate with attention mechanisms
const result = await swarm.coordinate(task, {
attentionType: 'flash', // 2.49x-7.47x faster
consensusThreshold: 0.8
});
// Monitor swarm health
const status = await swarm.getStatus();
console.log(`Active: ${status.activeAgents}/${status.totalAgents}`);
```
### @claude-flow/performance Migration
#### Before (v2)
```typescript
// No dedicated performance module
// Manual benchmarking
```
#### After (v3)
```typescript
import { PerformanceModule } from '@claude-flow/performance';
const perf = new PerformanceModule({
targets: {
flashAttention: '2.49x-7.47x',
vectorSearch: '150x-12500x',
memoryReduction: '50-75%'
}
});
// Run benchmarks
const results = await perf.benchmark({
tests: ['flash-attention', 'vector-search', 'memory-usage'],
iterations: 100
});
// Analyze bottlenecks
const analysis = await perf.analyzeBottlenecks();
console.log(`Slowest: ${analysis.bottlenecks[0].name}`);
// Profile memory
const profile = await perf.profileMemory();
console.log(`Peak usage: ${profile.peakMB}MB`);
```
---
## Configuration Changes
### v2 Config Structure
```json
{
"version": "2.0.1",
"memory": {
"backend": "filesystem",
"path": "./memory"
},
"agents": {
"default": "coder"
},
"swarm": {
"coordinator": "hierarchical",
"maxAgents": 10
}
}
```
### v3 Config Structure
```json
{
"version": "3.0.0-alpha.1",
"modules": {
"security": {
"strict": true,
"validation": {
"maxInputSize": 10000,
"allowedChars": "^[a-zA-Z0-9._\\-\\s]+$"
},
"paths": {
"allowedDirectories": ["./src/", "./tests/"],
"blockedPatterns": ["../", "~/", "/etc/", "/tmp/"]
},
"execution": {
"shell": false,
"timeout": 30000,
"allowedCommands": ["npm", "npx", "node", "git"]
}
},
"memory": {
"backend": "hybrid",
"agentdb": {
"path": "./data/agentdb",
"hnsw": {
"efConstruction": 200,
"M": 16
},
"quantization": {
"enabled": true,
"bits": 8
}
},
"sqlite": {
"path": "./data/sqlite.db",
"maxSize": "1GB"
}
},
"swarm": {
"coordinator": "unified",
"topology": "hierarchical-mesh",
"maxAgents": 15,
"consensus": "attention",
"selfHealing": true,
"autoSpawn": true
},
"performance": {
"flashAttention": {
"enabled": true,
"runtime": "auto"
},
"sona": {
"enabled": true,
"adaptationTime": "0.05ms"
}
}
},
"platform": {
"node": "20.x",
"os": ["windows", "darwin", "linux"]
}
}
```
### Environment Variables
#### v2 Environment Variables
```bash
CLAUDE_FLOW_VERSION=2
CLAUDE_FLOW_MEMORY_PATH=./memory
CLAUDE_FLOW_COORDINATOR=hierarchical
```
#### v3 Environment Variables
```bash
# Core
CLAUDE_FLOW_VERSION=3
CLAUDE_FLOW_MODE=production
CLAUDE_FLOW_CONFIG=~/.claude-flow/config.json
# Memory
CLAUDE_FLOW_MEMORY_BACKEND=agentdb
CLAUDE_FLOW_MEMORY_PATH=./data
CLAUDE_FLOW_AGENTDB_HNSW=true
# Security
CLAUDE_FLOW_SECURITY_STRICT=true
CLAUDE_FLOW_SECURITY_MODE=strict
# Performance
CLAUDE_FLOW_FLASH_ATTENTION=true
CLAUDE_FLOW_SONA_LEARNING=true
# Platform-specific (Windows)
APPDATA=C:\Users\YourName\AppData\Roaming
CLAUDE_FLOW_CONFIG=%APPDATA%\claude-flow\config.json
# Platform-specific (macOS/Linux)
HOME=/home/yourname
CLAUDE_FLOW_CONFIG=$HOME/.claude-flow/config.json
```
---
## Code Updates
### Pattern 1: Agent Creation
```typescript
// ❌ v2 Pattern
import { Agent } from 'agentic-flow';
const agent = new Agent({
name: 'coder',
role: 'implementation',
memory: new FileSystemMemory()
});
// ✅ v3 Pattern
import { Agent } from 'agentic-flow';
import { MemoryModule } from '@claude-flow/memory';
import { SecurityModule } from '@claude-flow/security';
const agent = new Agent({
name: 'coder',
role: 'implementation',
modules: {
memory: new MemoryModule({ backend: 'agentdb' }),
security: new SecurityModule({ strict: true })
}
});
```
### Pattern 2: Swarm Coordination
```typescript
// ❌ v2 Pattern
import { HierarchicalCoordinator } from 'agentic-flow/coordinators';
const swarm = new HierarchicalCoordinator({
agents: [coder, reviewer, tester]
});
const result = await swarm.execute(task);
// ✅ v3 Pattern
import { SwarmCoordinator } from '@claude-flow/swarm';
import { AttentionCoordinator } from '@claude-flow/swarm/attention';
const swarm = new SwarmCoordinator({
topology: 'hierarchical-mesh',
agents: [coder, reviewer, tester],
consensus: new AttentionCoordinator({
type: 'flash', // 2.49x-7.47x faster
threshold: 0.8
})
});
const result = await swarm.coordinate(task);
```
### Pattern 3: Memory Operations
```typescript
// ❌ v2 Pattern
import { Memory } from 'agentic-flow';
const memory = new Memory({ backend: 'filesystem' });
await memory.store('user-123', userData);
const user = await memory.retrieve('user-123');
// ✅ v3 Pattern
import { MemoryModule } from '@claude-flow/memory';
const memory = new MemoryModule({
backend: 'hybrid',
agentdb: { hnsw: true }
});
// Store with ReasoningBank pattern
await memory.storePattern({
sessionId: 'session-123',
task: 'user-management',
input: { userId: '123' },
output: userData,
reward: 0.95,
success: true,
critique: 'Successful user retrieval'
});
// Search with vector similarity
const results = await memory.searchPatterns({
task: 'user-management',
k: 5,
minReward: 0.8
});
```
### Pattern 4: Error Handling
```typescript
// ❌ v2 Pattern
try {
const result = await agent.execute(task);
} catch (error) {
console.error('Error:', error);
throw error;
}
// ✅ v3 Pattern (Event Sourcing)
import { SecurityError, MemoryError } from '@claude-flow/shared';
try {
const result = await agent.execute(task);
// Emit success event
await agent.emit('task_completed', {
taskId: task.id,
result,
timestamp: Date.now()
});
} catch (error) {
// Emit failure event (audit trail)
await agent.emit('task_failed', {
taskId: task.id,
error: error.message,
timestamp: Date.now()
});
if (error instanceof SecurityError) {
// Handle security-specific errors
await security.logSecurityIncident(error);
} else if (error instanceof MemoryError) {
// Handle memory-specific errors
await memory.recover();
}
throw error;
}
```
### Pattern 5: Testing
```typescript
// ❌ v2 Pattern (Jest)
import { describe, it, expect } from '@jest/globals';
import { mock } from 'jest-mock';
describe('Agent', () => {
it('should execute task', async () => {
const agent = new Agent();
const mockTask = mock();
const result = await agent.execute(mockTask);
expect(result).toBeDefined();
});
});
// ✅ v3 Pattern (Vitest)
import { describe, it, expect, vi } from 'vitest';
import { Agent } from 'agentic-flow';
import { MemoryModule } from '@claude-flow/memory';
describe('Agent', () => {
it('should execute task with memory', async () => {
const memory = new MemoryModule({ backend: 'agentdb' });
const agent = new Agent({
name: 'test-agent',
modules: { memory }
});
const task = { id: '1', type: 'test' };
const result = await agent.execute(task);
expect(result).toBeDefined();
expect(result.success).toBe(true);
// Verify event was emitted
const events = await agent.getEvents();
expect(events).toContainEqual(
expect.objectContaining({ type: 'task_completed' })
);
});
});
```
---
## Testing Migration
### Update Test Suite
```bash
# 1. Uninstall Jest
npm uninstall jest @jest/globals jest-mock
rm jest.config.js
# 2. Install Vitest
npm install --save-dev vitest @vitest/ui
# 3. Create vitest.config.ts
cat > vitest.config.ts <<EOF
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
environment: 'node',
include: ['**/*.test.ts', '**/*.spec.ts'],
coverage: {
provider: 'v8',
reporter: ['text', 'json', 'html'],
exclude: ['node_modules/', 'dist/', '**/*.test.ts']
},
globals: true,
testTimeout: 30000
}
});
EOF
# 4. Update package.json
npm pkg set scripts.test="vitest"
npm pkg set scripts.test:ui="vitest --ui"
npm pkg set scripts.test:coverage="vitest --coverage"
# 5. Run tests
npm test
```
### Convert Test Files
Use this script to batch convert Jest tests to Vitest:
```typescript
// scripts/convert-tests.ts
import fs from 'fs';
import path from 'path';
import { glob } from 'glob';
async function convertJestToVitest(filePath: string) {
let content = fs.readFileSync(filePath, 'utf-8');
// Update imports
content = content.replace(
/import\s+{\s*([^}]+)\s*}\s+from\s+['"]@jest\/globals['"]/g,
"import { $1 } from 'vitest'"
);
content = content.replace(
/import\s+{\s*mock\s*}\s+from\s+['"]jest-mock['"]/g,
"import { vi } from 'vitest'"
);
// Replace mock with vi
content = content.replace(/\bmock\(/g, 'vi.fn(');
// Save converted file
fs.writeFileSync(filePath, content);
console.log(`Converted: ${filePath}`);
}
async function main() {
const testFiles = await glob('**/*.test.{js,ts}', {
ignore: ['node_modules/**']
});
for (const file of testFiles) {
await convertJestToVitest(file);
}
console.log(`Converted ${testFiles.length} test files`);
}
main();
```
Run conversion:
```bash
npx ts-node scripts/convert-tests.ts
```
---
## Rollback Plan
If migration fails, use this rollback procedure:
### Quick Rollback
```bash
# 1. Restore v2 package.json
cp package.json.v2.backup package.json
cp package-lock.json.v2.backup package-lock.json
# 2. Restore node_modules
rm -rf node_modules
cp -r node_modules.v2.backup node_modules
# 3. Restore configuration
cp v2-config-backup.json ~/.claude-flow/config.json
# 4. Restore memory
npx agentic-flow@2.x memory import ./v2-memory-backup.json
# 5. Verify v2 works
npx agentic-flow --version # Should show v2.x.x
npx agentic-flow --agent coder --task "Test rollback"
```
### Full Rollback
```bash
# 1. Uninstall v3 completely
npm uninstall agentic-flow
npm uninstall @claude-flow/security
npm uninstall @claude-flow/memory
npm uninstall @claude-flow/swarm
npm uninstall @claude-flow/integration
npm uninstall @claude-flow/performance
npm uninstall agentdb
npm uninstall @ruvector/attention
npm uninstall @ruvector/sona
# 2. Restore entire v2 environment
cp -r ~/.claude-flow.v2.backup ~/.claude-flow
rm -rf node_modules
cp package.json.v2.backup package.json
cp package-lock.json.v2.backup package-lock.json
# 3. Reinstall v2
npm install
# 4. Verify
npx agentic-flow --version
npx agentic-flow --list
```
---
## Common Issues
### Issue 1: Node.js Version Mismatch
**Symptoms**:
```
Error: Claude Flow v3 requires Node.js 20.x or higher
Current version: v18.x.x
```
**Solution**:
```bash
# Install Node.js 20.x using nvm
nvm install 20
nvm use 20
nvm alias default 20
# Verify
node --version # Should be v20.x.x
# Reinstall v3
rm -rf node_modules package-lock.json
npm install
```
### Issue 2: Memory Migration Fails
**Symptoms**:
```
Error: Failed to migrate v2 memory to AgentDB
AgentDB not initialized
```
**Solution**:
```bash
# 1. Initialize AgentDB manually
npx @claude-flow/memory init --backend agentdb --force
# 2. Create data directory
mkdir -p ./data/agentdb
# 3. Import v2 memory with verbose logging
npx @claude-flow/memory import ./v2-memory-backup.json \
--format v2 \
--verbose \
--continue-on-error
# 4. Verify
npx @claude-flow/memory stats
```
### Issue 3: Security Validation Errors
**Symptoms**:
```
SecurityError: Input validation failed
Path traversal detected: ../../../etc/passwd
```
**Solution**:
```bash
# 1. Review security configuration
cat ~/.claude-flow/config.json | grep -A 10 security
# 2. Update allowedDirectories
npx @claude-flow/security configure \
--allowed-dirs "./src/,./tests/,./data/" \
--blocked-patterns "../,~/,/etc/,/tmp/"
# 3. Validate paths
npx @claude-flow/security check-paths --fix
# 4. Re-run with strict mode disabled (temporary)
export CLAUDE_FLOW_SECURITY_STRICT=false
```
### Issue 4: Vitest Test Failures
**Symptoms**:
```
Error: Cannot find module '@jest/globals'
```
**Solution**:
```bash
# 1. Remove Jest completely
npm uninstall jest @jest/globals jest-mock
rm jest.config.js
# 2. Install Vitest
npm install --save-dev vitest @vitest/ui
# 3. Convert test imports
find . -name "*.test.ts" -exec sed -i \
's/@jest\/globals/vitest/g' {} +
# 4. Update mocks
find . -name "*.test.ts" -exec sed -i \
's/jest-mock/vitest/g' {} +
find . -name "*.test.ts" -exec sed -i \
's/mock(/vi.fn(/g' {} +
# 5. Run tests
npm test
```
### Issue 5: Module Import Errors
**Symptoms**:
```
Error: Cannot find module '@claude-flow/security'
Module not found
```
**Solution**:
```bash
# 1. Install all v3 modules
npm install @claude-flow/security@latest
npm install @claude-flow/memory@latest
npm install @claude-flow/swarm@latest
npm install @claude-flow/integration@latest
npm install @claude-flow/performance@latest
# 2. Clear npm cache
npm cache clean --force
# 3. Reinstall node_modules
rm -rf node_modules package-lock.json
npm install
# 4. Verify modules
npm list @claude-flow/security
npm list @claude-flow/memory
```
### Issue 6: Platform-Specific Errors
#### Windows: PowerShell Execution Policy
```powershell
# Error
npx : File cannot be loaded because running scripts is disabled
# Solution
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```
#### macOS: Gatekeeper Blocking
```bash
# Error
"npx" cannot be opened because the developer cannot be verified
# Solution
xattr -d com.apple.quarantine /path/to/npx
spctl --add --label "Claude Flow" /path/to/npx
```
#### Linux: Permission Denied
```bash
# Error
EACCES: permission denied, access '/usr/local/lib/node_modules'
# Solution
sudo chown -R $USER:$USER /usr/local/lib/node_modules
sudo chown -R $USER:$USER ~/.npm
```
---
## Post-Migration Checklist
- [ ] v3 installed and running (`npx agentic-flow --version` shows 3.0.0-alpha.1)
- [ ] All 10 @claude-flow modules installed
- [ ] Configuration migrated to v3 format
- [ ] Memory data imported into AgentDB
- [ ] Security audit passed
- [ ] All tests passing with Vitest
- [ ] Performance benchmarks meet targets
- [ ] Platform-specific features working (Windows/macOS/Linux)
- [ ] Environment variables updated
- [ ] Documentation updated
- [ ] Team trained on v3 changes
- [ ] Rollback plan tested and ready
---
## Getting Help
### Resources
- **Documentation**: https://github.com/ruvnet/agentic-flow/tree/v3/docs
- **GitHub Issues**: https://github.com/ruvnet/agentic-flow/issues
- **ADR Reference**: /workspaces/claude-flow/v3/docs/adr/
- **Examples**: /workspaces/claude-flow/v3/examples/
### Support Channels
- **Bug Reports**: Open issue with `migration` label
- **Questions**: Open discussion on GitHub
- **Security Issues**: Email security@example.com
### Migration Assistance
If you encounter issues not covered in this guide:
1. **Collect diagnostic information**:
```bash
npx agentic-flow diagnose --output diagnostics.json
npx @claude-flow/security audit --report security-report.json
```
2. **Create detailed issue**:
- Include Node.js version
- Include OS and platform
- Attach diagnostics.json
- Describe steps to reproduce
- Include error logs
3. **Try safe mode**:
```bash
export CLAUDE_FLOW_SAFE_MODE=true
npx agentic-flow --agent coder --task "Test safe mode"
```
---
## Summary
**Migration Benefits**:
- ✅ 2.49x-7.47x faster with Flash Attention
- ✅ 150x-12,500x faster vector search
- ✅ 83.1% memory reduction
- ✅ Security-first design (CVE fixes)
- ✅ Clean modular architecture
- ✅ 10x faster testing with Vitest
- ✅ Cross-platform support
**Migration Time**:
- Small projects: 1-2 hours
- Medium projects: 4-8 hours
- Large projects: 1-2 days
**Recommended Approach**:
1. Start with test environment
2. Follow step-by-step guide
3. Validate each module
4. Test thoroughly before production
5. Keep v2 backup for 30 days
**Next Steps**:
1. Complete migration using this guide
2. Run full test suite
3. Monitor performance improvements
4. Train team on v3 features
5. Update documentation
6. Plan v3.0.0-beta upgrade
---
**Happy Migrating! Welcome to Claude Flow v3!** 🚀