package spindle import ( "context" "fmt" "log/slog" "tangled.org/core/spindle/db" ) func cleanupOrphanRepos(ctx context.Context, d *db.DB, logger *slog.Logger) error { res, err := d.ExecContext(ctx, ` delete from repos where coalesce(repo_did, '') = '' and exists ( select 1 from repos r2 where r2.owner = repos.owner and coalesce(r2.repo_did, '') <> '' ) `) if err != nil { return fmt.Errorf("delete orphan repos: %w", err) } n, _ := res.RowsAffected() if n > 0 { logger.Info("cleaned up orphan repos missing repo_did", "deleted", n) } return nil }