This guide helps existing RecCall users migrate to the new plugin-based architecture with enterprise features.
RecCall has been refactored from a monolithic implementation to a universal AI context engine with plugin architecture. This migration brings significant improvements while maintaining backward compatibility for core functionality.
- Plugin Architecture: Easy development of new platform integrations
- Dependency Injection: Enterprise-ready IoC container
- Telemetry: Structured logging and performance monitoring
- Browser Extensions: Perplexity and Sora integrations
- Enhanced Security: Input validation, encryption, and audit logging
- Performance: Multi-layer caching and atomic operations
- New Import Paths: Core engine now uses DI container
- Async Initialization: All adapters require async initialization
- Enhanced Error Handling: Typed error classes with specific codes
- Configuration Changes: New configuration schema with validation
# Remove old installation
rm -rf ~/.reccall
# Install new version
curl -sfL https://reccaller.ai/install.sh | sh -cd ~/.reccall
git pull origin main
npm install
npm run build# Old commands still work
reccall rec my-shortcut "My context"
reccall call my-shortcut
reccall list# Same commands, enhanced functionality
reccall rec my-shortcut "My context"
reccall call my-shortcut
reccall list
# New commands available
reccall search "react"
reccall install sync-main
reccall list-repo{
"mcpServers": {
"reccall": {
"command": "node",
"args": ["/path/to/reccall/dist/index.js"]
}
}
}{
"mcpServers": {
"reccall": {
"command": "node",
"args": ["/path/to/reccall/dist/index.js"]
}
}
}Note: MCP configuration remains the same, but the server now has enhanced capabilities.
- Extension automatically updates
- No manual configuration required
- Extension automatically updates
- New features available in Command Palette
- Enhanced error handling and telemetry
# Old integration script
source ~/.warp/reccall-warp.sh# Same integration script, enhanced functionality
source ~/.warp/reccall-warp.shimport { CoreEngine } from 'reccall/core';
const engine = new CoreEngine();
await engine.initialize();import { createCoreEngine } from 'reccall/core';
const engine = await createCoreEngine();
// Engine is already initializedclass CustomStorage {
async record(shortcut: string, context: string): Promise<void> {
// Implementation
}
}import { IContextStorage, ShortcutId } from 'reccall/core';
class CustomStorage implements IContextStorage {
async record(shortcut: ShortcutId, context: string): Promise<void> {
// Implementation with type safety
}
// Implement all required methods
async call(shortcut: ShortcutId): Promise<string> { /* ... */ }
async list(): Promise<Shortcut[]> { /* ... */ }
async update(shortcut: ShortcutId, context: string): Promise<void> { /* ... */ }
async delete(shortcut: ShortcutId): Promise<void> { /* ... */ }
async purge(): Promise<void> { /* ... */ }
async search(query: string): Promise<Shortcut[]> { /* ... */ }
}
// Register with DI container
import { diContainer, TOKENS } from 'reccall/core';
diContainer.register(TOKENS.CONTEXT_STORAGE, CustomStorage);class CustomAdapter {
async recordShortcut(): Promise<void> {
// Implementation
}
}import { IPlatformAdapter, PlatformContext, PlatformCapabilities } from 'reccall/core';
class CustomAdapter implements IPlatformAdapter {
readonly platform = 'custom-platform';
readonly capabilities: PlatformCapabilities = {
canRecord: true,
canCall: true,
canList: true,
canUpdate: true,
canDelete: true,
canPurge: true,
supportsRepository: true
};
async initialize(context: PlatformContext): Promise<void> {
// Platform-specific initialization
}
async recordShortcut(): Promise<{ shortcut: ShortcutId; context: string } | null> {
// Implementation with proper return type
}
// Implement all required methods
async callShortcut(shortcut: ShortcutId): Promise<void> { /* ... */ }
async listShortcuts(): Promise<void> { /* ... */ }
async updateShortcut(shortcut: ShortcutId): Promise<void> { /* ... */ }
async deleteShortcut(shortcut: ShortcutId): Promise<void> { /* ... */ }
async purgeShortcuts(): Promise<void> { /* ... */ }
async installRecipe(repositoryUrl: RepositoryUrl, shortcut: ShortcutId): Promise<void> { /* ... */ }
async listRecipes(repositoryUrl: RepositoryUrl): Promise<void> { /* ... */ }
async searchRecipes(repositoryUrl: RepositoryUrl, query: string): Promise<void> { /* ... */ }
async reloadStarterPack(): Promise<void> { /* ... */ }
}# Old environment variables
RECCALL_STORAGE_PATH=~/.reccall.json
RECCALL_REPO_URL=https://contexts.reccaller.ai# New environment variables
RECCALL_STORAGE_PATH=~/.reccall.json
RECCALL_REPO_URL=https://contexts.reccaller.ai
RECCALL_CACHE_TTL=3600
RECCALL_CACHE_DIRECTORY=~/.reccall/cache
RECCALL_ENABLE_TELEMETRY=true
RECCALL_ENABLE_REPOSITORY=true{
"storagePath": "~/.reccall.json",
"repositoryUrl": "https://contexts.reccaller.ai"
}{
"storagePath": "~/.reccall.json",
"repositoryUrl": "https://contexts.reccaller.ai",
"cacheTtl": 3600,
"cacheDirectory": "~/.reccall/cache",
"enableTelemetry": true,
"enableRepository": true
}- Download the extension from
src/adapters/perplexity/extension/ - Load unpacked extension in Chrome/Firefox
- Visit Perplexity AI website
- Look for the RecCall button
- Click the RecCall button to open shortcuts panel
- Use existing shortcuts or create new ones
- Inject context into AI search queries
- Download the extension from
src/adapters/sora/extension/ - Load unpacked extension in Chrome/Firefox
- Visit OpenAI Sora website
- Look for the RecCall button
- Click the RecCall button to open video context panel
- Use video generation prompt shortcuts
- Copy context to clipboard for easy pasting
Solution: Update import paths to use new module structure
// Old
import { CoreEngine } from 'reccall/core';
// New
import { createCoreEngine } from 'reccall/core';Solution: Use factory functions instead of direct instantiation
// Old
const engine = new CoreEngine();
await engine.initialize();
// New
const engine = await createCoreEngine();Solution: Use branded types for type safety
// Old
const shortcut: string = 'my-shortcut';
// New
const shortcut: ShortcutId = 'my-shortcut' as ShortcutId;- Existing shortcuts are automatically migrated
- No data loss during migration
- Enhanced validation applied to existing data
- Old configuration is automatically upgraded
- New configuration options use defaults
- Manual configuration update recommended
Solution: This is expected due to enhanced initialization
- First startup may be slower
- Subsequent startups use caching
- Performance monitoring helps identify bottlenecks
Solution: Enhanced caching uses more memory
- Multi-layer caching improves performance
- Memory usage is optimized for enterprise use
- Can be configured via environment variables
If you need to rollback to the previous version:
# Backup current data
cp ~/.reccall.json ~/.reccall.json.backup
# Revert to previous version
cd ~/.reccall
git checkout v0.9.0
npm install
npm run buildIf you need to recover data from the new version:
# Restore from backup
cp ~/.reccall.json.backup ~/.reccall.json
# Verify data integrity
reccall list- Documentation: Migration Guide
- API Reference: API Reference
- Plugin Development: Plugin Development Guide
- GitHub Issues: Report Issues
- Discord: Community Support
- Email: support@reccaller.ai
- Enterprise Documentation: Enterprise Deployment Guide
- Security Guide: Security Best Practices
- Enterprise Email: enterprise@reccaller.ai
- Backup existing shortcuts data
- Backup configuration files
- Review breaking changes
- Plan migration timeline
- Update installation
- Update CLI usage
- Update MCP configuration
- Update VSCode extension
- Update Warp integration
- Test all functionality
- Verify data integrity
- Test new features
- Update documentation
- Train team members
- Monitor performance
- Report issues
- Plugin Architecture: Easy extension development
- Enterprise Features: Production-ready deployment
- Browser Extensions: AI tool integrations
- Performance: Sub-millisecond operations
- Type Safety: Branded types prevent errors
- Error Handling: Comprehensive error classes
- Telemetry: Performance monitoring
- Testing: Enhanced testability
- Security: Input validation and encryption
- Compliance: GDPR and SOC2 support
- Monitoring: Comprehensive observability
- Scalability: Multi-tenant architecture
After successful migration:
- Explore New Features: Try browser extensions and new commands
- Develop Plugins: Create custom platform integrations
- Enterprise Deployment: Deploy with Docker/Kubernetes
- Contribute: Help improve the platform
- Stay Updated: Follow releases for new features
Migration completed successfully! Welcome to RecCall's universal AI context engine with enterprise-grade plugin architecture.