brainy/CHANGELOG.md

16 KiB

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

0.48.0 (2025-08-06)

Added

  • add GPU acceleration for embeddings with smart device auto-detection (56c5641)

0.47.0 (2025-08-06)

⚠ BREAKING CHANGES

  • Complete migration from TensorFlow.js to Transformers.js for embedding generation

This is a major architectural change that replaces TensorFlow.js (USE model) with Transformers.js (all-MiniLM-L6-v2) for significantly improved performance and reduced complexity.

Key Changes:

  • Replace TensorFlow.js Universal Sentence Encoder with Transformers.js all-MiniLM-L6-v2
  • Reduce model size from 525MB to 87MB (83% reduction)
  • Reduce embedding dimensions from 512 to 384 (faster distance calculations)
  • Remove TensorFlow.js Float32Array patching (caused ONNX conflicts)
  • Implement smart bundled model detection for offline operation
  • Add explicit model download script for Docker deployments
  • Remove complex environment variables in favor of simple configuration
  • Update all distance functions to use optimized pure JavaScript
  • Remove TensorFlow-specific utilities and type definitions

Performance Improvements:

  • Model loading: 5x faster (87MB vs 525MB)
  • Memory usage: 75% reduction (~200-400MB vs ~1.5GB)
  • Distance calculations: Faster pure JS vs GPU overhead for small vectors
  • Cold start performance: Significantly improved

Files Changed:

  • Updated package.json: New dependencies, simplified scripts
  • Rewrote src/utils/embedding.ts: Complete Transformers.js implementation
  • Updated src/utils/distance.ts: Optimized JavaScript distance functions
  • Simplified src/setup.ts: Removed TensorFlow-specific patching
  • Simplified src/utils/textEncoding.ts: Only Node.js TextEncoder/Decoder patches
  • Deleted src/utils/robustModelLoader.ts: TensorFlow-specific loader
  • Deleted src/types/tensorflowTypes.ts: TensorFlow type definitions
  • Added scripts/download-models.cjs: Docker-compatible model downloader
  • Added comprehensive documentation: README.md, OFFLINE_MODELS.md, analysis docs

Testing:

  • All 19 tests passing
  • Removed test mocking in favor of real implementation testing
  • Updated test environment for Transformers.js compatibility
  • Performance tests validate improved efficiency

This migration resolves production issues with Docker egress limitations and provides a more robust, performant foundation for vector operations.

  • feat!: migrate from TensorFlow.js to Transformers.js with ONNX Runtime (79b1d5e)

Fixed

  • resolve test failures and browser environment issues (c368864)

0.46.0 (2025-08-06)

Fixed

  • improve local model loading with USE-lite tokenizer support (5eaf306)

Added

  • add brainy-models-package v0.8.0 with USE-lite model (334b469)

Changed

  • add models-download to gitignore (6e31a3c)

0.45.0 (2025-08-06)

Fixed

  • improve model loading reliability with better error handling and updated fallback URLs (933f305)

0.44.0 (2025-08-05)

Fixed

  • include all JavaScript modules in npm package (b37debb)

0.43.0 (2025-08-05)

⚠ BREAKING CHANGES

  • Models are no longer bundled with the package. They are now loaded dynamically from CDN or custom paths.

Added

  • package: add initial package.json for test consumer setup (f50e220)
  • reliability: implement automatic offline model detection for production (042a545)
  • test: add test script for BrainyData functionality (b7859e4)

Documentation

  • readme: add security and enterprise benefits for offline models (5b022cf)
  • readme: improve user engagement flow and add advanced features (2acd2e0)

Changed

  • clean up deprecated functions and unused code (0214168)
  • clean up project for release (d429a62)
  • gitignore: add node_modules directory for test consumer to .gitignore (45eef34)
  • gitignore: ignore npm package artifacts (6ed3ac5)
  • release: 1.0.0 (53edf16)
  • simplify build system and improve model loading flexibility (3d4c759)

0.41.0 (2025-08-05)

Added

  • tools: update feature description for clarity (5e15dab)

Fixed

  • security: resolve critical vulnerability in form-data dependency (8450af5)
  • storage: resolve pagination warnings and improve S3 adapter performance (d7a1c1b)

0.40.0 (2025-08-05)

Fixed

  • core: resolve TypeScript compilation errors and test failures (67db734)

0.39.0 (2025-08-04)

Added

  • pagination: implement cursor-based pagination and enhance search caching (0f538f3)

Documentation

  • add comprehensive performance docs and rebrand to Zero-to-Smart™ (80ca8e3)

0.38.0 (2025-08-04)

Documentation

  • add distributed deployment architecture and enhancement proposals (4bb7a9f)
  • add revised distributed implementation plan with practical phases (e3978e5)
  • streamline README for better readability and user engagement (2492fe4)

Added

  • distributed: add distributed mode with multi-instance coordination (8e4b0ef)
  • docs: add S3 migration guide for optimized data transfer strategies (7b4c779)
  • safety: enhance claude-commit with mandatory review and safety features (c20cc39)
  • tools: add claude-commit AI-powered git commit tool (d05e320)
  • tools: propagate safety features to all projects (8854b37)

0.37.0 (2025-08-04)

Fixed

  • build: resolve TypeScript compilation errors in optimization modules (0e2bce1)
  • types: add explicit ArrayBuffer type assertions for compression (7196fe2)
  • types: resolve remaining ArrayBuffer type issues in compression methods (eb8c95e)

Added

  • auto-configuration: implement automatic configuration system for optimal settings (aa64f49)
  • docs: add comprehensive user guides and installation instructions for Brainy (d4dafbf)
  • docs: update README and add large-scale optimizations guide for v0.36.0 (ae01bea)
  • hnsw: implement comprehensive large-scale search optimizations (c39eee6)
  • partitioning: simplify partition strategies and enable auto-tuning of semantic clusters (1015c33)

0.36.0 (2025-08-03)

Changed

  • add CLAUDE.md to .gitignore (4c0b920)

Documentation

  • add guidelines for Conventional Commit format and structured commit messages (f9a8595)

Added

  • add verb and noun metadata handling in storage adapters (9778f1b)
  • refactor verb storage to use HNSWVerb for improved performance (75ccf0f)

0.35.0 (2025-08-02)

0.34.0 (2025-08-02)

Changed

0.33.0 (2025-08-01)

0.32.0 (2025-08-01)

0.31.0 (2025-07-31)

0.30.0 (2025-07-31)

0.29.0 (2025-07-31)

0.28.0 (2025-07-31)

0.27.1 (2025-07-31)

Changed

  • changelog: remove manual changelog update script (72a649e)
  • versioning: switch to standard-version for automated changelog generation (1f6a70d)

[0.26.0] - 2025-07-30

Added

  • Organized documentation structure with docs/ directory
  • Proper CHANGELOG.md for release management
  • Statistics optimizations implemented across all storage adapters
  • In-memory caching of statistics data
  • Batched updates with adaptive flush timing
  • Time-based partitioning for statistics files
  • Error handling and retry mechanisms for statistics operations

Changed

  • Moved technical documentation to docs/technical/
  • Moved development documentation to docs/development/
  • Moved guides to docs/guides/
  • Archived temporary documentation files
  • Refactored BaseStorageAdapter to include shared optimizations
  • Updated FileSystemStorage, MemoryStorage, and OPFSStorage with new statistics handling
  • Improved performance through reduced storage operations
  • Enhanced scalability with time-based partitioning

Fixed

  • Fixed FileSystemStorage constructor path operations issue where path module was used before being fully loaded
  • Deferred path operations to init() method when path module is guaranteed to be available
  • Resolved "Cannot read properties of undefined (reading 'join')" error

Technical Details

  • Added scheduleBatchUpdate() and flushStatistics() methods to BaseStorageAdapter
  • Updated core statistics methods: saveStatistics(), getStatistics(), incrementStatistic(), decrementStatistic(), and updateHnswIndexSize()
  • Maintained backward compatibility with legacy statistics files
  • Added fallback mechanisms for multiple storage locations

[Previous Versions]

For detailed implementation notes and technical summaries of previous versions, see:

  • docs/technical/ - Technical documentation and analysis

How to Update This Changelog

This project now uses standard-version to automatically generate the changelog from commit messages.

Commit Message Format

Follow the Conventional Commits specification for your commit messages:

<type>(<scope>): <description>

[optional body]

[optional footer(s)]

Where <type> is one of:

  • feat: A new feature (maps to Added section)
  • fix: A bug fix (maps to Fixed section)
  • chore: Regular maintenance tasks (maps to Changed section)
  • docs: Documentation changes (maps to Documentation section)
  • refactor: Code changes that neither fix bugs nor add features (maps to Changed section)
  • perf: Performance improvements (maps to Changed section)

Examples:

feat(storage): add new file system adapter
fix(hnsw): resolve index corruption on large datasets
docs(readme): update installation instructions
refactor(core): simplify graph traversal algorithm

Releasing a New Version

To release a new version:

  1. Ensure all changes are committed
  2. Run one of:
    • npm run release (for patch version)
    • npm run release:patch (same as above)
    • npm run release:minor (for minor version)
    • npm run release:major (for major version)
  3. Push changes with tags: git push --follow-tags origin main

The changelog will be automatically updated based on your commit messages.