AI Slop Code Risk Monitor

bigbluebutton/bigbluebutton

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

A complete web conferencing system for virtual classes and more!

1.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for bigbluebutton/bigbluebutton, a TypeScript project with 9,262 GitHub stars. SynthScan examined 579,095 lines of code across 3292 source files, recording 439 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 1.5 (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.5
Adjusted Signal
1.5
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
9.3K
Stars
TypeScript
Language
579.1K
Lines of Code
3.3K
Files
439
Pattern Hits
2026-10-31
Scan Date
0.01
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 4.2/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.3/100 · LOW

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

Agent Over-Engineering Ratio 1.8/100 · LOW

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

PR Review Velocity Impact 6.5/100 · LOW

Which changes need focused human review? 439 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 21HIGH 5MEDIUM 63LOW 350

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 439 distinct pattern matches across 16 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.

Hallucination Indicators21 hits · 255 pts
SeverityFileLineSnippetContext
CRITICAL…ation/playback/presentation/0.9.0/lib/jquery-ui.min.js5(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.hrefCODE
CRITICAL…tion/playback/presentation/0.9.0/lib/foundation.min.js18n.attr("aria-expanded","false"),i.S(this).hasClass(i.settings.active_class)&&(i.S(this).css(Foundation.rtl?"right":"leftCODE
CRITICAL…tion/playback/presentation/0.9.0/lib/foundation.min.js20},valid_radio:function(e){for(var i=e.getAttribute("name"),s=this.S(e).closest("[data-"+this.attr_name(!0)+"]").find("[nCODE
CRITICAL…tation/playback/presentation/0.81/lib/jquery-ui.min.js5(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.hrefCODE
CRITICAL…ents/chat/chat-graphql/chat-message-list/component.tsx252 && window.meetingClientSettings.public.chat.toolbar.includes('pin')CODE
CRITICAL…e-list/page/chat-message/message-toolbar/component.tsx84 const SHOW_PIN_MESSAGE_TOOL = window.meetingClientSettings.public.chat.toolbar.includes('pin');CODE
CRITICAL⚡…bluebutton-html5/imports/ui/services/features/index.js114 && window.meetingClientSettings.public.chat.toolbar.includes('reply')CODE
CRITICAL⚡…bluebutton-html5/imports/ui/services/features/index.js121 && window.meetingClientSettings.public.chat.toolbar.includes('delete')CODE
CRITICAL⚡…bluebutton-html5/imports/ui/services/features/index.js128 && window.meetingClientSettings.public.chat.toolbar.includes('edit')CODE
CRITICAL⚡…bluebutton-html5/imports/ui/services/features/index.js135 && window.meetingClientSettings.public.chat.toolbar.includes('reactions')CODE
CRITICALdocs/docs/plugins.md1206pluginApi.uiCommands.sidekickArea.options.panel.open();CODE
CRITICALdocs/docs/plugins.md1209pluginApi.uiCommands.sidekickArea.options.panel.close();CODE
CRITICAL…in/java/org/bigbluebutton/api/ParamsProcessorUtil.java1225 return org.bigbluebutton.api2.util.ClientSettingsValidator.validateOverride(loadClientSettingsCatalog(), overrideJsoCODE
CRITICAL…igbluebutton/api2/meeting/OldMeetingMsgHdlrActor.scala166 olgMsgGW.handle(new org.bigbluebutton.api.messaging.messages.KeepAliveReply(msg.body.system, msg.body.bbbWebTimestamCODE
CRITICAL…core/record/events/AddShapeWhiteboardRecordEvent.scala90 org.bigbluebutton.common2.util.JsonUtil.toJson(result)CODE
CRITICAL…utton/core/apps/groupchats/PinChatMessageHelpers.scala27 user <- org.bigbluebutton.core.models.Users2x.findWithIntId(liveMeeting.users2x, userId)CODE
CRITICAL⚡…bluebutton/endpoint/redis/LearningDashboardActor.scala1053 learningDashboardDisabled = msg.body.props.meetingProp.disabledFeatures.contains("learningDashboard"),CODE
CRITICAL⚡…bluebutton/endpoint/redis/LearningDashboardActor.scala1054 downloadSessionDataEnabled = !msg.body.props.meetingProp.disabledFeatures.contains("learningDashboardDownloadSessiCODE
CRITICAL⚡…bluebutton/endpoint/redis/LearningDashboardActor.scala1057 "learning-dashboard-learn-more-link" -> msg.body.props.metadataProp.metadata.get("learning-dashboard-learn-moreCODE
CRITICAL⚡…bluebutton/endpoint/redis/LearningDashboardActor.scala1058 "learning-dashboard-feedback-link" -> msg.body.props.metadataProp.metadata.get("learning-dashboard-feedback-linkCODE
CRITICAL⚡…bluebutton/endpoint/redis/LearningDashboardActor.scala1065 if (msg.body.props.meetingProp.disabledFeatures.contains("learningDashboard")) {CODE
Over-Commented Block168 hits · 164 pts
SeverityFileLineSnippetContext
LOW.gitlab-ci.yml21# written to a file `packages_to_skip.txt` the root of the repo. This file isCOMMENT
LOWbbb-export-annotations/workers/process.js441COMMENT
LOWrecord-and-playback/deploy.sh1#!/bin/bashCOMMENT
LOWrecord-and-playback/video/scripts/video.yml1# Configuration for the BigBlueButton "video" recording format.COMMENT
LOWrecord-and-playback/video/scripts/video.yml21# Whether to allow the preset to be configured via the bbb-recording-video-preset meta parameter.COMMENT
LOWrecord-and-playback/video/scripts/video.yml41 areas:COMMENT
LOWrecord-and-playback/video/scripts/video.yml61 # session.COMMENT
LOWrecord-and-playback/video/scripts/video.yml141 extension: m4vCOMMENT
LOWrecord-and-playback/video/scripts/video.yml161 # '-f', 'webm' ]COMMENT
LOWrecord-and-playback/video/scripts/video.yml261 # screen sharing.COMMENT
LOWrecord-and-playback/video/scripts/video.yml281 # # '-f', 'webm' ]COMMENT
LOWrecord-and-playback/video/scripts/publish/video.rb1#!/usr/bin/env rubyCOMMENT
LOWrecord-and-playback/video/scripts/process/video.rb1#!/usr/bin/env rubyCOMMENT
LOWrecord-and-playback/core/features/support/env.rb1#COMMENT
LOW…k/core/features/step_definitions/process_video_step.rb1COMMENT
LOW…k/core/features/step_definitions/process_audio_step.rb1#COMMENT
LOW…k/core/features/step_definitions/audio_archive_step.rb1#COMMENT
LOWrecord-and-playback/core/spec/spec_helper.rb1#COMMENT
LOW…c/recordandplayback/deskshare_stubbed_archiver_spec.rb1#COMMENT
LOW…/spec/recordandplayback/video_stubbed_archiver_spec.rb1#COMMENT
LOW…ack/core/spec/recordandplayback/audio_archiver_spec.rb1#COMMENT
LOW…ck/core/spec/recordandplayback/events_archiver_spec.rb1#COMMENT
LOW…ecordandplayback/presentation_stubbed_archiver_spec.rb1#COMMENT
LOW…/spec/recordandplayback/presentation_processor_spec.rb1#COMMENT
LOW…nd-playback/core/spec/recordandplayback/events_spec.rb1#COMMENT
LOWrecord-and-playback/core/scripts/rap-enqueue.rb1#!/usr/bin/env rubyCOMMENT
LOWrecord-and-playback/core/scripts/rap-process-worker.rb1#!/usr/bin/rubyCOMMENT
LOWrecord-and-playback/core/scripts/cleanup.rb1#!/usr/bin/rubyCOMMENT
LOWrecord-and-playback/core/scripts/rap-starter.rb1#!/usr/bin/rubyCOMMENT
LOWrecord-and-playback/core/scripts/bigbluebutton.yml21# redis_workers_host: 127.0.0.1COMMENT
LOWrecord-and-playback/core/scripts/bigbluebutton.yml41# so when webcamsOnlyForModerator=true, only moderators webcams are included in recordings.COMMENT
LOWrecord-and-playback/core/scripts/rap-caption-inbox.rb1#!/usr/bin/rubyCOMMENT
LOW…/scripts/post_events/post_events_analytics_callback.rb1#!/usr/bin/rubyCOMMENT
LOWrecord-and-playback/core/scripts/archive/archive.rb1# frozen_string_literal: trueCOMMENT
LOW…/post_publish/post_publish_recording_ready_callback.rb1#!/usr/bin/rubyCOMMENT
LOWrecord-and-playback/core/scripts/utils/captions.rb1# Set encoding to utf-8COMMENT
LOWrecord-and-playback/core/scripts/sanity/sanity.rb1#!/usr/bin/rubyCOMMENT
LOWrecord-and-playback/core/lib/recordandplayback.rb1# Set encoding to utf-8COMMENT
LOWrecord-and-playback/core/lib/custom_hash.rb1# Set encoding to utf-8COMMENT
LOWrecord-and-playback/core/lib/boot.rb1# frozen_string_literal: trueCOMMENT
LOWrecord-and-playback/core/lib/boot.rb21$LOAD_PATH.unshift(__dir__) unless $LOAD_PATH.include?(__dir__)COMMENT
LOW…ord-and-playback/core/lib/recordandplayback/workers.rb1# frozen_string_literal: trueCOMMENT
LOW…playback/core/lib/recordandplayback/events_archiver.rb1# frozen_string_literal: trueCOMMENT
LOWrecord-and-playback/core/lib/recordandplayback/edl.rb1# encoding: UTF-8COMMENT
LOW…d-and-playback/core/lib/recordandplayback/edl/video.rb1# frozen_string_literal: trueCOMMENT
LOW…d-and-playback/core/lib/recordandplayback/edl/audio.rb1# frozen_string_literal: trueCOMMENT
LOW…playback/core/lib/recordandplayback/edl/media_utils.rb1# frozen_string_literal: trueCOMMENT
LOW…playback/core/lib/recordandplayback/edl/media_utils.rb41 new_entry[:timestamp] = rec_timeCOMMENT
LOW…k/core/lib/recordandplayback/edl/video/video_source.rb61 #COMMENT
LOW…ck/core/lib/recordandplayback/workers/sanity_worker.rb1# frozen_string_literal: trueCOMMENT
LOW…k/core/lib/recordandplayback/workers/archive_worker.rb1# frozen_string_literal: trueCOMMENT
LOW…k/core/lib/recordandplayback/workers/process_worker.rb1# frozen_string_literal: trueCOMMENT
LOW…ck/core/lib/recordandplayback/workers/events_worker.rb1# frozen_string_literal: trueCOMMENT
LOW…k/core/lib/recordandplayback/workers/publish_worker.rb1# frozen_string_literal: trueCOMMENT
LOW…/core/lib/recordandplayback/workers/captions_worker.rb1# frozen_string_literal: trueCOMMENT
LOW…back/core/lib/recordandplayback/workers/base_worker.rb1# frozen_string_literal: trueCOMMENT
LOW…layback/core/lib/recordandplayback/generators/video.rb1COMMENT
LOW…layback/core/lib/recordandplayback/generators/video.rb61 -c:a copyCOMMENT
LOW…layback/core/lib/recordandplayback/generators/video.rb121 {COMMENT
LOW…layback/core/lib/recordandplayback/generators/audio.rb1# Set encoding to utf-8COMMENT
108 more matches not shown…
Hyper-Verbose Identifiers116 hits · 125 pts
SeverityFileLineSnippetContext
LOWbbb-export-annotations/lib/utils/slide-background.js42export function largestEmbeddedRasterWidth(file) {CODE
LOWbbb-export-annotations/lib/utils/slide-background.js145export function rasterizeSlideBackgroundFromPdf(pdfPath, page, pngPath, {CODE
LOWbbb-export-annotations/workers/collector.js34async function collectAnnotationsFromRedis() {CODE
LOWbbb-export-annotations/workers/process.js346async function processPresentationAnnotations() {CODE
LOWrecord-and-playback/core/scripts/rap-process-worker.rb26def process_archived_meetings(recording_dir)CODE
LOWrecord-and-playback/core/scripts/rap-starter.rb73def archive_recorded_meetings(recording_dir, done_file)CODE
LOW…playback/core/lib/recordandplayback/events_archiver.rb55 def has_breakout_metadata_for(meeting_id)CODE
LOW…playback/core/lib/recordandplayback/events_archiver.rb109 def delete_breakout_metadata_for(meeting_id)CODE
LOW…playback/core/lib/recordandplayback/events_archiver.rb113 def delete_breakout_rooms_for(meeting_id)CODE
LOW…resentation/playback/presentation/0.9.0/lib/writing.js139function removeSlideChangeAttribute() {CODE
LOW…resentation/playback/presentation/0.9.0/lib/writing.js191function handlePresentationAreaContent(time) {CODE
LOW…resentation/playback/presentation/0.9.0/lib/writing.js773function setPresentationTextFromJSON(images, presentationText) {CODE
LOW…resentation/playback/presentation/0.9.0/lib/writing.js794function setPresentationTextFromTxt(images) {CODE
LOW…presentation/playback/presentation/0.81/lib/writing.js114function removeSlideChangeAttribute() {CODE
LOW…-playback/presentation/scripts/publish/presentation.rb247def svg_render_shape_triangle(g, slide, shape)CODE
LOW…-playback/presentation/scripts/publish/presentation.rb525def convert_cursor_coordinate(cursor_coord, panzoom_offset, panzoom_ratio)CODE
LOW…-playback/presentation/scripts/publish/presentation.rb567def clean_arrow_end_or_start_props(props)CODE
LOW…-playback/presentation/scripts/publish/presentation.rb578def events_parse_tldraw_shape(shapes, event, current_presentation, current_slide, timestamp)CODE
LOW…-playback/presentation/scripts/publish/presentation.rb1236def get_poll_show_correct_answer(event)CODE
LOW…-playback/presentation/scripts/publish/presentation.rb1293def process_external_video_events(_events, package_dir)CODE
LOW…-playback/presentation/scripts/publish/presentation.rb1325def generate_done_or_fail_file(success)CODE
LOW…button-tests/playwright/options/audioProcessingMode.ts28export async function captureGetUserMediaAudioConstraints(page: PlaywrightPage): Promise<void> {CODE
LOW…button-tests/playwright/options/audioProcessingMode.ts41export async function getCapturedAudioConstraints(CODE
LOW…button-tests/playwright/options/audioProcessingMode.ts76export function audioProcessingModeOverrides(CODE
LOWbigbluebutton-tests/playwright/options/util.ts27 async function getValueFromSecondaryLocale(currentKey: string): Promise<string> {CODE
LOW⚡…ebutton-tests/playwright/sharednotes/blocknote/util.ts23export async function expectedSharedNotesFilename(meetingId: string, extension: string): Promise<string> {CODE
LOW⚡…ebutton-tests/playwright/sharednotes/blocknote/util.ts28export async function startSharedNotesBlockNote(testPage: Page) {CODE
LOW⚡…ebutton-tests/playwright/sharednotes/blocknote/util.ts34export function getBlockNoteEditorLocator(testPage: Page) {CODE
LOW⚡…ebutton-tests/playwright/sharednotes/blocknote/util.ts38export function getBlockNoteReadOnlyLocator(testPage: Page) {CODE
LOW⚡…ebutton-tests/playwright/sharednotes/blocknote/util.ts42function checkUnreadNotesIndicator(testPage: Page) {CODE
LOW⚡…ebutton-tests/playwright/sharednotes/blocknote/util.ts51export async function hasNoUnreadNotesIndicator(testPage: Page, description: string, timeout = ELEMENT_WAIT_TIME) {CODE
LOW⚡…ebutton-tests/playwright/sharednotes/blocknote/util.ts59export async function unreadNotesIndicatorStaysHidden(testPage: Page, description: string, durationMs = 3000) {CODE
LOW…ebutton-tests/playwright/sharednotes/blocknote/util.ts78export async function startBlockNoteSharedNotes(testPage: Page) {CODE
LOW…ebutton-tests/playwright/sharednotes/blocknote/util.ts89export async function enableMarkdownNotesOptions(testPage: Page): Promise<void> {CODE
LOWbigbluebutton-tests/playwright/core/helpers.ts158export function startTrackingCreatedMeetings(): void {CODE
LOWbigbluebutton-tests/playwright/core/helpers.ts220export function buildClientSettingsOverrideModule(overrides: ClientSettingsOverrides): string {CODE
LOWbigbluebutton-tests/playwright/core/livekit.ts22export function getMediaBridgeCreateParam(): string | undefined {CODE
LOWbigbluebutton-tests/playwright/core/page.ts54export function collectOverrideMismatches(expected: ClientSettingsOverrides, actual: unknown, path = ''): string[] {CODE
LOW…bluebutton-tests/playwright/core/setup/global.setup.ts19async function validateEnvironmentAndAPI(): Promise<void> {CODE
LOWbigbluebutton-tests/playwright/chat/util.ts62function sendPublicMessagesInBrowser(messages: string[]): Promise<void> {CODE
LOWbigbluebutton-tests/playwright/polling/util.ts57export async function uploadSPresentationForTestingPolls(testPage: Page, fileName: string) {CODE
LOWbigbluebutton-tests/playwright/whiteboard/util.ts76export async function viewerDrawsTwoStrokesAndErasesOne(modPage: Page, userPage: Page) {CODE
LOW…button-tests/playwright/whiteboard/whiteboardResize.ts89async function waitForPresentationLayout(page: Page): Promise<void> {CODE
LOW…ebutton-tests/playwright/recording/recordedPlayback.ts163export async function waitForPublishedRecording(CODE
LOWbigbluebutton-tests/playwright/user/util.ts41export function emojiRainSettingsOverride(enabled: boolean): ClientSettingsOverrides {CODE
LOWbigbluebutton-tests/playwright/user/util.ts186export async function setPresentationPermission(testPage: Page, option: string) {CODE
LOWbigbluebutton-tests/playwright/audio/util.ts76export async function areRemoteAudioElementsPlaying(testPage: Page): Promise<boolean> {CODE
LOWbigbluebutton-tests/playwright/audio/audioCaptions.ts105export async function shimSpeechSynthesisVoices(page: PlaywrightPage, langs: string[]): Promise<void> {CODE
LOWbigbluebutton-tests/playwright/layouts/layouts.ts22async function getSidebarContentWidthRatio(page: Page): Promise<number> {CODE
LOWbigbluebutton-tests/playwright/layouts/layouts.ts49async function assertNavigationRailExpanded(page: Page, expanded: boolean, message: string) {CODE
LOWbigbluebutton-tests/playwright/layouts/layouts.ts57async function assertDesktopLayoutActive(page: Page) {CODE
LOW…playwright/multifunctional-mode/multifunctionalMode.ts12function checkMultiFunctionalModeEnabled(page: Page) {CODE
LOWbigbluebutton-tests/playwright/breakout/join.ts36async function confirmRedirectClosesBreakout(breakoutUserPage: Page) {CODE
LOW…on-tests/playwright/breakout/clientSettingsOverride.ts12function getShowScreenshareQuickSwapButton(page: PlaywrightPage): Promise<boolean | undefined> {CODE
LOWbigbluebutton-tests/playwright/parameters/util.ts40export function preUploadedPresentationModule(fileName: string): string {CODE
LOW…tton-tests/playwright/accessibility/nonTextContrast.ts28export function formatNonTextContrastViolations(violations: NonTextContrastViolation[]): string {CODE
LOW…tton-tests/playwright/accessibility/nonTextContrast.ts51export async function findNonTextContrastViolations(CODE
LOWbigbluebutton-tests/playwright/webcam/cameraCaps.ts16 MediaDevices.prototype.enumerateDevices = async function enumerateWithSecondCamera() {CODE
LOWbigbluebutton-tests/playwright/webcam/cameraCaps.ts22 MediaDevices.prototype.getUserMedia = function getUserMediaWithSecondCamera(constraints) {CODE
LOWbigbluebutton-tests/playwright/webcam/util.ts70export async function checkBackgroundThumbnailColumns(testPage: Page, minColumns: number) {CODE
56 more matches not shown…
Self-Referential Comments31 hits · 87 pts
SeverityFileLineSnippetContext
MEDIUMrecord-and-playback/video/scripts/publish/video.rb4# This file is part of BigBlueButton.COMMENT
MEDIUMrecord-and-playback/video/scripts/publish/video.rb142# Create the done fileCOMMENT
MEDIUMrecord-and-playback/video/scripts/process/video.rb4# This file is part of BigBlueButton.COMMENT
MEDIUMrecord-and-playback/core/scripts/rap-enqueue.rb6# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUMrecord-and-playback/core/scripts/rap-process-worker.rb6# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUMrecord-and-playback/core/scripts/rap-starter.rb6# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUMrecord-and-playback/core/scripts/rap-caption-inbox.rb6# This file is part of the BigBlueButton open source conferencing system.COMMENT
MEDIUMrecord-and-playback/core/lib/boot.rb5# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUM…ord-and-playback/core/lib/recordandplayback/workers.rb5# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUM…d-and-playback/core/lib/recordandplayback/edl/video.rb277 # Create a new file video source from the filenameCOMMENT
MEDIUM…d-and-playback/core/lib/recordandplayback/edl/video.rb417 # This function is used to select a layout for a specific cut, based on the media present in the cut and theCOMMENT
MEDIUM…d-and-playback/core/lib/recordandplayback/edl/video.rb621 # Create the xstack filter to composite the video elementsCOMMENT
MEDIUM…ck/core/lib/recordandplayback/workers/sanity_worker.rb5# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUM…k/core/lib/recordandplayback/workers/archive_worker.rb5# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUM…k/core/lib/recordandplayback/workers/process_worker.rb5# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUM…ck/core/lib/recordandplayback/workers/events_worker.rb5# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUM…k/core/lib/recordandplayback/workers/publish_worker.rb5# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUM…/core/lib/recordandplayback/workers/captions_worker.rb5# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUM…back/core/lib/recordandplayback/workers/base_worker.rb5# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUM…back/core/lib/recordandplayback/generators/captions.rb3# This file is part of BigBlueButton open source conferencing system.COMMENT
MEDIUM…ayback/core/lib/recordandplayback/generators/events.rb462 # Create a video EDL for the deskshare areaCOMMENT
MEDIUM…ayback/core/lib/recordandplayback/generators/events.rb503 # Create a new EDL entry with the new deskshare video addedCOMMENT
MEDIUM…ayback/core/lib/recordandplayback/generators/events.rb514 # Create a new EDL entry with the deskshare video removedCOMMENT
MEDIUM…ayback/core/lib/recordandplayback/generators/events.rb542 # Create a video EDL for the presentation areaCOMMENT
MEDIUM…ayback/core/lib/recordandplayback/generators/events.rb627 # Create a video EDL for layout eventsCOMMENT
MEDIUM…nd-playback/screenshare/scripts/publish/screenshare.rb95# Create the done fileCOMMENT
MEDIUM…-playback/presentation/scripts/publish/presentation.rb873# Create the shapes.svg, cursors.xml, and panzooms.xml files used forCOMMENT
MEDIUMbigbluebutton-tests/gns3/gns3-bbb.py993# Create a GNS3 "cloud" for Internet access.STRING
MEDIUMbigbluebutton-tests/gns3/gns3-bbb.py1043# Create the master gatewaySTRING
MEDIUMbigbluebutton-tests/gns3/gns3-bbb.py1135 # Create a serverSTRING
MEDIUMbigbluebutton-config/bin/apply-lib.sh174# This function is not called.COMMENT
Decorative Section Separators28 hits · 80 pts
SeverityFileLineSnippetContext
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts125 // ── 1. Wait for the whiteboard and slide image to be ready ──────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts142 // ── 2. Record pre-resize state on both pages ───────────────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts175 // ── 3. Shrink the moderator viewport (≈ 40 % height) — trigger only ─────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts187 // ── 4. Expand back to original size ───────────────────────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts194 // ── 5. Verify moderator camera re-synced after expanding back ─────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts229 // ── 6. Verify viewer page was NOT affected throughout ─────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts260 // ── 1. Wait for the whiteboard and slide image to be ready ──────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts307 // ── 3. Screenshot A — write this run's zoomed state as the baseline ──────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts325 // ── 4. Shrink moderator viewport (≈ 40 % height) ──────────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts336 // ── 5. Expand back to original size ───────────────────────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts341 // ── 7. Screenshot C — must match Screenshot A (same run) ─────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts353 // ── 1. Wait for the whiteboard and slide image to be ready ───────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts367 // ── 2. Record fit-zoom baseline ──────────────────────────────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts371 // ── 3. Zoom in via toolbar (2 clicks of +25% each = 150%) ────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts392 // ── 4. Record pre-minimize state ─────────────────────────────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts405 // ── 5. Minimize then restore presentation ────────────────────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts419 // ── 6. Verify camera zoom is preserved after restore ─────────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts433 // ── 7. Verify toolbar zoom % is preserved after restore ───────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts447 // ── 1. Wait for the whiteboard and slide image to be ready ──────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts463 // ── 2. Screenshot A — write this run's initial state as the baseline ────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts498 // ── 3. Shrink moderator viewport (≈ 40 % height) ──────────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts509 // ── 4. Expand back to original size ───────────────────────────────────────COMMENT
MEDIUM…button-tests/playwright/whiteboard/whiteboardResize.ts514 // ── 5. Screenshot C — must match the initial baseline (Screenshot A) ───────COMMENT
MEDIUMdocs/docs/administration/customize.md914#----------------------------------------------------COMMENT
MEDIUMdocs/docs/administration/customize.md1149#----------------------------------------------------COMMENT
MEDIUMdocs/docs/administration/customize.md1222#----------------------------------------------------COMMENT
MEDIUMdocs/docs/administration/customize.md1254#----------------------------------------------------COMMENT
MEDIUMdocs/docs/administration/customize.md1311#----------------------------------------------------COMMENT
Redundant / Tautological Comments30 hits · 49 pts
SeverityFileLineSnippetContext
LOWrecord-and-playback/core/scripts/rap-process-worker.rb53 # Iterate over the list of recording processing scripts to find availableCOMMENT
LOWrecord-and-playback/core/scripts/utils/captions.rb1# Set encoding to utf-8COMMENT
LOWrecord-and-playback/core/lib/recordandplayback.rb1# Set encoding to utf-8COMMENT
LOWrecord-and-playback/core/lib/custom_hash.rb1# Set encoding to utf-8COMMENT
LOW…cordandplayback/edl/video/presentation_video_source.rb23 # Check if the video source is corruptCOMMENT
LOW…k/core/lib/recordandplayback/edl/video/video_source.rb67 # Check if the video source is corruptCOMMENT
LOW…k/core/lib/recordandplayback/edl/video/video_source.rb196 # Check if the video source is seekableCOMMENT
LOW…k/core/lib/recordandplayback/edl/video/video_source.rb252 # Check if the video file has the early 1.1 deskshare timestamp bugCOMMENT
LOW…layback/core/lib/recordandplayback/generators/video.rb2# Set encoding to utf-8COMMENT
LOW…layback/core/lib/recordandplayback/generators/audio.rb1# Set encoding to utf-8COMMENT
LOW…/core/lib/recordandplayback/generators/presentation.rb1# Set encoding to utf-8COMMENT
LOW…re/lib/recordandplayback/generators/audio_processor.rb1# Set encoding to utf-8COMMENT
LOW…ayback/core/lib/recordandplayback/generators/events.rb1# Set encoding to utf-8COMMENT
LOW…ayback/core/lib/recordandplayback/generators/events.rb920 # Check if there is any of that emoji to be deletedCOMMENT
LOW…ayback/core/lib/recordandplayback/generators/events.rb1335 # Check if any screenshare files has audioCOMMENT
LOWrecord-and-playback/notes/scripts/publish/notes.rb1# Set encoding to utf-8COMMENT
LOWrecord-and-playback/notes/scripts/process/notes.rb1# Set encoding to utf-8COMMENT
LOWrecord-and-playback/podcast/scripts/publish/podcast.rb1# Set encoding to utf-8COMMENT
LOWrecord-and-playback/podcast/scripts/process/podcast.rb1# Set encoding to utf-8COMMENT
LOW…-playback/presentation/scripts/process/presentation.rb2# Set encoding to utf-8COMMENT
LOWbigbluebutton-tests/gns3/gns3-bbb.py167# Check if our SSL root Certificate Authority key and certificate are available, create them if notCOMMENT
LOWbigbluebutton-config/bin/apply-lib.sh102 # Check if haproxy is running on this server and, if so, open port 3478 on ufwCOMMENT
LOWbigbluebutton-config/bin/apply-lib.sh146 # Check if haproxy is running and open port 3478COMMENT
LOWbbb-libreoffice/assets/convert-cool.sh17# Set this to "-k" to allow it to work in a test environment, ie with a self signedCOMMENT
LOWbbb-graphql-server/deploy.sh58#Check if Hasura is ready before applying metadataCOMMENT
LOW⚡scripts/code-review/checkout-to-pr.sh5# Check if `jq` is availableCOMMENT
LOW⚡scripts/code-review/checkout-to-pr.sh12# Check if both the PR number is providedCOMMENT
LOW⚡scripts/code-review/checkout-to-pr.sh18# Check if the PR number was provided as a numberCOMMENT
LOW⚡scripts/code-review/checkout-to-pr.sh26# Check if the current directory is a Git repositoryCOMMENT
LOW⚡scripts/code-review/checkout-to-pr.sh32# Check if there are any uncommitted changesCOMMENT
Verbosity Indicators13 hits · 24 pts
SeverityFileLineSnippetContext
LOW⚡bigbluebutton-tests/playwright/user/lockViewers.ts769 // Step 2: apply hideUserList lock BEFORE the viewer joins so that theCOMMENT
LOW⚡bigbluebutton-tests/playwright/user/lockViewers.ts773 // Step 3: Viewer1 joins after lock is active → locked=true.COMMENT
LOW⚡bigbluebutton-tests/playwright/user/lockViewers.ts776 // Step 4: both pages enable join push alerts.COMMENT
LOWbigbluebutton-tests/playwright/user/lockViewers.ts793 // Step 5: Viewer2 joins.COMMENT
LOWbigbluebutton-tests/playwright/user/lockViewers.ts837 // Step 2: enable hideUserList before viewers join.COMMENT
LOWbigbluebutton-tests/playwright/user/lockViewers.ts850 // Step 5: enable leave push alerts on mod and Viewer1.COMMENT
LOWbigbluebutton-tests/playwright/user/lockViewers.ts863 // Step 6: Viewer2 leaves the meeting.COMMENT
LOW…bigbluebutton/presentation/imp/SvgImageCreatorImp.java305 // Step 1: Rasterize the PDF page to PNG using poppler's splash backend (pdftoppm).COMMENT
LOW…bigbluebutton/presentation/imp/SvgImageCreatorImp.java383 // Step 3: Add SVG namespace to the destination fileCOMMENT
LOW…a/org/bigbluebutton/core/util/jhotdraw/BezierPath.java1202 // Step 1 : Compute (x1, y1)COMMENT
LOW⚡…a/org/bigbluebutton/core/util/jhotdraw/BezierPath.java1223 // Step 2 : Compute (cx1, cy1)COMMENT
LOW⚡…a/org/bigbluebutton/core/util/jhotdraw/BezierPath.java1233 // Step 3 : Compute (cx, cy) from (cx1, cy1)COMMENT
LOW⚡…a/org/bigbluebutton/core/util/jhotdraw/BezierPath.java1241 // Step 4 : Compute the angleStart (angle1) and the angleExtent (dangle)COMMENT
Structural Annotation Overuse13 hits · 24 pts
SeverityFileLineSnippetContext
LOW⚡bigbluebutton-tests/playwright/user/lockViewers.ts769 // Step 2: apply hideUserList lock BEFORE the viewer joins so that theCOMMENT
LOW⚡bigbluebutton-tests/playwright/user/lockViewers.ts773 // Step 3: Viewer1 joins after lock is active → locked=true.COMMENT
LOW⚡bigbluebutton-tests/playwright/user/lockViewers.ts776 // Step 4: both pages enable join push alerts.COMMENT
LOWbigbluebutton-tests/playwright/user/lockViewers.ts793 // Step 5: Viewer2 joins.COMMENT
LOWbigbluebutton-tests/playwright/user/lockViewers.ts837 // Step 2: enable hideUserList before viewers join.COMMENT
LOWbigbluebutton-tests/playwright/user/lockViewers.ts850 // Step 5: enable leave push alerts on mod and Viewer1.COMMENT
LOWbigbluebutton-tests/playwright/user/lockViewers.ts863 // Step 6: Viewer2 leaves the meeting.COMMENT
LOW…bigbluebutton/presentation/imp/SvgImageCreatorImp.java305 // Step 1: Rasterize the PDF page to PNG using poppler's splash backend (pdftoppm).COMMENT
LOW…bigbluebutton/presentation/imp/SvgImageCreatorImp.java383 // Step 3: Add SVG namespace to the destination fileCOMMENT
LOW…a/org/bigbluebutton/core/util/jhotdraw/BezierPath.java1202 // Step 1 : Compute (x1, y1)COMMENT
LOW⚡…a/org/bigbluebutton/core/util/jhotdraw/BezierPath.java1223 // Step 2 : Compute (cx1, cy1)COMMENT
LOW⚡…a/org/bigbluebutton/core/util/jhotdraw/BezierPath.java1233 // Step 3 : Compute (cx, cy) from (cx1, cy1)COMMENT
LOW⚡…a/org/bigbluebutton/core/util/jhotdraw/BezierPath.java1241 // Step 4 : Compute the angleStart (angle1) and the angleExtent (dangle)COMMENT
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGH…yback/slides/playback/slides/lib/popcorn-custom.min.js1/*! This code was generated automatically using the Popcorn Dynamic Build ToolCOMMENT
HIGHbigbluebutton-html5/imports/utils/regex-weburl.js42// - protocols have been restricted to ftp, http and https only as requestedCOMMENT
Magic Placeholder Names2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHdocs/docs/greenlight/v3/external-authentication.md104- `<YOUR_SECRET>` is a placeholder for your OpenID client secret that you stored during the first few steps.CODE
HIGHdocs/docs/greenlight/v3/external-authentication.md114OPENID_CONNECT_CLIENT_SECRET=<YOUR_SECRET>CODE
AI Slop Vocabulary3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMbbb-export-annotations/workers/collector.js72 // If there's a PDF file, we leverage the existing converted SVG slidesCOMMENT
MEDIUMbigbluebutton-html5/server/main.js5// Setting the global._ to utilize the npm lodash package is an interim fixCOMMENT
MEDIUMdocs/package-lock.json16683 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz",CODE
Fake / Example Data6 hits · 6 pts
SeverityFileLineSnippetContext
LOW…ebutton-tests/playwright/chat/privateChatInput.spec.ts77 await expect(input).toHaveAttribute('placeholder', `Message Private Chat with ${LONG_PARTICIPANT_NAME}`);CODE
LOW…tton-tests/playwright/accessibility/nonTextContrast.ts229 element.getAttribute('placeholder') ||CODE
LOWdocs/docs/development/api.md698 "name": "John Doe",CODE
LOWdocs/docs/greenlight/v3/install.md67user = User.find_by!(email: 'user@example.com')CODE
LOW…rg/bigbluebutton/api/model/validator/UrlValidator.java22 newUrl = newUrl.replace("%%USERNAME%%", "John Doe");CODE
LOW…a/org/bigbluebutton/api/service/ValidationService.java102 newUrl = newUrl.replace("%%USERNAME%%", "John Doe");CODE
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHbigbluebutton-tests/gns3/gns3-bbb.py637except subprocess.CalledProcessError:CODE
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMbbb-libreoffice/assets/convert-cool.sh12# Or you can use an existing setup you have.COMMENT
LOWbigbluebutton-html5/private/config/settings.yml1204 # If the following mime-types list is changed, please, make sure to also change:COMMENT
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippetContext
LOWbigbluebutton-html5/public/wasm/BBBA-nosimd-mapi.js9var Module=typeof mapi_bbba!="undefined"?mapi_bbba:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new ProCODE
LOWbigbluebutton-html5/public/wasm/BBBA-mapi.js9var Module=typeof mapi_bbba!="undefined"?mapi_bbba:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new ProCODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOWbigbluebutton-tests/gns3/gns3-bbb.py73CODE