Signed-off-by: Will Andrews did:plc:dadhhalkfcq3gucaq25hjqon
ERROR
appview/db/timeline.go
ERROR
appview/db/timeline.go
Failed to calculate interdiff for this file.
REVERTED
appview/pages/pages.go
REVERTED
appview/pages/pages.go
ERROR
appview/pages/templates/timeline/fragments/timeline.html
ERROR
appview/pages/templates/timeline/fragments/timeline.html
Failed to calculate interdiff for this file.
NEW
appview/knots/knots.go
NEW
appview/knots/knots.go
···+ex, _ := comatproto.RepoGetRecord(r.Context(), client, "", tangled.KnotNSID, user.Did, domain)······+ex, _ := comatproto.RepoGetRecord(r.Context(), client, "", tangled.KnotNSID, user.Did, domain)···
NEW
appview/labels/labels.go
NEW
appview/labels/labels.go
···············
NEW
appview/middleware/middleware.go
NEW
appview/middleware/middleware.go
······
NEW
appview/notifications/notifications.go
NEW
appview/notifications/notifications.go
···············
NEW
appview/oauth/client/oauth_client.go
NEW
appview/oauth/client/oauth_client.go
···
NEW
appview/oauth/consts.go
NEW
appview/oauth/consts.go
NEW
appview/oauth/handler.go
NEW
appview/oauth/handler.go
···
NEW
appview/oauth/handler/handler.go
NEW
appview/oauth/handler/handler.go
···-o.pages.Notice(w, "login-msg", fmt.Sprintf("\"%s\" is an invalid handle. Did you mean %s.bsky.social?", handle, handle))-parResp, err := oauthClient.SendParAuthRequest(r.Context(), authServer, authMeta, handle, oauthScope, dpopKey)-sessionReq, err := http.NewRequestWithContext(context.Background(), "POST", sessionURL, bytes.NewBuffer(sessionBytes))-req, err := http.NewRequestWithContext(context.Background(), "POST", url, bytes.NewBuffer(payloadBytes))
NEW
appview/oauth/oauth.go
NEW
appview/oauth/oauth.go
···+oauthConfig = oauth.NewPublicConfig(clientId, callbackUri, []string{"atproto", "transition:generic"})-func (o *OAuth) SaveSession(w http.ResponseWriter, r *http.Request, oreq sessioncache.OAuthRequest, oresp *oauth.TokenResponse) error {+func (o *OAuth) SaveSession(w http.ResponseWriter, r *http.Request, sessData *oauth.ClientSessionData) error {-resp, err := oauthClient.RefreshTokenRequest(r.Context(), session.RefreshJwt, session.AuthServerIss, session.DpopAuthserverNonce, privateJwk)···-func (o *OAuth) ServiceClient(r *http.Request, os ...ServiceClientOpt) (*indigo_xrpc.Client, error) {+func (o *OAuth) ServiceClient(r *http.Request, os ...ServiceClientOpt) (*xrpc.Client, error) {···-resp, err := authorizedClient.ServerGetServiceAuth(r.Context(), opts.Audience(), opts.exp, opts.lxm)+resp, err := comatproto.ServerGetServiceAuth(r.Context(), client, opts.Audience(), opts.exp, opts.lxm)···
NEW
appview/oauth/store.go
NEW
appview/oauth/store.go
···+func (r *RedisStore) GetSession(ctx context.Context, did syntax.DID, sessionID string) (*oauth.ClientSessionData, error) {+func (r *RedisStore) DeleteSession(ctx context.Context, did syntax.DID, sessionID string) error {+func (r *RedisStore) GetAuthRequestInfo(ctx context.Context, state string) (*oauth.AuthRequestData, error) {+func (r *RedisStore) SaveAuthRequestInfo(ctx context.Context, info oauth.AuthRequestData) error {
NEW
appview/pages/templates/layouts/fragments/topbar.html
NEW
appview/pages/templates/layouts/fragments/topbar.html
NEW
appview/pages/templates/repo/pulls/fragments/pullNewComment.html
NEW
appview/pages/templates/repo/pulls/fragments/pullNewComment.html
···class="bg-white dark:bg-gray-800 rounded drop-shadow-sm p-4 relative w-full flex flex-col gap-2">
NEW
appview/pages/templates/user/settings/profile.html
NEW
appview/pages/templates/user/settings/profile.html
···
NEW
appview/pipelines/pipelines.go
NEW
appview/pipelines/pipelines.go
NEW
appview/repo/artifact.go
NEW
appview/repo/artifact.go
············+putRecordResp, err := comatproto.RepoPutRecord(r.Context(), client, &comatproto.RepoPutRecord_Input{···
NEW
appview/repo/repo.go
NEW
appview/repo/repo.go
·········// this is a bit of a pain because the golang atproto impl does not allow nil SwapRecord field// SwapRecord is optional and should happen automagically, but given that it does not, we have to perform two requests+ex, err := comatproto.RepoGetRecord(r.Context(), client, "", tangled.RepoNSID, newRepo.Did, newRepo.Rkey)······+ex, err := comatproto.RepoGetRecord(r.Context(), client, "", tangled.RepoNSID, newRepo.Did, newRepo.Rkey)·········-ex, err := client.RepoGetRecord(r.Context(), "", tangled.RepoNSID, newRepo.Did, newRepo.Rkey)+ex, err := comatproto.RepoGetRecord(r.Context(), client, "", tangled.RepoNSID, newRepo.Did, newRepo.Rkey)······+_, err = comatproto.RepoDeleteRecord(r.Context(), client, &comatproto.RepoDeleteRecord_Input{···-ex, err := client.RepoGetRecord(r.Context(), "", tangled.RepoNSID, newRepo.Did, newRepo.Rkey)+ex, err := comatproto.RepoGetRecord(r.Context(), client, "", tangled.RepoNSID, newRepo.Did, newRepo.Rkey)······+ex, err := comatproto.RepoGetRecord(r.Context(), client, "", tangled.RepoNSID, f.Repo.Did, f.Repo.Rkey)······+ex, err := comatproto.RepoGetRecord(r.Context(), client, "", tangled.RepoNSID, f.Repo.Did, f.Repo.Rkey)·········+_, err = comatproto.RepoDeleteRecord(r.Context(), atpClient, &comatproto.RepoDeleteRecord_Input{······+atresp, err := comatproto.RepoPutRecord(r.Context(), atpClient, &comatproto.RepoPutRecord_Input{·········
NEW
appview/settings/settings.go
NEW
appview/settings/settings.go
······+_, err := comatproto.RepoDeleteRecord(r.Context(), client, &comatproto.RepoDeleteRecord_Input{
NEW
appview/signup/signup.go
NEW
appview/signup/signup.go
······
NEW
appview/spindles/spindles.go
NEW
appview/spindles/spindles.go
···+ex, _ := comatproto.RepoGetRecord(r.Context(), client, "", tangled.SpindleNSID, user.Did, instance)·········
NEW
appview/state/follow.go
NEW
appview/state/follow.go
······
NEW
appview/state/login.go
NEW
appview/state/login.go
···+fmt.Sprintf("\"%s\" is an invalid handle. Did you mean %s.bsky.social or %s.tngl.sh?", handle, handle, handle),
NEW
appview/state/profile.go
NEW
appview/state/profile.go
···+ex, _ := comatproto.RepoGetRecord(r.Context(), client, "", tangled.ActorProfileNSID, user.Did, "self")
NEW
appview/state/router.go
NEW
appview/state/router.go
···············-oauth := oauthhandler.New(s.config, s.pages, s.idResolver, s.db, s.sess, store, s.oauth, s.enforcer, s.posthog)
NEW
appview/state/star.go
NEW
appview/state/star.go
······
NEW
appview/strings/strings.go
NEW
appview/strings/strings.go
······-ex, err := client.RepoGetRecord(r.Context(), "", tangled.StringNSID, entry.Did.String(), entry.Rkey)+ex, err := comatproto.RepoGetRecord(r.Context(), client, "", tangled.StringNSID, entry.Did.String(), entry.Rkey)············
NEW
appview/xrpcclient/xrpc.go
NEW
appview/xrpcclient/xrpc.go
······-func (c *Client) RepoPutRecord(ctx context.Context, input *atproto.RepoPutRecord_Input) (*atproto.RepoPutRecord_Output, error) {-if err := c.Do(ctx, c.authArgs, xrpc.Procedure, "application/json", "com.atproto.repo.putRecord", nil, input, &out); err != nil {-func (c *Client) RepoApplyWrites(ctx context.Context, input *atproto.RepoApplyWrites_Input) (*atproto.RepoApplyWrites_Output, error) {-if err := c.Do(ctx, c.authArgs, xrpc.Procedure, "application/json", "com.atproto.repo.applyWrites", nil, input, &out); err != nil {-func (c *Client) RepoGetRecord(ctx context.Context, cid string, collection string, repo string, rkey string) (*atproto.RepoGetRecord_Output, error) {-if err := c.Do(ctx, c.authArgs, xrpc.Query, "", "com.atproto.repo.getRecord", params, nil, &out); err != nil {-func (c *Client) RepoUploadBlob(ctx context.Context, input io.Reader) (*atproto.RepoUploadBlob_Output, error) {-if err := c.Do(ctx, c.authArgs, xrpc.Procedure, "*/*", "com.atproto.repo.uploadBlob", nil, input, &out); err != nil {-if err := c.Do(ctx, c.authArgs, xrpc.Query, "", "com.atproto.sync.getBlob", params, nil, buf); err != nil {-func (c *Client) RepoDeleteRecord(ctx context.Context, input *atproto.RepoDeleteRecord_Input) (*atproto.RepoDeleteRecord_Output, error) {-if err := c.Do(ctx, c.authArgs, xrpc.Procedure, "application/json", "com.atproto.repo.deleteRecord", nil, input, &out); err != nil {-func (c *Client) ServerGetServiceAuth(ctx context.Context, aud string, exp int64, lxm string) (*atproto.ServerGetServiceAuth_Output, error) {-if err := c.Do(ctx, c.authArgs, xrpc.Query, "", "com.atproto.server.getServiceAuth", params, nil, &out); err != nil {
NEW
go.mod
NEW
go.mod
···
NEW
go.sum
NEW
go.sum
···github.com/bluesky-social/indigo v0.0.0-20250724221105-5827c8fb61bb h1:BqMNDZMfXwiRTJ6NvQotJ0qInn37JH5U8E+TF01CFHQ=github.com/bluesky-social/indigo v0.0.0-20250724221105-5827c8fb61bb/go.mod h1:0XUyOCRtL4/OiyeqMTmr6RlVHQMDgw3LS7CfibuZR5Q=+github.com/bluesky-social/indigo v0.0.0-20251003000214-3259b215110e h1:IutKPwmbU0LrYqw03EuwJtMdAe67rDTrL1U8S8dicRU=+github.com/bluesky-social/indigo v0.0.0-20251003000214-3259b215110e/go.mod h1:n6QE1NDPFoi7PRbMUZmc2y7FibCqiVU4ePpsvhHUBR8=github.com/bluesky-social/jetstream v0.0.0-20241210005130-ea96859b93d1 h1:CFvRtYNSnWRAi/98M3O466t9dYuwtesNbu6FVPymRrA=github.com/bluesky-social/jetstream v0.0.0-20241210005130-ea96859b93d1/go.mod h1:WiYEeyJSdUwqoaZ71KJSpTblemUCpwJfh5oVXplK6T4=
NEW
appview/pages/templates/repo/fragments/labelPanel.html
NEW
appview/pages/templates/repo/fragments/labelPanel.html
NEW
appview/pages/templates/repo/fragments/participants.html
NEW
appview/pages/templates/repo/fragments/participants.html
···
NEW
appview/pages/templates/repo/issues/fragments/newComment.html
NEW
appview/pages/templates/repo/issues/fragments/newComment.html
···+<div class="bg-amber-50 dark:bg-amber-900 border border-amber-500 rounded drop-shadow-sm p-6 relative flex gap-2 items-center">+<a href="/signup" class="btn-create py-0 hover:no-underline hover:text-white flex items-center gap-2">
NEW
appview/pages/templates/repo/pulls/pull.html
NEW
appview/pages/templates/repo/pulls/pull.html
···{{ template "repo/pulls/fragments/pullActions" (dict "LoggedInUser" $.LoggedInUser "Pull" $.Pull "RepoInfo" $.RepoInfo "RoundNumber" .RoundNumber "MergeCheck" $.MergeCheck "ResubmitCheck" $.ResubmitCheck "Stack" $.Stack) }}-<div class="bg-white dark:bg-gray-800 rounded drop-shadow-sm px-6 py-4 w-fit dark:text-white">+<div class="bg-amber-50 dark:bg-amber-900 border border-amber-500 rounded drop-shadow-sm p-2 relative flex gap-2 items-center w-fit">+<a href="/signup" class="btn-create py-0 hover:no-underline hover:text-white flex items-center gap-2">
NEW
appview/db/reaction.go
NEW
appview/db/reaction.go
···-func GetReactionCountMap(e Execer, threadAt syntax.ATURI) (map[models.ReactionKind]int, error) {+func GetReactionMap(e Execer, userLimit int, threadAt syntax.ATURI) (map[models.ReactionKind]models.ReactionDisplayData, error) {
NEW
appview/models/reaction.go
NEW
appview/models/reaction.go
NEW
appview/pages/templates/repo/fragments/reaction.html
NEW
appview/pages/templates/repo/fragments/reaction.html
······+title="{{ range $i, $did := .Users }}{{ if ne $i 0 }}, {{ end }}{{ resolve $did }}{{ end }}{{ if gt .Count (length .Users) }}, and {{ sub .Count (length .Users) }} more{{ end }}"
NEW
appview/pages/templates/repo/issues/issue.html
NEW
appview/pages/templates/repo/issues/issue.html
···
NEW
appview/pages/templates/repo/pulls/fragments/pullHeader.html
NEW
appview/pages/templates/repo/pulls/fragments/pullHeader.html
···
NEW
appview/state/state.go
NEW
appview/state/state.go
··················