From 3215fd262e6707c212f3199f8903ce538c503072 Mon Sep 17 00:00:00 2001 From: Seongmin Lee Date: Wed, 8 Jul 2026 05:52:23 +0900 Subject: [PATCH] appview: don't remove repos on knot deletion Signed-off-by: Seongmin Lee --- appview/db/repos.go | 5 ---- appview/db/repos_test.go | 65 ---------------------------------------- appview/ingester.go | 9 +++--- appview/knots/knots.go | 13 ++++---- 4 files changed, 12 insertions(+), 80 deletions(-) diff --git a/appview/db/repos.go b/appview/db/repos.go index 58f54f4b..541f02b4 100644 --- a/appview/db/repos.go +++ b/appview/db/repos.go @@ -575,11 +575,6 @@ func RemoveRepo(e Execer, did, rkey string) error { return err } -func RemoveReposByKnot(e Execer, knot string) error { - _, err := e.Exec(`delete from repos where knot = ?`, knot) - return err -} - func GetRepoSource(e Execer, repoDid string) (string, error) { var nullableSource sql.NullString err := e.QueryRow(`select source from repos where repo_did = ?`, repoDid).Scan(&nullableSource) diff --git a/appview/db/repos_test.go b/appview/db/repos_test.go index 69232c89..482e096c 100644 --- a/appview/db/repos_test.go +++ b/appview/db/repos_test.go @@ -5,74 +5,9 @@ import ( "path/filepath" "testing" - "github.com/bluesky-social/indigo/atproto/syntax" "tangled.org/core/appview/models" ) -func TestRemoveReposByKnotCascadesEntities(t *testing.T) { - d := newTestDB(t) - - knot := "kelp.example" - repo := seedRepo(t, d, "did:plc:akshay", knot, "anemone", "anemone", "did:plc:anemone") - - starNotif := &models.Notification{ - RecipientDid: "did:plc:akshay", - ActorDid: "did:plc:boltless", - Type: models.NotificationTypeRepoStarred, - EntityType: "repo", - EntityId: repo.RepoAt().String(), - RepoId: &repo.Id, - } - if err := CreateNotification(d, starNotif); err != nil { - t.Fatalf("CreateNotification repo: %v", err) - } - - tx, err := d.Begin() - if err != nil { - t.Fatalf("Begin: %v", err) - } - issue := &models.Issue{ - Did: "did:plc:akshay", - Rkey: "issue1", - RepoDid: syntax.DID(repo.RepoDid), - Title: "title", - Body: "body", - Open: true, - } - if err := PutIssue(tx, issue); err != nil { - t.Fatalf("PutIssue: %v", err) - } - if err := tx.Commit(); err != nil { - t.Fatalf("Commit: %v", err) - } - - issueNotif := &models.Notification{ - RecipientDid: "did:plc:akshay", - ActorDid: "did:plc:boltless", - Type: models.NotificationTypeIssueCommented, - EntityType: "issue", - EntityId: issue.AtUri().String(), - IssueId: &issue.Id, - } - if err := CreateNotification(d, issueNotif); err != nil { - t.Fatalf("CreateNotification issue: %v", err) - } - - if err := RemoveReposByKnot(d, knot); err != nil { - t.Fatalf("RemoveReposByKnot: %v", err) - } - - if got := countRows(t, d, "select count(*) from repos where knot = ?", knot); got != 0 { - t.Errorf("repos remaining: got %d, want 0", got) - } - if got := countRows(t, d, "select count(*) from issues where repo_did = ?", repo.RepoDid); got != 0 { - t.Errorf("issues remaining: got %d, want 0", got) - } - if got := countRows(t, d, "select count(*) from notifications"); got != 0 { - t.Errorf("notifications remaining: got %d, want 0", got) - } -} - func TestMakeReopenPreservesOrphanData(t *testing.T) { path := filepath.Join(t.TempDir(), "reopen.db") diff --git a/appview/ingester.go b/appview/ingester.go index b391d633..82b60f80 100644 --- a/appview/ingester.go +++ b/appview/ingester.go @@ -1223,10 +1223,11 @@ func (i *Ingester) ingestKnot(ctx context.Context, e *jmodels.Event, l *slog.Log return fmt.Errorf("failed to delete knot: %w", err) } - err = db.RemoveReposByKnot(tx, domain) - if err != nil { - return fmt.Errorf("failed to remove repos by knot: %w", err) - } + l.Error("attempt to delete repos by knot", "knot", domain) + // err = db.RemoveReposByKnot(tx, domain) + // if err != nil { + // return fmt.Errorf("failed to remove repos by knot: %w", err) + // } if registration.Registered != nil { err = i.Enforcer.RemoveKnot(domain) diff --git a/appview/knots/knots.go b/appview/knots/knots.go index 8e574a06..d47506b6 100644 --- a/appview/knots/knots.go +++ b/appview/knots/knots.go @@ -286,12 +286,13 @@ func (k *Knots) delete(w http.ResponseWriter, r *http.Request) { return } - err = db.RemoveReposByKnot(tx, domain) - if err != nil { - l.Error("failed to delete repos", "err", err) - fail() - return - } + l.Error("attempt to delete repos by knot", "knot", domain) + // err = db.RemoveReposByKnot(tx, domain) + // if err != nil { + // l.Error("failed to delete repos", "err", err) + // fail() + // return + // } // delete from enforcer if it was registered if registration.Registered != nil { -- 2.51.2