AI Slop Code Risk Monitor

mattermost/mattermost-mobile

SlopCodeMonitor badge for mattermost/mattermost-mobile Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Next generation iOS and Android apps for Mattermost in React Native

1.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for mattermost/mattermost-mobile, a TypeScript project with 2,743 GitHub stars. SynthScan examined 638,139 lines of code across 3920 source files, recording 712 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 1.6 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.6
Adjusted Signal
1.6
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
2.7K
Stars
TypeScript
Language
638.1K
Lines of Code
3.9K
Files
712
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 7.0/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 664 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.3/100 · LOW

Are imports declared and package/API names verified? 35 finding(s).

Agent Over-Engineering Ratio 3.4/100 · LOW

Are wrappers, guards, and repeated structures necessary? 408 finding(s).

PR Review Velocity Impact 7.2/100 · LOW

Which changes need focused human review? 712 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 1MEDIUM 119LOW 592

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 712 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers395 hits · 402 pts
SeverityFileLineSnippetContext
LOWapp/init/credentials_migration.ts15export async function migrateLegacyPreauthSecret(serverUrls: string[]): Promise<void> {CODE
LOWapp/init/launch.ts46export async function determineInitialExpoRoute(): Promise<ExpoRouterLaunchResult> {CODE
LOWapp/init/launch.ts84async function determineRouteFromDeeplink(deepLinkUrl: string): Promise<ExpoRouterLaunchResult> {CODE
LOWapp/init/launch.ts89async function determineRouteFromNotification(notification: NotificationWithData): Promise<ExpoRouterLaunchResult> {CODE
LOWapp/init/launch.ts186export async function determineRouteFromLaunchProps(props: LaunchProps): Promise<ExpoRouterLaunchResult> {CODE
LOWapp/init/launch.ts226async function determineAuthenticatedRoute(props: LaunchProps): Promise<ExpoRouterLaunchResult> {CODE
LOWapp/database/recovery/index.ts43export function resetDatabaseRecoveryStateForTests(): void {CODE
LOWapp/database/recovery/index.ts52export async function attemptServerDatabaseRecovery(CODE
LOW…tor/server_data_operator/comparators/scheduled_post.ts6export function shouldUpdateScheduledPostRecord(e: ScheduledPostModel, n: ScheduledPost) {CODE
LOW…atabase/operator/server_data_operator/handlers/post.ts143function isNewerRedactionGeneration(e: PostModel, n: Post): boolean {CODE
LOW…atabase/operator/server_data_operator/handlers/post.ts226async function resetEpochForUnstampedRedactionChanges(database: Database, posts: Post[]) {CODE
LOWapp/products/agents/utils.ts42export function isAgentMentionReminderPost(post: PostModel | Post): boolean {CODE
LOWapp/products/agents/turn_content.ts50export function getResponseAnchorSequence(conversation: ConversationResponse, postId: string): number {CODE
LOWapp/products/agents/turn_content.ts123export function extractAnnotationsFromTurn(turn: Turn | undefined): Annotation[] {CODE
LOWapp/products/agents/turn_content.ts185export function deriveApprovalStageForPost(conversation: ConversationResponse, postId: string): ToolApprovalStage {CODE
LOWapp/products/agents/database/queries/version.ts20function isAgentsEnabledFromSystemModel(systems: SystemModel[]) {CODE
LOWapp/products/agents/database/queries/thread.ts33export function queryAIThreadsByChannelId(database: Database, channelId: string) {CODE
LOWapp/products/agents/database/queries/thread.ts43export function observeAIThreadsByChannelId(database: Database, channelId: string) {CODE
LOWapp/products/agents/actions/websocket/index.ts106export function handleAgentConversationUpdated(CODE
LOWapp/products/agents/actions/websocket/version.ts7export async function handleAgentsPluginEnabled(serverUrl: string, manifest: ClientPluginManifest) {CODE
LOWapp/products/agents/actions/websocket/version.ts14export async function handleAgentsPluginDisabled(serverUrl: string, manifest: ClientPluginManifest) {CODE
LOWapp/products/agents/actions/remote/agents_status.ts8export async function checkIsAgentsPluginEnabled(serverUrl: string): Promise<{data?: boolean; error?: unknown}> {CODE
LOWapp/products/agents/actions/remote/conversation.ts39function normalizeConversationResponse(raw: ConversationResponse): ConversationResponse {CODE
LOWapp/products/agents/actions/remote/conversation.ts146export function clearConversationCacheForServer(serverUrl: string): void {CODE
LOW⚡app/products/playbooks/database/queries/settings.ts12function queryTaskRequirementsEnabled(database: Database) {CODE
LOW⚡app/products/playbooks/database/queries/settings.ts18export function observeIsTaskRequirementsEnabled(database: Database) {CODE
LOW⚡app/products/playbooks/database/queries/settings.ts26export async function fetchIsTaskRequirementsEnabled(database: Database) {CODE
LOWapp/products/playbooks/database/queries/version.ts27function isPlaybooksEnabledFromSystemModel(systems: SystemModel[]) {CODE
LOWapp/products/playbooks/database/queries/version.ts41export function observeIsPlaybooksEnabled(database: Database) {CODE
LOWapp/products/playbooks/database/queries/version.ts51function isSummaryEditEnabledFromSystemModel(systems: SystemModel[]) {CODE
LOWapp/products/playbooks/database/queries/version.ts65export async function fetchIsSummaryEditEnabled(database: Database) {CODE
LOWapp/products/playbooks/database/queries/version.ts70export function observeIsSummaryEditEnabled(database: Database) {CODE
LOW…s/playbooks/database/models/playbook_checklist_item.ts11function safeParseTaskRequirements(raw: unknown): TaskRequirement[] {CODE
LOWapp/products/playbooks/screens/navigation.ts42export async function goToPlaybookRunWithChannelSwitch(intl: IntlShape, serverUrl: string, playbookRun: PlaybookRun | PlCODE
LOWapp/products/playbooks/actions/websocket/settings.ts10export async function handlePlaybooksSettingsChanged(serverUrl: string, msg: WebSocketMessage) {CODE
LOWapp/products/playbooks/actions/websocket/version.ts7export async function handlePlaybookPluginEnabled(serverUrl: string, manifest: ClientPluginManifest) {CODE
LOWapp/products/playbooks/actions/websocket/version.ts14export async function handlePlaybookPluginDisabled(serverUrl: string, manifest: ClientPluginManifest) {CODE
LOWapp/products/playbooks/actions/local/property_fields.ts16export async function handlePlaybookRunPropertyFields(CODE
LOWapp/products/playbooks/actions/local/channel.ts8export async function updateLastPlaybookRunsFetchAt(serverUrl: string, channelId: string, lastPlaybookRunsFetchAt: numbeCODE
LOWapp/products/playbooks/actions/local/checklist.ts160export async function updateChecklistItemTitleAndDescription(serverUrl: string, itemId: string, title: string, descriptiCODE
LOWapp/context/theme/index.tsx27export function getDefaultThemeByAppearance(): Theme {CODE
LOWapp/context/theme/index.tsx128export function useThemeByAppearanceWithDefault(themeProp?: Theme): Theme {CODE
LOWapp/queries/servers/entry.ts53export async function prepareEntryModelsForDeletion({serverUrl, operator, teamData, chData}: PrepareModelsForDeletionArgCODE
LOWapp/queries/servers/entry.ts193export async function processEntryModelsForDeletion({CODE
LOWapp/queries/servers/role.ts41export function observePermissionForChannel(database: Database, channel: ChannelModel | null | undefined, user: UserModeCODE
LOWapp/queries/servers/role.ts92export function observeCanManageChannelMembers(database: Database, channelId: string, user: UserModel) {CODE
LOWapp/queries/servers/role.ts106export function observeCanManageChannelSettings(database: Database, channelId: string, user: UserModel) {CODE
LOWapp/queries/servers/role.ts120export function observeCanManageChannelAutotranslations(database: Database, channelId: string, user: UserModel) {CODE
LOWapp/queries/servers/role.ts165export function observeCanManageSharedChannel(database: Database, channelId: string, user: UserModel) {CODE
LOWapp/queries/servers/channel.ts58export function prepareMissingChannelsForAllTeams(operator: ServerDataOperator, channels: Channel[], channelMembers: ChaCODE
LOWapp/queries/servers/channel.ts566export function observeMyChannelMentionCount(database: Database, teamId?: string, columns = ['mentions_count', 'is_unreaCODE
LOWapp/queries/servers/categories.ts41export async function prepareCategoriesAndCategoriesChannels(operator: ServerDataOperator, categories: CategoryWithChannCODE
LOWapp/queries/servers/thread.ts226export function observeThreadMentionCount(database: Database, {CODE
LOWapp/queries/servers/system.ts437export async function prepareCommonSystemValues(CODE
LOWapp/queries/servers/system.ts536export async function setCurrentTeamAndChannelId(operator: ServerDataOperator, teamId?: string, channelId?: string) {CODE
LOWapp/queries/servers/scheduled_post.ts38export function observeFirstScheduledPost(v: ScheduledPostModel[]) {CODE
LOWapp/utils/helpers.ts162export function getCurrentMomentForTimezone(timezone: string | null) {CODE
LOWapp/utils/dialog_utils.ts51export function mapDialogTypeToAppFieldType(dialogType: InteractiveDialogElementType, dataSource?: string): AppFieldTypeCODE
LOWapp/utils/dialog_utils.ts86export function mapAppFieldTypeToDialogType(appFieldType: AppFieldType): InteractiveDialogElementType {CODE
LOWapp/utils/dialog_utils.ts113export function getDataSourceForAppFieldType(appFieldType: AppFieldType): string | undefined {CODE
335 more matches not shown…
Self-Referential Comments94 hits · 290 pts
SeverityFileLineSnippetContext
MEDIUMdetox/e2e/test/products/agents/agent_mention.e2e.ts129 // # Create a regular bot (not an agent) for comparison testingCOMMENT
MEDIUM⚡…e2e/test/products/agents/tool_calls_in_channels.e2e.ts213 // # Create a second user and add to the test channelCOMMENT
MEDIUM⚡…e2e/test/products/agents/tool_calls_in_channels.e2e.ts218 // # Create a pending tool callCOMMENT
MEDIUM⚡…e2e/test/products/agents/tool_calls_in_channels.e2e.ts221 // # Create an agent post where the OTHER user is the requester (not the logged-in user)COMMENT
MEDIUM⚡…e2e/test/products/agents/tool_calls_in_channels.e2e.ts393 // # Create a DM channel between admin and the test userCOMMENT
MEDIUM⚡…e2e/test/products/agents/tool_calls_in_channels.e2e.ts396 // # Create a pending tool call with known argumentsCOMMENT
MEDIUM⚡…e2e/test/products/agents/tool_calls_in_channels.e2e.ts402 // # Create an agent post in the DM channelCOMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts166 // # Create a tool call with a known nameCOMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts169 // # Create an agent post with pending tool calls (Phase 1)COMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts190 // # Create a pending tool callCOMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts193 // # Create an agent post where the test user is the requesterCOMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts242 // # Create a successful tool call with a resultCOMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts249 // # Create an agent post with the completed tool callCOMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts269 // # Create a rejected tool callCOMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts275 // # Create an agent post with the rejected tool callCOMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts301 // # Create a successful tool call (tool has executed)COMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts308 // # Create an agent post in Phase 2 (pending_tool_result = 'true')COMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts332 // # Create a successful tool call with resultCOMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts339 // # Create an agent post in Phase 2 (result approval)COMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts367 // # Create an agent post with multiple tool callsCOMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts434 // # Create a mix of tool calls in different statesCOMMENT
MEDIUM…e2e/test/products/agents/tool_calls_in_channels.e2e.ts449 // # Create an agent post with mixed tool call statesCOMMENT
MEDIUM…x/e2e/test/products/channels/smoke_test/threads.e2e.ts70 // # Create a thread and unfollow thread via thread navigationCOMMENT
MEDIUM…x/e2e/test/products/channels/smoke_test/threads.e2e.ts157 // # Create a thread, go back to channel list screen, then go to global threads screen, open thread options for COMMENT
MEDIUM…s/channels/autocomplete/at_mention_user_filters.e2e.ts70 // # Create a new user, add to team/channel, then deactivateCOMMENT
MEDIUM…s/channels/autocomplete/at_mention_user_filters.e2e.ts93 // # Create a user with a known nickname (password 16+ chars for server's 14-char minimum).COMMENT
MEDIUM…annels/autocomplete/at_mention_user_suggestions.e2e.ts303 // # Create a team member not in the channel, tap "@" to activate at-mention autocompleteCOMMENT
MEDIUM…/test/products/channels/search/search_modifiers.e2e.ts73 // # Create a second user, create a DM channel with that user, and post a messageCOMMENT
MEDIUM…/test/products/channels/search/search_modifiers.e2e.ts195 // # Create a user with a username containing special charactersCOMMENT
MEDIUM…/e2e/test/products/channels/search/search_cycle.e2e.ts174 // # Create a new user with known first name, last name, and nicknameCOMMENT
MEDIUM…2e/test/products/channels/search/hashtag_search.e2e.ts60 // # Create a unique hashtag and post a message containing itCOMMENT
MEDIUM…2e/test/products/channels/search/hashtag_search.e2e.ts108 // # Create a unique hashtag and post a message containing itCOMMENT
MEDIUM…cts/channels/threads/follow_and_unfollow_thread.e2e.ts66 // # Create a threadCOMMENT
MEDIUM…cts/channels/threads/follow_and_unfollow_thread.e2e.ts101 // # Create a thread and go back to channel screenCOMMENT
MEDIUM…cts/channels/threads/follow_and_unfollow_thread.e2e.ts139 // # Create a thread, go back to channel screen, and open post options for threadCOMMENT
MEDIUM…cts/channels/threads/follow_and_unfollow_thread.e2e.ts195 // # Create a thread, go back to channel list screen, then go to global threads screen, and tap on all your threCOMMENT
MEDIUM…channels/threads/mark_thread_as_read_and_unread.e2e.ts64 // # Create a thread started by the current user which another user replied to, go back to channel list screen, COMMENT
MEDIUM…channels/threads/mark_thread_as_read_and_unread.e2e.ts102 // # Create a thread started by the current user which another user replied to, go back to channel list screen, COMMENT
MEDIUM…channels/threads/mark_thread_as_read_and_unread.e2e.ts149 // # Create a thread started by the current user which another user replied to, go back to channel list screen, COMMENT
MEDIUM…e/test/products/channels/threads/global_threads.e2e.ts80 // # Create a thread started by the current user which current user replied toCOMMENT
MEDIUM…e/test/products/channels/threads/global_threads.e2e.ts126 // # Create a thread started by the current user and current user unfollows the threadCOMMENT
MEDIUM…e/test/products/channels/threads/global_threads.e2e.ts153 // # Create a thread started by another user which the current user replied toCOMMENT
MEDIUM…e/test/products/channels/threads/global_threads.e2e.ts194 // # Create a thread started by another user which the current user replied to and current user unfollows the thCOMMENT
MEDIUM…roducts/channels/threads/save_and_unsave_thread.e2e.ts65 // # Create a thread, go back to channel list screen, and then go to global threads screenCOMMENT
MEDIUM…roducts/channels/threads/save_and_unsave_thread.e2e.ts111 // # Create a thread, go back to channel list screen, and then go to global threads screenCOMMENT
MEDIUM…roducts/channels/threads/open_thread_in_channel.e2e.ts63 // # Create a thread, go back to channel list screen, and then go to global threads screenCOMMENT
MEDIUM…roducts/channels/threads/open_thread_in_channel.e2e.ts103 // # Create a thread, go back to channel list screen, and then go to global threads screenCOMMENT
MEDIUM…/test/products/channels/threads/reply_to_thread.e2e.ts66 // # Create a thread, go back to channel list screen, and then go to global threads screenCOMMENT
MEDIUM…/test/products/channels/threads/reply_to_thread.e2e.ts108 // # Create a thread, go back to channel list screen, and then go to global threads screenCOMMENT
MEDIUM…ts/channels/threads/dm_from_thread_user_profile.e2e.ts59 // # Create a second user and add to team/channelCOMMENT
MEDIUM…ts/channels/threads/dm_from_thread_user_profile.e2e.ts64 // # Create a root post and a reply from the other userCOMMENT
MEDIUM…/channels/channel_attributes/channel_attributes.e2e.ts116 // # Create a header-designated attribute field.COMMENT
MEDIUM…/channels/channel_attributes/channel_attributes.e2e.ts126 // # Create the channel with the attribute value supplied at creation time, mirroringCOMMENT
MEDIUM…/channels/channel_attributes/channel_attributes.e2e.ts149 // # Create an optional header-designated field.COMMENT
MEDIUM…/channels/channel_attributes/channel_attributes.e2e.ts170 // # Create the channel with only the control value set — TEST_FIELD_NAME stays unset.COMMENT
MEDIUM…/channels/channel_attributes/channel_attributes.e2e.ts212 // # Create the channel with both values set at creation time.COMMENT
MEDIUM…/channels/channel_attributes/channel_attributes.e2e.ts250 // # Create a second user for the DM. DMs are server-global; no shared team needed.COMMENT
MEDIUM…/channels/channel_attributes/channel_attributes.e2e.ts253 // # Create the DM and post a message so it appears in the sidebar.COMMENT
MEDIUM…/channels/channel_attributes/channel_attributes.e2e.ts288 // # Create the channel with the attribute value at creation time.COMMENT
MEDIUM…/channels/channel_attributes/channel_attributes.e2e.ts313 // # Create an optional info-designated field.COMMENT
34 more matches not shown…
Over-Commented Block127 hits · 127 pts
SeverityFileLineSnippetContext
LOWtypes/api/mm_blocks.d.ts1// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.COMMENT
LOWapp/products/calls/alerts.ts181 const enabled = getCallsState(serverUrl).enabled[channelId];COMMENT
LOWapp/context/keyboard_state/index.tsx221 const onScroll = useAnimatedScrollHandler({COMMENT
LOWapp/constants/classification.ts1// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.COMMENT
LOWapp/constants/channel_attributes.ts1// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.COMMENT
LOWapp/constants/channel_attributes.ts41COMMENT
LOWapp/utils/classification.ts61// The per-channel banner is no longer classification's: any attribute designatedCOMMENT
LOWapp/utils/url/path.ts1// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.COMMENT
LOWapp/utils/url/latin_map.ts381 Ż: 'Z', // LATIN CAPITAL LETTER Z WITH DOT ABOVECOMMENT
LOWapp/utils/url/latin_map.ts581 // CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER ESH' (ʃ)COMMENT
LOWapp/screens/browse_channels/browse_channels.tsx121 // For archived channels, skip `joinChannel`: the server returns a 400 fromCOMMENT
LOWapp/screens/server/index.tsx421 }COMMENT
LOWapp/screens/channel/header/index.ts81 const isUserLanguageSupported = observeIsUserLanguageSupportedByAutotranslation(database);COMMENT
LOWapp/components/markdown/transform.test.ts3901COMMENT
LOWapp/components/channel_attribute_editor/utils.ts81 // smaller than the second once that addition lands, leaving Gorhom anCOMMENT
LOW…tion_banner/global_classification_banner_container.tsx41 // is on. So visibility has to re-check the classification flag here: withoutCOMMENT
LOWapp/components/channel_attribute_form/index.ts1// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.COMMENT
LOWapp/keyboard/state_machine/actions.ts281 postInputTranslateY: {value: 0, animated: false},COMMENT
LOWapp/store/ephemeral_store.ts61COMMENT
LOW…ermost/secure-pdf-viewer/ios/SecurePDFViewerManager.mm1#import "SecurePDFViewerManager.h"COMMENT
LOW…cure-pdf-viewer/ios/RCTSecurePDFViewerComponentView.mm1#ifdef RCT_NEW_ARCH_ENABLEDCOMMENT
LOW…ecure-pdf-viewer/ios/SecurePDFViewer-Bridging-Header.h1// SecurePDFViewer-Bridging-Header.hCOMMENT
LOW…s/@mattermost/calls-native/ios/Source/MMCallsNative.mm1// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.COMMENT
LOW…es/@mattermost/calls-native/ios/Source/MMCallsNative.h1// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.COMMENT
LOW…ost/calls-native/ios/Source/Managers/CallsBridge.swift1// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.COMMENT
LOW…s-native/ios/Source/Managers/AudioSessionManager.swift41 /// proxy setter requires: they open with a `checkLock:` and fail withCOMMENT
LOW…s-native/ios/Source/Managers/AudioSessionManager.swift121COMMENT
LOW…s-native/ios/Source/Managers/AudioSessionManager.swift241 // MARK: - CallKit lifecycle forwardingCOMMENT
LOW…ou/Tests/GekidouTests/DatabaseSafeIterationTests.swift1// DatabaseSafeIterationTests.swiftCOMMENT
LOWios/Mattermost/Mattermost-Bridging-Header.h1//COMMENT
LOW…MattermostShare/Views/FontIconViews/FontIconView.swift1//COMMENT
LOWdetox/maestro/GUIDELINES.md21## 2. Flow file header contractCOMMENT
LOWdetox/maestro/subflows/calls/join_channel_call.yml1# Sub-flow: Start/join a call from the channel quick-actions sheet.COMMENT
LOWdetox/maestro/subflows/auth/logout.yml21COMMENT
LOWdetox/maestro/subflows/auth/login.yml1# Sub-flow: Login to MattermostCOMMENT
LOW…o/subflows/navigation/open_settings_report_problem.yml1# Sub-flow: from the Account screen, open Settings and reveal "Report a Problem".COMMENT
LOW…o/subflows/navigation/open_settings_report_problem.yml21# - Account screen is open (see open_account.yml)COMMENT
LOW…tro/subflows/navigation/open_channel_quick_actions.yml1# Open the channel header quick-actions sheet (three-dots).COMMENT
LOW…ox/maestro/subflows/navigation/navigate_to_channel.yml1# Sub-flow: Navigate to a channelCOMMENT
LOW…estro/subflows/navigation/expand_channels_category.yml1# Expand the Channels sidebar category when collapsed (chevron points right).COMMENT
LOW…tox/maestro/subflows/server/_enter_url_and_connect.yml1# Sub-flow (iOS): enter SITE_1_URL + display name and submit the server form ONCE.COMMENT
LOWdetox/maestro/subflows/server/connect_server_ios.yml1# Sub-flow (iOS only): connect to the Mattermost server from the server form.COMMENT
LOW…estro/subflows/browser/dismiss_chrome_interstitial.yml1# Subflow: Dismiss Chrome first-run / ads interstitials on a fresh API 35 emulator.COMMENT
LOW…ro/subflows/waits/wait_for_server_connect_complete.yml1# Sub-flow: Wait for server connect to finish navigating off the server form.COMMENT
LOWdetox/maestro/scripts/write_maestro_failure_stub.sh1#!/bin/bashCOMMENT
LOWdetox/maestro/scripts/reset_ios_app.sh1#!/bin/bashCOMMENT
LOWdetox/maestro/scripts/apply_client_config_value.sh1#!/bin/bashCOMMENT
LOWdetox/maestro/scripts/apply_client_config_value.sh21# not hold it, and no wait here could prove that it will.COMMENT
LOWdetox/maestro/scripts/setup_local.sh1#!/usr/bin/env bashCOMMENT
LOWdetox/maestro/scripts/setup_local.sh21# What this script does:COMMENT
LOWdetox/maestro/scripts/run_calls_two_device.sh1#!/bin/bashCOMMENT
LOWdetox/maestro/scripts/write_maestro_skip_stub.sh1#!/bin/bashCOMMENT
LOWdetox/maestro/scripts/run_ci_batches.sh1#!/usr/bin/env bashCOMMENT
LOWdetox/maestro/scripts/run_timezone_test.sh1#!/bin/bashCOMMENT
LOWdetox/maestro/flows/calls/leave_call.yml1# MM-T4833: User can leave a call from the call screen or the minimized call bar.COMMENT
LOWdetox/maestro/flows/calls/call_ui_permission.yml1# MM-T1411: Starting a call shows the permission dialog and call screen UI.COMMENT
LOWdetox/maestro/flows/calls/mute_unmute.yml1# MM-T4832: User can mute and unmute the microphone during an active call.COMMENT
LOWdetox/maestro/flows/calls/start_call.yml1# MM-T4829: User can start a call from channel quick actions and see the call screen.COMMENT
LOWdetox/maestro/flows/timezone/clock_display.yml1# MM-T1325: Timezone display settings reflect the device timezone after app restart.COMMENT
LOWdetox/maestro/flows/account/attach_logs.yml1# MM-T67856: Tapping Report a Problem opens the report screen and you can get back to Settings.COMMENT
67 more matches not shown…
Fake / Example Data33 hits · 33 pts
SeverityFileLineSnippetContext
LOW…products/agents/screens/agent_chat/agent_chat.test.tsx66 createDirectChannel: jest.fn(() => Promise.resolve({data: {id: 'placeholder'}})),CODE
LOW…laybooks/database/operators/transformers/index.test.ts1005 attrs: '{"placeholder": "Enter value"}',CODE
LOW…laybooks/database/operators/transformers/index.test.ts1032 record.attrs = '{"placeholder": "Original placeholder"}';CODE
LOW…laybooks/database/operators/transformers/index.test.ts1051 attrs: '{"placeholder": "Updated placeholder"}',CODE
LOW…laybooks/database/operators/transformers/index.test.ts1109 record.attrs = '{"placeholder": "Original"}';CODE
LOW…laybooks/database/operators/transformers/index.test.ts1144 expect(preparedRecord.attrs).toBe('{"placeholder": "Original"}');CODE
LOW…aybooks/database/models/playbook_run_attribute.test.ts29 attribute.attrs = '{"placeholder": "Enter value"}';CODE
LOW…aybooks/database/models/playbook_run_attribute.test.ts69 expect(playbook_run_attribute.attrs).toBe('{"placeholder": "Enter value"}');CODE
LOW…cts/playbooks/screens/select_user/select_user.test.tsx76 expect(searchBar).toHaveProp('placeholder', 'Search');CODE
LOW…cts/playbooks/screens/post_update/post_update.test.tsx182 expect(input).toHaveProp('placeholder', 'Enter your update message');CODE
LOWapp/managers/intune_manager/index.test.ts118 identity: {upn: 'user@example.com', tid: 'tenant_id', oid: 'object_id'},CODE
LOWapp/managers/intune_manager/index.test.ts139 upn: 'user@example.com',CODE
LOWapp/utils/dialog_conversion.test.ts1288 name: 'Jane Doe',CODE
LOWapp/utils/dialog_conversion.test.ts1298 name: 'Jane Doe',CODE
LOWapp/utils/user/index.test.ts65 expect(result).toBe('John Doe');CODE
LOWapp/utils/user/index.test.ts159 expect(result).toBe('John Doe');CODE
LOWapp/utils/user/index.test.ts165 expect(result).toBe('John Doe');CODE
LOWapp/screens/edit_profile/components/form.test.tsx33 email: 'test@test.com',CODE
LOWapp/screens/edit_profile/components/form.test.tsx49 email: 'test@test.com',CODE
LOWapp/screens/invite/actions.test.ts111 const email = 'user@example.com';CODE
LOWapp/screens/invite/actions.test.ts294 const email = 'user@example.com';CODE
LOWapp/screens/invite/actions.test.ts350 const email = 'user@example.com';CODE
LOWapp/screens/invite/actions.test.ts382 const email = 'user@example.com';CODE
LOWapp/screens/component_library/mm_blocks_editor_utils.ts395 {key: 'placeholder', label: 'placeholder', type: 'string'},CODE
LOW…ist/post/system_message/system_message_helpers.test.js175 workspace_name: 'Acme Corp',CODE
LOW…ist/post/system_message/system_message_helpers.test.js191 workspace_name: 'Acme Corp',CODE
LOWapp/components/block_renderer/translation/mm_block.ts14const STATIC_SELECT_REQUIRED_KEYS = ['type', 'action_id', 'placeholder'];CODE
LOWdetox/utils/webhook_utils.js20 placeholder: 'placeholder',CODE
LOWdetox/utils/webhook_utils.js64 placeholder: 'placeholder',CODE
LOWdetox/utils/webhook_utils.js79 placeholder: 'placeholder',CODE
LOWdetox/utils/webhook_utils.js306 placeholder: 'user@example.com',CODE
LOWdetox/e2e/support/utils/index.ts45 const phrase = 'lorem ipsum dolor sit amet ';CODE
LOWdetox/e2e/support/utils/index.ts45 const phrase = 'lorem ipsum dolor sit amet ';CODE
Decorative Section Separators11 hits · 33 pts
SeverityFileLineSnippetContext
MEDIUMdetox/scripts/preboot_ios_simulator.sh199# ─── Main ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMdetox/e2e/test/setup.ts106// ─── Admin API login ─────────────────────────────────────────────────────────COMMENT
MEDIUMdetox/e2e/test/setup.ts208// ─── Global beforeAll ────────────────────────────────────────────────────────COMMENT
MEDIUM…st/products/channels/channels/channel_bookmarks.e2e.ts151 // ── Create all test channels ──────────────────────────────────────────COMMENT
MEDIUM…st/products/channels/channels/channel_bookmarks.e2e.ts169 // ── Pre-create bookmarks ──────────────────────────────────────────────COMMENT
MEDIUM…channels/channels/channel_bookmarks_permissions.e2e.ts83 // ── Create all test channels ──────────────────────────────────────────COMMENT
MEDIUM…ucts/channels/channels/channel_bookmarks_search.e2e.ts72 // ── Create all test channels ──────────────────────────────────────────COMMENT
MEDIUM…ucts/channels/channels/channel_bookmarks_search.e2e.ts82 // ── Pre-create bookmarks ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/e2e-label-manager.yml533 # ── Honor E2E/Override: strip run labels, then cancel in-flight E2E ─────COMMENT
MEDIUM.github/workflows/e2e-ios-template.yml1068 # ── Spec durations for the next run's shard packing ────────────────────COMMENT
MEDIUM.github/workflows/e2e-android-template.yml649 # ── Spec durations for the next run's shard packing ────────────────────COMMENT
Structural Annotation Overuse14 hits · 28 pts
SeverityFileLineSnippetContext
LOWCLAUDE-IOS-SIMULATOR.md23## Step 1: iOS Simulator RuntimeCOMMENT
LOWCLAUDE-IOS-SIMULATOR.md39## Step 2: CocoaPods InstallationCOMMENT
LOWCLAUDE-IOS-SIMULATOR.md86## Step 3: Start Metro Bundler (if not already running)COMMENT
LOWCLAUDE-IOS-SIMULATOR.md94## Step 4: Run iOS App (if not already built)COMMENT
LOW⚡app/managers/security_manager/index.ts628 // Step 1: Acquire MSAL tokens via native loginCOMMENT
LOW⚡app/managers/security_manager/index.ts631 // Step 2: Enroll in MAM (NO token sent to server - session exists)COMMENT
LOW⚡app/actions/remote/session.ts358 // Step 1: Acquire MSAL tokens with IntuneScopeCOMMENT
LOW⚡app/actions/remote/session.ts362 // Step 2: POST accessToken to /oauth/intune to exchange for session tokenCOMMENT
LOW⚡app/actions/remote/session.ts397 // Step 3: Complete SSO login flow (sets up database, etc.)COMMENT
LOW⚡app/actions/remote/session.ts400 // Step 4: Enroll in MAM if not already enrolled (if 412 was not triggered)COMMENT
LOW⚡app/client/rest/tracking.ts248 // Step 1: Calculate total data size in bitsCOMMENT
LOW⚡app/client/rest/tracking.ts253 // Step 2: Calculate effective latency (in ms)COMMENT
LOW⚡app/client/rest/tracking.ts256 // Step 3: Calculate data transfer timeCOMMENT
LOW⚡app/client/rest/tracking.ts264 // Step 4: Calculate average speedCOMMENT
Modern AI Meta-Vocabulary9 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUMdetox/maestro/scripts/run_two_device.sh2# Two-device orchestration for MM-T3055/MM-T3056 multi-device sync testsCOMMENT
MEDIUMdetox/maestro/scripts/run_channel_sync_two_device.sh2# Two-device orchestration for MM-T837 channel-creation-sync testCOMMENT
MEDIUMdetox/maestro/scripts/run_calls_two_device.sh2# Two-device orchestration for Calls E2E tests (MM-T4830 / MM-T4831)COMMENT
MEDIUM…estro/flows/multi_device/device_b_verifies_channel.yml14# - SYNC_TOKEN, TEST_TEAM_ID, ADMIN_TOKEN (orchestration / API polling)COMMENT
MEDIUM…tox/maestro/flows/multi_device/device_a_start_call.yml13# - SYNC_TOKEN, TEST_CHANNEL_ID, ADMIN_TOKEN (orchestration / API polling)COMMENT
MEDIUMdetox/maestro/flows/multi_device/device_b_join_call.yml75# Leave intentionally omitted here for two-device orchestration:COMMENT
MEDIUM.github/workflows/e2e-detox-pr.yml862 # Maestro orchestration lives in e2e-maestro-pr.yml so Detox and Maestro CICOMMENT
MEDIUM.github/workflows/e2e-maestro-pr.yml1# Maestro E2E orchestration — reusable workflow only.COMMENT
MEDIUM…ithub/actions/compute-e2e-build-fingerprint/action.yml39 # build steps with unrelated orchestration (TSIO, statuses, provisioning),COMMENT
Verbosity Indicators10 hits · 22 pts
SeverityFileLineSnippetContext
LOW⚡app/managers/security_manager/index.ts628 // Step 1: Acquire MSAL tokens via native loginCOMMENT
LOW⚡app/managers/security_manager/index.ts631 // Step 2: Enroll in MAM (NO token sent to server - session exists)COMMENT
LOW⚡app/actions/remote/session.ts358 // Step 1: Acquire MSAL tokens with IntuneScopeCOMMENT
LOW⚡app/actions/remote/session.ts362 // Step 2: POST accessToken to /oauth/intune to exchange for session tokenCOMMENT
LOW⚡app/actions/remote/session.ts397 // Step 3: Complete SSO login flow (sets up database, etc.)COMMENT
LOW⚡app/actions/remote/session.ts400 // Step 4: Enroll in MAM if not already enrolled (if 412 was not triggered)COMMENT
LOW⚡app/client/rest/tracking.ts248 // Step 1: Calculate total data size in bitsCOMMENT
LOW⚡app/client/rest/tracking.ts253 // Step 2: Calculate effective latency (in ms)COMMENT
LOW⚡app/client/rest/tracking.ts256 // Step 3: Calculate data transfer timeCOMMENT
LOW⚡app/client/rest/tracking.ts264 // Step 4: Calculate average speedCOMMENT
Redundant / Tautological Comments8 hits · 12 pts
SeverityFileLineSnippetContext
LOWdetox/e2e/test/products/agents/agent_mention.e2e.ts125 // # Check if agents plugin is activeCOMMENT
LOWscripts/read-coverage.sh5# Check if an argument is providedCOMMENT
LOWscripts/read-coverage.sh14# Check if the coverage file existsCOMMENT
LOWscripts/intune-init.sh10# Check if submodule is initializedCOMMENT
LOW.github/workflows/github-release.yml168 # Check if required SBOM files are availableCOMMENT
LOW.github/workflows/e2e-ios-template.yml633 # Check if simulator is still responsiveCOMMENT
LOW.github/workflows/e2e-android-template.yml412 # Check if "All SDK package licenses accepted" appears in outputCOMMENT
LOW.github/actions/setup-intune/action.yaml26 # Check if submodule is already initializedCOMMENT
AI Slop Vocabulary3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUM…hannel_settings/share_with_connected_workspaces.e2e.ts260 // We leave this condition here to be more robust in the future.COMMENT
MEDIUM…oducts/channels/messaging/pending_posts_offline.e2e.ts72 // # Restore network access (harness polls until the server is reachable)COMMENT
MEDIUMdetox/e2e/support/ui/screen/edit_profile.ts119 // robust against iOS-26 Detox's inconsistent visibility computationCOMMENT
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHapp/components/post_list/post/index.ts141 // Same for AI-generated posts so the sparkle indicator is always visible.COMMENT
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOW.cursor/scripts/cloud-agent-smoke.sh5# Usage:COMMENT
LOWdetox/maestro/scripts/setup_local.sh13# Usage:COMMENT
LOWdetox/maestro/scripts/run_calls_two_device.sh6# Usage:COMMENT
Excessive Try-Catch Wrapping2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUM…/secure-pdf-viewer/ios/Utils/PDFErrorDiagnostics.swift199 print("Error diagnosing PDF: \(error.localizedDescription)")CODE
MEDIUMios/MattermostShare/Utils/LocalFileManager.swift55 print("Error deleting file \(path)")CODE
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/mitmdump-flow-parsing.py1CODE
LOWscripts/mitmdump-flow-parsing.py1CODE