Repository Analysis

bluesky-social/social-app

The Bluesky Social application for Web, iOS, and Android

4.3 Likely human-written View on GitHub
4.3
Adjusted Score
4.3
Raw Score
100%
Time Factor
2026-05-30
Last Push
18,003
Stars
TypeScript
Language
273,608
Lines of Code
1902
Files
491
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 68HIGH 0MEDIUM 1LOW 422

Pattern Findings

491 matches across 7 categories. Click a row to expand file-level details.

Hallucination Indicators68 hits · 730 pts
SeverityFileLineSnippet
CRITICALdev-env/mock-server.ts26 await server.mocker.users.alice.agent.upsertProfile(() => ({
CRITICALdev-env/mock-server.ts30 await server.mocker.users.bob.agent.upsertProfile(() => ({
CRITICALdev-env/mock-server.ts34 await server.mocker.users.carla.agent.upsertProfile(() => ({
CRITICALdev-env/mock-server.ts63 const res = await server.mocker.users.bob.agent.post({
CRITICALdev-env/mock-server.ts66 await server.mocker.users.carla.agent.post({
CRITICALdev-env/mock-server.ts80 await server.mocker.users.alice.agent.upsertProfile(() => ({
CRITICALdev-env/mock-server.ts84 await server.mocker.users.bob.agent.upsertProfile(() => ({
CRITICALdev-env/mock-server.ts88 await server.mocker.users.carla.agent.upsertProfile(() => ({
CRITICALdev-env/mock-server.ts92 await server.mocker.users.dan.agent.upsertProfile(() => ({
CRITICALdev-env/mock-server.ts384 await server.mocker.users.alice.agent.mute('muted-account.test')
CRITICALdev-env/mock-server.ts426 await server.mocker.users.alice.agent.app.bsky.graph.block.create(
CRITICALdev-env/mock-server.ts449 ].agent.app.bsky.graph.block.create(
CRITICALdev-env/mock-server.ts470 await server.mocker.users.alice.agent.app.bsky.graph.block.create(
CRITICALdev-env/mock-server.ts481 ].agent.app.bsky.graph.block.create(
CRITICALdev-env/test-pds.ts95 // await agent.app.bsky.actor.profile.create(
CRITICALdev-env/test-pds.ts103 // await agent.app.bsky.labeler.service.create(
CRITICALdev-env/test-pds.ts331 return await agent.app.bsky.feed.generator.create(
CRITICALdev-env/test-pds.ts377 const profile = await agent.app.bsky.actor.profile.get({
CRITICALdev-env/test-pds.ts406 const res = await this.users[user]?.agent.app.bsky.graph.list.create(
CRITICALdev-env/test-pds.ts421 await this.users[owner]?.agent.app.bsky.graph.listitem.create(
CRITICALbskyogcard/src/routes/starter-pack.tsx33 const result = await ctx.appviewAgent.app.bsky.graph.getStarterPack({
CRITICALbskyogcard/src/routes/chat-invite.tsx31 const result = await ctx.chatAgent.chat.bsky.group.getJoinLinkPreviews({
CRITICALbskyogcard/src/routes/avatar-bubbles.tsx33 const result = await ctx.appviewAgent.api.app.bsky.actor.getProfiles({
CRITICALsrc/features/liveNow/index.tsx359 await agent.app.bsky.actor.status.delete({
CRITICALsrc/state/messages/convo/agent.ts649 return this.agent.chat.bsky.convo.getConvo(
CRITICALsrc/state/messages/convo/agent.ts692 return this.agent.chat.bsky.convo.getConvoMembers(
CRITICALsrc/state/messages/convo/agent.ts736 return this.agent.chat.bsky.convo.getMessages(
CRITICALsrc/state/messages/convo/agent.ts1070 const response = await this.agent.chat.bsky.convo.sendMessage(
CRITICALsrc/state/messages/convo/agent.ts1166 const {data} = await this.agent.chat.bsky.convo.sendMessageBatch(
CRITICALsrc/state/messages/convo/agent.ts1209 return this.agent.chat.bsky.convo.deleteMessageForSelf(
CRITICALsrc/state/messages/convo/agent.ts1409 const {data} = await this.agent.chat.bsky.convo.addReaction(
CRITICALsrc/state/messages/convo/agent.ts1474 await this.agent.chat.bsky.convo.removeReaction(
CRITICALsrc/state/messages/events/agent.ts246 return this.agent.chat.bsky.convo.getLog(
CRITICALsrc/state/messages/events/agent.ts342 return this.agent.chat.bsky.convo.getLog(
CRITICALsrc/state/queries/activity-subscriptions.ts46 const response = await agent.app.bsky.notification.declaration.get({
CRITICALsrc/state/queries/activity-subscriptions.ts76 const response = await agent.app.bsky.notification.declaration.put(
CRITICALsrc/state/queries/post-quotes.ts39 const res = await agent.api.app.bsky.feed.getQuotes({
CRITICALsrc/state/queries/service-config.ts23 const {data} = await agent.api.app.bsky.unspecced.getConfig()
CRITICALsrc/state/queries/list-memberships.ts65 const res = await agent.app.bsky.graph.listitem.list({
CRITICALsrc/state/queries/list-memberships.ts128 const res = await agent.app.bsky.graph.listitem.create(
CRITICALsrc/state/queries/list-memberships.ts250 await agent.app.bsky.graph.listitem.delete({
CRITICALsrc/state/queries/starter-packs.ts131 return await agent.app.bsky.graph.starterpack.create(
CRITICALsrc/state/queries/starter-packs.ts300 await agent.app.bsky.graph.list.delete({
CRITICALsrc/state/queries/starter-packs.ts305 await agent.app.bsky.graph.starterpack.delete({
CRITICALsrc/state/queries/profile.ts563 return await agent.app.bsky.graph.block.create(
CRITICALsrc/state/queries/profile.ts585 await agent.app.bsky.graph.block.delete({
CRITICALsrc/state/queries/list.ts87 const res = await agent.app.bsky.graph.list.create(
CRITICALsrc/state/queries/list.ts140 const {value: record} = await agent.app.bsky.graph.list.get({
CRITICALsrc/state/queries/list.ts205 const res = await agent.app.bsky.graph.listitem.list({
CRITICALsrc/state/queries/post.ts417 return agent.api.app.bsky.graph.muteThread({root: uri})
CRITICALsrc/state/queries/post.ts426 return agent.api.app.bsky.graph.unmuteThread({root: uri})
CRITICALsrc/state/queries/messages/actor-declaration.ts92 const result = await agent.api.com.atproto.repo.deleteRecord({
CRITICALsrc/state/queries/threadgate/index.ts119 agent.api.com.atproto.repo.getRecord({
CRITICALsrc/state/queries/threadgate/index.ts165 agent.api.com.atproto.repo.putRecord({
CRITICAL…queries/verification/useVerificationCreateMutation.tsx22 const {uri} = await agent.app.bsky.graph.verification.create(
CRITICAL…ueries/verification/useVerificationsRemoveMutation.tsx36 return agent.app.bsky.graph.verification.delete({
CRITICALsrc/state/queries/postgate/index.ts58 agent.api.com.atproto.repo.getRecord({
CRITICALsrc/state/queries/postgate/index.ts99 agent.api.com.atproto.repo.putRecord({
CRITICALsrc/view/com/composer/state/composer.ts240 postToRemove.embed.media.video.abortController.abort()
CRITICALsrc/view/com/notifications/NotificationFeedItem.tsx876 const res = await agent.api.chat.bsky.convo.getConvoForMembers(
8 more matches not shown…
Hyper-Verbose Identifiers363 hits · 370 pts
SeverityFileLineSnippet
LOWplugins/withGradleJVMHeapSizeIncrease.js26module.exports = function withGradleJVMHeapSizeIncrease(config) {
LOWplugins/withAndroidManifestLargeHeapPlugin.js3module.exports = function withAndroidManifestPlugin(appConfig) {
LOWplugins/withAndroidStylesAccentColorPlugin.js8module.exports = function withAndroidStylesAccentColorPlugin(appConfig) {
LOWplugins/withAndroidNoJitpackPlugin.js5module.exports = function withAndroidNoJitpackPlugin(config) {
LOWplugins/withAndroidManifestFCMIconPlugin.js3module.exports = function withAndroidManifestFCMIconPlugin(appConfig) {
LOW…-handler/src/BackgroundNotificationHandlerProvider.tsx20export function BackgroundNotificationPreferencesProvider({
LOWmodules/bottom-sheet/src/BottomSheetPortal.tsx12export function BottomSheetPortalProvider({
LOW…es/bottom-sheet/src/BottomSheetNativeComponent.web.tsx3export function BottomSheetNativeComponent(_: BottomSheetViewProps) {
LOWmodules/bottom-sheet/src/BottomSheetNativeComponent.tsx129function BottomSheetNativeComponentInner({
LOW…po-bluesky-swiss-army/src/PlatformInfo/index.native.ts8export function getIsReducedMotionEnabled(): boolean {
LOW…ules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts4export function getIsReducedMotionEnabled(): boolean {
LOW…/expo-bluesky-swiss-army/src/PlatformInfo/index.web.ts4export function getIsReducedMotionEnabled(): boolean {
LOWmodules/expo-bluesky-swiss-army/src/Referrer/index.ts4export function getGooglePlayReferrerInfoAsync(): Promise<GooglePlayReferrerInfo> {
LOW…ules/expo-bluesky-swiss-army/src/Referrer/index.web.ts6export function getGooglePlayReferrerInfoAsync(): Promise<GooglePlayReferrerInfo> {
LOW…ules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts5export function getGooglePlayReferrerInfoAsync(): Promise<GooglePlayReferrerInfo> {
LOW…/expo-bluesky-swiss-army/src/Referrer/index.android.ts7export function getGooglePlayReferrerInfoAsync(): Promise<GooglePlayReferrerInfo | null> {
LOWsrc/Navigation.tsx658function NotificationsTabNavigator() {
LOWsrc/Navigation.tsx884 function handlePushNotificationEntry() {
LOWsrc/locale/helpers.ts159export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage {
LOWsrc/features/liveEvents/preferences.ts39function useWebOnlyDebugLiveEventPreferences() {
LOWsrc/features/liveEvents/preferences.ts59export function useUpdateLiveEventPreferences(props: {
LOWsrc/features/liveEvents/context.tsx106export function useUserPreferencedLiveEvents() {
LOWsrc/features/liveEvents/context.tsx122export function useActiveLiveEventFeedUris() {
LOW…onents/DiscoverFeedLiveEventFeedsAndTrendingBanner.tsx17export function DiscoverFeedLiveEventFeedsAndTrendingBanner() {
LOW…liveEvents/components/LiveEventFeedsSettingsToggle.tsx13export function LiveEventFeedsSettingsToggle() {
LOW…vents/components/ExploreScreenLiveEventFeedsBanner.tsx7export function ExploreScreenLiveEventFeedsBanner() {
LOW…/liveEvents/components/SidebarLiveEventFeedsBanner.tsx15export function SidebarLiveEventFeedsBanner() {
LOWsrc/features/liveNow/index.tsx213export function useUpsertLiveStatusMutation(
LOWsrc/features/liveNow/index.tsx347export function useRemoveLiveStatusMutation() {
LOWsrc/state/feed-feedback.tsx305function sendOrAggregateInteractionsForStats(
LOWsrc/state/birthdate.ts20export function snoozeBirthdateUpdateAllowedForDid(did: string) {
LOWsrc/state/birthdate.ts29export function hasSnoozedBirthdateUpdateForDid(did: string) {
LOWsrc/state/birthdate.ts37export function useIsBirthdateUpdateAllowed() {
LOWsrc/state/util.ts40export function useCloseAllActiveElements() {
LOWsrc/state/threadgate-hidden-replies.tsx66export function useThreadgateHiddenReplyUris() {
LOWsrc/state/threadgate-hidden-replies.tsx70export function useThreadgateHiddenReplyUrisAPI() {
LOWsrc/state/threadgate-hidden-replies.tsx74export function useMergedThreadgateHiddenReplies({
LOWsrc/state/threadgate-hidden-replies.tsx89export function useMergeThreadgateHiddenReplies() {
LOWsrc/state/preferences/languages.tsx129export function getAppLanguageAsContentLanguage() {
LOWsrc/state/preferences/alt-text-required.tsx56export function useSetRequireAltTextEnabled() {
LOWsrc/state/preferences/large-alt-badge.tsx56export function useSetLargeAltBadgeEnabled() {
LOWsrc/state/messages/events/index.tsx40export function MessagesEventBusProviderInner({
LOWsrc/state/cache/profile-shadow.ts128export function usePostAuthorShadowFilter(data?: FeedPage[]) {
LOWsrc/state/shell/drawer-swipe-disabled.tsx24export function useSetDrawerSwipeDisabled() {
LOWsrc/state/shell/reminders.e2e.ts1export function shouldRequestEmailConfirmation() {
LOWsrc/state/shell/reminders.e2e.ts5export function snoozeEmailConfirmationPrompt() {}
LOWsrc/state/shell/minimal-mode.tsx90export function useMinimalShellModeSetters() {
LOWsrc/state/shell/minimal-mode.tsx99export function useEnableMinimalShellMode({enabled} = {enabled: true}) {
LOWsrc/state/shell/minimal-mode.tsx109export function useEnableMinimalShellModeForScreen(
LOWsrc/state/shell/reminders.ts7export function shouldRequestEmailConfirmation(account: SessionAccount) {
LOWsrc/state/shell/reminders.ts36export function snoozeEmailConfirmationPrompt() {
LOWsrc/state/persisted/util.ts48export function normalizeLanguageTagToTwoLetterCode(lang: string) {
LOWsrc/state/queries/activity-subscriptions.ts22export function useActivitySubscriptionsQuery() {
LOWsrc/state/queries/activity-subscriptions.ts39export function useNotificationDeclarationQuery() {
LOWsrc/state/queries/activity-subscriptions.ts70export function useNotificationDeclarationMutation() {
LOWsrc/state/queries/known-followers.ts20export function useProfileKnownFollowersQuery(did: string | undefined) {
LOWsrc/state/queries/post-feed.ts592function assertSomePostsPassModeration(
LOWsrc/state/queries/useSuggestedStarterPacksQuery.ts17export function useSuggestedStarterPacksQuery({
LOWsrc/state/queries/post-interaction-settings.ts7export function usePostInteractionSettingsMutation({
LOWsrc/state/queries/my-blocked-accounts.ts15export function useMyBlockedAccountsQuery() {
303 more matches not shown…
Fake / Example Data38 hits · 46 pts
SeverityFileLineSnippet
LOW.jscodeshift/file/lingui-v5.js8 * _(msg`Lorem ipsum`)
LOW.jscodeshift/file/lingui-v5.js13 * l`Lorem ipsum`
LOWsrc/view/screens/Debug.tsx208 '2xl-thin' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx211 '2xl' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx214 '2xl-medium' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx217 '2xl-bold' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx220 '2xl-heavy' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx223 'xl-thin' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx226 'xl' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx229 'xl-medium' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx232 'xl-bold' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx235 'xl-heavy' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx238 'lg-thin' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx241 'lg' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx244 'lg-medium' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx247 'lg-bold' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx250 'lg-heavy' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx253 'md-thin' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx256 'md' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx259 'md-medium' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx262 'md-bold' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx265 'md-heavy' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx268 'sm-thin' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx271 'sm' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx274 'sm-medium' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx277 'sm-bold' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx280 'sm-heavy' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx283 'xs-thin' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx286 'xs' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx289 'xs-medium' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx292 'xs-bold' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx295 'xs-heavy' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx299 'title-2xl' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx302 'title-xl' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx305 'title-lg' lorem ipsum dolor
LOWsrc/view/screens/Debug.tsx308 'title' lorem ipsum dolor
LOWsrc/view/screens/Storybook/Forms.tsx63 defaultValue="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec auctor, nisl eget ultricies lacin
LOWsrc/view/screens/Storybook/Forms.tsx63 defaultValue="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec auctor, nisl eget ultricies lacin
Over-Commented Block15 hits · 15 pts
SeverityFileLineSnippet
LOW__e2e__/perf-test.yml1# flow.yaml
LOWbskyweb/embedr-static/robots.txt1# Hello Friends!
LOWdev-env/test-pds.ts81 publicUrl: 'http://localhost:2584',
LOWdev-env/test-pds.ts101 // )
LOWmodules/BlueskyNSE/NotificationService.swift1import Intents
LOWsrc/platform/crypto.ts1// HACK
LOWsrc/state/queries/nuxs/index.ts41 }
LOWsrc/screens/Messages/components/MessagesList.tsx221 // 1. New messages are being added from the log or from a message you have sent
LOWsrc/screens/Messages/components/MessageInput.web.tsx61 onSendMessage(message)
LOW…eens/Messages/components/splitView/leftColumnScroll.ts1// Holds the splitview left column's scroll offset across re-mounts caused
LOWsrc/screens/Search/modules/ExploreTrendingVideos.tsx61
LOWsrc/lib/demo.ts41 record: {
LOWsrc/lib/demo.ts121 // width: 598,
LOWsrc/lib/international-telephone-codes.ts1241 unicodeFlag: '🇲🇵',
LOWsrc/lib/api/feed-manip.ts261 // Some feeds, like Following, dedupe by thread, so you only see the most recent reply.
Example Usage Blocks4 hits · 6 pts
SeverityFileLineSnippet
LOWbskylink/tests/infra/with-test-db.sh3# Example usage:
LOWdev-env/dev-infra/with-test-db.sh3# Example usage:
LOWdev-env/dev-infra/with-test-redis-and-db.sh3# Example usage:
LOWscripts/push-notification/send.sh7# Usage:
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippet
MEDIUMweb/index.html144 Feel free to customize this however you'd like.
LOWsrc/view/com/util/Views.tsx6// If you explode these into functions, don't forget to forwardRef!
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippet
LOWsrc/state/queries/post-feed.ts208 * If this is a public view, we need to check if posts fail moderation.