Zammad is a web based open source helpdesk/customer support system.
This report presents the forensic synthetic code analysis of zammad/zammad, a Ruby project with 5,753 GitHub stars. SynthScan v2.0 examined 978,696 lines of code across 8980 source files, recording 2368 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 3.0 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 2368 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/frontend/shared/initializer/globalComponents.ts | 29 | export default function initializeGlobalComponents(app: App): void { | CODE |
| LOW | app/frontend/shared/initializer/storeSubscriptions.ts | 11 | export default function initializeStoreSubscriptions(): void { | CODE |
| LOW | app/frontend/shared/initializer/globalProperties.ts | 9 | export default function initializeGlobalProperties(app: App): void { | CODE |
| LOW | app/frontend/shared/types/global.d.ts | 24 | declare function getCurrentQueryPollingConfig(): QueryPollingConfig | CODE |
| LOW | …erver/apollo/cache/utils/registerIncomingQueryMerge.ts | 15 | export default function registerIncomingQueryMerge( | CODE |
| LOW | …/cache/utils/registerNotNormalizedObjectFieldsMerge.ts | 8 | export default function registerNotNormalizedObjectFieldsMerge( | CODE |
| LOW | …d/shared/server/apollo/cache/utils/registerRedirect.ts | 8 | export default function registerIncomingQueryMerge( | CODE |
| LOW | …er/apollo/cache/utils/registerOffsetStylePagination.ts | 38 | export default function registerOffsetStylePagination( | CODE |
| LOW | …server/apollo/cache/utils/registerIncomingTypeMerge.ts | 11 | export default function registerIncomingQueryMerge( | CODE |
| LOW | …ver/apollo/cache/utils/registerRelayStylePagination.ts | 8 | export default function registerRelayStylePagination( | CODE |
| LOW | …d/components/Form/graphql/queries/formUpdater.mocks.ts | 11 | export function waitForFormUpdaterQueryCalls() { | CODE |
| LOW | …d/components/Form/graphql/queries/formUpdater.mocks.ts | 15 | export function mockFormUpdaterQueryError(message: string, extensions: {type: ErrorTypes.GraphQLErrorTypes }) { | CODE |
| LOW | …/FieldFile/graphql/mutations/uploadCache/remove.api.ts | 15 | export function useFormUploadCacheRemoveMutation(options: VueApolloComposable.UseMutationOptions<Types.FormUploadCacheRe | CODE |
| LOW⚡ | …s/FieldFile/graphql/mutations/uploadCache/add.mocks.ts | 7 | export function mockFormUploadCacheAddMutation(defaults: Mocks.MockDefaultsValue<Types.FormUploadCacheAddMutation, Types | CODE |
| LOW⚡ | …s/FieldFile/graphql/mutations/uploadCache/add.mocks.ts | 11 | export function waitForFormUploadCacheAddMutationCalls() { | CODE |
| LOW⚡ | …s/FieldFile/graphql/mutations/uploadCache/add.mocks.ts | 15 | export function mockFormUploadCacheAddMutationError(message: string, extensions: {type: ErrorTypes.GraphQLErrorTypes }) | CODE |
| LOW⚡ | …ieldFile/graphql/mutations/uploadCache/remove.mocks.ts | 7 | export function mockFormUploadCacheRemoveMutation(defaults: Mocks.MockDefaultsValue<Types.FormUploadCacheRemoveMutation, | CODE |
| LOW⚡ | …ieldFile/graphql/mutations/uploadCache/remove.mocks.ts | 11 | export function waitForFormUploadCacheRemoveMutationCalls() { | CODE |
| LOW⚡ | …ieldFile/graphql/mutations/uploadCache/remove.mocks.ts | 15 | export function mockFormUploadCacheRemoveMutationError(message: string, extensions: {type: ErrorTypes.GraphQLErrorTypes | CODE |
| LOW | …lds/FieldFile/graphql/mutations/uploadCache/add.api.ts | 20 | export function useFormUploadCacheAddMutation(options: VueApolloComposable.UseMutationOptions<Types.FormUploadCacheAddMu | CODE |
| LOW⚡ | …mpleteSearchObjectAttributeExternalDataSource.mocks.ts | 7 | export function mockAutocompleteSearchObjectAttributeExternalDataSourceQuery(defaults: Mocks.MockDefaultsValue<Types.Aut | CODE |
| LOW⚡ | …mpleteSearchObjectAttributeExternalDataSource.mocks.ts | 11 | export function waitForAutocompleteSearchObjectAttributeExternalDataSourceQueryCalls() { | CODE |
| LOW⚡ | …mpleteSearchObjectAttributeExternalDataSource.mocks.ts | 15 | export function mockAutocompleteSearchObjectAttributeExternalDataSourceQueryError(message: string, extensions: {type: Er | CODE |
| LOW | …completeSearchObjectAttributeExternalDataSource.api.ts | 19 | export function useAutocompleteSearchObjectAttributeExternalDataSourceQuery(variables: Types.AutocompleteSearchObjectAtt | CODE |
| LOW | …completeSearchObjectAttributeExternalDataSource.api.ts | 22 | export function useAutocompleteSearchObjectAttributeExternalDataSourceLazyQuery(variables?: Types.AutocompleteSearchObje | CODE |
| LOW⚡ | …/graphql/queries/autocompleteSearch/recipient.mocks.ts | 7 | export function mockAutocompleteSearchRecipientQuery(defaults: Mocks.MockDefaultsValue<Types.AutocompleteSearchRecipient | CODE |
| LOW⚡ | …/graphql/queries/autocompleteSearch/recipient.mocks.ts | 11 | export function waitForAutocompleteSearchRecipientQueryCalls() { | CODE |
| LOW⚡ | …/graphql/queries/autocompleteSearch/recipient.mocks.ts | 15 | export function mockAutocompleteSearchRecipientQueryError(message: string, extensions: {type: ErrorTypes.GraphQLErrorTyp | CODE |
| LOW | …nt/graphql/queries/autocompleteSearch/recipient.api.ts | 21 | export function useAutocompleteSearchRecipientQuery(variables: Types.AutocompleteSearchRecipientQueryVariables | VueComp | CODE |
| LOW | …nt/graphql/queries/autocompleteSearch/recipient.api.ts | 24 | export function useAutocompleteSearchRecipientLazyQuery(variables?: Types.AutocompleteSearchRecipientQueryVariables | Vu | CODE |
| LOW | …ustomer/graphql/queries/autocompleteSearch/user.api.ts | 30 | export function useAutocompleteSearchUserQuery(variables: Types.AutocompleteSearchUserQueryVariables | VueCompositionApi | CODE |
| LOW | …ustomer/graphql/queries/autocompleteSearch/user.api.ts | 33 | export function useAutocompleteSearchUserLazyQuery(variables?: Types.AutocompleteSearchUserQueryVariables | VueCompositi | CODE |
| LOW⚡ | …er/graphql/queries/autocompleteSearch/generic.mocks.ts | 7 | export function mockAutocompleteSearchGenericQuery(defaults: Mocks.MockDefaultsValue<Types.AutocompleteSearchGenericQuer | CODE |
| LOW⚡ | …er/graphql/queries/autocompleteSearch/generic.mocks.ts | 11 | export function waitForAutocompleteSearchGenericQueryCalls() { | CODE |
| LOW⚡ | …er/graphql/queries/autocompleteSearch/generic.mocks.ts | 15 | export function mockAutocompleteSearchGenericQueryError(message: string, extensions: {type: ErrorTypes.GraphQLErrorTypes | CODE |
| LOW⚡ | …tomer/graphql/queries/autocompleteSearch/user.mocks.ts | 7 | export function mockAutocompleteSearchUserQuery(defaults: Mocks.MockDefaultsValue<Types.AutocompleteSearchUserQuery, Typ | CODE |
| LOW⚡ | …tomer/graphql/queries/autocompleteSearch/user.mocks.ts | 11 | export function waitForAutocompleteSearchUserQueryCalls() { | CODE |
| LOW⚡ | …tomer/graphql/queries/autocompleteSearch/user.mocks.ts | 15 | export function mockAutocompleteSearchUserQueryError(message: string, extensions: {type: ErrorTypes.GraphQLErrorTypes }) | CODE |
| LOW | …omer/graphql/queries/autocompleteSearch/generic.api.ts | 81 | export function useAutocompleteSearchGenericQuery(variables: Types.AutocompleteSearchGenericQueryVariables | VueComposit | CODE |
| LOW | …omer/graphql/queries/autocompleteSearch/generic.api.ts | 84 | export function useAutocompleteSearchGenericLazyQuery(variables?: Types.AutocompleteSearchGenericQueryVariables | VueCom | CODE |
| LOW⚡ | …gent/graphql/queries/autocompleteSearch/agent.mocks.ts | 7 | export function mockAutocompleteSearchAgentQuery(defaults: Mocks.MockDefaultsValue<Types.AutocompleteSearchAgentQuery, T | CODE |
| LOW⚡ | …gent/graphql/queries/autocompleteSearch/agent.mocks.ts | 11 | export function waitForAutocompleteSearchAgentQueryCalls() { | CODE |
| LOW⚡ | …gent/graphql/queries/autocompleteSearch/agent.mocks.ts | 15 | export function mockAutocompleteSearchAgentQueryError(message: string, extensions: {type: ErrorTypes.GraphQLErrorTypes } | CODE |
| LOW | …dAgent/graphql/queries/autocompleteSearch/agent.api.ts | 30 | export function useAutocompleteSearchAgentQuery(variables: Types.AutocompleteSearchAgentQueryVariables | VueCompositionA | CODE |
| LOW | …dAgent/graphql/queries/autocompleteSearch/agent.api.ts | 33 | export function useAutocompleteSearchAgentLazyQuery(variables?: Types.AutocompleteSearchAgentQueryVariables | VueComposi | CODE |
| LOW⚡ | …aphql/queries/autocompleteSearch/organization.mocks.ts | 7 | export function mockAutocompleteSearchOrganizationQuery(defaults: Mocks.MockDefaultsValue<Types.AutocompleteSearchOrgani | CODE |
| LOW⚡ | …aphql/queries/autocompleteSearch/organization.mocks.ts | 11 | export function waitForAutocompleteSearchOrganizationQueryCalls() { | CODE |
| LOW⚡ | …aphql/queries/autocompleteSearch/organization.mocks.ts | 15 | export function mockAutocompleteSearchOrganizationQueryError(message: string, extensions: {type: ErrorTypes.GraphQLError | CODE |
| LOW | …graphql/queries/autocompleteSearch/organization.api.ts | 25 | export function useAutocompleteSearchOrganizationQuery(variables: Types.AutocompleteSearchOrganizationQueryVariables | V | CODE |
| LOW | …graphql/queries/autocompleteSearch/organization.api.ts | 28 | export function useAutocompleteSearchOrganizationLazyQuery(variables?: Types.AutocompleteSearchOrganizationQueryVariable | CODE |
| LOW⚡ | …ns/knowledgeBase/suggestion/content/transform.mocks.ts | 7 | export function mockKnowledgeBaseAnswerSuggestionContentTransformMutation(defaults: Mocks.MockDefaultsValue<Types.Knowle | CODE |
| LOW⚡ | …ns/knowledgeBase/suggestion/content/transform.mocks.ts | 11 | export function waitForKnowledgeBaseAnswerSuggestionContentTransformMutationCalls() { | CODE |
| LOW⚡ | …ns/knowledgeBase/suggestion/content/transform.mocks.ts | 15 | export function mockKnowledgeBaseAnswerSuggestionContentTransformMutationError(message: string, extensions: {type: Error | CODE |
| LOW | …ions/knowledgeBase/suggestion/content/transform.api.ts | 29 | export function useKnowledgeBaseAnswerSuggestionContentTransformMutation(options: VueApolloComposable.UseMutationOptions | CODE |
| LOW | …graphql/queries/knowledgeBase/answerSuggestions.api.ts | 21 | export function useKnowledgeBaseAnswerSuggestionsQuery(variables: Types.KnowledgeBaseAnswerSuggestionsQueryVariables | V | CODE |
| LOW | …graphql/queries/knowledgeBase/answerSuggestions.api.ts | 24 | export function useKnowledgeBaseAnswerSuggestionsLazyQuery(variables?: Types.KnowledgeBaseAnswerSuggestionsQueryVariable | CODE |
| LOW⚡ | …aphql/queries/knowledgeBase/answerSuggestions.mocks.ts | 7 | export function mockKnowledgeBaseAnswerSuggestionsQuery(defaults: Mocks.MockDefaultsValue<Types.KnowledgeBaseAnswerSugge | CODE |
| LOW⚡ | …aphql/queries/knowledgeBase/answerSuggestions.mocks.ts | 11 | export function waitForKnowledgeBaseAnswerSuggestionsQueryCalls() { | CODE |
| LOW⚡ | …aphql/queries/knowledgeBase/answerSuggestions.mocks.ts | 15 | export function mockKnowledgeBaseAnswerSuggestionsQueryError(message: string, extensions: {type: ErrorTypes.GraphQLError | CODE |
| LOW | …itor/graphql/queries/mention/mentionSuggestions.api.ts | 24 | export function useMentionSuggestionsQuery(variables: Types.MentionSuggestionsQueryVariables | VueCompositionApi.Ref<Typ | CODE |
| 1121 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .gitlab/ci/review-app.yml | 74 | "login": "admin@example.com", | CODE |
| LOW | .gitlab/ci/review-app.yml | 77 | "email": "admin@example.com", | CODE |
| LOW | .gitlab/ci/review-app.yml | 92 | "users": ["admin@example.com", "agent1@example.com"] | CODE |
| LOW | .gitlab/ci/review-app.yml | 96 | "users": ["admin@example.com", "agent1@example.com"], | CODE |
| LOW | .gitlab/ci/test/api_client.yml | 19 | ZAMMAD_PHP_API_CLIENT_UNIT_TESTS_USERNAME: "admin@example.com" | CODE |
| LOW | …s/Form/fields/FieldTreeSelect/treeselect-visuals.cy.ts | 36 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vestibulum sem quis purus elementum pulvinar.' | CODE |
| LOW | …s/Form/fields/FieldTreeSelect/treeselect-visuals.cy.ts | 36 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vestibulum sem quis purus elementum pulvinar.' | CODE |
| LOW | …ed/components/Form/fields/FieldTags/tags-visuals.cy.ts | 11 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vestibulum sem quis purus elementum pulvinar. Quisque | CODE |
| LOW | …ed/components/Form/fields/FieldTags/tags-visuals.cy.ts | 11 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vestibulum sem quis purus elementum pulvinar. Quisque | CODE |
| LOW | …nents/Form/fields/FieldTextarea/textarea-visuals.cy.ts | 13 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vestibulum sem quis purus elementum pulvinar. Quisque | CODE |
| LOW | …nents/Form/fields/FieldTextarea/textarea-visuals.cy.ts | 13 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vestibulum sem quis purus elementum pulvinar. Quisque | CODE |
| LOW | …omponents/Form/fields/FieldSelect/select-visuals.cy.ts | 34 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vestibulum sem quis purus elementum pulvinar. Quis | CODE |
| LOW | …omponents/Form/fields/FieldSelect/select-visuals.cy.ts | 34 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vestibulum sem quis purus elementum pulvinar. Quis | CODE |
| LOW | …rm/fields/FieldAutoComplete/autocomplete-visuals.cy.ts | 34 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vestibulum sem quis purus elementum pulvinar.', | CODE |
| LOW | …rm/fields/FieldAutoComplete/autocomplete-visuals.cy.ts | 34 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vestibulum sem quis purus elementum pulvinar.', | CODE |
| LOW | …FieldEditor/editor-mention-user-exit-with-escape.cy.ts | 34 | fullname: 'John Doe', | CODE |
| LOW | …ents/Form/fields/FieldEditor/editor-mention-user.cy.ts | 46 | fullname: 'John Doe', | CODE |
| LOW | …elds/FieldEditor/editor-mention-user-with-spaces.cy.ts | 34 | fullname: 'John Doe', | CODE |
| LOW | …elds/FieldEditor/editor-mention-user-with-spaces.cy.ts | 48 | .and('contain.text', 'John Doe') | CODE |
| LOW | app/frontend/tests/support/mock-webauthn.ts | 40 | name: 'user@example.com', | CODE |
| LOW | …/graphql/builders/__tests__/subscription-calls.spec.ts | 47 | const fullname = 'John Doe' | CODE |
| LOW | …frontend/shared/form/features/translateWrapperProps.ts | 12 | const propsToTranslate = ['label', 'placeholder', 'help'] | CODE |
| LOW | …frontend/shared/form/features/translateWrapperProps.ts | 13 | const attrsToTranslate = ['placeholder'] | CODE |
| LOW | …/form/features/__tests__/translateWrapperProps.spec.ts | 25 | props: ['label', 'placeholder', 'help'], | CODE |
| LOW | app/frontend/shared/stores/__tests__/session.spec.ts | 18 | fullname: 'John Doe', | CODE |
| LOW | app/frontend/shared/stores/__tests__/session.spec.ts | 149 | fullname: 'Jane Doe', | CODE |
| LOW | …frontend/shared/components/Form/__tests__/Form.spec.ts | 740 | fullname: 'John Doe', | CODE |
| LOW | …frontend/shared/components/Form/__tests__/Form.spec.ts | 749 | expect(await wrapper.findByLabelText('Customer')).toHaveTextContent('John Doe') | CODE |
| LOW | …frontend/shared/components/Form/__tests__/Form.spec.ts | 837 | fullname: 'John Doe', | CODE |
| LOW | …frontend/shared/components/Form/__tests__/Form.spec.ts | 896 | value: 'John Doe', | CODE |
| LOW | …frontend/shared/components/Form/__tests__/Form.spec.ts | 918 | fullname: 'John Doe', | CODE |
| LOW | …m/fields/FieldPassword/__tests__/FieldPassword.spec.ts | 43 | expect(input).not.toHaveAttribute('placeholder') | CODE |
| LOW | …m/fields/FieldPassword/__tests__/FieldPassword.spec.ts | 62 | expect(input).toHaveAttribute('placeholder', 'Enter your password') | CODE |
| LOW | …ents/Form/fields/FieldList/__tests__/FieldList.spec.ts | 39 | <FormKit type="text" name="email-adress" id="text" value="admin@example.com" /> | CODE |
| LOW | …ents/Form/fields/FieldList/__tests__/FieldList.spec.ts | 52 | expect(node?.value).toStrictEqual(['admin@example.com', 'admin2@example.com']) | CODE |
| LOW | …m/fields/FieldTextarea/__tests__/FieldTextarea.spec.ts | 41 | expect(textarea).not.toHaveAttribute('placeholder') | CODE |
| LOW | …m/fields/FieldTextarea/__tests__/FieldTextarea.spec.ts | 61 | expect(textarea).toHaveAttribute('placeholder', 'Enter your body') | CODE |
| LOW | …m/fields/FieldTextarea/__tests__/FieldTextarea.spec.ts | 116 | expect(textarea).toHaveAttribute('placeholder', 'Enter your body') | CODE |
| LOW | …m/fields/FieldTextarea/__tests__/FieldTextarea.spec.ts | 124 | expect(textarea).toHaveAttribute('placeholder', 'Gib deinen Text ein') | CODE |
| LOW | …/Form/fields/FieldInputs/__tests__/FieldInputs.spec.ts | 34 | expect(input).not.toHaveAttribute('placeholder') | CODE |
| LOW | …/Form/fields/FieldInputs/__tests__/FieldInputs.spec.ts | 53 | expect(input).toHaveAttribute('placeholder', 'Enter your title') | CODE |
| LOW⚡ | …/Form/fields/FieldInputs/__tests__/FieldInputs.spec.ts | 100 | value: 'admin@example.com', | CODE |
| LOW⚡ | …/Form/fields/FieldInputs/__tests__/FieldInputs.spec.ts | 109 | const input = wrapper.getByDisplayValue('admin@example.com') | CODE |
| LOW⚡ | …/Form/fields/FieldInputs/__tests__/FieldInputs.spec.ts | 114 | expect(node?.value).toBe('admin@example.com') | CODE |
| LOW | …nts/ObjectAttributes/__tests__/ObjectAttribute.spec.ts | 168 | fullname: 'John Doe', | CODE |
| LOW | …nts/ObjectAttributes/__tests__/ObjectAttribute.spec.ts | 183 | expect(view.getByText('John Doe')).toBeInTheDocument() | CODE |
| LOW | …/CommonInputSearch/__tests__/CommonInputSearch.spec.ts | 21 | expect(search).toHaveAttribute('placeholder', 'Search…') | CODE |
| LOW⚡ | …ts/Form/fields/FieldAgent/__tests__/FieldAgent.spec.ts | 117 | fullname: 'John Doe', | CODE |
| LOW⚡ | …ts/Form/fields/FieldAgent/__tests__/FieldAgent.spec.ts | 127 | expect(wrapper.getByRole('listitem')).toHaveTextContent('John Doe') | CODE |
| LOW⚡ | …ts/Form/fields/FieldAgent/__tests__/FieldAgent.spec.ts | 134 | fullname: 'Jane Doe', | CODE |
| LOW⚡ | …ts/Form/fields/FieldAgent/__tests__/FieldAgent.spec.ts | 141 | expect(wrapper.getByRole('listitem')).toHaveTextContent('Jane Doe') | CODE |
| LOW | …ieldEditor/__tests__/FieldEditorSuggestionList.spec.ts | 151 | fullname: 'John Doe', | CODE |
| LOW | …ieldEditor/__tests__/FieldEditorSuggestionList.spec.ts | 185 | fullname: 'John Doe', | CODE |
| LOW | …ieldEditor/__tests__/FieldEditorSuggestionList.spec.ts | 216 | fullname: 'John Doe', | CODE |
| LOW | …sktop/components/CommonInlineEdit/CommonInlineEdit.vue | 319 | :placeholder="placeholder" | CODE |
| LOW | …ndDropBulk/components/__tests__/BulkScrollList.spec.ts | 24 | label: 'John Doe', | CODE |
| LOW | …DropBulk/__tests__/DragAndDropBulkBottomDrawer.spec.ts | 97 | { value: 42, label: 'John Doe', object: { id: convertToGraphQLId('User', '42') } }, | CODE |
| LOW | …DropBulk/__tests__/DragAndDropBulkBottomDrawer.spec.ts | 108 | expect(await wrapper.findByText('John Doe')).toBeVisible() | CODE |
| LOW | …DropBulk/__tests__/DragAndDropBulkBottomDrawer.spec.ts | 164 | { value: 42, label: 'John Doe', object: { id: convertToGraphQLId('User', '42') } }, | CODE |
| LOW | …DropBulk/__tests__/DragAndDropBulkBottomDrawer.spec.ts | 184 | expect(wrapper.getByText('John Doe')).toBeInTheDocument() | CODE |
| 666 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .markdownlint.yml | 1 | ######################################## | COMMENT |
| LOW | .gitlab/configure_environment.rb | 1 | #!/usr/bin/env ruby | COMMENT |
| LOW | app/frontend/tests/graphql/factories/types/Checklist.ts | 21 | // checked: false, | COMMENT |
| LOW | app/frontend/shared/sw/register.ts | 101 | // \`event.wasWaitingBeforeRegister\` will be false if this is | COMMENT |
| LOW | app/frontend/shared/utils/__tests__/htmlCleanup.spec.ts | 201 | // this is done on the backend now | COMMENT |
| LOW | app/frontend/shared/utils/__tests__/htmlCleanup.spec.ts | 221 | // result = htmlCleanup(source) | COMMENT |
| LOW | app/frontend/shared/utils/__tests__/htmlCleanup.spec.ts | 241 | // '<div><div><div><div><div id="article-content-4"><div><div>This is a black font colour with white background</div | COMMENT |
| LOW | …m/plugins/initializeFieldInitialValuesCleanupPlugin.ts | 1 | // Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/ | COMMENT |
| LOW | …m/plugins/initializeFieldInitialValuesCleanupPlugin.ts | 21 | // - On child re-add: restoring the previously saved _init value, so that toggling | COMMENT |
| LOW | …m/plugins/initializeFieldInitialValuesCleanupPlugin.ts | 141 | // by core workflow after the form already settled). FormKit's addChild | COMMENT |
| LOW | …ared/components/Form/fields/FieldDate/healDateRange.ts | 1 | // Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/ | COMMENT |
| LOW | …red/components/Form/fields/FieldDate/usePickerModel.ts | 1 | // Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/ | COMMENT |
| LOW | …/fields/FieldEditor/extensions/CharacterCount/types.ts | 1 | // Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/ | COMMENT |
| LOW | …ntend/shared/entities/object-attributes/types/store.ts | 41 | export type OperatorFilterProps = Record<OperatorName, Record<string, unknown>> | COMMENT |
| LOW | …red/entities/ticket/channel/plugins/__tests__/utils.ts | 1 | // Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/ | COMMENT |
| LOW | …red/entities/ticket/channel/plugins/__tests__/utils.ts | 21 | COMMENT | |
| LOW | …red/entities/ticket/channel/plugins/__tests__/utils.ts | 41 | // communication: false, | COMMENT |
| LOW | …red/entities/ticket/channel/plugins/__tests__/utils.ts | 61 | // ticket: TicketById, | COMMENT |
| LOW | …ields/FieldFilterSelector/FieldFilterSelectorInput.vue | 321 | COMMENT | |
| LOW | …op/components/Form/fields/FieldFilterSelector/types.ts | 21 | } | COMMENT |
| LOW | …omponents/Form/fields/FieldDate/FieldDateTimeInput.vue | 81 | // - 'dd' - 2-digit day | COMMENT |
| LOW | …SetupImportSource/GuidedSetupImportSourceFreshdesk.vue | 41 | // }, | COMMENT |
| LOW | …p/pages/search/composables/useSearchAdvancedFilters.ts | 121 | // Per-entity bookkeeping the form-updater needs to resolve filter-row | COMMENT |
| LOW | …d/apps/desktop/pages/search/utils/searchFilterQuery.ts | 81 | .forEach((entry) => params.append(key, decodeURIComponent(entry))) | COMMENT |
| LOW | …/components/SearchControls/SearchEntityFiltersForm.vue | 81 | ) | COMMENT |
| LOW | …ages/authentication/__tests__/login-two-factor.spec.ts | 141 | defaultTwoFactorAuthenticationMethod: EnumTwoFactorAuthenticationMethod.AuthenticatorApp, | COMMENT |
| LOW | app/models/import_job.rb | 41 | ensure | COMMENT |
| LOW | app/models/import_job.rb | 61 | instance = name.constantize.new(self) | COMMENT |
| LOW | app/models/import_job.rb | 101 | # ImportJob.start_registered | COMMENT |
| LOW | app/models/import_job.rb | 141 | # | COMMENT |
| LOW | app/models/token.rb | 121 | # fetch token for a user with a given action | COMMENT |
| LOW | …ation_model/can_query_case_insensitive_where_or_sql.rb | 1 | # Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/ | COMMENT |
| LOW | …ation_model/can_query_case_insensitive_where_or_sql.rb | 21 | class_methods do | COMMENT |
| LOW | …models/form_updater/updater/search/advanced_filters.rb | 1 | # Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/ | COMMENT |
| LOW | …models/form_updater/updater/search/advanced_filters.rb | 21 | # we reuse FormUpdater::Relation::* including Relation::Group's tree handling). | COMMENT |
| LOW | app/models/form_updater/graphql/serializer.rb | 1 | # Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/ | COMMENT |
| LOW | app/models/form_updater/graphql/serializer.rb | 21 | # # "lastname" => "Doe", | COMMENT |
| LOW | app/models/form_updater/graphql/serializer.rb | 41 | # FormUpdater::GraphqlSerializer.serialize( | COMMENT |
| LOW | app/models/form_updater/graphql/serializers/user.rb | 21 | COMMENT | |
| LOW | app/models/channel/driver/imap.rb | 21 | # @option options [String] :host | COMMENT |
| LOW | app/models/channel/driver/base_email_inbound.rb | 21 | COMMENT | |
| LOW | app/models/channel/driver/smtp.rb | 1 | # Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/ | COMMENT |
| LOW | app/models/channel/driver/smtp.rb | 21 | # instance = Channel::Driver::Smtp.new | COMMENT |
| LOW | app/models/channel/driver/pop3.rb | 21 | # @option options [String] :ssl off to turn off ssl | COMMENT |
| LOW | app/models/channel/driver/microsoft_graph_inbound.rb | 1 | # Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/ | COMMENT |
| LOW | app/models/channel/driver/microsoft_graph_inbound.rb | 21 | # notice: 'e. g. message about to big emails in mailbox', | COMMENT |
| LOW | app/models/ai/agent.rb | 1 | # Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/ | COMMENT |
| LOW | app/models/ai/agent.rb | 21 | # articles: 'first|last|all', // The last article (current trigger article) or all articles of the object. | COMMENT |
| LOW | app/models/ai/agent.rb | 41 | # condition: { | COMMENT |
| LOW | app/models/ai/agent.rb | 81 | end | COMMENT |
| LOW | app/models/concerns/can_perform_changes.rb | 1 | # Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/ | COMMENT |
| LOW | app/models/concerns/can_perform_changes.rb | 21 | # include CanPerformChanges | COMMENT |
| LOW | app/models/concerns/has_roles.rb | 61 | end | COMMENT |
| LOW | app/models/concerns/has_roles.rb | 81 | def role_access(group, access) | COMMENT |
| LOW | app/models/concerns/has_groups.rb | 21 | has_many :groups, through: group_through_identifier do | COMMENT |
| LOW | app/models/concerns/has_groups.rb | 61 | # | COMMENT |
| LOW | app/models/concerns/has_groups.rb | 141 | role_group_ids = RoleGroup.eager_load(:group).where(role_id: role_ids, access: access, groups: { active: true }).plu | COMMENT |
| LOW | app/models/concerns/has_groups.rb | 161 | group_ids = group_ids_access(access) | COMMENT |
| LOW | app/models/concerns/has_groups.rb | 181 | # | COMMENT |
| LOW | app/models/concerns/has_groups.rb | 201 | end | COMMENT |
| 217 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/models/active_job_lock.rb | 24 | # This method is used to find the Delayed::Job record representing the ActiveJob associated with this lock. | COMMENT |
| MEDIUM | app/models/channel/driver/base_email_inbound.rb | 156 | # This method is used for custom IMAP only. | COMMENT |
| MEDIUM | …channel/driver/base_email_inbound/message_validator.rb | 16 | # This method is used by IMAP and MicrosoftGraphInbound only | COMMENT |
| MEDIUM⚡ | …channel/driver/base_email_inbound/message_validator.rb | 30 | # This method is used by IMAP and MicrosoftGraphInbound only | COMMENT |
| MEDIUM⚡ | …channel/driver/base_email_inbound/message_validator.rb | 38 | # This method is used by IMAP and MicrosoftGraphInbound only | COMMENT |
| MEDIUM⚡ | …channel/driver/base_email_inbound/message_validator.rb | 48 | # This method is used by IMAP and MicrosoftGraphInbound only | COMMENT |
| MEDIUM | …channel/driver/base_email_inbound/message_validator.rb | 67 | # This method is used by IMAP and MicrosoftGraphInbound only | COMMENT |
| MEDIUM | app/policies/ticket_policy.rb | 40 | # This method is used to check if a follow-up is possible (mostly based on the configuration). | COMMENT |
| MEDIUM | app/graphql/gql/types/base_cached_connection.rb | 7 | # This class represents a connection with special behaviour. It provides a signature value of the current collection | COMMENT |
| MEDIUM | app/graphql/gql/types/enum/base_enum.rb | 7 | # Create an enum type from a list of classes. | COMMENT |
| MEDIUM | app/graphql/gql/types/enum/base_enum.rb | 14 | # Create an enum type from a list of strings. | COMMENT |
| MEDIUM | app/graphql/gql/concerns/handles_authorization.rb | 25 | # This method is used by GraphQL to perform authorization on the various objects. | COMMENT |
| MEDIUM | app/jobs/application_job.rb | 22 | # This method is used to find the Delayed::Job record representing the ActiveJob with the given active_job_id. | COMMENT |
| MEDIUM | app/controllers/sessions_controller.rb | 116 | # Create a new user or add an auth to existing user, depending on | COMMENT |
| MEDIUM | …rvices/service/template/interpolation/engine/parser.rb | 4 | # This module is used to scan, collect all replacment variables within a | COMMENT |
| MEDIUM | app/services/service/link/list.rb | 13 | # Create a list of object related references filtered by target type | COMMENT |
| MEDIUM | app/services/service/history/group.rb | 3 | # Create a list of grouped history records by given interval and issuer for a | COMMENT |
| MEDIUM | app/services/service/history/list.rb | 3 | # Create a list of history events for a given object. | COMMENT |
| MEDIUM | config/cable.yml | 1 | # This file is not used by Zammad, configuration happens in: | COMMENT |
| MEDIUM | config/initializers/wrap_parameters.rb | 5 | # This file contains settings for ActionController::ParamsWrapper which | COMMENT |
| MEDIUM | config/initializers/permissions_policy.rb | 5 | # Define an application-wide HTTP permissions policy. For further | COMMENT |
| MEDIUM | config/initializers/content_security_policy.rb | 5 | # Define an application-wide content security policy | COMMENT |
| MEDIUM | spec/rails_helper.rb | 3 | # This file is copied to spec/ when you run 'rails generate rspec:install' | COMMENT |
| MEDIUM | spec/models/user_spec.rb | 84 | # Create the agent, before the default notifications are set, so | COMMENT |
| MEDIUM | spec/models/user_spec.rb | 116 | # Create the customer, before the default notifications are set, so | COMMENT |
| MEDIUM | spec/requests/ticket_spec.rb | 1833 | # Create an online notification for the ticket owner (not the agent doing the update) | COMMENT |
| MEDIUM | …ec/requests/knowledge_base/search_with_details_spec.rb | 107 | # Create a alternative knowledge base locale. | COMMENT |
| MEDIUM | spec/system/system/object_manager_spec.rb | 139 | # Create the field via API. | COMMENT |
| MEDIUM | spec/system/ticket/zoom/email_reply_body_spec.rb | 19 | # Create a ticket article with a specific timestamp and customer origin. | COMMENT |
| MEDIUM | spec/system/apps/desktop/ticket/shared_drafts_spec.rb | 58 | # Create an internal note for agent2 | COMMENT |
| MEDIUM | spec/system/apps/desktop/ticket/shared_drafts_spec.rb | 123 | # Create an internal note for agent1 | COMMENT |
| MEDIUM | spec/support/request.rb | 132 | # The following methods are self explaining and are just shorter aliases. | COMMENT |
| MEDIUM | spec/support/graphql.rb | 83 | # Create a mock channel that can be passed to graphql_execute like this: | COMMENT |
| MEDIUM | spec/support/capybara/selectors.rb | 3 | # This file defines custom Capybara selectors for DRYed specs. | COMMENT |
| MEDIUM | spec/support/capybara/browser_test_helper.rb | 200 | # This method is a derivation of Selenium::WebDriver::Wait#until | COMMENT |
| MEDIUM | spec/support/capybara/browser_test_helper.rb | 220 | # This method is a derivation of Selenium::WebDriver::Wait#until | COMMENT |
| MEDIUM | spec/support/capybara/common_actions.rb | 222 | # This method is equivalent to Capybara::RSpecMatchers#have_current_path | COMMENT |
| MEDIUM⚡ | spec/support/capybara/common_actions.rb | 267 | # Create a select attribute: | COMMENT |
| MEDIUM⚡ | spec/support/capybara/common_actions.rb | 271 | # Create a required text attribute: | COMMENT |
| MEDIUM⚡ | spec/support/capybara/common_actions.rb | 275 | # Create a date attribute with custom parameters: | COMMENT |
| MEDIUM | spec/graphql/gql/mutations/login_spec.rb | 79 | # Create the user before the GraphQL query execution, so that we have only the activity stream | COMMENT |
| MEDIUM | spec/jobs/ticket_online_notification_seen_job_spec.rb | 33 | # Create an online notification for the mentioned user on the same ticket | COMMENT |
| MEDIUM | spec/services/service/ai/agent/run_spec.rb | 276 | # Create the custom category attribute | COMMENT |
| MEDIUM | spec/services/service/ai/agent/run_spec.rb | 432 | # Create the multiselect attribute | COMMENT |
| MEDIUM | lib/assets_set.rb | 8 | # This class implements a collection of Zammad Assets with no duplicates. | COMMENT |
| MEDIUM | lib/assets_set.rb | 46 | # This method is used to convert the AssetsSet into a regular Hash which then can be send to the client. | COMMENT |
| MEDIUM | …support/lib/active_support/tagged_logging/formatter.rb | 25 | # This method is invoked when a log event occurs. | COMMENT |
| MEDIUM | lib/zammad/service/configuration.rb | 6 | # This module provides a method to parse a Zammad third-party service | COMMENT |
| MEDIUM | lib/assets_set/proxy.rb | 3 | # This class defines a Proxy for accessing objects inside of a AssetsSet Model sub structure. | COMMENT |
| MEDIUM | lib/sequencer/unit/base.rb | 167 | # This method is the heart of the #uses and #provides method. | COMMENT |
| MEDIUM | lib/sequencer/unit/base.rb | 207 | # This method is the attribute store for the given declaration key. | COMMENT |
| MEDIUM | lib/sequencer/unit/base.rb | 237 | # This method is an instance wrapper around the class method .instance_variable_cached. | COMMENT |
| MEDIUM | lib/sequencer/unit/base.rb | 244 | # This method is an convenience wrapper to create an instance | COMMENT |
| MEDIUM | …migrate/20221116134211_issue_2185_and_or_conditions.rb | 16 | # Create the new setting with correct prio. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …frontend/shared/components/Form/__tests__/Form.spec.ts | 1391 | const calls = mockFormUpdaterApi.spies.behave.mock.calls.slice(initialCallCount) | CODE |
| CRITICAL | …an_selector/advanced_sorting/base_select_field_sort.rb | 36 | cache_prefix = self.class.name.demodulize.tableize.tr('_', '-') | CODE |
| CRITICAL | app/assets/javascripts/app/lib/core/jquery-3.6.0.js | 8092 | jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { | CODE |
| CRITICAL | …ssets/javascripts/app/lib/bootstrap/popover-enhance.js | 26 | $.fn.popover.Constructor.prototype.leave.call(self, self); | CODE |
| CRITICAL | app/assets/javascripts/app/lib/base/codemirror.js | 8936 | return this.cm.display.wrapper.ownerDocument.getSelection() | CODE |
| CRITICAL | app/assets/javascripts/app/lib/base/jquery.noty.js | 118 | self.options.layout.container.style.apply($(self.options.layout.container.selector), [self.options.within]); | CODE |
| CRITICAL | app/assets/javascripts/app/lib/base/jquery.noty.js | 123 | self.options.theme.callback.onShow.apply(this); | CODE |
| CRITICAL | app/assets/javascripts/app/lib/base/jquery.noty.js | 270 | self.options.theme.callback.onClose.apply(self); | CODE |
| CRITICAL | app/assets/javascripts/app/lib/base/jquery.noty.js | 283 | self.options.theme.callback.onClose.apply(self); | CODE |
| CRITICAL | app/assets/javascripts/app/lib/base/jquery.noty.js | 311 | this.options.theme.callback.onShow.apply(this); | CODE |
| CRITICAL | config/initializers/content_type_allowed_inline.rb | 4 | Rails.application.config.active_storage.content_types_allowed_inline.delete('application/pdf') | CODE |
| CRITICAL | config/initializers/content_type_allowed_inline.rb | 7 | Rails.application.config.active_storage.content_types_allowed_inline.push('image/jpg') | CODE |
| CRITICAL | spec/support/capybara/driven_by.rb | 72 | page.driver.browser.manage.window.resize_to(browser_width, browser_height) | CODE |
| CRITICAL | public/assets/form/jquery-3.6.0.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL | public/assets/chat/jquery-3.6.0.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .gitlab/ci/review-app.yml | 47 | # Check if containers were previously created, so that this is an update deployment | COMMENT |
| LOW | app/models/mention.rb | 62 | # Check if user is subscribed to given object | COMMENT |
| LOW | app/models/mention.rb | 107 | # Check if given user is able to subscribe to a given object | COMMENT |
| LOW | app/models/setting.rb | 109 | # Check if last last lookup was recent enough | COMMENT |
| LOW | app/models/channel/filter/reply_to_based_sender.rb | 12 | # Check if the reply-to address can be parsed and otherwise skip the filter. | COMMENT |
| LOW | app/models/ticket/article.rb | 416 | # Check if article type is email | COMMENT |
| LOW | app/models/concerns/has_roles.rb | 52 | # Check if the new role for the user has "ticket.agent" permission. | COMMENT |
| LOW | app/policies/group_policy.rb | 34 | # Check if user is customer for any tickets in this group. | COMMENT |
| LOW | app/graphql/gql/mutations/base_mutation.rb | 22 | # Set this to false for mutations that don't need CSRF verification. | COMMENT |
| LOW | app/graphql/gql/fields/scoped_field.rb | 26 | # Check if the pundit result is a 'FieldScope' object. | COMMENT |
| LOW | app/controllers/knowledge_base/categories_controller.rb | 21 | # Check if ids for models in collection are present | COMMENT |
| LOW | app/services/service/ai/agent/run/perform/agent.rb | 84 | # Check if the key exists in ai_result_content | COMMENT |
| LOW | config/environments/production.rb | 73 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. | COMMENT |
| LOW | spec/requests/user_spec.rb | 1665 | # Check if ES is used | COMMENT |
| LOW | spec/system/ticket/idoit_spec.rb | 83 | # Check if the item is still gone after reload. | COMMENT |
| LOW | spec/system/ticket/view_spec.rb | 367 | # Check if still only one article exists on the ticket. | COMMENT |
| LOW | spec/system/manage/overviews_expert_conditions_spec.rb | 306 | # Check if the State attribute is disabled in the new dropdown. | COMMENT |
| LOW | spec/system/apps/mobile/login_spec.rb | 66 | # Check if we are already in mobile. | COMMENT |
| LOW | spec/db/migrate/password_settings_change_type_spec.rb | 170 | include(name: 'pkce', tag: 'boolean', display: 'PKCE'), # Check if migration was OK | CODE |
| LOW | spec/db/migrate/password_settings_change_type_spec.rb | 171 | include(display: 'Scopes') # Check if the rest of form values are not lost | CODE |
| LOW | contrib/edit-icon-license-list.php | 144 | # Add images to array | COMMENT |
| LOW | lib/background_services.rb | 67 | # Check if child processes are still alive, terminate the main process otherwise to | COMMENT |
| LOW | lib/password_policy.rb | 3 | # Check if password matches system settings | COMMENT |
| LOW | lib/external_credential/microsoft_base.rb | 114 | # Check if current user of the channel is matching the user from the token. | COMMENT |
| LOW | lib/external_credential/microsoft_base.rb | 151 | # Check if a bound address with the same email already exists. | COMMENT |
| LOW | lib/sessions/event/maintenance.rb | 21 | # Check if the event contains the maintenance message and sanitize it. | COMMENT |
| LOW | lib/text/quote_remover.rb | 117 | # Check if more > lines follow after empty lines | COMMENT |
| LOW | lib/text/quote_remover.rb | 130 | # Check if there's real user content after the given index | COMMENT |
| LOW | lib/text/quote_remover/signature.rb | 8 | # Check if a line matches this signature pattern | COMMENT |
| LOW | lib/text/quote_remover/attribution_pattern.rb | 13 | # Check if a line matches this pattern | COMMENT |
| LOW | …t/quote_remover/attribution_pattern/ms_header_block.rb | 52 | # Check if lines at given index form a Microsoft header block | COMMENT |
| LOW | lib/import/otrs/dynamic_field/mixin/has_options.rb | 17 | # Assign name to the last segment | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/types/ticket/ai/related_knowledge_base_answer_type.rb | 11 | # current embedding model, so a normalised relevance would be more meaningful. | COMMENT |
| MEDIUM | app/services/service/ai/vectordb/embedding/cache.rb | 17 | # embedding model the vectors were produced with. | COMMENT |
| MEDIUM | app/services/service/ai/vectordb/embedding/cache.rb | 28 | # Map key for a chunk. Includes the embedding model so a model change misses (and re-embeds) | COMMENT |
| MEDIUM | app/services/service/ai/vectordb/content/chunks.rb | 7 | # @param model_max_tokens [Integer, nil] the embedding model's hard input limit (a ceiling on | COMMENT |
| MEDIUM | …es/service/ai/vectordb/content/chunks/strategy/base.rb | 7 | # options); the embedding model's input limit (model_max_tokens) is only a hard ceiling that caps | COMMENT |
| MEDIUM | …es/service/ai/vectordb/content/chunks/strategy/base.rb | 38 | # @param model_max_tokens [Integer, nil] the embedding model's hard input limit. Only caps the | COMMENT |
| MEDIUM | …rvice/ai/vectordb/content/chunks/strategy/recursive.rb | 5 | # token-sized windows with overlap, so no chunk exceeds the embedding model's input limit. Token | COMMENT |
| MEDIUM | app/services/service/ai/vectordb/document/upsert.rb | 47 | # embedding model's input limit only caps the chunk size; the strategy picks the actual size. | COMMENT |
| MEDIUM | app/services/service/ai/ticket/embed_content.rb | 6 | # within the embedding model's context window, and returns the embedding vector. | COMMENT |
| MEDIUM | app/services/service/ai/ticket/embed_content.rb | 6 | # within the embedding model's context window, and returns the embedding vector. | COMMENT |
| MEDIUM | …ces/service/knowledge_base/answer/similarity_search.rb | 25 | # that should be tuned against the embedding model in use. | COMMENT |
| MEDIUM | …/integration/ai/related_knowledge_base_answers_spec.rb | 87 | # would demand a sharper embedding model than the current one actually provides. | COMMENT |
| MEDIUM | lib/ai/provider.rb | 13 | # Conservative input-token limit for an embedding model not listed in EMBEDDING_INPUT_LIMITS — | COMMENT |
| MEDIUM | lib/ai/provider.rb | 106 | # Maximum number of input tokens the configured embedding model accepts. Used to size chunks so | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/models/channel/driver/base_email_inbound.rb | 157 | # It is not used in conjunction with Micrsofot365 or Gogle OAuth channels. | COMMENT |
| LOW | app/models/concerns/checks_human_changes.rb | 25 | # If no config exists, use all attributes or if config exists, just use | COMMENT |
| LOW | app/graphql/gql/fields/scoped_field.rb | 17 | # If a field is not authorized, just return 'nil' rather than throwing a GraphQL error. | COMMENT |
| MEDIUM | app/assets/javascripts/app/lib/core/jquery-3.6.0.js | 10830 | // understands anonymous AMD modules. A named AMD is safest and most robust | COMMENT |
| MEDIUM | app/assets/javascripts/app/lib/base/seedrandom.js | 144 | // For robust unpredictability, the function call below automatically | COMMENT |
| LOW | …service/system/set_email_notification_configuration.rb | 23 | # At some point it may be good to clean this up to simply use a single instance | COMMENT |
| MEDIUM | …rvice/ai/vectordb/content/chunks/strategy/recursive.rb | 7 | # stays robust for no-space scripts (CJK/Thai) where a whole paragraph is otherwise one "word". | COMMENT |
| MEDIUM | test/data/mail/mail047.yml | 25 | <br><br><table border="0" cellspacing="2" cellpadding="0"><tbody><tr><td valign="top">Ihre </td><td></td></tr></tbody> | CODE |
| MEDIUM | test/data/mail/mail047.yml | 25 | <br><br><table border="0" cellspacing="2" cellpadding="0"><tbody><tr><td valign="top">Ihre </td><td></td></tr></tbody> | CODE |
| LOW | spec/models/system_report_spec.rb | 256 | # If your setting does not contain confidential values, just add it to the non_confidential_settings variable li | COMMENT |
| LOW | spec/lib/application_handle_info_spec.rb | 9 | # Q: So why don't we just use it here to DRY things up? | COMMENT |
| LOW⚡ | lib/notification_factory/renderer.rb | 92 | # if no object is given, just return | COMMENT |
| LOW⚡ | lib/notification_factory/renderer.rb | 97 | # if object is not in available objects, just return | COMMENT |
| LOW⚡ | lib/notification_factory/renderer.rb | 104 | # if content of method is a complex datatype, just return | COMMENT |
| LOW | lib/assets_set/proxy.rb | 22 | # to the lookup table will be performed which will will just return `true` to satisfy the | COMMENT |
| LOW | …uencer/unit/import/common/model/associations/assign.rb | 38 | # Why not just use instance.changes? | COMMENT |
| LOW | lib/service/image.rb | 37 | file = Service::Image.organization('user@edenhofer.de') # will just use domain | CODE |
| LOW | lib/service/image/zammad.rb | 49 | # strip, just use domain name | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/frontend/shared/sw/register.ts | 37 | // don't forget to unregister service worker, when you are done in console: pwa.disable() | COMMENT |
| LOW | app/frontend/apps/desktop/styles/transitions.css | 2 | * Don't forget to add the mapping to the TransitionName enum in useTransitionConfig.ts when adding a new transition. | COMMENT |
| LOW | app/models/channel/driver/imap.rb | 164 | # Select folder, but make sure to encode the string value as UTF-7 first (#5480). | COMMENT |
| LOW | app/jobs/session_timeout_job.rb | 17 | # make sure to definitely log him out if there | COMMENT |
| MEDIUM | spec/spec_helper.rb | 61 | # with RSpec, but feel free to customize to your heart's content. | COMMENT |
| MEDIUM | spec/models/channel/email_parser_spec.rb | 75 | # To write new .yml files for emails you can use the following rake task: | COMMENT |
| MEDIUM | spec/models/channel/email_parser_spec.rb | 79 | # To renew all existing files, you can use the following rake task: | COMMENT |
| LOW | spec/system/keyboard_shortcuts_spec.rb | 115 | within :active_content, '.newTicket' do # make sure to close new ticket | CODE |
| LOW | spec/support/capybara/form_helpers.rb | 25 | # # In case of ambiguous labels, make sure to pass `exact_text` option | COMMENT |
| LOW | .github/workflows/packager.io.yaml | 6 | # Test builds for public branches based on develop. Don't forget to clean up test branches in go.packager.io after | COMMENT |
| LOW | …core_ext/activesupport/lib/active_support/callbacks.rb | 9 | # to access one after the block has been processed make sure to initialize the variable | COMMENT |
| LOW | lib/import/otrs.rb | 50 | # make sure to create store type otherwise | COMMENT |
| LOW | lib/import/otrs/article.rb | 99 | # if no content type is set make sure to remove it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …er/apollo/cache/utils/registerOffsetStylePagination.ts | 20 | // TODO: Do we need to check if item already exists...? What is happening in the cursor pagination? | COMMENT |
| LOW | …omponents/Form/fields/FieldEditor/FieldEditorInput.vue | 99 | // TODO: extensions are in general not reactive in TipTap, we need to check if all things are working as expected. | COMMENT |
| LOW | …p/components/CommonTable/__tests__/TableHeader.spec.ts | 139 | // Step 1: Select all loaded | COMMENT |
| LOW | app/models/avatar/triggers_subscriptions.rb | 40 | # We need to check if the default avatar was deleted. | COMMENT |
| LOW | app/models/concerns/can_search.rb | 192 | # Thus we need to check if method exist instead of using try()! | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 24 | # Step 1: Fill in basic information and select agent type. | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 30 | # Step 2: Select attribute. | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 35 | # Step 3: Select attributes and provide descriptions. | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 83 | # Step 1: Check the name and the selected agent type. | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 90 | # Step 2: Check selected attribute. | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 95 | # Step 3: Check selected attributes and descriptions. | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 102 | # Step 4: Check meta data. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …p/components/CommonTable/__tests__/TableHeader.spec.ts | 139 | // Step 1: Select all loaded | COMMENT |
| LOW | spec/models/store_spec.rb | 5 | # NOTE: This class uses custom .add & .remove methods | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 24 | # Step 1: Fill in basic information and select agent type. | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 30 | # Step 2: Select attribute. | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 35 | # Step 3: Select attributes and provide descriptions. | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 83 | # Step 1: Check the name and the selected agent type. | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 90 | # Step 2: Check selected attribute. | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 95 | # Step 3: Check selected attributes and descriptions. | COMMENT |
| LOW⚡ | …system/manage/ai/agent/type/ticket_categorizer_spec.rb | 102 | # Step 4: Check meta data. | COMMENT |
| LOW | spec/lib/notification_factory_spec.rb | 6 | # WARNING: This spec relies on the presence of | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/models/ticket/article.rb | 109 | # Example usage: | COMMENT |
| LOW | spec/support/capybara/form_helpers.rb | 15 | # Usage: | COMMENT |
| LOW | spec/support/capybara/form_helpers.rb | 46 | # Usage: | COMMENT |
| LOW | spec/support/capybara/form_helpers.rb | 110 | # Usage: | COMMENT |
| LOW | spec/support/capybara/form_helpers.rb | 161 | # Usage: | COMMENT |
| LOW | spec/support/capybara/form_helpers.rb | 210 | # Usage: | COMMENT |
| LOW | spec/support/capybara/form_helpers.rb | 244 | # Usage: | COMMENT |
| LOW | spec/support/capybara/form_helpers.rb | 288 | # Usage: | COMMENT |
| LOW | spec/support/capybara/form_helpers.rb | 332 | # Usage: | COMMENT |
| LOW | spec/support/capybara/form_helpers.rb | 372 | # Usage: | COMMENT |
| LOW | spec/support/capybara/form_helpers.rb | 397 | # Usage: | COMMENT |
| LOW | spec/support/capybara/form_helpers.rb | 423 | # Usage: | COMMENT |
| LOW | spec/support/capybara/form_helpers.rb | 449 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …SetupImportSource/GuidedSetupImportSourceFreshdesk.vue | 67 | link: 'https://support.freshdesk.com/support/solutions/articles/215517-how-to-find-your-api-key', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/assets/javascripts/app/lib/core/jquery-3.6.0.js | 4405 | function getData( data ) { | CODE |
| LOW | app/assets/javascripts/app/lib/flot/jquery.flot.js | 494 | function processData() { | CODE |