Commit Graph
383 Commits
Author SHA1 Message Date
jack 76786bb199 Remove debug print statements from LinkPreviewView
Remove excessive debug logging that was spamming console output when checking for markdown links in messages
2025-07-09 16:21:56 +02:00
jackandGitHub 033a5881b4 Update project.yml 2025-07-09 16:17:34 +02:00
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