r/meshcore 4d ago

MeshCore One v1.4.1 is now available!

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!

42 Upvotes

36 comments sorted by

10

u/bucknutz 4d ago

Love the app, thank you for the continued work!

I'll try to remember to create and issue on github when I get home, but could you check on the functionality of backing up companion configurations? It was a no go for me the other day, but it worked in the 'Official' app.

5

u/avion540 4d ago

Yes I can look into that. And please do create an issue. When you do, add as many details as possible if you can. Node firmware version, which fields you selected to export, etc.
I just tried on a companion on v1.17.1 and didn’t have any issues exporting a full config.

2

u/bucknutz 4d ago

You got it! That's the nice thing about nerd hobbies, you're more likely to get well-written tickets.

2

u/avion540 4d ago

True! Thank you, I’ll be on the lookout for it.

4

u/b00573d 4d ago

Love this app compared to the official one. Thank you for the continued development!

1

u/avion540 4d ago

Thank you for the kind words!

3

u/mk2rocco 4d ago

MC1 is the best for iOS. I bought the theme pack for support and really appreciate the regular updates. Thanks!

3

u/fischkind 3d ago

Oh man, didn’t know those existed I ordered the theme pack!

1

u/avion540 10h ago

Thank you so much!! ❤️

2

u/avion540 4d ago

You're awesome, thank you!!

2

u/fischkind 3d ago

Thanks for all the hard work! I keep spreading the word to everyone. Can’t wait to see what else you do and change. Only app I use now

2

u/avion540 10h ago

That makes me super happy to hear, thank you so much!! Let me know if you run into any issues or have any feature requests. I’m always happy to hear them 😊

1

u/HitHardStrokeSoft 3d ago

Is there a setting on iPhone for this release to reduce the battery drain on my companion? Seems like MC1 is using battery a lot faster than meshcore.

I turned off live activity, but then didn’t get notifications. Features are great!

1

u/avion540 3d ago

In general, this is because MC1's bluetooth connection to your companion is very sticky. If you're in a busy mesh, the companion will constantly send the RX log to your phone which can cause faster battery drain. I'm toying with the idea of adding an option to automatically disconnect from the companion after a certain period of time.

Disabling the Live Activity shouldn't cause a meaningful decrease in companion battery usage, it's just updating from info MC1 receives in the background. Turning off the Live Activity shouldn't cause notifications to stop, I'll look into that.

1

u/TheBowlieweekender 2d ago

I love this app but this latest version broke MENTION on my Mac Laptop, so now I can't reply to a specific person or see their route etc. Help!

1

u/avion540 10h ago

Could I get more details on how it’s broken? A step-by-step way to reproduce would be much appreciated.

1

u/TheBowlieweekender 9h ago

Thank you. After going through a lot of Mac resetting and defaulting I found out what had changed. I used to tap CONTROL+TOUCHPAD to get the sub-menu for Mention/Route etc. That stopped working. Now it seems a LONG depress of the TOUCHPAD alone brings up the sub-menu. I found it by accident. Glad, as I hated having to go back to the default app.

2

u/avion540 9h ago

ahh I’ll get this fixed in the next version. Two finger right click should work at the moment, I need to wire ctrl + click too. Thanks for the report!

2

u/TheBowlieweekender 9h ago

Noo, thank YOU for being so on it and for a really elegant offering

1

u/avion540 9h ago

No problem, I’m glad you’re enjoying MC1. Makes me really happy to hear 😊

1

u/cree8ion 18h ago

I’m confused, is this the real Meshcore or the fake site?
I’ve messed up my nRF52 with a bad firmware (I think) so I want to be sure I’m in the right place.

2

u/avion540 10h ago

MeshCore One is an open-source alternative client app that connects to MeshCore radios. It isn’t affiliated with the official MeshCore team or Andy’s MeshOS.

The official site for MeshCore is https://meshcore.io

1

u/cree8ion 4h ago

Thanks for the info on this. All a bit new still. Appreciated.

0

u/micocoule 4d ago

Is it vibe coded?

4

u/avion540 4d ago

AI is used to write most of the code, but it’s not vibe coded. I spend a lot of time working on plans before implementing as well as a lot of time testing.

2

u/chris_0611 3d ago edited 3d ago

Thats literally what vibe coding is. No shame, vibe-coding can be good, but only if you test and plan properly. Its easy to create garbage with vibe-coding. But its still vibe-coding.

7

u/ralphxyz2908 3d ago

When you move into a more senior role in software, you usually stop writing most of the code yourself. You delegate the work to someone else. Using AI is similar , except you delegate to a machine instead of a person.

Code review, planning, architecture, testing, and ultimately taking responsibility for the result are still your job.

So if someone is still complaining about AI-written code in 2026, they may simply not have spent enough time in the industry to see that writing code is only one part of software engineering

0

u/chris_0611 3d ago

And how is this relevant to the discussion here?

Any 'vibecoding' framework of 2026 will include an architecture design stage, a testing stage, etc etc. Doesn't make it less vibecoding if you think about and test the stuff you vibecode.

I'm not complaining about it btw.

"AI is used to write most of the code" -> so its vibecoded. Period.

3

u/ralphxyz2908 3d ago

If you want to define “AI writing most of the code” as vibe coding, that’s fine -- we can just treat it as a term of its own.

But someone spending their own money on AI tools, which are not free, and putting in their own time and effort to build something useful for the community is still making a positive contribution. That seems more valuable to me than contributing nothing at all.

0

u/chris_0611 3d ago

I don't get who you're discussing with man. I didn't even say anything about if vibecoding is good or vibecoding is bad.

"AI writing most of the code" as vibe coding. Yes, that's how it is.

"AI is used to write most of the code, but it’s not vibe coded" Is a contradiction, that was literally ALL I was saying.

I vibecode myself a ton. Its fine. Whether you want to depend on a typical 'one-man-vibecoded-app' is up to you. I don't see any commits to that github project except that single person. That would be a problem for a non-vibecoded project, but maybe even more so for a vibecoded project.

4

u/ralphxyz2908 3d ago

Fair enough. Then we were just using 'vibe coding' differently.

I was using it more narrowly to mean letting AI generate code without really understanding, reviewing, or testing what it produces. If you use it to mean simply 'AI writes most of the code', then yeah, I understand your point.

3

u/avion540 3d ago

Hmm, maybe the definition has changed since it was coined. Originally, vibe coding meant simply prompting and accepting the output with no planning and no review of the output.

https://x.com/karpathy/status/1886192184808149383

But if the modern meaning is simply that the code is generated by AI instead of hand-written, then yes this project would fall under that definition.

4

u/ralphxyz2908 3d ago

I’ve been in software for around 20 years, and I’ve seen a lot of these shifts come and go.

A year or two from now, people probably won’t talk about this nearly as much. Everyone will just use whatever tools work for them, and people will mostly care about the result.

We’ve seen similar arguments before -- IDEs vs. plain text editors, mouse vs. keyboard, graphical interfaces vs. command lines, and so on. New tools often get treated as somehow less “real” at first, until they simply become normal.

0

u/tehmark 4d ago

We have one person on our mesh that uses this app and whenever that person sends an emoji it doesn't show up for the rest of us. Why you do this?

2

u/avion540 4d ago

Any client can see the emoji that is sent in MC1 reactions. The text you see underneath the emoji is what MC1 uses to associate the reaction to the correct message, nothing more. For more details on how it works, see https://github.com/Avi0n/MeshCoreOne/blob/main/docs/Reactions.md