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.
nix: builds for repoguard and keyfetch
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.