- Unified embedding system with single EmbeddingManager
- Q8 model support with 75% smaller footprint (23MB vs 90MB)
- Intelligent precision auto-selection based on environment
- Clean cached embeddings with TTL and memory management
- Zero-config setup with smart defaults
- Complete storage structure documentation
- Removed legacy worker and hybrid managers
- Streamlined model configuration and precision management
Major enhancements for type safety and developer experience:
- Add BrainyTypes static API for type management and AI-powered suggestions
- Implement strict type validation for all 31 NounType categories
- Remove dangerous generic add() method that bypassed type safety
- Add intelligent type inference with confidence scoring
- Provide helpful error messages with typo suggestions using Levenshtein distance
- Update all internal code, examples, and documentation to use typed methods
- Enhance CLI with new type management commands (types, suggest, validate)
Breaking changes:
- Remove deprecated add() method - use addNoun() with explicit type parameter
- All addNoun() calls now require explicit type as second parameter
This release significantly improves type safety across the entire system while
maintaining backward compatibility for properly typed method calls.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Moved strategy and planning documents out of repository
- Added .strategy/ to .gitignore for private documents
- These files will be removed from git history in next step
- Changed confusing 'dtype' to 'precision' for model variant selection
- Fixed Q8 quantized model loading in transformers.js pipeline
- Added proper model file detection for q8 vs fp32 models
- Updated all references across codebase to use new parameter
- Maintains backward compatibility while providing clearer API
Changed default dtype from q8 to fp32 across all embedding implementations:
- embedding.ts: Default dtype changed to fp32
- worker-embedding.ts: Use fp32 for consistency
- universal-memory-manager.ts: Use fp32 for consistency
- lightweight-embedder.ts: Use fp32 for consistency
- hybridModelManager.ts: Use fp32 for all configurations
This ensures we use the exact same model (model.onnx) everywhere,
maintaining data compatibility and avoiding 404 errors for quantized models.
Models should download automatically when not present locally. Fixed the
environment variable check to only block downloads when explicitly set to 'false'
rather than blocking when undefined.
- Replace hardcoded version string with dynamic reading from package.json
- Add version caching for performance
- Export getBrainyVersion function from main index
- Ensures version stays automatically synchronized with releases
CRITICAL ARCHITECTURAL FIX:
- Change node-worker strategy to node-direct for ONNX compatibility
- Use single model instance on main thread instead of worker pool
- Prevents HandleScope V8 API locking errors in Node.js 22/24
- Reduces memory usage from 360MB+ to ~90MB (single model vs 4 workers)
- Maintains async operations using native transformers.js capabilities
Root Cause: ONNX runtime cannot properly handle V8 isolate context
switching between worker threads, causing fatal HandleScope errors.
Solution: Keep ONNX operations in main V8 isolate while preserving
all existing async functionality and performance.
Tested: Multiple concurrent addNoun operations work without errors.
- Update package.json engines to require Node.js >=22.0.0
- Add .nvmrc file specifying Node.js 22
- Document Node.js version requirements in README
- Add warning about Node.js 24 ONNX runtime compatibility issues
- Provide clear guidance for production deployments
This addresses known crashes during inference operations on Node.js 24
while ensuring maximum stability with the latest LTS version.
### Features
* restore listAugmentations() functionality and add metadata support ([7e9fe22](7e9fe22))
* enable IntelligentVerbScoring by default as core functionality ([134add7](134add7))
### Bug Fixes
* fix listAugmentations() to return actual augmentation data instead of empty array
* enable IntelligentVerbScoring by default for better relationship quality out of the box
* add category and description metadata to augmentation classes
* enhance augmentation discovery and management capabilities
### BREAKING CHANGES
* IntelligentVerbScoring is now enabled by default (can still be explicitly disabled)
Prevent planning and instruction files from being committed to the repository.
These files are for development workflow only and should not be tracked.
- Change category from 'premium' to 'core' - this is essential relationship quality improvement
- Enable by default (enabled: true) instead of disabled by default
- Fix contradictory documentation that claimed "enabled by default" but implemented "disabled by default"
- Update reference condition to handle new default behavior properly
- Update comment from "Enhancement features" to "Core relationship quality features"
This aligns the implementation with the documented intent and provides better
relationship quality out of the box without requiring explicit configuration.
- Fix listAugmentations() to return actual augmentation data instead of empty array
- Add category and description metadata to BaseAugmentation class
- Add getInfo() method to AugmentationRegistry for detailed augmentation listing
- Update augmentation classes with proper categorization (internal/core/premium)
- Enhance augmentation discovery and management capabilities
This fixes the broken augmentation listing API and provides better visibility
into installed augmentations with their status and metadata.
- Add Neural API section to README with clustering, similarity, and analysis features
- Create comprehensive Neural API guide with practical examples
- Document all neural methods including clusters(), similar(), neighbors(), hierarchy()
- Include real-world use cases for feedback analysis and content recommendation
- Provide performance tips and error handling guidance
- Fix transform functions in field patterns to return strings
- Update verb type matching with confidence parameter
- Fix context property visibility in augmentation class
- Remove icon configuration references for clean build
- Implements intelligent display fields with AI-generated titles and descriptions
- Leverages existing IntelligentTypeMatcher for semantic type detection
- Adds lazy computation with LRU caching for zero performance impact
- Enhances CLI with clean, minimal formatting (no visual clutter)
- Provides method-based API (getDisplay()) to avoid namespace conflicts
- Maintains 100% backward compatibility with existing code
- Enables by default with complete isolation architecture
- Includes comprehensive tests and documentation
The augmentation transforms search results and data display with smart,
contextual information while maintaining Soulcraft's clean aesthetic.
- Major versions are now manual strategic decisions only
- Even API changes should be minor versions
- Never use BREAKING CHANGE in commits (triggers auto-major)
- Aligns with industry practice (React, Vue, etc)
- Clear guidelines on when to use major/minor/patch
- BREAKING CHANGE only for API changes that break user code
- Internal changes are never breaking changes
- Decision tree for version selection
- Implements automatic fallback chain: CDN → GitHub → Hugging Face
- Adds Soulcraft CDN as primary model source (models.soulcraft.com)
- GitHub release tar.gz extraction as reliable backup
- Zero configuration required - fully automatic
- Guarantees same model (all-MiniLM-L6-v2) across all sources
- 384-dimensional embeddings for data compatibility
- Local caching after first download
- Production-ready with multiple redundancy layers
BREAKING CHANGE: Removed tar-stream dependency, now uses native tar command
BREAKING CHANGE: Remove hard delete option from deleteVerb() for consistent API
- Add complete metadata namespace architecture with O(1) soft delete performance
- Implement periodic cleanup system for old soft-deleted items
- Add restore methods for both nouns and verbs
- Require metadata contracts for all augmentations
- Eliminate namespace collisions with clean separation (_brainy, _augmentations, _audit)
- Optimize index performance using flattened dot-notation for O(1) lookups
- Add comprehensive augmentation safety system with type-safe access control
- Maintain full backward compatibility for existing data
- Add enterprise-grade cleanup with configurable age thresholds and batch processing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
✨ ONE universal import method for everything
- Auto-detects files, URLs, and raw data
- Intelligent noun/verb type matching using embeddings
- Support for JSON, CSV, YAML, and text formats
- Zero configuration required
🧠 Intelligent Type Matching
- Uses semantic embeddings to match 31 noun types
- Automatically detects 40 verb relationship types
- Confidence scores for type predictions
- Caching for improved performance
📦 Import Manager
- Centralized import logic with lazy loading
- Integrates NeuralImportAugmentation for AI processing
- Proper CSV parsing with quote handling
- Basic YAML support
🎯 Simplified API
- brain.import() - ONE method that handles everything
- Auto-detection of URLs and file paths
- Backwards compatible with existing code
- Clean, modern, delightful developer experience
📚 Documentation
- Comprehensive import guide in docs/guides/import-anything.md
- Examples for every format and use case
- Philosophy of simplicity and zero config
✅ Tests
- Full unit test coverage for import functionality
- Type matching tests for all 31 nouns and 40 verbs
- Tests for CSV, YAML, JSON, and text formats
BREAKING CHANGES: None - fully backward compatible
- Rename check-patterns.js to check-patterns.cjs for CommonJS compatibility
- Update package.json to reference .cjs file
- This fixes ES module errors when checking if patterns need rebuild
- Add embeddedPatterns.ts to version control (544KB file)
- Add check-patterns.js script to detect when rebuild is needed
- Modify build scripts to only rebuild patterns when changed
- This avoids memory-intensive pattern embedding on every npm publish
- Patterns rarely change, so this significantly speeds up releases
- Position Brainy as the Universal Knowledge Protocol with Triple Intelligence
- Document all 24 noun types and 40 verb types with industry examples
- Add verb relationship examples to demonstrate graph capabilities
- Emphasize infinite expressiveness and universal interoperability
- Show how standardized types enable tool and AI model compatibility
- Version 2.0.2