AI Slop Code Risk Monitor

element-hq/element-web

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

A glossy Matrix collaboration client for the web.

0.9 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for element-hq/element-web, a TypeScript project with 13,634 GitHub stars. SynthScan examined 724,386 lines of code across 3741 source files, recording 519 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 0.9 (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.

0.9
Adjusted Signal
0.9
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
13.6K
Stars
TypeScript
Language
724.4K
Lines of Code
3.7K
Files
519
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 2.8/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.2/100 · LOW

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

Agent Over-Engineering Ratio 2.3/100 · LOW

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

PR Review Velocity Impact 4.2/100 · LOW

Which changes need focused human review? 519 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 6HIGH 1MEDIUM 21LOW 491

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 519 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 Identifiers289 hits · 292 pts
SeverityFileLineSnippetContext
LOWoxlint.config.ts10function buildRestrictedPropertiesOptions(CODE
LOWscripts/find-unused-settings.ts169function isReferencedByOtherController(setting: DeclaredSetting, allSettings: DeclaredSetting[]): boolean {CODE
LOWpackages/shared-utils/src/html/sanitizeHtmlParams.ts95function hasUnsafeControlCharacter(input: string): boolean {CODE
LOW…es/playwright-common/src/utils/release_accouncement.ts25export async function closeReleaseAnnouncementIfExists(page: Page, name: string): Promise<boolean> {CODE
LOWpackages/playwright-common/src/expect/screenshot.ts30function sanitizeFilePathBeforeExtension(filePath: string): string {CODE
LOWpackages/shared-components/.storybook/main.ts41function layerSharedComponentCssModules(): Plugin {CODE
LOW…yCryptoUnsupportedView/LegacyCryptoUnsupportedView.tsx54export function LegacyCryptoUnsupportedView({ vm }: Readonly<LegacyCryptoUnsupportedViewProps>): JSX.Element {CODE
LOW…essageComposerUrlPreview/MessageComposerUrlPreview.tsx238export function MessageComposerUrlPreviewView({CODE
LOW…meline/event-tile/EventTileView/EventTileView.test.tsx89function createStylingContractSlots(): EventTileViewProps["slots"] {CODE
LOW…ine/event-tile/EventTileView/EventTileView.stories.tsx1076function EventTileViewStoryContent({CODE
LOW…erificationRequestView/MKeyVerificationRequestView.tsx51export function MKeyVerificationRequestView({CODE
LOW…ionsRowButtonTooltip/ReactionsRowButtonTooltipView.tsx48export function ReactionsRowButtonTooltipView({CODE
LOW…ecryptionFailureBodyView/DecryptionFailureBodyView.tsx176export function DecryptionFailureBodyView({CODE
LOW…ent-tile/call/ongoing/room/RoomOngoingCallTileView.tsx83function CallJoinedOrIgnoredContent({ snapshot }: { snapshot: RoomOngoingCallTileViewSnapshot }): React.ReactNode {CODE
LOW…tile/call/tombstone/room/RoomTombstoneCallTileView.tsx38export function RoomTombstoneCallTileView({ vm, className }: CallStartedTileViewProps): React.ReactNode {CODE
LOW…timeline/EventPresentation/EventPresentationContext.ts42export function useEventPresentationAttributes(): {CODE
LOWpackages/shared-components/src/core/utils/linkify.ts62function parseOpaqueIdsToMatrixIds({CODE
LOWpackages/shared-components/src/core/utils/linkify.ts158export function generateLinkedTextOptions({CODE
LOW⚡…ed-components/src/core/VirtualizedList/accessbility.ts30export function getContainerAccessibleProps(pattern: "listbox"): ListboxContainerProps;CODE
LOW⚡…ed-components/src/core/VirtualizedList/accessbility.ts38export function getContainerAccessibleProps(pattern: "treegrid", size: number): TreegridContainerProps;CODE
LOW⚡…ed-components/src/core/VirtualizedList/accessbility.ts39export function getContainerAccessibleProps(CODE
LOW…ed-components/src/core/VirtualizedList/accessbility.ts146export function getGroupHeaderAccessibleProps(CODE
LOW…nts/src/core/VirtualizedList/virtualized-list.test.tsx61function renderClickableItemElement(CODE
LOW…components/src/core/hooks/useListKeyboardNavigation.ts21export function useListKeyboardNavigation(): {CODE
LOW…ckages/shared-components/src/room-list/story-mocks.tsx118export function createMockRoomItemViewModel(CODE
LOW…st/VirtualizedRoomListView/VirtualizedRoomListView.tsx121export function getScrollTargetEntryIndex(sections: { roomIds: string[] }[], roomIndex: number): number {CODE
LOW…VirtualizedRoomListView/RoomListAccessibilityPlugin.ts198export function useRoomListAccessibilityPlugin(CODE
LOW…oomListSectionHeaderView/RoomListSectionHeaderView.tsx111export const RoomListSectionHeaderView = memo(function RoomListSectionHeaderView({CODE
LOW…tSectionHeaderView/RoomListStickySectionHeaderView.tsx37export const RoomListStickySectionHeaderView = memo(function RoomListStickySectionHeaderView({CODE
LOW…ListSectionHeaderView/RoomListSectionHeaderContent.tsx35export const RoomListSectionHeaderContent = memo(function RoomListSectionHeaderContent({CODE
LOW…istItemDragOverlayView/RoomListItemDragOverlayView.tsx33export const RoomListItemDragOverlayView = memo(function RoomListItemDragOverlayView({CODE
LOW…apper/RoomListItemView/RoomListItemMoreOptionsMenu.tsx46export function RoomListItemMoreOptionsMenu({ vm }: RoomListItemMoreOptionsMenuProps): JSX.Element {CODE
LOW…pper/RoomListItemView/RoomListItemNotificationMenu.tsx38export function RoomListItemNotificationMenu({ vm }: RoomListItemNotificationMenuProps): JSX.Element {CODE
LOW…agOverlayView/RoomListSectionHeaderDragOverlayView.tsx30export const RoomListSectionHeaderDragOverlayView = memo(function RoomListSectionHeaderDragOverlayView({CODE
LOW…lint-plugin-element-web/src/NoLeakedEmitterListener.ts34function isParameterOfEnclosingFunction(call: CallExpression, handler: Node): boolean {CODE
LOWpackages/eslint-plugin-element-web/src/ast.ts281export function getSubscriptionTeardownScopes(context: Context, call: CallExpression): Node[] | null {CODE
LOW…dget-lifecycle/src/utils/constructWidgetPermissions.ts16export function constructWidgetPermissions(CODE
LOWmodules/widget-toggles/e2e/widget-toggles.spec.ts26async function makeRoomWithWidgetAndGoTo(CODE
LOWmodules/widget-toggles/e2e/widget-toggles.spec.ts26async function makeRoomWithWidgetAndGoTo(CODE
LOW…playwright/e2e/settings/notifications/mention-rules.ts110export function mentionNotificationSettingsTests(legacyRulesServed: boolean): void {CODE
LOW…playwright/e2e/settings/notifications/mention-rules.ts215export function mentionNotificationSettingsTransitionTests(): void {CODE
LOW…right/e2e/settings/notifications/labs-mention-rules.ts75export async function openLabsNotificationSettings(app: ElementAppPage): Promise<Locator> {CODE
LOW…/web/playwright/e2e/crypto/device-verification.spec.ts40 async function initiateAliceVerificationRequest(page: Page): Promise<JSHandle<VerificationRequest>> {CODE
LOW…/web/playwright/e2e/crypto/device-verification.spec.ts306 async function enterRecoveryKeyAndCheckVerified(CODE
LOWapps/web/playwright/e2e/crypto/utils.ts74export async function waitForVerificationRequest(client: Client): Promise<JSHandle<VerificationRequest>> {CODE
LOWapps/web/playwright/e2e/crypto/utils.ts152export async function checkDeviceIsConnectedKeyBackup(CODE
LOWapps/web/playwright/e2e/crypto/utils.ts377export async function completeCreateSecretStorageDialog(CODE
LOWapps/web/playwright/e2e/crypto/utils.ts451export async function createSharedEncryptedRoomWithUser(CODE
LOWapps/web/playwright/e2e/crypto/dehydration.spec.ts183async function expectDehydratedDeviceEnabled(app: ElementAppPage): Promise<void> {CODE
LOWapps/web/playwright/e2e/crypto/dehydration.spec.ts196async function expectDehydratedDeviceDisabled(app: ElementAppPage): Promise<void> {CODE
LOWapps/web/playwright/e2e/room/create-room.spec.ts232async function viewSourceOnRoomNameEvent(page: Page) {CODE
LOW…s/web/playwright/e2e/lazy-loading/lazy-loading.spec.ts50 async function setupRoomWithBobAliceAndCharlies(CODE
LOW…s/web/playwright/e2e/lazy-loading/lazy-loading.spec.ts80 async function checkPaginatedDisplayNames(app: ElementAppPage, charlies: Bot[]) {CODE
LOW…s/web/playwright/e2e/lazy-loading/lazy-loading.spec.ts110 async function checkMemberListLacksCharlies(page: Page, charlies: Bot[]) {CODE
LOW…s/web/playwright/e2e/lazy-loading/lazy-loading.spec.ts116 async function joinCharliesWhileAliceIsOffline(CODE
LOW…ps/web/playwright/e2e/integration-manager/kick.spec.ts62async function sendActionFromIntegrationManager(CODE
LOW…/playwright/e2e/integration-manager/send_event.spec.ts62async function sendActionFromIntegrationManager(CODE
LOW…playwright/e2e/integration-manager/read_events.spec.ts58async function sendActionFromIntegrationManager(CODE
LOW…right/e2e/integration-manager/get-openid-token.spec.ts52async function sendActionFromIntegrationManager(page: Page, integrationManagerUrl: string) {CODE
LOW…anel/room-list-panel/room-list-custom-sections.spec.ts93 async function openRoomSelectionOfSection(page: Page, sectionName: string): Promise<Locator> {CODE
229 more matches not shown…
Fake / Example Data118 hits · 120 pts
SeverityFileLineSnippetContext
LOW…components/src/room/composer/Banner/Banner.stories.tsx77 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis massa facilisis, venenatis risusCODE
LOW…components/src/room/composer/Banner/Banner.stories.tsx77 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis massa facilisis, venenatis risusCODE
LOW…eline/event-tile/body/MImageBodyView/ImageBodyView.tsx176}: Pick<ImageBodyViewSnapshot, "placeholder" | "blurhash" | "maxWidth" | "maxHeight"> & {CODE
LOW…vent-tile/body/TextualBodyView/TextualBody.stories.tsx143 {"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\n"}CODE
LOW…vent-tile/body/TextualBodyView/TextualBody.stories.tsx143 {"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\n"}CODE
LOW…t-tile/body/MImageReplyBodyView/ImageReplyBodyView.tsx99}: Pick<ImageReplyBodyViewProps, "placeholder" | "blurhash" | "maxWidth" | "maxHeight"> & {CODE
LOW…ts/src/core/pill-input/PillInput/PillInput.stories.tsx28 "placeholder": "Type something...",CODE
LOWapps/web/playwright/e2e/room/room-header.spec.ts67 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut laborCODE
LOWapps/web/playwright/e2e/room/room-header.spec.ts67 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut laborCODE
LOWapps/web/playwright/e2e/threads/threads.spec.ts38 "Hello there. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt " +CODE
LOWapps/web/playwright/e2e/threads/threads.spec.ts38 "Hello there. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt " +CODE
LOWapps/web/playwright/e2e/right-panel/right-panel.spec.ts18 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore " +CODE
LOWapps/web/playwright/e2e/right-panel/right-panel.spec.ts18 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore " +CODE
LOWapps/web/playwright/e2e/timeline/timeline.spec.ts1147 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut " +CODE
LOWapps/web/playwright/e2e/timeline/timeline.spec.ts1147 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut " +CODE
LOW…/src/viewmodels/message-body/FileBodyViewModel.test.ts144 const blob = new Blob(["placeholder"], { type: "text/plain" });CODE
LOWapps/web/src/usercontent/pdf/linkService.test.ts25 it.each(["https://example.org/doc", "http://example.org", "mailto:someone@example.org"])("permits %s", (url) => {CODE
LOWapps/web/src/utils/UrlUtils.test.ts107 expect(linkPreviewable("mailto:someone@example.org")).toBe(false);CODE
LOWapps/web/src/utils/MultiInviter.test.ts259 await inviter.invite(["foo@bar.com"]);CODE
LOWapps/web/src/utils/MultiInviter.test.ts260 expect(inviter.getErrorText("foo@bar.com")).toMatchInlineSnapshot(CODE
LOWapps/web/src/utils/DMRoomMap.test.ts33 "user@example.com": [roomId1, roomId2],CODE
LOW…room/shouldEncryptRoomWithSingle3rdPartyInvite.test.ts37 "user@example.com",CODE
LOWapps/web/src/utils/exportUtils/HtmlExport.test.ts478 const attachmentBody = "Lorem ipsum dolor sit amet";CODE
LOWapps/web/src/utils/exportUtils/HtmlExport.test.ts478 const attachmentBody = "Lorem ipsum dolor sit amet";CODE
LOWapps/web/src/utils/exportUtils/HtmlExport.test.ts508 mockMxc("mxc://example.org/test-id", "Lorem ipsum dolor sit amet");CODE
LOWapps/web/src/utils/exportUtils/HtmlExport.test.ts508 mockMxc("mxc://example.org/test-id", "Lorem ipsum dolor sit amet");CODE
LOWapps/web/src/utils/exportUtils/HtmlExport.test.ts560 const attachmentBody = "Lorem ipsum dolor sit amet";CODE
LOWapps/web/src/utils/exportUtils/HtmlExport.test.ts560 const attachmentBody = "Lorem ipsum dolor sit amet";CODE
LOWapps/web/src/utils/exportUtils/HtmlExport.test.ts593 const attachmentBody = "Lorem ipsum dolor sit amet";CODE
LOWapps/web/src/utils/exportUtils/HtmlExport.test.ts593 const attachmentBody = "Lorem ipsum dolor sit amet";CODE
LOWapps/web/src/components/structures/RoomView.test.tsx584 mkRoomMemberJoinEvent("user@example.com", room.roomId),CODE
LOWapps/web/src/components/structures/RoomView.test.tsx595 new Map([["user@example.com", new Map<string, any>()]]),CODE
LOWapps/web/src/components/structures/RoomView.test.tsx828 mkThirdPartyInviteEvent(cli.getSafeUserId(), "user@example.com", room.roomId),CODE
LOW…ps/web/src/components/structures/LoggedInView.test.tsx516 admin_contact: "admin@example.org",CODE
LOW…src/components/structures/auth/ForgotPassword.test.tsx37 const testEmail = "user@example.com";CODE
LOW⚡apps/web/src/components/views/elements/Field.test.tsx24 expect(screen.getByRole("textbox")).toHaveAttribute("placeholder", "my placeholder");CODE
LOW⚡apps/web/src/components/views/elements/Field.test.tsx30 expect(screen.getByRole("textbox")).toHaveAttribute("placeholder", "");CODE
LOW⚡apps/web/src/components/views/elements/Field.test.tsx38 expect(screen.getByRole("textbox")).toHaveAttribute("placeholder", "my label");CODE
LOW⚡apps/web/src/components/views/elements/Field.test.tsx46 expect(screen.getByRole("textbox")).not.toHaveAttribute("placeholder", "my placeholder");CODE
LOWapps/web/src/components/views/dialogs/InviteDialog.tsx922 "placeholder": _t("action|search"),CODE
LOW…nents/views/dialogs/spotlight/SpotlightDialog.test.tsx135 display_name: "Jane Doe",CODE
LOW…s/web/src/components/views/rooms/NewRoomIntro.test.tsx83 mkThirdPartyInviteEvent(client.getSafeUserId(), "user@example.com", room.roomId),CODE
LOW…web/src/components/views/rooms/RoomPreviewBar.test.tsx344 const invitedEmail = "test@test.com";CODE
LOW…mponents/views/rooms/MemberList/MemberListView.test.ts286 mkThirdPartyInviteEvent("@alice:localhost", "user@example.com", "!room:localhost"),CODE
LOW…mponents/views/rooms/MemberList/MemberListView.test.ts287 mkThirdPartyInviteEvent("@alice:localhost", "user@example.com", "!room:localhost"),CODE
LOWapps/web/src/i18n/strings/hy.json607 "placeholder": "Ուղարկել հաղորդագրություն...",CODE
LOWapps/web/src/i18n/strings/hy.json1931 "placeholder": "Փնտրել հաղորդագրություններ…",CODE
LOWapps/web/src/i18n/strings/tr.json600 "placeholder": "Bir mesaj gönder…",CODE
LOWapps/web/src/i18n/strings/tr.json1873 "placeholder": "Mesajları ara…",CODE
LOWapps/web/src/i18n/strings/hu.json625 "placeholder": "Titkosítatlan üzenet küldése…",CODE
LOWapps/web/src/i18n/strings/hu.json682 "placeholder": "Keressen a csevegéseiben",CODE
LOWapps/web/src/i18n/strings/hu.json2097 "placeholder": "Üzenetek keresése...",CODE
LOWapps/web/src/i18n/strings/lt.json406 "placeholder": "Siųsti žinutę…",CODE
LOWapps/web/src/i18n/strings/is.json489 "placeholder": "Senda skilaboð…",CODE
LOWapps/web/src/i18n/strings/nl.json498 "placeholder": "Verstuur een bericht…",CODE
LOWapps/web/src/i18n/strings/ja.json532 "placeholder": "メッセージを送信…",CODE
LOWapps/web/src/i18n/strings/ru.json627 "placeholder": "Отправить незашифрованное сообщение...",CODE
LOWapps/web/src/i18n/strings/ru.json684 "placeholder": "Поиск в чатах",CODE
LOWapps/web/src/i18n/strings/ru.json2091 "placeholder": "Поиск сообщений...",CODE
LOWapps/web/src/i18n/strings/pl.json639 "placeholder": "Wyślij niezaszyfrowaną wiadomość…",CODE
58 more matches not shown…
Over-Commented Block66 hits · 66 pts
SeverityFileLineSnippetContext
LOWpnpm-workspace.yaml81 # element-call repository, whose `prepare` script builds it on install (nothing is published yet).COMMENT
LOWpnpm-workspace.yaml161 markdown-it: ^14.3.0COMMENT
LOWpnpm-workspace.yaml181 # https://github.com/advisories/GHSA-gg4h-3hg2-grpcCOMMENT
LOWscripts/layered.sh1#!/usr/bin/env bashCOMMENT
LOWpackages/playwright-common/playwright-screenshots.sh1#!/bin/bashCOMMENT
LOWpackages/playwright-common/docker-entrypoint.sh1#!/bin/bashCOMMENT
LOWpackages/shared-components/.storybook/vitest.setup.ts21// the pointer/active element is swapped out between story renders, so a previous story's real hover orCOMMENT
LOW…onents/src/room/timeline/TimelineView/TimelineView.tsx121 // On the first load we lay the rows out, scroll to the message we should start at, andCOMMENT
LOW…onents/src/room/timeline/TimelineView/TimelineView.tsx241 // How near the bottom still counts as being at the bottom, for staying putCOMMENT
LOW…List/GroupedVirtualizedList/GroupedVirtualizedList.tsx301 onFocusForItem,COMMENT
LOWpackages/shared-components/src/core/i18n/i18n.tsx101 //COMMENT
LOW.github/workflows/build-and-test.yaml1# builds Element WebCOMMENT
LOWapps/web/webpack.config.ts241COMMENT
LOWapps/web/webpack.config.ts261 // don't parse the languages within highlight.js. They cause stackCOMMENT
LOWapps/web/webpack.config.ts341 "plugins": [COMMENT
LOWapps/web/webpack.config.ts761 // into a build-specific subdirectory. This includes generated javascript, as wellCOMMENT
LOW…ywright/e2e/crypto/decryption-failure-messages.spec.ts241 await rejectToastIfExists(page, "Verify this device");COMMENT
LOWapps/web/playwright/e2e/editing/editing.spec.ts341 //COMMENT
LOWapps/web/playwright/e2e/voip/element-call.spec.ts941 // Element Web treats the element call component as joined based on the target state.COMMENT
LOW…web/playwright/e2e/voip/element-call-full-call.spec.ts61 // - Element Call ships a CSS reset (its `normalize` layer) that zeroes btn margins.COMMENT
LOWapps/web/playwright/e2e/login/login-sso.spec.ts21 // If this test fails with a screen showing "Timeout connecting to remote server", it is most likely due toCOMMENT
LOWapps/web/src/settings/Settings.tsx141 // Optional description which will be shown as microCopy under SettingsFlagsCOMMENT
LOW…s/web/src/viewmodels/message-body/FileBodyViewModel.ts61//COMMENT
LOW…/src/viewmodels/room/timeline/RoomTimelineViewModel.ts1601 // this guard, `buildItems` would emit a second separator with the sameCOMMENT
LOW…/src/viewmodels/room/timeline/RoomTimelineViewModel.ts1661 // Insert the read-marker item directly after the event it belongs to.COMMENT
LOW…s/web/src/test/scripts/generate-megolm-test-vectors.py21COMMENT
LOWapps/web/src/rageshake/rageshake.ts21// logs in-memory than in local storage, which does work in incognito mode.COMMENT
LOWapps/web/src/stores/RoomViewStore.tsx761 }COMMENT
LOWapps/web/src/stores/widgets/WidgetMessaging.ts621 // 'invite', otherwise the membership event from the invitation roomCOMMENT
LOWapps/web/src/stores/widgets/ElementWidgetActions.ts21 SpotlightLayout = "io.element.spotlight_layout",COMMENT
LOWapps/web/src/utils/Reply.ts21COMMENT
LOWapps/web/src/utils/blobs.ts1/*COMMENT
LOWapps/web/src/utils/blobs.ts21//COMMENT
LOWapps/web/src/utils/permalinks/Permalinks.ts21import ElementPermalinkConstructor from "./ElementPermalinkConstructor";COMMENT
LOWapps/web/src/utils/permalinks/Permalinks.ts41// they are at least PL 50. We don't calculate "what is a moderator"COMMENT
LOWapps/web/src/utils/permalinks/Permalinks.ts61// shouldn't pick them. We also don't pick IP addresses.COMMENT
LOWapps/web/src/utils/tokens/tokens.ts181 // Mirror the requested state at the fallback key: the token to fall back to, or nothingCOMMENT
LOWapps/web/src/models/Call.ts241 // The widget might still be initializing, so wait for it in an asyncCOMMENT
LOWapps/web/src/components/structures/ScrollPanel.tsx261 //COMMENT
LOWapps/web/src/components/structures/ScrollPanel.tsx281 // returns the vertical height in the given direction that can be removed fromCOMMENT
LOWapps/web/src/components/structures/ScrollPanel.tsx301 // | | | | | |COMMENT
LOWapps/web/src/components/structures/ScrollPanel.tsx341 // scrollHeight is the total height of the content.COMMENT
LOWapps/web/src/components/structures/MatrixChat.tsx321 */COMMENT
LOWapps/web/src/components/structures/MatrixChat.tsx1541 //COMMENT
LOWapps/web/src/components/structures/MessagePanel.tsx221 // [COMMENT
LOWapps/web/src/components/structures/MessagePanel.tsx501 className="mx_MessagePanel_myReadMarker"COMMENT
LOWapps/web/src/components/structures/RoomView.tsx881 // We already know about this room, so there is nothing to set up.COMMENT
LOWapps/web/src/components/structures/RoomView.tsx2021 if (!messagePanel) return null;COMMENT
LOWapps/web/src/components/structures/TimelinePanel.tsx161 timelineLoading: boolean;COMMENT
LOWapps/web/src/components/structures/TimelinePanel.tsx1021 lastReadEvent: MatrixEvent | null,COMMENT
LOWapps/web/src/components/structures/TimelinePanel.tsx1541 });COMMENT
LOWapps/web/src/components/structures/TimelinePanel.tsx1821 public render(): React.ReactNode {COMMENT
LOWapps/web/src/components/structures/InteractiveAuth.tsx41 // and used by various stages. As passed to js-sdkCOMMENT
LOW…ps/web/src/components/structures/auth/Registration.tsx81}COMMENT
LOW…ps/web/src/components/structures/auth/Registration.tsx421 newState.differentLoggedInUserId = sessionOwner;COMMENT
LOW…mponents/views/auth/InteractiveAuthEntryComponents.tsx261 // "privacy_policy": {COMMENT
LOWapps/web/src/components/views/elements/Field.tsx41 // The field's ID, which binds the input and label together. Immutable.COMMENT
LOWapps/web/src/components/views/elements/Dropdown.tsx81 className?: string;COMMENT
LOW…src/components/views/dialogs/InteractiveAuthDialog.tsx41 // matrix client to use for UI auth requestsCOMMENT
LOWapps/web/src/serviceworker/index.ts201 return new Promise((resolve, reject) => {COMMENT
6 more matches not shown…
Hallucination Indicators6 hits · 60 pts
SeverityFileLineSnippetContext
CRITICAL…s/web/src/viewmodels/message-body/FileBodyViewModel.ts305 void this.props.mediaEventHelper.sourceBlob.value.then((blob) => {CODE
CRITICAL…/room/timeline/event-tile/body/AudioPlayerViewModel.ts82 this.props.playback.clockInfo.liveData.onUpdate(this.setSnapshot);CODE
CRITICAL…src/components/views/messages/MImageReplyBody.test.tsx551 result.value.getThumbnailHttp.mock.calls.some(CODE
CRITICAL…/src/components/views/audio_messages/PlaybackClock.tsx50 this.props.playback.clockInfo.liveData.onUpdate(this.onTimeUpdate);CODE
CRITICAL…c/components/views/audio_messages/PlaybackWaveform.tsx41 this.props.playback.clockInfo.liveData.onUpdate(this.onTimeUpdate);CODE
CRITICAL…eb/src/components/views/right_panel/PdfViewer.test.tsx89 return iframe.port.postMessage.mock.calls.map(([message]) => message as PdfHostMessage);CODE
Decorative Section Separators14 hits · 42 pts
SeverityFileLineSnippetContext
MEDIUM…red-components/src/room/timeline/TimelineView/types.ts11// ─── Timeline item: one renderable row ─────────────────────────────COMMENT
MEDIUM…red-components/src/room/timeline/TimelineView/types.ts81// ─── Navigation anchor ─────────────────────────────────────────────COMMENT
MEDIUM…red-components/src/room/timeline/TimelineView/types.ts102// ─── Timeline view model contract ──────────────────────────────────COMMENT
MEDIUM…red-components/src/room/timeline/TimelineView/types.ts206// ─── Shared timeline view props ────────────────────────────────────COMMENT
MEDIUM…onents/src/room/timeline/TimelineView/TimelineView.tsx146 // ─── State used by the scroll reporting below ──────────────────────────────COMMENT
MEDIUM…onents/src/room/timeline/TimelineView/TimelineView.tsx325 // ─── Later jumps: scroll to a message the view model has asked for ─────────COMMENT
MEDIUM…nts/src/core/VirtualizedList/virtualized-list.test.tsx17// ─── Test types ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…nts/src/core/VirtualizedList/virtualized-list.test.tsx33// ─── Shared helpers ──────────────────────────────────────────────────────────COMMENT
MEDIUM…nts/src/core/VirtualizedList/virtualized-list.test.tsx89// ─── Variant definitions ─────────────────────────────────────────────────────COMMENT
MEDIUM…nts/src/core/VirtualizedList/virtualized-list.test.tsx206// ─── Shared test suite ───────────────────────────────────────────────────────COMMENT
MEDIUM…/src/viewmodels/room/timeline/RoomTimelineViewModel.ts923 // ── TimelineViewActions ──────────────────────────────────────────COMMENT
MEDIUM…/src/viewmodels/room/timeline/RoomTimelineViewModel.ts1056 // ── Overlay button actions ───────────────────────────────────────COMMENT
MEDIUM…/src/viewmodels/room/timeline/RoomTimelineViewModel.ts1210 // ── Pagination ───────────────────────────────────────────────────COMMENT
MEDIUM…/src/viewmodels/room/timeline/RoomTimelineViewModel.ts1523 // ── Snapshot construction ────────────────────────────────────────COMMENT
AI Slop Vocabulary6 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMapps/web/src/stores/LatestRtcNotificationEventStore.ts108 // event probably (but not necessarily! TODO: do something more robust)COMMENT
MEDIUMapps/web/src/utils/LruCache.ts64 // Should not happen but makes it more robust to the unknown.COMMENT
MEDIUMapps/web/src/utils/LruCache.ts81 // Should not happen but makes it more robust to the unknown.COMMENT
MEDIUMapps/web/src/utils/LruCache.ts98 // Should not happen but makes it more robust to the unknown.COMMENT
MEDIUMapps/web/src/utils/LruCache.ts118 // Should not happen but makes it more robust to the unknown.COMMENT
MEDIUMapps/web/src/hooks/useUserTimezone.ts63 // Definitely not a tz.COMMENT
Verbosity Indicators7 hits · 13 pts
SeverityFileLineSnippetContext
LOW⚡…nts/src/core/VirtualizedList/virtualized-list.test.tsx568 // Step 1: Focus the list initially and navigate to the first regular itemCOMMENT
LOW⚡…nts/src/core/VirtualizedList/virtualized-list.test.tsx577 // Step 2: Simulate manual scrolling (mouse wheel, scroll bar drag, etc.)COMMENT
LOW⚡…nts/src/core/VirtualizedList/virtualized-list.test.tsx582 // Step 3: After scrolling, different items should now be visibleCOMMENT
LOWmodules/widget-lifecycle/e2e/fixture/widget.html31 // Step 1: Element is asking what capabilities this widget needs.COMMENT
LOWmodules/widget-lifecycle/e2e/fixture/widget.html44 // Step 2: Capabilities have been approved. Request an OpenID tokenCOMMENT
LOWmodules/widget-lifecycle/e2e/fixture/widget.html57 // Step 3: Token granted — exchange it for the user's Matrix ID and display it.COMMENT
LOWapps/web/src/hooks/useIsReleaseAnnouncementOpen.ts21 // Modal can be stacked, we need to check if all dialogs are closedCOMMENT
Structural Annotation Overuse6 hits · 11 pts
SeverityFileLineSnippetContext
LOW⚡…nts/src/core/VirtualizedList/virtualized-list.test.tsx568 // Step 1: Focus the list initially and navigate to the first regular itemCOMMENT
LOW⚡…nts/src/core/VirtualizedList/virtualized-list.test.tsx577 // Step 2: Simulate manual scrolling (mouse wheel, scroll bar drag, etc.)COMMENT
LOW⚡…nts/src/core/VirtualizedList/virtualized-list.test.tsx582 // Step 3: After scrolling, different items should now be visibleCOMMENT
LOWmodules/widget-lifecycle/e2e/fixture/widget.html31 // Step 1: Element is asking what capabilities this widget needs.COMMENT
LOWmodules/widget-lifecycle/e2e/fixture/widget.html44 // Step 2: Capabilities have been approved. Request an OpenID tokenCOMMENT
LOWmodules/widget-lifecycle/e2e/fixture/widget.html57 // Step 3: Token granted — exchange it for the user's Matrix ID and display it.COMMENT
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHCONTRIBUTING.md53> The PR description must be written by a human and mustn't be generated by AI tools. This is to ensure that the PR authCODE
TODO Padding2 hits · 3 pts
SeverityFileLineSnippetContext
LOWapps/web/playwright/e2e/invite/invite-dialog.spec.ts142 // TODO: implement the test on room-header.spec.tsCOMMENT
LOW…b/src/components/views/room_settings/AliasSettings.tsx217 // TODO: Add error handling based upon server validationCOMMENT
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMapps/web/src/utils/SessionLock.ts193 // It's worth noting that, according to the spec, the page might come back to life again after a pagehide.COMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOW.github/workflows/build_desktop_prepare.yaml119 # Increment itCOMMENT
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWapps/web/scripts/deploy.py79CODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…s/web/src/test/scripts/generate-megolm-test-vectors.py5CODE