Future Enhancements
Future Enhancements
Section titled “Future Enhancements”This document describes planned future enhancements for Toss. These features are not currently in the MVP scope but are documented for future implementation.
22. Clipboard Streaming
Section titled “22. Clipboard Streaming”Overview
Section titled “Overview”Real-time clipboard streaming for rapid clipboard changes. Instead of sending complete clipboard content on each change, stream incremental updates.
Design Considerations
Section titled “Design Considerations”Protocol Design:
- Streaming protocol over QUIC or WebSocket
- Change rate limiting to prevent spam
- Conflict resolution for simultaneous changes
- Optimize for low latency (under 100ms)
Implementation Approach:
- Detect rapid clipboard changes (e.g., typing)
- Buffer changes and send in batches
- Use delta compression for text changes
- Implement backpressure handling
Files to Create:
rust_core/src/protocol/streaming.rs- Streaming protocolrust_core/src/network/streaming.rs- Streaming transportflutter_app/lib/src/core/services/streaming_service.dart- Flutter streaming client
Dependencies:
- Core sync working
- Network protocol stable
- Performance optimization needed
23. Selective Sync
Section titled “23. Selective Sync”Overview
Section titled “Overview”Allow users to choose which devices receive clipboard updates. Enable per-device sync settings and device groups.
Design Considerations
Section titled “Design Considerations”UI Components:
- Device selection UI in settings
- Per-device sync toggle
- Device groups/tags
- Sync filters (text only, images only, etc.)
Implementation Approach:
- Add
sync_enabledflag to device storage - Update network broadcast to filter by device settings
- Add device groups/tags to storage schema
- Create UI for managing sync preferences
Files to Create:
rust_core/src/storage/device_storage.rs- Add sync settingsflutter_app/lib/src/features/settings/device_sync_settings.dart- UI componentflutter_app/lib/src/core/models/device_sync_preferences.dart- Data model
Dependencies:
- Device management (#2)
- Settings UI
- Network broadcast logic
24. Team/Organization Support
Section titled “24. Team/Organization Support”Overview
Section titled “Overview”Shared clipboard groups for teams and organizations. Enable multiple users to share clipboard within a team.
Design Considerations
Section titled “Design Considerations”Data Model:
- Team/Organization entities
- Role-based access (admin, member, viewer)
- Group management
- Invitation system
Implementation Approach:
- Design team/organization database schema
- Implement group management API
- Add role-based access control
- Update relay server for group messaging
- Create team UI components
Files to Create:
rust_core/src/storage/team_storage.rs- Team storagerust_core/src/crypto/team_auth.rs- Team authenticationrelay_server/src/api/teams.rs- Team API endpointsflutter_app/lib/src/features/teams/- Team UI
Dependencies:
- Core features complete
- Relay server
- Authentication system
25. Browser Extension
Section titled “25. Browser Extension”Overview
Section titled “Overview”Web-based clipboard access via browser extension. Enable clipboard sync from web browsers.
Design Considerations
Section titled “Design Considerations”Architecture:
- Chrome extension (Manifest V3)
- Firefox extension (WebExtensions API)
- WebSocket connection to relay server
- Handle browser clipboard API limitations
Implementation Approach:
- Design extension architecture
- Implement Chrome extension
- Implement Firefox extension
- Add WebSocket client for relay connection
- Handle browser clipboard restrictions
Files to Create:
browser_extension/chrome/- Chrome extensionbrowser_extension/firefox/- Firefox extensionbrowser_extension/shared/- Shared code
Dependencies:
- Relay server
- WebSocket support
- Browser API knowledge
26. Conflict Resolution
Section titled “26. Conflict Resolution”Overview
Section titled “Overview”Handle simultaneous clipboard changes from multiple devices. Resolve conflicts when multiple devices change clipboard at the same time.
Design Considerations
Section titled “Design Considerations”Resolution Strategies:
- Timestamp-based (last write wins)
- User preference (device priority)
- Manual resolution UI
- Conflict notifications
Implementation Approach:
- Design conflict detection algorithm
- Implement timestamp-based resolution
- Add user preference for resolution strategy
- Create conflict notification UI
- Allow manual conflict resolution
Files to Create:
rust_core/src/protocol/conflict.rs- Conflict resolutionflutter_app/lib/src/core/services/conflict_service.dart- Conflict handlingflutter_app/lib/src/features/conflicts/- Conflict UI
Dependencies:
- Core sync working
- Network events
- UI components
27. Content Compression
Section titled “27. Content Compression”Overview
Section titled “Overview”Reduce bandwidth for large clipboard content. Compress clipboard data before transmission.
Design Considerations
Section titled “Design Considerations”Compression Library:
- Use zstd (fast, good compression ratio)
- Compress only large content (>1MB)
- Add compression settings
- Optimize for mobile networks
Implementation Approach:
- Add zstd dependency
- Implement compression for large content
- Add compression settings to UI
- Test compression ratios
- Optimize for mobile networks
Files to Create:
rust_core/src/protocol/compression.rs- Compression utilitiesrust_core/Cargo.toml- Add zstd dependencyflutter_app/lib/src/features/settings/compression_settings.dart- UI
Dependencies:
- Message protocol
- Settings system
Implementation Priority
Section titled “Implementation Priority”These enhancements are not in the current MVP scope. Priority would be:
- Content Compression (#27) - Most practical, immediate benefit
- Selective Sync (#23) - User-requested feature
- Conflict Resolution (#26) - Important for multi-device scenarios
- Clipboard Streaming (#22) - Performance optimization
- Browser Extension (#25) - Expands platform support
- Team/Organization Support (#24) - Enterprise feature, most complex
- All future enhancements depend on core MVP features being stable
- Some features may require relay server updates
- UI components should follow existing design patterns
- Consider backward compatibility when implementing