I like this idea, too! I think for an initial release of this feature it would even be
enough to just have `:read` and `:unread` states. That is what most email clients have and
Github notifications have that, too.
Am Donnerstag, den 07.03.2019, 14:31 +0000 schrieb James Haydon:
When a user lists items related to a machine it's hard for them to see what has
changed since the last time the used the app.
Gmail shows emails in 3 ways to the user:
- `unopen`/`new`: these are emails that the user has never seen listed
before. The `new` tag disappears after about 5 seconds.
- `unopen`: these are emails that the user has not opened, but that they have
- `open`: emails that the user has already read.
I think it is likely that lists of items which exist in Radicle machines
corresponding to various apps will have similar statuses with respect to a user.
We could make a library with the following functions:
- `(mark-seen! machine-id item-id)`: The user has seen this item in a list.
- `(mark-open! machine-id item-id)`: The user has opened a detailed view of this
item. This implicitly marks the item as seen too.
- `(get-user-item-newness! machine-id item-id)`: Returns one of `:open`,
The library would use local files to persist which items have been
opened/seen. Apps can choose how they want to use the information provided by
the library (highlighting new items, filtering, etc.).
The `rad-issue` app would call `mark-seen!` when an item is displayed in `rad
issue list`, and `mark-open!` when it is read in detail (e.g. opened
in an editor
for adding a comment).