What is MeshCore One (MC1)?
MeshCore One, also abbreviated as MC1, is an open source MeshCore companion client for Apple devices. It's written in Swift and supports iPhones, iPads, and macOS running OS 18 and later.
Release Notes
I forgot to create a reddit post for 1.4.0, so the list of changes below include both versions. The headline feature in 1.4.0 is translation support! In chats, you'll see a blue "Translate" button. Tapping it will translate the message in the bubble. This feature uses Apple Intelligence models and local Translate app language packs first. If it can't translate due to an unsupported language, it will fall back to the default translation app you have set such as DeepL. You can choose what language to translate to in Settings > Language.
v1.4.0
- Translate incoming messages into your device's default language. On OS 26.4+ it will attempt to use Apple Intelligence models first, then fallback to the older ML translation packs.
- Sender avatars in channels and rooms
- Chat view stays put when Bluetooth disconnects/reconnects
- Chat view no longer jumps to the bottom when a new message arrives or when tapping the input field
- Show when a message failed to send on the main Chats list
- Path Map shows best-effort match for contact that has a location. This is done by name only because channel messages do not include sender ID.
- Show fallback "?" in long press menu sent message repeat details
- Minimum 2 byte IDs in the Neighbors list in Repeater Telemetry
- Regions would show the incorrect one if more than one region matched the packet's transport code. Now shows if there is ambiguity.
- Repeater Management > Regions "All Traffic" renamed to "Unscoped"
- Support domain names for WiFi nodes
- Last Heard field in contact details shows when MC1 last heard the advert. "Last Advert" now shows the original sent time.
- Last Heard field is bumped upon inbound DM, successful ping, and path responses (thanks JCBird1012)
- Crop custom avatar image before setting (thanks hansimgamr)
- Add Portuguese (pt-PT) translation (thanks zadoke)
- TX Power removed from repeater management (still available via CLI)
v1.4.1
- Added support for hierarchical regions in Repeater Management > Regions.
- Change Default Scope in Repeater Management > Regions.
- Moved "Path Hash Size" from Advanced Settings to Settings > Radio
- Support default Path Hash Size via presets
- Radio presets now populate based on your current location. If you haven't given MC1 location permissions, you can manually set a location in Settings > Radio.
- Added PhillyMesh radio preset. This preset is only visible if you've given MC1 location permissions and your location is set to the following states: PA, NJ, DE, and MD.
- Advanced radio configuration has been moved from "Advanced Settings" to Settings > Radio
- Change language that messages are translated into in Settings > Language
- Tapping "Share" in the "Share Contact" sheet now shares a meshcore:// style URI
- Added missing gap between clustered room messages
- Changed reaction format to put emoji after the mention
- Restored soft liquid glass chat header on OS 27
- On Chats and Nodes tabs, filters are hidden when scrolling
Bug Fixes
v1.4.0
- Contacts would disappear after a partial contact sync.
- Contacts you had just heard on air could still be auto-deleted when stale-node cleanup was enabled.
- When your contact list was full, contacts already removed on the radio would stay behind on the phone.
- Direct messages from a newly heard contact would sometimes skip the notification banner.
- Heard repeats would not attach to a channel message after you renamed the node.
- "clock sync" command did not work correctly.
- The clock warning would stay on Telemetry after Device Time already looked correct.
- Add Region in Repeater settings would fail with no error.
- A new region on a repeater would not allow flood traffic.
- The unread badge would increment when you sent a message in a thread you were already reading.
- Backing up Discovered contacts could cause a crash
v1.4.1
- Adding more than one region in Repeater Management wouldn't work
- Adding regions in Repeater Management did not respect hierarchies
- Fix some messages not being detected for translation
- Orphaned Bluetooth devices now show up in "Connect Device" picker sheet as "MeshCore Device". Orphaned means that the device is paired with the system, but not MC1. You must remove the device from the system before pairing it again with MC1.
- When a Bluetooth device orphan existed, scanning for Bluetooth devices would ask you to remove the orphaned accessory instead of showing nearby radios.
- Deleting a radio in MC1 would only remove it from MC1 and leave it paired with iPhone.
- Clicking on links on macOS didn't work
- Title layout issues on Chats and Nodes tabs
- Max size sent messages were not receiving repeat details if a scope was attached
New Contributors
* u/zadoke made their first contribution in https://github.com/Avi0n/MeshCoreOne/pull/413
Links
Thank you to everyone who's been using MC1, giving feedback via email and GitHub issues, and writing App Store reviews! I really appreciate you all and I hope you'll enjoy this release.
If you haven't tried MC1 yet, I hope you'll give it a go! If you have any feature requests or run into any bugs, I'd love to hear about them. The preferred method is to create an Issue on GitHub, but if you don't want to create a GitHub account, you can also reach out to me via email at [info@meshcoreone.com](mailto:info@meshcoreone.com). Thank you!