commits
The previous cache key was just the path, so files that are often common
across git repos like '.gitignore' etc. show a cached "last commit" time
from another repository. Pretty funny.
This uses the current plumbing.Hash.String():path as the key which
should theoretically be unique to each repository.
Also reduces last time_us discard window down to 2 days.
Restyle commits in repo index and implement a separate commits page with pagination.
Custom lexicon for issues, issue state (open, closed) and issue comments.
The case with issue_at is a bit weird since we have a circular
dependency: the issue record requires the issue_id, and the issue entry
in the db requires the issue_at.
To resolve this we write to the db without the issue_at, fetch the
issue_id, create the issue record on the PDS, and then update the
issue_at (with SetIssueAt). It's not great, but whatever.
It's pretty rudimentary. All repos and follows (for now) are
consolidated into a []TimelineEvent and sorted by time.
This is a super trivial implementation last commit for each file. It's
slow and inefficient despite using ristretto for in-memory caching.
We should move this to storing in sqlite in the future.
Reconnection is now handed by cancelling the connCtx context. This is a
lot cleaner and the jetstream client package honors context
cancellation.
Saving of last time_us is also simplified now. We only save (update,
rather) after the last seen event by incrementing the event's time_us by
1 (this is ok since it's a monotonic clock). We pick up from here upon
reconnect and don't save last time_us for any other reason.
Lastly, outside of first boot, we should only ever use UpdateLastTimeUs.
Custom lexicon for issues, issue state (open, closed) and issue comments.
The case with issue_at is a bit weird since we have a circular
dependency: the issue record requires the issue_id, and the issue entry
in the db requires the issue_at.
To resolve this we write to the db without the issue_at, fetch the
issue_id, create the issue record on the PDS, and then update the
issue_at (with SetIssueAt). It's not great, but whatever.
Reconnection is now handed by cancelling the connCtx context. This is a
lot cleaner and the jetstream client package honors context
cancellation.
Saving of last time_us is also simplified now. We only save (update,
rather) after the last seen event by incrementing the event's time_us by
1 (this is ok since it's a monotonic clock). We pick up from here upon
reconnect and don't save last time_us for any other reason.
Lastly, outside of first boot, we should only ever use UpdateLastTimeUs.