commits
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
This needs another pass to fix the intermediate directory links etc.
This is handy because the knotserver only subscribes to specific dids,
and we don't want jestream to run without (which defaults to all dids).
The oppsite is true for the appview which wants to see all dids.
Also adds some nil checks to ensure it doesn't break when event is not a
Commit.
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.