based on this issue, I found a pretty nasty bug. We are considering "latest" (when we set latest = true on the UnpackedHypermediaId) as showing the latest version of the document. this is partially true, but not entirely.
This now means: no matter if there's a version set in the Id or not, we will show you the latest discovered version we know about.
That is why the issue exists, because when the user clicks on any version item inside the activity feed, we are not changing that value to false. This raise multiple concerns and also clarifies some things I experienced in the past. for example, when I'm on a previous version of any document on my app, if I click in the logo inside the site header, sometimes I navigate to an older version of the site home, and not the latest.
This is problematic because we are always navigating "locked in time". so in this cases, I believe we should turn latest to true.
My question is:
What should happen by default when a user clicks on any hypermedia link in the app?
should we set latest = true to all site header navigation items?
should we set to all linking inside the app to latest = true but avoiding feed updates items and maybe links inside comments?
should we also add latest = true to embeds and inline embeds (mentions)?
should this rules be different for web and desktop app?
latest vs live
As I mentioned above. I believe the definition of the latest property on our Hypermedia ID schema and how it behaves is not exactly "latest". When this property is true, that means that if the node (server or desktop app) receives updates for that document/resource, it will show the latest version available. IMHO, this means the document is "Live".
This is more clear when we think of this scenarios:
I want to load hm://alice?v=1&l but the latest discovered version is 23
This will show the content of version 23
This will also NOT show the "Latest Version" button on the titlebar on desktop
I want to render hm://alice?v=23 and the latest discovered version is 23
This will show the content of version 23 (the same)
This WILL show the "Latest Version" button on the titlebar on desktop
This scenarios are true for any element in the app that can link to a Hypermedia resource. so we need to consider all the possible scenarios.
My proposal is that we should have a toggle button in the titlebar with a "pulse effect" that when latest = true it will be animated, and non-animated when is false
Any Feedback is welcome!