diff --git a/appview/issues/issues.go b/appview/issues/issues.go index e4ecb107..7d047e61 100644 --- a/appview/issues/issues.go +++ b/appview/issues/issues.go @@ -107,6 +107,13 @@ func (rp *Issues) RepoSingleIssue(w http.ResponseWriter, r *http.Request) { l.Error("failed to mark issue notifications as read", "err", err) } }() + + atUri := issue.AtUri().String() + go func() { + if err := db.UpsertRecentLink(rp.db, userDid, models.RecentLinkTypeIssue, atUri); err != nil { + l.Error("failed to upsert recent link", "err", err) + } + }() } entities := []syntax.ATURI{issue.AtUri()} diff --git a/appview/pulls/single.go b/appview/pulls/single.go index 2d0d1451..ccc0875b 100644 --- a/appview/pulls/single.go +++ b/appview/pulls/single.go @@ -110,6 +110,13 @@ func (s *Pulls) repoPullHelper(w http.ResponseWriter, r *http.Request, interdiff l.Error("failed to mark pull notifications as read", "err", err) } }() + + atUri := pull.AtUri().String() + go func() { + if err := db.UpsertRecentLink(s.db, userDid, models.RecentLinkTypePull, atUri); err != nil { + l.Error("failed to upsert recent link", "err", err) + } + }() } backlinks, err := db.GetBacklinks(s.db, pull.AtUri()) diff --git a/appview/repo/index.go b/appview/repo/index.go index e509f236..50406871 100644 --- a/appview/repo/index.go +++ b/appview/repo/index.go @@ -43,6 +43,16 @@ func (rp *Repo) Index(w http.ResponseWriter, r *http.Request) { user := rp.oauth.GetMultiAccountUser(r) + if user != nil { + userDid := user.Did + repoDid := f.RepoDid + go func() { + if err := db.UpsertRecentLink(rp.db, userDid, models.RecentLinkTypeRepo, repoDid); err != nil { + l.Error("failed to upsert recent link", "err", err) + } + }() + } + // Build index response from multiple XRPC calls result, err := rp.buildIndexResponse(r.Context(), f, ref) if err != nil {