mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-08-22 07:06:05 +00:00
update
This commit is contained in:
parent
79a44ba546
commit
80f774dd0b
178
CHANGELOG.md
178
CHANGELOG.md
@ -1,178 +0,0 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
## [1.4.0] - 2025-10-15
|
||||
### Fixed
|
||||
- fix: Resolve debug settings bottom sheet crash on some devices (Issue #472)
|
||||
- Fixed IllegalFormatConversionException in DebugSettingsSheet.kt when scrolling through debug settings
|
||||
- Corrected string formatting for debug_target_fpr_fmt and debug_derived_p_fmt string resources
|
||||
- Improved string resource parameter handling for numeric values
|
||||
|
||||
## [0.7.2] - 2025-07-20
|
||||
### Fixed
|
||||
- fix: battery optimization screen content scrollable with fixed buttons
|
||||
|
||||
## [0.7.1] - 2025-07-19
|
||||
|
||||
### Added
|
||||
- feat(battery): add battery optimization management for background reliability
|
||||
|
||||
### Fixed
|
||||
- fix: center align toolbar item in ChatHeader - passed modifier.fillmaxHeight so the content inside the row can actually be centered
|
||||
- fix: update sidebar text to use string resources
|
||||
- fix(chat): cursor location and enhance message input with slash command styling
|
||||
|
||||
### Changed
|
||||
- refactor: remove context attribute at ChatViewModel.kt
|
||||
- Refactor: Migrate MainViewModel to use StateFlow
|
||||
|
||||
### Improved
|
||||
- Use HorizontalDivider instead of deprecated Divider
|
||||
- Use contentPadding instead of padding so items remain fully visible
|
||||
|
||||
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.7]
|
||||
|
||||
### Added
|
||||
- Location services check during app startup with educational UI
|
||||
- Message text selection functionality in chat interface
|
||||
- Enhanced RSSI tracking and unread message indicators
|
||||
- Major Bluetooth connection architecture refactoring with dedicated managers
|
||||
|
||||
### Fixed
|
||||
- **Critical**: Android-iOS message fragmentation compatibility issues
|
||||
- Fixed fragment size (500→150 bytes) and ID generation for cross-platform messaging
|
||||
- Ensures Android can properly communicate with iOS devices
|
||||
- DirectMessage notifications and text copying functionality
|
||||
- Smart routing optimizations (no relay loops, targeted delivery)
|
||||
- Build system compilation issues and null pointer exceptions
|
||||
|
||||
### Changed
|
||||
- Comprehensive dependency updates (AGP 8.10.1, Kotlin 2.2.0, Compose 2025.06.01)
|
||||
- Optimized BLE scan intervals for better battery performance
|
||||
- Reduced excessive logging output
|
||||
|
||||
### Improved
|
||||
- Cross-platform compatibility with iOS and Rust implementations
|
||||
- Connection stability through architectural improvements
|
||||
- Battery performance via scan duty cycling
|
||||
- User onboarding with location services education
|
||||
|
||||
## [0.6]
|
||||
|
||||
### Added
|
||||
- Channel password management with `/pass` command for channel owners
|
||||
- Monochrome/themed launcher icon for Android 12+ dynamic theming support
|
||||
- Unit tests package with initial testing infrastructure
|
||||
- Production build optimization with code minification and shrinking
|
||||
- Native back gesture/button handling for all app views
|
||||
|
||||
### Fixed
|
||||
- Favorite peer functionality completely restored and improved
|
||||
- Enhanced favorite system with fallback mechanism for peers without key exchange
|
||||
- Fixed UI state updates for favorite stars in both header and sidebar
|
||||
- Improved favorite persistence across app sessions
|
||||
- `/w` command now displays user nicknames instead of peer IDs
|
||||
- Button styling and layout improvements across the app
|
||||
- Enhanced back button positioning and styling
|
||||
- Improved private chat and channel header button layouts
|
||||
- Fixed button padding and alignment issues
|
||||
- Color scheme consistency updates
|
||||
- Updated orange color throughout the app to match iOS version
|
||||
- Consistent color usage for private messages and UI elements
|
||||
- App startup reliability improvements
|
||||
- Better initialization sequence handling
|
||||
- Fixed null pointer exceptions during startup
|
||||
- Enhanced error handling and logging
|
||||
- Input field styling and behavior improvements
|
||||
- Sidebar user interaction enhancements
|
||||
- Permission explanation screen layout fixes with proper vertical padding
|
||||
|
||||
### Changed
|
||||
- Updated GitHub organization references in project files
|
||||
- Improved README documentation with updated clone URLs
|
||||
- Enhanced logging throughout the application for better debugging
|
||||
|
||||
## [0.5.1] - 2025-07-10
|
||||
|
||||
### Added
|
||||
- Bluetooth startup check with user prompt to enable Bluetooth if disabled
|
||||
|
||||
### Fixed
|
||||
- Improved Bluetooth initialization reliability on first app launch
|
||||
|
||||
## [0.5] - 2025-07-10
|
||||
|
||||
### Added
|
||||
- New user onboarding screen with permission explanations
|
||||
- Educational content explaining why each permission is required
|
||||
- Privacy assurance messaging (no tracking, no servers, local-only data)
|
||||
|
||||
### Fixed
|
||||
- Comprehensive permission validation - ensures all required permissions are granted
|
||||
- Proper Bluetooth stack initialization on first app load
|
||||
- Eliminated need for manual app restart after installation
|
||||
- Enhanced permission request coordination and error handling
|
||||
|
||||
### Changed
|
||||
- Improved first-time user experience with guided setup flow
|
||||
|
||||
## [0.4] - 2025-07-10
|
||||
|
||||
### Added
|
||||
- Push notifications for direct messages
|
||||
- Enhanced notification system with proper click handling and grouping
|
||||
|
||||
### Improved
|
||||
- Direct message (DM) view with better user interface
|
||||
- Enhanced private messaging experience
|
||||
|
||||
### Known Issues
|
||||
- Favorite peer functionality currently broken
|
||||
|
||||
## [0.3] - 2025-07-09
|
||||
|
||||
### Added
|
||||
- Battery-aware scanning policies for improved power management
|
||||
- Dynamic scan behavior based on device battery state
|
||||
|
||||
### Fixed
|
||||
- Android-to-Android Bluetooth Low Energy connections
|
||||
- Peer discovery reliability between Android devices
|
||||
- Connection stability improvements
|
||||
|
||||
## [0.2] - 2025-07-09
|
||||
|
||||
### Added
|
||||
- Initial Android implementation of bitchat protocol
|
||||
- Bluetooth Low Energy mesh networking
|
||||
- End-to-end encryption for private messages
|
||||
- Channel-based messaging with password protection
|
||||
- Store-and-forward message delivery
|
||||
- IRC-style commands (/msg, /join, /clear, etc.)
|
||||
- RSSI-based signal quality indicators
|
||||
|
||||
### Fixed
|
||||
- Various Bluetooth handling improvements
|
||||
- User interface refinements
|
||||
- Connection reliability enhancements
|
||||
|
||||
## [0.1] - 2025-07-08
|
||||
|
||||
### Added
|
||||
- Initial release of bitchat Android client
|
||||
- Basic mesh networking functionality
|
||||
- Core messaging features
|
||||
- Protocol compatibility with iOS bitchat client
|
||||
|
||||
[Unreleased]: https://github.com/permissionlesstech/bitchat-android/compare/0.5.1...HEAD
|
||||
[0.5.1]: https://github.com/permissionlesstech/bitchat-android/compare/0.5...0.5.1
|
||||
[0.5]: https://github.com/permissionlesstech/bitchat-android/compare/0.4...0.5
|
||||
[0.4]: https://github.com/permissionlesstech/bitchat-android/compare/0.3...0.4
|
||||
[0.3]: https://github.com/permissionlesstech/bitchat-android/compare/0.2...0.3
|
||||
[0.2]: https://github.com/permissionlesstech/bitchat-android/compare/0.1...0.2
|
||||
[0.1]: https://github.com/permissionlesstech/bitchat-android/releases/tag/0.1
|
||||
@ -1,156 +0,0 @@
|
||||
# bitchat Privacy Policy
|
||||
|
||||
*Last updated: January 2025*
|
||||
|
||||
## Our Commitment
|
||||
|
||||
bitchat is designed with privacy as its foundation. We believe private communication is a fundamental human right. This policy explains how bitchat protects your privacy.
|
||||
|
||||
## Summary
|
||||
|
||||
**WE DO NOT COLLECT ANY INFORMATION.**
|
||||
|
||||
- **No personal data collection** - We don't collect names, emails, or phone numbers
|
||||
- **No location data collection** - Location is accessed only for local processing (BLE/Geohash) and is never collected or sent to us
|
||||
- **Hybrid Functionality** - bitchat offers two modes of communication:
|
||||
- **Bluetooth Mesh Chat**: This mode is completely offline, using peer-to-peer Bluetooth connections. It does not use any servers or internet connection.
|
||||
- **Geohash Chat**: This mode uses an internet connection to communicate with others in a specific geographic area. It relies on Nostr relays for message transport.
|
||||
- **No tracking** - We have no analytics, telemetry, or user tracking
|
||||
- **Open source** - You can verify these claims by reading our code
|
||||
|
||||
## What Information bitchat Stores
|
||||
|
||||
### On Your Device Only
|
||||
|
||||
1. **Identity Key**
|
||||
- A cryptographic key generated on first launch
|
||||
- Stored locally in your device's secure storage
|
||||
- Allows you to maintain "favorite" relationships across app restarts
|
||||
- Never leaves your device
|
||||
|
||||
2. **Nickname**
|
||||
- The display name you choose (or auto-generated)
|
||||
- Stored only on your device
|
||||
- Shared with peers you communicate with
|
||||
|
||||
3. **Message History** (if enabled)
|
||||
- When room owners enable retention, messages are saved locally
|
||||
- Stored encrypted on your device
|
||||
- You can delete this at any time
|
||||
|
||||
4. **Favorite Peers**
|
||||
- Public keys of peers you mark as favorites
|
||||
- Stored only on your device
|
||||
- Allows you to recognize these peers in future sessions
|
||||
|
||||
### Temporary Session Data
|
||||
|
||||
During each session, bitchat temporarily maintains:
|
||||
- Active peer connections (forgotten when app closes)
|
||||
- Routing information for message delivery
|
||||
- Cached messages for offline peers (12 hours max)
|
||||
|
||||
## What Information is Shared
|
||||
|
||||
### With Other bitchat Users
|
||||
|
||||
When you use bitchat, nearby peers can see:
|
||||
- Your chosen nickname
|
||||
- Your ephemeral public key (changes each session)
|
||||
- Messages you send to public rooms or directly to them
|
||||
- Your approximate Bluetooth signal strength (for connection quality)
|
||||
|
||||
### With Room Members
|
||||
|
||||
When you join a password-protected room:
|
||||
- Your messages are visible to others with the password
|
||||
- Your nickname appears in the member list
|
||||
- Room owners can see you've joined
|
||||
|
||||
## What We DON'T Do
|
||||
|
||||
bitchat **never**:
|
||||
- Collects personal information
|
||||
- Collects location history
|
||||
- Transmits any data to us (the developers)
|
||||
- Stores data on servers
|
||||
- Shares data with third parties
|
||||
- Uses analytics or telemetry
|
||||
- Creates user profiles
|
||||
- Requires registration
|
||||
|
||||
## Encryption
|
||||
|
||||
All private messages use end-to-end encryption:
|
||||
- **X25519** for key exchange
|
||||
- **AES-256-GCM** for message encryption
|
||||
- **Ed25519** for digital signatures
|
||||
- **Argon2id** for password-protected rooms
|
||||
|
||||
## Your Rights
|
||||
|
||||
You have complete control:
|
||||
- **Delete Everything**: Triple-tap the logo to instantly wipe all data
|
||||
- **Leave Anytime**: Close the app and your presence disappears
|
||||
- **No Account**: Nothing to delete from servers because there are none
|
||||
- **Portability**: Your data never leaves your device unless you export it
|
||||
|
||||
## Location Data & Permissions
|
||||
|
||||
To provide the core functionality of bitchat, we access your device's location data. This access is necessary for the following specific purposes:
|
||||
|
||||
### 1. Bluetooth Low Energy (BLE) Scanning
|
||||
- **Why we need it:** The Android operating system requires Location permission to scan for nearby Bluetooth LE devices (especially on Android 11 and lower). This is a system-level requirement because Bluetooth scans can theoretically be used to derive location.
|
||||
- **How we use it:** We use this permission strictly to discover other bitchat peers nearby for the "Bluetooth Mesh Chat" mode.
|
||||
- **Privacy protection:** We do not record or store your location during this process. The data is processed instantaneously by the Android system to facilitate the connection.
|
||||
|
||||
### 2. Geohash Chat Functionality
|
||||
- **Why we need it:** The "Geohash Chat" mode allows you to communicate with others in your approximate geographic area.
|
||||
- **How we use it:** If you enable this mode, we access your location to calculate a "geohash" (a short alphanumeric string representing a geographic region). This geohash is used to find and subscribe to relevant channels on decentralized Nostr relays.
|
||||
- **Privacy protection:**
|
||||
- Your precise GPS coordinates are **never** sent to any server or peer.
|
||||
- Only the coarse geohash (representing an area, not a pinpoint) is shared with the Nostr network.
|
||||
- You can use the "Bluetooth Mesh Chat" mode without this feature if you prefer.
|
||||
|
||||
**We do not collect, store, or share your location history.** Location data is processed locally on your device to enable these specific features.
|
||||
|
||||
## Children's Privacy
|
||||
|
||||
bitchat does not knowingly collect information from children. The app has no age verification because it collects no personal information from anyone.
|
||||
|
||||
## Data Retention
|
||||
|
||||
- **Messages**: Deleted from memory when app closes (unless room retention is enabled)
|
||||
- **Identity Key**: Persists until you delete the app
|
||||
- **Favorites**: Persist until you remove them or delete the app
|
||||
- **Everything Else**: Exists only during active sessions
|
||||
|
||||
## Security Measures
|
||||
|
||||
- All communication is encrypted
|
||||
- No data transmitted to servers (there are none)
|
||||
- Open source code for public audit
|
||||
- Regular security updates
|
||||
- Cryptographic signatures prevent tampering
|
||||
|
||||
## Changes to This Policy
|
||||
|
||||
If we update this policy:
|
||||
- The "Last updated" date will change
|
||||
- The updated policy will be included in the app
|
||||
- No retroactive changes can affect data (since we don't collect any)
|
||||
|
||||
## Contact
|
||||
|
||||
bitchat is an open source project. For privacy questions:
|
||||
- Review our code: https://github.com/yourusername/bitchat
|
||||
- Open an issue on GitHub
|
||||
- Join the discussion in public rooms
|
||||
|
||||
## Philosophy
|
||||
|
||||
Privacy isn't just a feature—it's the entire point. bitchat proves that modern communication doesn't require surrendering your privacy. No accounts, no servers, no surveillance. Just people talking freely.
|
||||
|
||||
---
|
||||
|
||||
*This policy is released into the public domain under The Unlicense, just like bitchat itself.*
|
||||
Loading…
x
Reference in New Issue
Block a user