List not updating when source of truth is modified on macOS

I've been experimenting with SwiftUI, in particular with a Multiplatform app.

My app is laid up like the Fruta sample app, but my list is passing an item as a binding to a detail view which can edit the selected item.

The app works fine enough, but I noticed something that I feel might be a bug.
After the detail view is accessed, when the source of truth (a simple array of items in my case) is updated the List is not updated.
The actual array from within the view is correctly updated, I verified this by adding a label counting the items on top of my list and it goes up every time I add an item, but the list doesn't show the new items.
The list only starts updating again if I navigate away and back to the list using the sidebar.
Oddly enough modifying the items does reflect that change in the List view, but adding new items doesn't.

What's even more bizarre is that it just works on iPadOS.

I have uploaded my project to Droplr so maybe you guys can check it out and let me know if I'm missing something?
https:// d.pr/ f/ Z67vax


I found a similar discussion for this problem in the internet. But to be honest the solution they provide looks more like an ugly workaround. Instead using an array of observable items they are using unique ids for each list item and store them into a dictionary. Then they have another array with the keys. In the SwiftUI list they are iterating with ForEach over the keys and pass the dictionary items to the list view. The dictionary item is then used for the detail view. This works but to be honest I hope someone has a better solution for this very common problem.
In my application I have a sidebar with a list of items containing an image/name/subtitle and a detailed view for changing these values. After leaving the details view the changes are stored correctly in the array. But the publisher for the list does not inform the SwiftUI view that it has to update the list.

List not updating when source of truth is modified on macOS
 
 
Q