Skip to main content

Changelog

All notable changes to the Vaultys Peer SDK will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]​

Added​

  • Multiple browser storage provider implementations
    • OPFSStorageProvider for high-performance native file system access
    • IndexedDBStorageProvider for structured data storage with wide browser support
    • BrowserStorageProvider with automatic backend selection (OPFS β†’ IndexedDB β†’ LocalStorage)
  • Identity profile management for CLI application
    • Support for multiple named identities with --as parameter
    • Persistent identity storage across sessions
    • Profile switching capabilities
  • Interactive "talk mode" for CLI chat application
    • WhatsApp-like continuous chat interface
    • Message history display when entering talk mode
    • File sending within talk mode using /file command
    • Ctrl+C to exit talk mode
  • Nickname support throughout the CLI application
    • Use nicknames instead of DIDs in all commands
    • Tab auto-completion for nicknames
    • Automatic DID resolution from nicknames
  • Web chat example application
    • WhatsApp-like responsive interface
    • Real-time messaging with WebRTC
    • File sharing capabilities
    • Contact management with online/offline status
    • Browser notifications for new messages
    • Persistent storage using browser storage providers
  • Comprehensive documentation
    • Getting started guides
    • API reference documentation
    • Storage provider documentation
    • Browser and Node.js usage guides
    • Example applications documentation

Changed​

  • Improved CLI user interface with better visual formatting
  • Enhanced message display with timestamps and formatting
  • Better error messages and user feedback
  • Upgraded storage provider interface for consistency

Fixed​

  • Identity persistence in CLI application
  • Storage provider initialization issues
  • Message delivery reliability improvements

[1.0.0] - 2024-01-XX​

Added​

  • Initial release of Vaultys Peer SDK
  • Core PeerService for managing P2P connections
  • VaultysPeer class for WebRTC peer connections
  • Message sending and receiving capabilities
  • Contact management system
  • Group communication support
  • Event-driven architecture with EventEmitter
  • Storage provider interface with multiple implementations
  • NodeFSStorageProvider for Node.js file system storage
  • MemoryStorageProvider for temporary in-memory storage
  • Support for text and file messages
  • Automatic reconnection logic
  • Health check system for peer connections
  • Message history with pagination
  • TypeScript support with full type definitions
  • Cross-platform support (Browser and Node.js)
  • PeerJS integration for signaling
  • WebRTC data channels for communication

Features​

  • Peer-to-Peer Communication: Direct connections between peers using WebRTC
  • Message Types: Support for text, file, room, and system messages
  • Storage Abstraction: Pluggable storage providers for different environments
  • Event System: Comprehensive event system for real-time updates
  • Contact Management: Add, remove, and manage contacts with metadata
  • Group Support: Create and manage group conversations
  • File Sharing: Send files directly between peers
  • Auto Reconnection: Automatic reconnection on connection loss
  • Message Persistence: Store and retrieve message history
  • Cross-Platform: Works in both browser and Node.js environments

Security​

  • DID-based identity system
  • Peer-to-peer encryption via WebRTC
  • No central server for message storage
  • Local-first data storage

Developer Experience​

  • Simple API with setupVaultysPeerSDK helper
  • Comprehensive TypeScript types
  • Extensive documentation
  • Example applications
  • Debug mode for development

[0.9.0-beta] - 2023-12-XX​

Added​

  • Beta release for testing
  • Basic peer-to-peer connectivity
  • Simple message exchange
  • Initial storage provider interface
  • Basic contact management

Known Issues​

  • Limited browser support
  • No automatic reconnection
  • Basic error handling
  • Limited documentation

[0.1.0-alpha] - 2023-11-XX​

Added​

  • Alpha release for internal testing
  • Proof of concept for P2P communication
  • Basic WebRTC implementation
  • Simple message protocol

Version Guidelines​

Version Numbering​

  • Major (X.0.0): Breaking API changes
  • Minor (0.X.0): New features, backward compatible
  • Patch (0.0.X): Bug fixes, backward compatible

Breaking Changes Policy​

  • Breaking changes will be documented with migration guides
  • Deprecation warnings for at least one minor version
  • Clear upgrade path documentation

Supported Versions​

  • Latest major version: Full support
  • Previous major version: Security updates for 6 months
  • Older versions: No support

Deprecation Policy​

  1. Feature marked as deprecated with warning
  2. Alternative provided in documentation
  3. Removal in next major version
  4. Migration guide provided

Upgrade Instructions​

From 0.x to 1.0​

  1. Update package: npm install @vaultys/peer-sdk@latest
  2. Update imports if using old paths
  3. Review breaking changes in storage provider interface
  4. Test message sending/receiving functionality
  5. Update event listener names if needed

Storage Provider Migration​

If using custom storage providers, update to new interface:

// Old interface
class OldProvider {
async store(key, value) { }
async retrieve(key) { }
}

// New interface
class NewProvider {
async write(path, data) { }
async read(path) { }
async delete(path) { }
async exists(path) { }
// ... additional methods
}

Reporting Issues​

Found a bug or have a feature request? Please open an issue on our GitHub repository.

When reporting bugs, please include:

  • SDK version
  • Browser/Node.js version
  • Operating system
  • Steps to reproduce
  • Expected behavior
  • Actual behavior
  • Error messages/stack traces

Contributing​

We welcome contributions! Please see our Contributing Guide for details.


For more information, visit the documentation