981 Commits
Author SHA1 Message Date
jack c352542331 Fix macOS build error and iPhone 16 display issues
- Split multi-platform target into separate iOS and macOS targets to prevent iOS share extension from being embedded in macOS build
- Add launch screen configuration and full screen support for proper iPhone 16 display
- Configure iOS-specific Info.plist entries for background modes and interface orientations
2025-07-09 16:08:37 +02:00
jack 1017017bd1 Update alert text to lowercase style 2025-07-09 15:19:57 +02:00
jack e00a6c1feb Fix build error and failing test
- Add CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION to share extension
- Fix test assertion to match lowercase error message
2025-07-09 15:19:57 +02:00
jackandGitHub d296f1d6a4 Merge pull request #20 from jmecom/jm/warning-readme
Add warning to readme
2025-07-09 13:45:26 +02:00
mirza-samad-ahmed-baig 653f2b2812 Fix: Prevent potential buffer overflow in CompressionUtil.swift 2025-07-09 15:51:48 +05:00
jackandGitHub 5ec79e8080 Merge pull request #75 from nanoterran/main
Fixing macOS build
2025-07-09 11:13:03 +02:00
Marcus ZiadéandClaude a3605bbfcc Add accessibility labels to icon-only UI elements
This commit improves VoiceOver support by adding descriptive accessibility labels to all icon-only buttons and visual indicators in the app. This ensures users with visual impairments can understand and interact with all UI elements.

Changes made:
- Send message button: Added label "Send message" with context-aware hints
- Navigation buttons: Added "Back to main chat" labels for back arrows
- Favorite stars: Dynamic labels that change between "Add to favorites" and "Remove from favorites"
- Lock icons: Context-aware labels for password protection status
- Signal strength indicators: Descriptive labels (excellent/good/fair/poor) instead of color-only information
- Unread message indicators: Clear labels for envelope and number icons
- People/channel counts: Proper pluralization and descriptive text
- Save/bookmark buttons: Labels indicating retention enable/disable action

Technical details:
- Used .accessibilityLabel() for descriptive text
- Added .accessibilityHint() for additional context where helpful
- Used .accessibilityHidden(true) to hide redundant decorative elements
- All labels are dynamic and update based on current state

This change ensures BitChat meets WCAG accessibility guidelines and provides a better experience for all users.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-09 00:50:49 +03:00
nanoterran 77d13020f5 Fixing MAC OS build 2025-07-08 17:12:47 -04:00
jackandGitHub 7165eec85f Merge pull request #35 from utsavDave97/main
Fix for send message bug and other new features
2025-07-08 18:49:03 +02:00
jackandGitHub e3dd2079c1 Merge pull request #63 from richardsonnick/patch-1
Fix Unsupported markdown: blockquote in README.md
2025-07-08 18:37:24 +02:00
jackandGitHub 27ff9fcbdb Merge pull request #52 from wacumov/main
Set up CI using GitHub Actions
2025-07-08 18:31:25 +02:00
jackandGitHub 70c6307a90 Merge pull request #34 from nelsoncampoos/fix/message-duplication-sync-improvements
Fix message duplication and improve sync performance in mesh network
2025-07-08 18:26:10 +02:00
Nick RichardsonandGitHub 752b216cd9 Fix Unsupported markdown: blockquote in README.md 2025-07-08 12:25:49 -04:00
jackandGitHub 806291cecf Merge pull request #44 from PubliusPseudis/fix/update-peerlist-on-main-thread
Fix: Ensure peer list updates on main thread
2025-07-08 18:18:03 +02:00
jackandGitHub 5285c6064d Merge pull request #62 from jackjackbits/feature/ios-share-extension
Add iOS share extension with rich link previews
2025-07-08 17:54:14 +02:00
jack d5ccf6bc0b Add iOS share extension with rich link previews
- Implement share extension to receive URLs from other apps
- Display shared links with emoji indicator and rich preview cards
- Add custom compact link preview with image, title, and domain
- Configure app groups for data sharing between extension and main app
- Handle URL detection and parsing in share extension
- Update message formatting to show only emoji for shared links
- Add proper entitlements and activation rules for share extension
2025-07-08 17:47:53 +02:00
Mikhail Akopov 06d15fa9c9 Do not run tests on push 2025-07-08 12:30:39 +03:00
Mikhail Akopov 598620741f Set up CI using GitHub Actions 2025-07-08 12:18:31 +03:00
AGInoMETRICS ef6b08d75f Fix: Ensure peer list updates on main thread 2025-07-08 15:54:28 +10:00
Utsav Dave d3632b1c2a added alert for other leave channel 2025-07-07 23:41:36 -04:00
Utsav Dave 33f6f3be0c fix for bug and leave alert 2025-07-07 23:24:55 -04:00
Nelson Campos 9aca65a2a4 fix: prevent phantom spaces and duplicates in message sync
- Add deduplication check when adding messages to retry queue
- Prevent duplicate messages with same ID from being queued
- Maintain proper message ordering during sync
2025-07-07 23:47:52 -03:00
Nelson Campos edb30d6c80 fix: ensure messages maintain correct order during sync
- Sort retry queue by original timestamp when adding and processing messages
- Add 50ms delay between retry messages to prevent out-of-order delivery
- Messages now sync in the exact order they were sent (ping 1, ping 2, ping 3)
2025-07-07 23:42:33 -03:00
Nelson Campos a3fa7a892f fix: prevent phantom empty messages during sync
- Add content validation to skip empty or whitespace-only messages
- Apply validation in both channel and regular message handling
- Add validation at retry service level to prevent queuing empty messages
- This fixes the phantom space issue between synced messages
2025-07-07 23:36:10 -03:00
jack b8d930614e Add rich link previews for shared URLs
- Capture both URL and title when sharing links
- Create LinkPreviewView component with clickable cards
- Support markdown-style links [title](url)
- Auto-detect plain URLs in messages
- Add link metadata fetching on iOS
- Display clean preview cards with title, URL, and description
2025-07-08 04:32:57 +02:00
Nelson Campos 9c60d46745 fix: change roomKey to channelKey after merge 2025-07-07 23:30:38 -03:00
Nelson Campos 6187b48bf4 Merge upstream/main: Adopt channel terminology while preserving bug fixes 2025-07-07 23:27:12 -03:00
jack 244af2197c Fix share extension functionality
- Add debugging logs to help diagnose sharing issues
- Improve completion handling in share extension
- Check for shared content when app becomes active
- Fix async handling of shared content processing
2025-07-08 04:26:02 +02:00
jack 6a7b33047a Fix share extension Info.plist - add missing NSExtension dictionary 2025-07-08 04:22:56 +02:00
Nelson Campos 602657fec2 Enhance message handling and synchronization in BluetoothMeshService
- Introduce thread safety for recentlySentMessages using NSLock to prevent race conditions.
- Adjust message delay parameters for faster synchronization: reduce min/max message delays and adjust initial announce timing.
- Update sendMessage and sendEncryptedRoomMessage methods to accept optional messageID and timestamp parameters for better tracking.
- Improve message deduplication logic in ChatViewModel to prevent duplicates from being added when echoing back sent messages.
- Modify MessageRetryService to include original message ID and timestamp for better retry handling.
2025-07-07 23:19:24 -03:00
jack 7f6a32e350 Add iOS Share Extension support
- Create share extension to handle shared content from other apps
- Support sharing text, URLs, and prepare for future image support
- Use app groups for data sharing between extension and main app
- Add URL scheme handling for app communication
- Add entitlements for app groups
- Display system message when content is shared
- Update project configuration to include share extension
2025-07-08 04:18:42 +02:00
jackandGitHub 2afc32afbf Merge pull request #30 from jackjackbits/feature/screenshot-detection
Add screenshot detection notifications
2025-07-08 04:11:01 +02:00
jack cc2f231d16 Fix screenshot notifications and remove 'private:' from UI
- Screenshot notifications now properly appear as system messages
- Send messages directly via mesh service to avoid local echo
- Remove 'private:' prefix from private chat header
- Keep only lock icon and peer name in private chat header
2025-07-08 04:07:06 +02:00
jack a5865af292 Add screenshot detection and notification feature
- Detect when users take screenshots on iOS
- Send system notification to all participants
- Works in public chat, channels, and private messages
- Display screenshot notifications as system messages
2025-07-08 04:00:50 +02:00
jackandGitHub b4265a41b2 Merge pull request #29 from jackjackbits/feature/block-users
Add block/unblock commands
2025-07-08 03:04:34 +02:00
jack 9ec8008695 Fix block command documentation and add to autocomplete
- Change @user to @name in all documentation
- Change 'blocked users' to 'blocked peers' for consistency
- Add /block and /unblock commands to autocomplete menu
2025-07-08 03:03:21 +02:00
jack e4d5f5b940 Add block command to autocomplete, app info modal, and README 2025-07-08 02:47:04 +02:00
jack e0ce234d08 Add block/unblock user commands
Implemented user blocking functionality:
- /block <nickname> - blocks a user from private messaging and ignores their messages in channels
- /block - lists all blocked users
- /unblock <nickname> - unblocks a user

Implementation details:
- Blocks are stored by public key fingerprint for persistence across sessions
- Blocked users cannot send private messages or have their public messages displayed
- Blocked users are silently ignored (they don't know they're blocked)
- Blocking a user automatically removes them from favorites
- Added getPeerPublicKey() method to BluetoothMeshService for accessing peer identity keys
2025-07-08 02:36:23 +02:00
jackandGitHub ccf0ba2ef2 Merge pull request #27 from jackjackbits/fix/crash-reports
Fix thread safety crashes in BluetoothMeshService
2025-07-08 02:24:04 +02:00
jack 4cecffca98 Fix thread safety crashes in BluetoothMeshService
Fixed multiple threading issues that were causing crashes when users sent messages:

- Added NSLock to synchronize access to recentlySentMessages Set
- Fixed thread-unsafe access to activePeers Set using existing lock
- Removed force unwrapping that could cause crashes
- Added defensive input validation for message sending methods

These fixes address crashes reported in TestFlight where the app would crash when typing and sending messages.
2025-07-08 02:22:05 +02:00
jackandGitHub d0522e806f Merge pull request #26 from jackjackbits/feature/ui-improvements-only
UI improvements and rename rooms to channels
2025-07-08 01:46:11 +02:00
jack 9794f3ebdc UI improvements and rename rooms to channels
- Changed system messages from green to grey with consistent 12pt font
- Fixed text wrapping to flow naturally under timestamps
- Changed default nickname to anonXXXX format
- Replaced text with icon representations in status bar
- Added icons to sidebar section headers
- Made autocomplete UI consistent between commands and @mentions
- Added welcome message for new users (3 second delay)
- Changed sidebar header to 'YOUR NETWORK'
- Added command aliases (/join, /msg)
- Implemented /hug and /slap commands with haptic feedback
- Improved command help display with alphabetization
- Renamed 'rooms' to 'channels' throughout entire codebase
2025-07-08 01:42:35 +02:00
Jordan Mecom 9e797bcac2 Add warning to readme 2025-07-07 13:08:57 -07:00
jack d3c1b77015 Fix thread safety crash in BluetoothMeshService
- Fix race condition where recentlySentMessages Set was being modified from different queues
- Move all Set.remove operations to messageQueue instead of main queue
- Prevents EXC_BREAKPOINT crash when removing elements during concurrent access
2025-07-07 00:26:22 +02:00
jack 0db5312584 Fix Swift warnings: replace unused variables with _ 2025-07-07 00:07:53 +02:00
jack 30f548eb73 Fix Swift compile error: add break statements to empty switch cases 2025-07-07 00:04:11 +02:00
jackandGitHub 2540928387 Delete test_delivery_confirmation.md 2025-07-06 23:55:52 +02:00
jackandGitHub a39c77aa69 Delete DELIVERY_BRANCH_SUMMARY.md 2025-07-06 23:55:39 +02:00
jackandGitHub 42123abea0 Delete COMMIT_MESSAGE.txt 2025-07-06 23:55:26 +02:00
jack 42cb696cc8 Remove debug logging from delivery confirmation feature
- Remove all [Delivery], [UI], and [DeliveryTracker] debug print statements
- Clean up console output for production use
- No functional changes
2025-07-06 23:52:42 +02:00