Repository Analysis

chatwoot/chatwoot

Open-source live-chat, email support, omni-channel desk. An alternative to Intercom, Zendesk, Salesforce Service Cloud etc. 🔥💬

1.3 Likely human-written View on GitHub
1.3
Adjusted Score
1.3
Raw Score
100%
Time Factor
2026-05-30
Last Push
29,826
Stars
Ruby
Language
1,059,072
Lines of Code
7281
Files
1092
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 2HIGH 0MEDIUM 128LOW 962

Pattern Findings

1092 matches across 12 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers456 hits · 483 pts
SeverityFileLineSnippet
LOWapp/mailers/conversation_reply_mailer.rb65 def init_conversation_attributes(conversation)
LOWapp/mailers/references_header_builder.rb42 def get_references_from_replied_message(conversation, in_reply_to_message_id)
LOWapp/mailers/references_header_builder.rb77 def extract_references_from_message(message)
LOW…nistrator_notifications/account_notification_mailer.rb2 def account_deletion_user_initiated(account, reason)
LOW…nistrator_notifications/account_notification_mailer.rb14 def account_deletion_for_inactivity(account, reason)
LOW…ent_notifications/conversation_notifications_mailer.rb34 def assigned_conversation_new_message(conversation, agent, message)
LOW…ent_notifications/conversation_notifications_mailer.rb46 def participating_conversation_new_message(conversation, agent, message)
LOWapp/builders/contact_inbox_with_contact_builder.rb79 def find_contact_by_instagram_source_id(instagram_id)
LOWapp/builders/contact_inbox_with_contact_builder.rb93 def find_contact_by_identifier(identifier)
LOWapp/builders/contact_inbox_with_contact_builder.rb105 def find_contact_by_phone_number(phone_number)
LOWapp/builders/messages/message_builder.rb204 def process_liquid_in_email_body(content)
LOWapp/builders/messages/messenger/message_builder.rb67 def update_attachment_file_type(attachment)
LOWapp/builders/messages/messenger/message_builder.rb106 def get_story_object_from_source_id(_source_id)
LOWapp/builders/messages/messenger/message_builder.rb127 def update_facebook_reel_content(attachment)
LOWapp/builders/messages/facebook/message_builder.rb125 def process_contact_params_result(result)
LOWapp/builders/messages/instagram/base_message_builder.rb118 def create_story_reply_attachment(story_url)
LOWapp/builders/messages/instagram/base_message_builder.rb179 def find_message_by_source_id(source_id)
LOWapp/builders/messages/instagram/base_message_builder.rb198 def get_story_object_from_source_id(source_id)
LOWapp/builders/messages/instagram/message_builder.rb8 def get_story_object_from_source_id(source_id)
LOW…ilders/messages/instagram/messenger/message_builder.rb8 def get_story_object_from_source_id(source_id)
LOWapp/builders/v2/reports/label_summary_builder.rb61 def fetch_conversation_counts(conversation_filter)
LOWapp/models/inbox.rb212 def dispatch_reauthorization_event(reauthorization_required)
LOWapp/models/attachment.rb201 def validate_file_content_type(file_content_type)
LOWapp/models/message.rb444 def validate_attachments_limit(_attachment)
LOWapp/models/conversation.rb217 def dispatch_conversation_updated_event(previous_changes = nil)
LOWapp/models/automation_rule.rb98 def validate_single_condition(condition)
LOWapp/models/application_record.rb34 def check_and_validate_content_length(column)
LOWapp/models/application_record.rb46 def normalize_empty_string_to_nil(attrs = [])
LOWapp/models/channel/telegram.rb44 def get_telegram_profile_image(user_id)
LOWapp/models/channel/telegram.rb130 def convert_markdown_to_telegram_html(text)
LOWapp/models/concerns/sort_handler.rb17 def sort_on_priority_created_at(sort_direction = :desc)
LOW…p/models/concerns/assignee_activity_message_handler.rb6 def create_assignee_change_activity(user_name)
LOW…p/models/concerns/assignee_activity_message_handler.rb15 def generate_assignee_change_activity_content(user_name)
LOWapp/models/concerns/activity_message_handler.rb70 def user_status_change_activity_content(user_name)
LOWapp/models/concerns/activity_message_handler.rb102 def create_mute_change_activity(change_type)
LOWapp/models/concerns/sla_activity_message_handler.rb6 def create_sla_change_activity(change_type, user_name)
LOWapp/models/concerns/reauthorizable.rb58 def send_channel_reauthorization_email(disconnect_type)
LOWapp/models/concerns/reauthorizable.rb80 def dispatch_inbox_reauthorization_event(reauthorization_required)
LOW…p/models/concerns/priority_activity_message_handler.rb20 def build_priority_change_content(user_name, old_priority = nil, new_priority = nil)
LOWapp/models/concerns/label_activity_message_handler.rb14 def create_label_change_activity(change_type, user_name, labels = [])
LOWapp/models/concerns/sso_authenticatable.rb10 def invalidate_sso_auth_token(token)
LOWapp/models/concerns/json_schema_validator.rb89 def get_name_from_data_pointer(error)
LOWapp/models/concerns/team_activity_message_handler.rb6 def create_team_change_activity(user_name)
LOWapp/models/concerns/cache_keys.rb39 def update_cache_key_for_account(account_id, key)
LOWapp/mailboxes/mailbox_helper.rb54 def process_regular_attachments(attachments)
LOWapp/mailboxes/mailbox_helper.rb66 def process_inline_attachments(attachments)
LOWapp/mailboxes/mailbox_helper.rb78 def embed_inline_image_source(mail_attachment)
LOWapp/mailboxes/mailbox_helper.rb86 def embed_plain_text_email_with_inline_image(mail_attachment)
LOWapp/javascript/widget/components/Form/PhoneInput.vue93function scrollToFocusedOrActiveItem(item) {
LOWapp/javascript/shared/mixins/specs/inboxMixin.spec.js4function getComponentConfigForInbox(channelType, additionalConfig = {}) {
LOWapp/javascript/shared/mixins/specs/inboxMixin.spec.js19function getComponentConfigForChat(chat) {
LOW…board/composables/useConversationRequiredAttributes.js13export function useConversationRequiredAttributes() {
LOW…/javascript/dashboard/composables/useKeyboardEvents.js52async function wrapEventsInKeybindingsHandler(events) {
LOW…oard/composables/chatlist/useChatListKeyboardEvents.js3export function useChatListKeyboardEvents(listRef) {
LOW…components-next/sidebar/useSidebarKeyboardShortcuts.js4export function useSidebarKeyboardShortcuts(toggleShortcutModalFn) {
LOW…avascript/dashboard/components-next/filter/provider.js50export function useConversationFilterContext() {
LOW…pt/dashboard/components-next/filter/ContactsFilter.vue74function validateAndSubmit() {
LOW…ashboard/components-next/filter/ConversationFilter.vue73function validateAndSubmit() {
LOWapp/javascript/dashboard/components/ChatList.vue377function fetchFilteredConversations(payload) {
LOWapp/javascript/dashboard/components/ChatList.vue390function fetchSavedFilteredConversations(payload) {
396 more matches not shown…
Over-Commented Block271 hits · 270 pts
SeverityFileLineSnippet
LOWapp/mailers/references_header_builder.rb1# Builds RFC 5322 compliant References headers for email threading
LOWapp/builders/agent_builder.rb1# The AgentBuilder class is responsible for creating a new agent.
LOWapp/models/macro.rb1# == Schema Information
LOWapp/models/note.rb1# == Schema Information
LOWapp/models/custom_attribute_definition.rb1# == Schema Information
LOWapp/models/related_category.rb1# == Schema Information
LOWapp/models/account.rb1# == Schema Information
LOWapp/models/data_import.rb1# == Schema Information
LOWapp/models/article.rb1# == Schema Information
LOWapp/models/article.rb21# folder_id :integer
LOWapp/models/category.rb1# == Schema Information
LOWapp/models/email_template.rb1# == Schema Information
LOWapp/models/platform_app_permissible.rb1# == Schema Information
LOWapp/models/contact.rb1# rubocop:disable Layout/LineLength
LOWapp/models/contact.rb21# created_at :datetime not null
LOWapp/models/assignment_policy.rb1# == Schema Information
LOWapp/models/mention.rb1# == Schema Information
LOWapp/models/csat_survey_response.rb1# == Schema Information
LOWapp/models/inbox_assignment_policy.rb1# == Schema Information
LOWapp/models/canned_response.rb1# == Schema Information
LOWapp/models/label.rb1# == Schema Information
LOWapp/models/inbox.rb1# frozen_string_literal: true
LOWapp/models/inbox.rb21# out_of_office_message :string
LOWapp/models/agent_bot.rb1# == Schema Information
LOWapp/models/notification_subscription.rb1# == Schema Information
LOWapp/models/platform_banner.rb1# == Schema Information
LOWapp/models/campaign.rb1# == Schema Information
LOWapp/models/campaign.rb21# inbox_id :bigint not null
LOWapp/models/dashboard_app.rb1# == Schema Information
LOWapp/models/account_user.rb1# == Schema Information
LOWapp/models/attachment.rb1# == Schema Information
LOWapp/models/message.rb1# == Schema Information
LOWapp/models/message.rb21# inbox_id :integer not null
LOWapp/models/team.rb1# == Schema Information
LOWapp/models/reporting_events_rollup.rb1# == Schema Information
LOWapp/models/notification.rb1# == Schema Information
LOWapp/models/folder.rb1# == Schema Information
LOWapp/models/custom_filter.rb1# == Schema Information
LOWapp/models/conversation.rb1# == Schema Information
LOWapp/models/conversation.rb21# updated_at :datetime not null
LOWapp/models/conversation.rb41# index_conversations_on_contact_inbox_id (contact_inbox_id)
LOWapp/models/super_admin.rb1# == Schema Information
LOWapp/models/super_admin.rb21# otp_backup_codes :text
LOWapp/models/super_admin.rb41# index_users_on_otp_required_for_login (otp_required_for_login)
LOWapp/models/automation_rule.rb1# == Schema Information
LOWapp/models/portal.rb1# == Schema Information
LOWapp/models/notification_setting.rb1# == Schema Information
LOWapp/models/agent_bot_inbox.rb1# == Schema Information
LOWapp/models/installation_config.rb1# == Schema Information
LOWapp/models/contact_inbox.rb1# == Schema Information
LOWapp/models/working_hour.rb1# == Schema Information
LOWapp/models/platform_app.rb1# == Schema Information
LOWapp/models/webhook.rb1# == Schema Information
LOWapp/models/conversation_participant.rb1# == Schema Information
LOWapp/models/inbox_member.rb1# == Schema Information
LOWapp/models/team_member.rb1# == Schema Information
LOWapp/models/user.rb1# == Schema Information
LOWapp/models/user.rb21# otp_backup_codes :text
LOWapp/models/access_token.rb1# == Schema Information
LOWapp/models/reporting_event.rb1# == Schema Information
211 more matches not shown…
Self-Referential Comments82 hits · 240 pts
SeverityFileLineSnippet
MEDIUMapp/mailers/references_header_builder.rb3# This module provides functionality to construct proper References headers
MEDIUMapp/models/concerns/json_schema_validator.rb1# This file defines a custom validator class `JsonSchemaValidator` for validating a JSON object against a schema.
MEDIUMapp/models/concerns/json_schema_validator.rb43 # Create a JSONSchemer instance using the schema
MEDIUMapp/helpers/data_helper.rb2# This module contains helper methods for converting between different data types,
MEDIUM…rprise/app/helpers/captain/chat_generation_recorder.rb10 # Create a generation span with model and token info for Langfuse cost calculation.
MEDIUM…vices/internal/accounts/internal_attributes_service.rb23 # Create a new hash to avoid modifying the original
MEDIUMconfig/markdown_embeds.yml3# This file defines patterns and templates for converting URLs into embedded content
MEDIUMconfig/installation_config.yml1# This file contains all the installation wide configuration which controls various settings in Chatwoot
MEDIUMconfig/initializers/feature_policy.rb1# Define an application-wide HTTP feature policy. For further
MEDIUMconfig/initializers/wrap_parameters.rb3# This file contains settings for ActionController::ParamsWrapper which
MEDIUMconfig/initializers/permissions_policy.rb1# Define an application-wide HTTP permissions policy. For further
MEDIUMconfig/initializers/content_security_policy.rb3# Define an application-wide content security policy
MEDIUMconfig/initializers/git_sha.rb1# Define a method to fetch the git commit hash
MEDIUM…terprise/models/concerns/captain_tools_helpers_spec.rb4 # Create a test class that includes the concern
MEDIUM…nterprise/policies/csat_survey_response_policy_spec.rb11 # Create a custom role with report_manage permission
MEDIUMspec/enterprise/policies/article_policy_spec.rb13 # Create a custom role with knowledge_base_manage permission
MEDIUMspec/enterprise/policies/report_policy_spec.rb11 # Create a custom role with report_manage permission
MEDIUMspec/enterprise/policies/portal_policy_spec.rb11 # Create a custom role with knowledge_base_manage permission
MEDIUMspec/enterprise/policies/category_policy_spec.rb12 # Create a custom role with knowledge_base_manage permission
MEDIUMspec/enterprise/lib/captain/base_task_service_spec.rb9 # Create a concrete test service class with enterprise module prepended
MEDIUMspec/enterprise/lib/captain/prompt_renderer_spec.rb78 # Create a controlled snippet to decouple from real snippet content
MEDIUM…trollers/enterprise/api/v1/accounts_controller_spec.rb360 # Create the installation config for cloud environment
MEDIUM…terprise/api/v1/accounts/categories_controller_spec.rb12 # Create a custom role with knowledge_base_manage permission
MEDIUM…enterprise/api/v1/accounts/articles_controller_spec.rb13 # Create a custom role with knowledge_base_manage permission
MEDIUM…/enterprise/api/v1/accounts/portals_controller_spec.rb11 # Create a custom role with knowledge_base_manage permission
MEDIUM…/v1/accounts/contacts/conversations_controller_spec.rb25 # Create a conversation assigned to this agent
MEDIUM…/v1/accounts/contacts/conversations_controller_spec.rb65 # Create the conversations
MEDIUM…/enterprise/api/v2/accounts/reports_controller_spec.rb9 # Create a custom role with report_manage permission
MEDIUM…llers/api/v1/accounts/conversations_controller_spec.rb140 # Create an event for a different conversation (should not be included)
MEDIUM…captain/tools/copilot/get_conversation_service_spec.rb115 # Create a regular message
MEDIUM…captain/tools/copilot/get_conversation_service_spec.rb122 # Create a private message
MEDIUM…rprise/conversations/permission_filter_service_spec.rb53 # Create a new isolated test environment
MEDIUM…rprise/conversations/permission_filter_service_spec.rb90 # Create a new isolated test environment
MEDIUM…rprise/conversations/permission_filter_service_spec.rb99 # Create a custom role with only the conversation_participating_manage permission
MEDIUM…rprise/conversations/permission_filter_service_spec.rb128 # Create a new isolated test environment
MEDIUM…rprise/conversations/permission_filter_service_spec.rb137 # Create a custom role with only the conversation_unassigned_manage permission
MEDIUM…rprise/conversations/permission_filter_service_spec.rb169 # Create a new isolated test environment
MEDIUM…rprise/conversations/permission_filter_service_spec.rb178 # Create a custom role with both participating and unassigned permissions
MEDIUM…enterprise/billing/handle_stripe_event_service_spec.rb121 # Create a double for the service
MEDIUM…ec/builders/contact_inbox_with_contact_builder_spec.rb102 # Create a Facebook page inbox with a contact using the same source_id
MEDIUM…ec/builders/contact_inbox_with_contact_builder_spec.rb107 # Create an Instagram inbox
MEDIUMspec/models/contact_spec.rb151 # Create a lead contact with only name
MEDIUMspec/models/contact_spec.rb155 # Create a customer contact
MEDIUMspec/models/contact_spec.rb159 # Create a visitor contact
MEDIUMspec/models/concerns/json_schema_validator_spec.rb24 # Create a simple test model for validation
MEDIUMspec/mailboxes/application_mailbox_spec.rb76 # Create a BCC-only email scenario
MEDIUMspec/support/csv_spec_helpers.rb5 # Create a temporary file
MEDIUMspec/lib/captain/base_task_service_spec.rb8 # Create a concrete test service class since BaseTaskService is abstract
MEDIUMspec/jobs/internal/process_stale_contacts_job_spec.rb17 # Create an account and set its ID to match today's pattern
MEDIUM…llers/api/v1/accounts/conversations_controller_spec.rb837 # Create a new message after agent_last_seen_at (unread message)
MEDIUM…controllers/api/v2/accounts/reports_controller_spec.rb154 # Create a resolution event right at timezone boundary
MEDIUMspec/controllers/instagram/callbacks_controller_spec.rb57 # Create an existing channel
MEDIUMspec/listeners/automation_rule_listener_old_spec.rb1# This file is deprecated, please don't add any additional specs or modifications in this
MEDIUMspec/listeners/reporting_event_listener_spec.rb371 # Create a resolved event first
MEDIUMspec/listeners/automation_rule_listener_labels_spec.rb45 automation_rule # Create the automation rule
MEDIUMspec/listeners/automation_rule_listener_labels_spec.rb67 automation_rule # Create the automation rule
MEDIUMspec/listeners/automation_rule_listener_labels_spec.rb107 automation_rule # Create the automation rule
MEDIUMspec/listeners/automation_rule_listener_labels_spec.rb125 automation_rule # Create the automation rule
MEDIUMspec/listeners/automation_rule_listener_labels_spec.rb147 automation_rule # Create the automation rule
MEDIUMspec/listeners/automation_rule_listener_labels_spec.rb188 automation_rule # Create the automation rule
22 more matches not shown…
Fake / Example Data174 hits · 180 pts
SeverityFileLineSnippet
LOW…avascript/dashboard/composables/spec/useMacros.spec.js91 available_name: 'John Doe',
LOW…avascript/dashboard/composables/spec/useMacros.spec.js92 name: 'John Doe',
LOW…script/dashboard/composables/commands/spec/fixtures.js9 available_name: 'John Doe',
LOW…script/dashboard/composables/commands/spec/fixtures.js10 name: 'John Doe',
LOW…script/dashboard/composables/commands/spec/fixtures.js39 available_name: 'John Doe',
LOW…script/dashboard/composables/commands/spec/fixtures.js40 name: 'John Doe',
LOW…script/dashboard/composables/commands/spec/fixtures.js78 name: 'John Doe',
LOW…script/dashboard/composables/commands/spec/fixtures.js79 available_name: 'John Doe',
LOW…components-next/Contacts/ContactsForm/ContactsForm.vue189 // Example: firstName="John", lastName="Doe" → name="John Doe"
LOW…omponents-next/Contacts/ContactsForm/story/fixtures.js3 name: 'John Doe',
LOW…omponents-next/Contacts/ContactsCard/story/fixtures.js9 name: 'John Doe',
LOW…mponents-next/message/stories/MessageBubbles.story.vue23 name: 'John Doe',
LOW…onents-next/message/stories/InstagramBubbles.story.vue23 name: 'John Doe',
LOW…components-next/message/stories/MediaBubbles.story.vue23 name: 'John Doe',
LOW…ents-next/NewConversation/components/story/fixtures.js166 name: 'John Doe',
LOW…sation/helpers/specs/composeConversationHelper.spec.js11 name: 'John Doe',
LOW…sation/helpers/specs/composeConversationHelper.spec.js49 ).toBe('John Doe');
LOW…sation/helpers/specs/composeConversationHelper.spec.js350 name: 'John Doe',
LOW…sation/helpers/specs/composeConversationHelper.spec.js366 name: 'John Doe',
LOW…sation/helpers/specs/composeConversationHelper.spec.js429 name: 'John Doe',
LOW…sation/helpers/specs/composeConversationHelper.spec.js436 name: 'Jane Doe',
LOW…sation/helpers/specs/composeConversationHelper.spec.js460 name: 'John Doe',
LOW…sation/helpers/specs/composeConversationHelper.spec.js496 name: 'John Doe',
LOW…sation/helpers/specs/composeConversationHelper.spec.js520 name: 'John Doe',
LOW…-next/template-preview/templates/whatsapp-templates.js367 body_text: [['John', '123 Main St', 'support@telco.com']],
LOW…/AssignmentPolicy/components/story/DataTable.story.vue28 name: 'John Doe',
LOW…pt/dashboard/components-next/table/BaseTable.story.vue35 name: 'John Doe',
LOW…ript/dashboard/components-next/avatar/Avatar.story.vue108 <Avatar name="John Doe" :size="48" />
LOW…oard/modules/search/helpers/specs/searchHelper.spec.js342 name: 'John Doe',
LOW…oard/modules/search/helpers/specs/searchHelper.spec.js366 const mockContactData = { id: 456, name: 'Jane Doe' };
LOW…vascript/dashboard/helper/specs/templateHelper.spec.js44 2: '123 Main St',
LOWapp/javascript/dashboard/helper/specs/macrosFixtures.js81 available_name: 'John Doe',
LOWapp/javascript/dashboard/helper/specs/macrosFixtures.js82 name: 'John Doe',
LOW…javascript/dashboard/helper/specs/editorHelper.spec.js746 name: 'John Doe',
LOW…javascript/dashboard/helper/specs/editorHelper.spec.js759 userFullName: 'John Doe',
LOW…javascript/dashboard/helper/specs/editorHelper.spec.js768 userFullName: 'John Doe',
LOW…ipt/dashboard/helper/specs/editorContentHelper.spec.js35 const content = { id: 1, name: 'John Doe' };
LOW…script/dashboard/helper/specs/automationHelper.spec.js98 { id: 123, title: 'Fayaz', email: 'test@test.com' },
LOW…javascript/dashboard/helper/specs/macrosHelper.spec.js63 const resolvedAgents = 'John Doe';
LOW…cript/dashboard/helper/specs/quotedEmailHelper.spec.js60 const lastEmail = { sender: { name: 'John Doe' } };
LOW…cript/dashboard/helper/specs/quotedEmailHelper.spec.js62 expect(result).toBe('John Doe');
LOW…cript/dashboard/helper/specs/quotedEmailHelper.spec.js80 expect(result).toBe('John Doe');
LOW…cript/dashboard/helper/specs/quotedEmailHelper.spec.js193 sender: { name: 'John Doe', email: 'john@example.com' },
LOW…cript/dashboard/helper/specs/quotedEmailHelper.spec.js199 expect(result).toContain('John Doe');
LOW…cript/dashboard/helper/specs/quotedEmailHelper.spec.js272 const contact = { name: 'John Doe', email: 'john@example.com' };
LOW…cript/dashboard/helper/specs/quotedEmailHelper.spec.js276 expect(result).not.toContain('John Doe');
LOW…dashboard/store/modules/specs/contactNotes/fixtures.js6 name: 'John Doe',
LOW…ules/conversations/helpers/specs/filterHelpers.spec.js162 values: { id: 1, name: 'John Doe' },
LOW…ules/conversations/helpers/specs/filterHelpers.spec.js201 values: { id: 1, name: 'John Doe' },
LOW…ules/conversations/helpers/specs/filterHelpers.spec.js214 values: { id: 1, name: 'John Doe' },
LOWapp/javascript/v3/helpers/specs/CommonHelper.spec.js5 expect(userInitial('John Doe')).toEqual('JD');
LOWapp/javascript/v3/helpers/specs/AuthHelper.spec.js61 fullName: 'John Doe',
LOW…/services/whatsapp/providers/whatsapp_cloud_service.rb162 # body: { '1': 'John', '2': '123 Main St' },
LOWswagger/swagger.json11590 "example": "John Doe"
LOWswagger/tag_groups/other_swagger.json2777 "example": "John Doe"
LOWswagger/tag_groups/application_swagger.json10097 "example": "John Doe"
LOWswagger/tag_groups/platform_swagger.json3538 "example": "John Doe"
LOWswagger/tag_groups/client_swagger.json3362 "example": "John Doe"
LOWswagger/definitions/request/agent/create_payload.yml10 example: 'John Doe'
LOW…trollers/enterprise/api/v2/accounts_controller_spec.rb9 name: 'John Doe',
114 more matches not shown…
Decorative Section Separators25 hits · 75 pts
SeverityFileLineSnippet
MEDIUM…script/dashboard/helper/specs/snoozeDateParser.spec.js121// ─── Regression Test Matrix ───────────────────────────────────────────────────
MEDIUM…script/dashboard/helper/specs/snoozeDateParser.spec.js544// ─── parseDateFromText direct tests ──────────────────────────────────────────
MEDIUM…script/dashboard/helper/specs/snoozeDateParser.spec.js1512// ─── Multilingual / Localized Input Regressions ─────────────────────────────
MEDIUM…ascript/dashboard/helper/snoozeDateParser/tokenMaps.js20// ─── Token Maps ──────────────────────────────────────────────────────────────
MEDIUM…ascript/dashboard/helper/snoozeDateParser/tokenMaps.js199// ─── Unicode / Normalization ────────────────────────────────────────────────
MEDIUM…ascript/dashboard/helper/snoozeDateParser/tokenMaps.js289// ─── Utility Functions ──────────────────────────────────────────────────────
MEDIUM…ript/dashboard/helper/snoozeDateParser/localization.js22// ─── English Reference Data ─────────────────────────────────────────────────
MEDIUM…ript/dashboard/helper/snoozeDateParser/localization.js156// ─── Regex for token replacement ────────────────────────────────────────────
MEDIUM…ript/dashboard/helper/snoozeDateParser/localization.js172// ─── Translation Cache ──────────────────────────────────────────────────────
MEDIUM…ript/dashboard/helper/snoozeDateParser/localization.js275// ─── Token Replacement ──────────────────────────────────────────────────────
MEDIUM…ript/dashboard/helper/snoozeDateParser/localization.js345// ─── Main Suggestion Generator ──────────────────────────────────────────────
MEDIUM…javascript/dashboard/helper/snoozeDateParser/parser.js48// ─── Regex Fragments (derived from maps) ────────────────────────────────────
MEDIUM…javascript/dashboard/helper/snoozeDateParser/parser.js81// ─── Pre-compiled Regexes ───────────────────────────────────────────────────
MEDIUM…javascript/dashboard/helper/snoozeDateParser/parser.js198// ─── Pattern Matchers ───────────────────────────────────────────────────────
MEDIUM…javascript/dashboard/helper/snoozeDateParser/parser.js774// ─── Main Parser ────────────────────────────────────────────────────────────
MEDIUMconfig/routes.rb44 # ----------------------------------
MEDIUMconfig/routes.rb410 # ----------------------------------
MEDIUMconfig/routes.rb536 # ----------------------------------------------------------------------
MEDIUMconfig/routes.rb562 # ----------------------------------------------------------------------
MEDIUMconfig/routes.rb600 # ----------------------------------------------------------------------
MEDIUMconfig/routes.rb608 # ----------------------------------------------------------------------
MEDIUMconfig/routes.rb652 # ----------------------------------------------------------------------
MEDIUMconfig/routes.rb659 # ----------------------------------------------------------------------
MEDIUMconfig/routes.rb710 # ---------------------------------------------------------------------
MEDIUMconfig/routes.rb715 # ----------------------------------------------------------------------
Redundant / Tautological Comments39 hits · 62 pts
SeverityFileLineSnippet
LOWapp/models/message.rb374 # Check if this is a response from AgentBot or Captain::Assistant
LOWapp/models/notification.rb170 # Check if the user has subscribed to the specified type of notification
LOWapp/mailboxes/mailbox_inline_attachment_helper.rb13 # Check if attachment is explicitly marked as inline
LOWapp/mailboxes/mailbox_inline_attachment_helper.rb22 # Check if CID is referenced in HTML content
LOW…lers/public/api/v1/inboxes/conversations_controller.rb16 # Check if the conversation is already resolved to prevent redundant operations
LOWapp/controllers/instagram/callbacks_controller.rb6 # Check if Instagram redirected with an error (user canceled authorization)
LOW…rsation_finder_strategies/new_conversation_strategy.rb27 # Check if conversation already exists by in_reply_to
LOWapp/services/instagram/refresh_oauth_token_service.rb27 # Check if token is still valid
LOW…vices/whatsapp/populate_template_parameters_service.rb122 # Check if text contains WhatsApp rich formatting markers
LOWapp/services/whatsapp/incoming_message_base_service.rb170 # Set status to :delivered for echo messages to prevent SendReplyJob from trying to send them
LOWapp/services/whatsapp/webhook_setup_service.rb44 # Check if we have a stored PIN for this phone number
LOWapp/services/whatsapp/webhook_setup_service.rb96 # Check if phone is in pending provisioning state based on health data
LOWapp/services/whatsapp/webhook_setup_service.rb111 # Check if phone number is in "not provisioned" state based on health indicators
LOW…ervices/enterprise/auto_assignment/capacity_service.rb11 # Check if there's a specific limit for this inbox
LOWenterprise/lib/captain/tools/http_tool.rb45 # Check if resolved IP is private
LOWconfig/application.rb104 # Check if proper encryption keys are configured
LOWconfig/environments/production.rb94 # Set this to true and configure the email server for immediate delivery to raise delivery errors.
LOWconfig/environments/production.rb97 # Set this to appropriate ingress service for which the options are :
LOWconfig/initializers/mailer.rb43 # Set this to appropriate ingress service for which the options are :
LOWspec/enterprise/models/sla_event_spec.rb69 # Check if notification is created for the assignee
LOWspec/enterprise/models/sla_event_spec.rb71 # Check if notification is created for the account admin
LOWspec/enterprise/models/sla_event_spec.rb73 # Check if notification is created for participant
LOW…enterprise/devise_overrides/session_controller_spec.rb54 # Check if the sign_in event is created
LOWspec/builders/v2/report_builder_spec.rb280 metric: nil, # Set metric to nil to test this case
LOWdeployment/setup_20.04.sh425 # Check if this is a conversion from existing deployment
LOWdeployment/setup_20.04.sh864 # Check if Redis is installed
LOWdeployment/setup_20.04.sh990 # Check if CW_VERSION is 4.0 or above
LOWdeployment/setup_20.04.sh1102 # Check if Chatwoot is installed
LOWdeployment/setup_20.04.sh1196# Check if there is newer version of cwctl and upgrade if found
LOWdeployment/setup_20.04.sh1211 #Check if pip is not installed, and install it if not
LOWdeployment/setup_20.04.sh1217 # Check if packaging library is installed, and install it if not
LOWrubocop/one_class_per_file.rb54 # Check if we're inside a Rack::Attack class
LOWrubocop/one_class_per_file.rb61 # Check if the class inherits from StandardError or ends with 'Error'
LOWrubocop/one_class_per_file.rb69 # Check if any parent node is a module containing 'CustomExceptions'
LOWrubocop/one_class_per_file.rb83 # Check if class name ends with any of these patterns
LOW.github/workflows/logging_percentage_check.yml50 # Check if the percentage is less than 5%
LOW.github/workflows/run_foss_spec.yml122 # Assign spec to this node if: index % total == node_index
LOWlib/redis/redis_keys.rb56 # Check if a message create with same source-id is in progress?
LOWlib/test_data/database_optimizer.rb21 # Set tables to UNLOGGED mode for better write performance
Slop Phrases18 hits · 36 pts
SeverityFileLineSnippet
MEDIUM…/javascript/dashboard/i18n/locale/sl/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/ur/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/sq/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/sv/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/am/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/no/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…vascript/dashboard/i18n/locale/ur_IN/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/tl/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/ml/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/hr/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/nl/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/bg/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/hi/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/ka/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/fi/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/en/conversation.json364 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…/javascript/dashboard/i18n/locale/ta/conversation.json343 "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq
MEDIUM…ise/app/services/captain/llm/system_prompts_service.rb167 - Do not try to end the conversation explicitly (e.g., avoid phrases like "Talk soon!" or "Let me know if you ne
Verbosity Indicators17 hits · 28 pts
SeverityFileLineSnippet
LOWapp/builders/messages/instagram/base_message_builder.rb98 # Therefore, we need to check if the message already exists before creating it.
LOW…avascript/shared/mixins/keyboardEventListenerMixins.js30 // so we need to check if the root element has a dataset property to ensure it is a valid element
LOWapp/javascript/dashboard/composables/useImageZoom.js68 // Step 1: Calculate offset from center
LOWapp/javascript/dashboard/composables/useImageZoom.js71 // Step 2: Apply rotation transformation
LOWapp/javascript/dashboard/composables/useImageZoom.js78 // Step 3: Convert to percentage coordinates
LOW…ipt/dashboard/components/widgets/WootWriter/Editor.vue401 // these drafts can also have a signature, so we need to check if the body is empty
LOW…d/store/modules/conversations/helpers/filterHelpers.js292 // Step 1: Group consecutive AND conditions into logical units
LOW…d/store/modules/conversations/helpers/filterHelpers.js319 // Step 2: Add the final AND group that wasn't followed by an OR
LOW…d/store/modules/conversations/helpers/filterHelpers.js328 // Step 3: Combine all AND groups with OR operators
LOWapp/services/whatsapp/facebook_api_client.rb66 # Step 1: Subscribe app to WABA first (required before override)
LOWapp/services/whatsapp/facebook_api_client.rb71 # Step 2: Override callback URL for this specific WABA
LOWapp/services/twilio/csat_template_service.rb20 # Step 1: Create template
LOWapp/services/twilio/csat_template_service.rb25 # Step 2: Submit for WhatsApp approval using the approval_create URL
LOWspec/services/whatsapp/facebook_api_client_spec.rb164 # Step 1: Subscribe app to WABA (no body)
LOWspec/services/whatsapp/facebook_api_client_spec.rb175 # Step 2: Override callback URL (with body)
LOWlib/integrations/slack/channel_builder.rb33 # Step 1: Fetch all private channels in one call (expect very few)
LOWlib/integrations/slack/channel_builder.rb37 # Step 2: Fetch public channels with pagination
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippet
CRITICAL…dashboard/components/widgets/WootWriter/FullEditor.vue309 const node = editorView.state.schema.nodes.image.create({
CRITICALspec/services/twilio/incoming_message_service_spec.rb260 expect(conversation.reload.messages.last.attachments.map(&:file_type)).to contain_exactly('image', 'image')
AI Slop Vocabulary6 hits · 14 pts
SeverityFileLineSnippet
MEDIUMapp/javascript/shared/components/ResizableTextArea.vue78 // A surprise cursor jump? Definitely not user-friendly.
MEDIUM…script/dashboard/composables/useWhatsappCallSession.js368 // to the override means hangup is robust to a wiped local session.
LOWapp/services/crm/leadsquared/processor_service.rb65 # So we just use the update API if we already have a lead ID
MEDIUMapp/services/email_templates/db_resolver_service.rb33 # _details contain local info which we can leverage in future
LOWenterprise/app/models/applied_sla.rb65 # right now we simply use `CONVERSATION_UPDATED` event to notify the frontend
LOWenterprise/app/models/enterprise/concerns/contact.rb18 # 3. Email was just set/changed
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippet
LOWlib/seeders/reports/report_data_seeder.rb10# Usage:
Unused Imports1 hit · 1 pts
SeverityFileLineSnippet
LOW.github/scripts/ghsa_linear_sync.py4