Monorepo hosting the proton web clients
This report summarizes scanner evidence for ProtonMail/WebClients, a TypeScript project with 5,670 GitHub stars. SynthScan examined 5,653,664 lines of code across 19537 source files, recording 1661 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 0.4 (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.
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.
Can maintainers explain intent, assumptions, and trade-offs? 1199 finding(s).
Are imports declared and package/API names verified? 388 finding(s).
Are wrappers, guards, and repeated structures necessary? 987 finding(s).
Which changes need focused human review? 1661 finding(s).
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.
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.
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.
The scanner identified 1661 distinct pattern matches across 17 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/app-context/notifications/manager.tsx | 11 | function createNotificationManager( | CODE |
| LOW | packages/metrics/scripts/generate-metrics.ts | 71 | function getVersionInMetricsClassByName(metricsClass: string, metricName: string) { | CODE |
| LOW | packages/chargebee/lib/payment-intent.ts | 3 | export function isCheckoutComPaymentIntent(paymentIntent: PaymentIntent): boolean { | CODE |
| LOW | …ages/chargebee/lib/getCanMakePaymentsWithActiveCard.ts | 11 | export async function getCanMakePaymentsWithActiveCard(): Promise<boolean> { | CODE |
| LOW | packages/chargebee/lib/types.ts | 130 | export function isPaypalAuthorizedMessage(obj: any): obj is PaypalAuthorizedMessage { | CODE |
| LOW | packages/chargebee/lib/types.ts | 145 | export function isMessageBusResponseFailure(obj: any): obj is MessageBusResponseFailure { | CODE |
| LOW | packages/chargebee/lib/types.ts | 168 | export function isThreeDsChallengeMessage(obj: any): obj is ThreeDsChallengeMessage { | CODE |
| LOW | packages/chargebee/lib/types.ts | 223 | export function isSavedCardVerificationSuccessMessage(obj: any): obj is SavedCardVerificationSuccessMessage { | CODE |
| LOW | packages/chargebee/lib/types.ts | 227 | export function isSavedCardVerificationFailureMessage(obj: any): obj is SavedCardVerificationFailureMessage { | CODE |
| LOW | packages/chargebee/lib/types.ts | 302 | export function isApplePayAuthorizedMessage(obj: any): obj is ApplePayAuthorizedMessage { | CODE |
| LOW | packages/chargebee/lib/types.ts | 330 | export function isApplePayCancelledMessage(obj: any): obj is ApplePayCancelledMessage { | CODE |
| LOW | packages/chargebee/lib/types.ts | 351 | export function isGooglePayAuthorizedMessage(obj: any): obj is GooglePayAuthorizedMessage { | CODE |
| LOW | packages/chargebee/lib/types.ts | 371 | export function isGooglePayClickedMessage(obj: any): obj is GooglePayClickedMessage { | CODE |
| LOW | packages/chargebee/lib/types.ts | 379 | export function isGooglePayCancelledMessage(obj: any): obj is GooglePayCancelledMessage { | CODE |
| LOW | packages/chargebee/lib/css-variables.ts | 28 | export function sanitizeChargebeeCssVariables(cssVariablesInput: Record<string, string>): ChargebeeCssVariables { | CODE |
| LOW | packages/chargebee/src/script-diagnostics.ts | 84 | export function summarizeScriptLoadErrors(): { scriptLoadErrors: string | null; scriptLoadErrorCount: number } { | CODE |
| LOW | packages/chargebee/src/main.ts | 18 | function isThrownByBrowserExtension({ filename }: ErrorEvent) { | CODE |
| LOW | packages/chargebee/src/message-bus.ts | 117 | function isSetPaypalPaymentIntentEvent(event: any): event is SetPaypalPaymentIntentEvent { | CODE |
| LOW | packages/chargebee/src/message-bus.ts | 243 | function isSetApplePayPaymentIntentEvent(event: any): event is SetApplePayPaymentIntentEvent { | CODE |
| LOW | packages/chargebee/src/message-bus.ts | 258 | function isGetCanMakePaymentsWithActiveCardEvent(event: any): event is GetCanMakePaymentsWithActiveCardEvent { | CODE |
| LOW | packages/chargebee/src/message-bus.ts | 275 | function isSetGooglePayPaymentIntentEvent(event: any): event is SetGooglePayPaymentIntentEvent { | CODE |
| LOW | packages/chargebee/src/message-bus.ts | 296 | function isSetIdealPaymentIntentEvent(event: any): event is SetIdealPaymentIntentEvent { | CODE |
| LOW | packages/chargebee/src/chargebee-entry.ts | 276 | function validateFormWithoutRendering(): FormValidationErrors { | CODE |
| LOW | packages/chargebee/src/chargebee-entry.ts | 975 | async function setConfigurationAndCreateChargebee(configuration: CbIframeConfig) { | CODE |
| LOW | packages/chargebee/src/configuration.ts | 47 | function getConfigWithoutExtraProperties( | CODE |
| LOW | …kages/payments/postal-codes/postal-codes-validation.ts | 48 | function validateCanadianPostalCode(stateCode: string, postalCode: string): boolean { | CODE |
| LOW | …kages/payments/postal-codes/postal-codes-validation.ts | 69 | function getStateCodeByUSPostalCode(postalCode: string): string | undefined { | CODE |
| LOW | …kages/payments/postal-codes/postal-codes-validation.ts | 76 | function getStateCodeByCanadianPostalCode(postalCode: string): string | undefined { | CODE |
| LOW | packages/payments/postal-codes/format.ts | 7 | function normalizeCanadianPostalCode(postalCode: string): string { | CODE |
| LOW | packages/payments/postal-codes/default-postal-codes.ts | 85 | export function getDefaultPostalCodeByStateCode( | CODE |
| LOW | packages/payments/core/helpers.ts | 17 | function isCurrencyConversionInvoice(invoice: Pick<Invoice, 'ID'>): boolean { | CODE |
| LOW | packages/payments/core/errors.ts | 43 | export function backendBillingAddressFieldError(status: BillingAddressFieldStatus | undefined): string { | CODE |
| LOW | packages/payments/core/errors.ts | 71 | export function hasWrongBillingAddressError(estimation: SubscriptionEstimation | undefined): boolean { | CODE |
| LOW | packages/payments/core/errors.ts | 75 | export function getWrongBillingAddressValidationResult( | CODE |
| LOW⚡ | packages/payments/core/type-guards.ts | 68 | export function isSavedPaymentMethodIdeal(obj: SavedPaymentMethod | undefined): obj is PaymentMethodIdeal { | CODE |
| LOW⚡ | packages/payments/core/type-guards.ts | 72 | export function isSavedPaymentMethodApplePay(obj: SavedPaymentMethod | undefined): obj is PaymentMethodApplePay { | CODE |
| LOW⚡ | packages/payments/core/type-guards.ts | 76 | export function isSavedPaymentMethodGooglePay(obj: SavedPaymentMethod | undefined): obj is PaymentMethodGooglePay { | CODE |
| LOW | packages/payments/core/currencies.ts | 18 | export function getCurrencyFormattingConfigWithoutFallback(currency: Currency): CurrencyFormattingConfig | undefined { | CODE |
| LOW | packages/payments/core/currencies.ts | 45 | export function getCurrencyFormattingConfig(currency: Currency): CurrencyFormattingConfig { | CODE |
| LOW | packages/payments/core/currencies.ts | 93 | export function getDefaultMainCurrencyByCountryCode(countryCode: string | undefined): Currency { | CODE |
| LOW | packages/payments/core/currencies.ts | 128 | function isNewBatchRegionalCurrency(currency: Currency | undefined): boolean { | CODE |
| LOW⚡ | packages/payments/core/currencies.ts | 149 | export function mapCountryToRegionalCurrency(countryCode: string): Currency | undefined { | CODE |
| LOW⚡ | packages/payments/core/currencies.ts | 153 | export function mapRegionalCurrencyToCountry(currency: Currency): string | undefined { | CODE |
| LOW⚡ | packages/payments/core/currencies.ts | 162 | function getMaybeRegionalPlansCurrency( | CODE |
| LOW | packages/payments/core/currencies.ts | 189 | export function getSupportedRegionalCurrencies({ | CODE |
| LOW | packages/payments/core/sepa.ts | 24 | function checkIfIbanCountryRequiresAddress(ibanCountryCode: string | undefined): boolean { | CODE |
| LOW | packages/payments/core/computeOptimisticCheckResult.ts | 7 | export function computeOptimisticCheckResult( | CODE |
| LOW | packages/payments/core/secondary-estimation.ts | 37 | export async function runSecondarySubscriptionEstimation({ | CODE |
| LOW | packages/payments/core/optimisticSubscriptionMode.ts | 10 | export function computeOptimisticSubscriptionMode( | CODE |
| LOW⚡ | packages/payments/core/formatPaymentMethods.ts | 21 | function isSavedPaymentMethodApplePay(obj: any): obj is PaymentMethodApplePay { | CODE |
| LOW⚡ | packages/payments/core/formatPaymentMethods.ts | 25 | function isSavedPaymentMethodGooglePay(obj: any): obj is PaymentMethodGooglePay { | CODE |
| LOW⚡ | packages/payments/core/formatPaymentMethods.ts | 29 | function isSavedPaymentMethodPaypal(obj: any): obj is PaymentMethodPaypal { | CODE |
| LOW | packages/payments/core/amount-limits.ts | 32 | export function getMinPaypalAmountInhouse(currency: Currency): number { | CODE |
| LOW | packages/payments/core/amount-limits.ts | 38 | export function getMinPaypalAmountChargebee(currency: Currency): number { | CODE |
| LOW | packages/payments/core/payment-status.ts | 4 | export function normalizePaymentMethodStatus(status: PaymentStatus): PaymentStatus { | CODE |
| LOW | packages/payments/core/planIDs.ts | 152 | function getScribeSeatsCoveredByLumo(planIDs: PlanIDs, plans: Plan[]): number { | CODE |
| LOW | packages/payments/core/planIDs.ts | 483 | export function planIDsPositiveDifference(oldPlanIDs: PlanIDs, newPlanIDs: PlanIDs): PlanIDs { | CODE |
| LOW | packages/payments/core/countries.ts | 270 | export function isCountryWithRequiredPostalCode(countryCode: string): countryCode is CountryWithRequiredPostalCode { | CODE |
| LOW | packages/payments/core/trials.ts | 51 | export function getTrialInfoForSingleSubscription( | CODE |
| LOW | …ages/payments/core/computeOptimisticRenewProperties.ts | 6 | export function computeOptimisticRenewProperties(params: Parameters<typeof getOptimisticCheckResult>[0]): { | CODE |
| 853 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …enderer/src/helpers/transforms/transformEscape.test.ts | 478 | expect(inputElement?.hasAttribute('placeholder')).toBe(false); | CODE |
| LOW | …enderer/src/helpers/transforms/transformEscape.test.ts | 594 | expect(textareaElement?.hasAttribute('placeholder')).toBe(false); | CODE |
| LOW | packages/payments/core/api/api.ts | 540 | ID: `dummy-id-${subscription.ID}`, | CODE |
| LOW⚡ | packages/atoms/src/Card/Card.test.tsx | 7 | const { container } = render(<Card>Lorem ipsum dolor sit amet consectetur adipisicing elit.</Card>); | CODE |
| LOW⚡ | packages/atoms/src/Card/Card.test.tsx | 7 | const { container } = render(<Card>Lorem ipsum dolor sit amet consectetur adipisicing elit.</Card>); | CODE |
| LOW⚡ | packages/atoms/src/Card/Card.test.tsx | 16 | Lorem ipsum dolor sit amet consectetur adipisicing elit. | CODE |
| LOW⚡ | packages/atoms/src/Card/Card.test.tsx | 16 | Lorem ipsum dolor sit amet consectetur adipisicing elit. | CODE |
| LOW⚡ | packages/atoms/src/Card/Card.test.tsx | 25 | const { container } = render(<Card rounded>Lorem ipsum dolor sit amet consectetur adipisicing elit.</Card>); | CODE |
| LOW⚡ | packages/atoms/src/Card/Card.test.tsx | 25 | const { container } = render(<Card rounded>Lorem ipsum dolor sit amet consectetur adipisicing elit.</Card>); | CODE |
| LOW | packages/atoms/src/DashboardCard/DashboardCard.test.tsx | 7 | const { container } = render(<DashboardCard>Lorem ipsum</DashboardCard>); | CODE |
| LOW⚡ | packages/atoms/src/UserAvatar/UserAvatar.test.tsx | 16 | render(<UserAvatar name="John Doe" />); | CODE |
| LOW⚡ | packages/atoms/src/UserAvatar/UserAvatar.test.tsx | 24 | render(<UserAvatar name="John Doe" size={UserAvatarSizeEnum.Small} />); | CODE |
| LOW⚡ | packages/atoms/src/UserAvatar/UserAvatar.test.tsx | 30 | render(<UserAvatar name="John Doe" size={UserAvatarSizeEnum.Medium} />); | CODE |
| LOW | packages/atoms/src/UserAvatar/UserAvatar.test.tsx | 42 | render(<UserAvatar name="John Doe" color={{ hue: 180 }} />); | CODE |
| LOW | packages/atoms/src/UserAvatar/UserAvatar.test.tsx | 48 | render(<UserAvatar name="John Doe" color={{ hsl: 'hsl(120, 100%, 50%)' }} />); | CODE |
| LOW | packages/calendar/calendars/listener.test.ts | 208 | Email: 'foo@bar.com', | CODE |
| LOW | …ages/drive-store/store/_links/useLinksActions.test.tsx | 179 | mockGetShareCreatorKeys.mockImplementation(() => ({ privateKey: {}, address: { Email: 'test@test.com' } })); | CODE |
| LOW | …s/components/Form/Field/ExtraFieldGroup/ExtraField.tsx | 26 | Omit<BaseTextFieldProps & BaseTextAreaFieldProps, 'field' | 'placeholder' | 'error'> & { | CODE |
| LOW | packages/pass/components/Item/Login/Login.view.spec.tsx | 33 | const itemEmail = 'user@example.com'; | CODE |
| LOW⚡ | packages/pass/hooks/identity/useIdentityContent.spec.ts | 24 | content.set('fullName', 'John Doe'); | CODE |
| LOW⚡ | packages/pass/hooks/identity/useIdentityContent.spec.ts | 32 | { name: 'Personal', fields: [{ ...MOCK_FIELDS.fullName, value: 'John Doe' }], customFields: [] }, | CODE |
| LOW⚡ | packages/pass/hooks/identity/useIdentityContent.spec.ts | 41 | content.set('fullName', 'John Doe'); | CODE |
| LOW | packages/pass/hooks/identity/useIdentityContent.spec.ts | 59 | content.set('fullName', 'John Doe'); | CODE |
| LOW | packages/pass/hooks/identity/useIdentityContent.spec.ts | 74 | fields: [{ ...MOCK_FIELDS.fullName, value: 'John Doe' }], | CODE |
| LOW | packages/pass/hooks/identity/useIdentityContent.ts | 13 | type IdentitySectionField = Omit<IdentityFormField, 'name' | 'placeholder'> & { value: string; hidden?: boolean }; | CODE |
| LOW | packages/pass/hooks/identity/useIdentityForm.spec.ts | 25 | content.set('fullName', 'John Doe'); | CODE |
| LOW⚡ | packages/pass/lib/auth/store.utils.spec.ts | 5 | const result = decodeUserData(encodeUserData('user@example.com', 'John Doe')); | CODE |
| LOW⚡ | packages/pass/lib/auth/store.utils.spec.ts | 5 | const result = decodeUserData(encodeUserData('user@example.com', 'John Doe')); | CODE |
| LOW⚡ | packages/pass/lib/auth/store.utils.spec.ts | 6 | expect(result.PrimaryEmail).toBe('user@example.com'); | CODE |
| LOW⚡ | packages/pass/lib/auth/store.utils.spec.ts | 7 | expect(result.DisplayName).toBe('John Doe'); | CODE |
| LOW | packages/pass/lib/search/match-items.spec.ts | 79 | cardholderName: 'John Doe', | CODE |
| LOW | packages/pass/lib/search/match-items.spec.ts | 257 | { key: 'card item', search: ['John Doe'], expected: [items[2]] }, | CODE |
| LOW | packages/pass/lib/items/item.utils.spec.ts | 270 | login1.get('content').set('itemEmail', 'user@example.com'); | CODE |
| LOW | packages/pass/lib/items/item.utils.spec.ts | 290 | expect(filterItemsByUserIdentifier('user@example.com')(items)).toEqual([items[0]]); | CODE |
| LOW | packages/pass/lib/items/item.utils.spec.ts | 315 | expect(filterItemsByUserIdentifier('user@example.com')(items)).toEqual([]); | CODE |
| LOW | packages/pass/lib/items/item.utils.spec.ts | 482 | identity.get('content').set('fullName', 'John Doe'); | CODE |
| LOW | packages/pass/lib/items/item.utils.spec.ts | 496 | fullName: 'John Doe', | CODE |
| LOW | packages/pass/lib/items/item.utils.spec.ts | 600 | cardholderName: 'John Doe', | CODE |
| LOW | …ort/providers/protonpass/protonpass.csv.reader.spec.ts | 122 | expect(creditCardItem.content.cardholderName).toEqual('John Doe'); | CODE |
| LOW | …ort/providers/protonpass/protonpass.csv.reader.spec.ts | 172 | expect(creditCardItem.content.cardholderName).toEqual('John Doe'); | CODE |
| LOW | …ort/providers/protonpass/protonpass.csv.reader.spec.ts | 224 | expect(creditCardItem.content.cardholderName).toEqual('John Doe'); | CODE |
| LOW | …ass/lib/import/providers/1password/1pux.reader.spec.ts | 328 | attrs: { accountName: 'test', name: 'Test', email: 'test@test.com', domain: 'test.com' }, | CODE |
| LOW | packages/pass/lib/import/helpers/csv.reader.spec.ts | 12 | { id: '1', name: 'John Doe' }, | CODE |
| LOW | packages/pass/lib/import/helpers/csv.reader.spec.ts | 13 | { id: '2', name: 'Jane Doe' }, | CODE |
| LOW | packages/pass/lib/import/helpers/csv.reader.spec.ts | 25 | { id: '1', name: 'John Doe', age: '20' }, | CODE |
| LOW | packages/pass/lib/import/helpers/csv.reader.spec.ts | 26 | { id: '2', name: 'Jane Doe', age: '21' }, | CODE |
| LOW | packages/pass/lib/import/helpers/csv.reader.spec.ts | 53 | { id: '1', name: 'John Doe' }, | CODE |
| LOW | packages/pass/lib/import/helpers/report.spec.ts | 19 | email: 'user@example.com', | CODE |
| LOW | packages/pass/lib/import/helpers/report.spec.ts | 28 | userIdentifier: 'user@example.com', | CODE |
| LOW | …PrepareOAuth/hooks/useStepPrepareOAuth.helpers.test.ts | 31 | 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean m', | CODE |
| LOW | …PrepareOAuth/hooks/useStepPrepareOAuth.helpers.test.ts | 31 | 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean m', | CODE |
| LOW⚡ | packages/shared/tests/calendar/import.spec.ts | 1045 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolo | CODE |
| LOW⚡ | packages/shared/tests/calendar/import.spec.ts | 1045 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolo | CODE |
| LOW⚡ | packages/shared/tests/calendar/import.spec.ts | 1054 | SUMMARY:Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore ma | CODE |
| LOW⚡ | packages/shared/tests/calendar/import.spec.ts | 1054 | SUMMARY:Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore ma | CODE |
| LOW⚡ | packages/shared/tests/calendar/import.spec.ts | 1055 | DESCRIPTION:Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolor | CODE |
| LOW⚡ | packages/shared/tests/calendar/import.spec.ts | 1055 | DESCRIPTION:Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolor | CODE |
| LOW⚡ | packages/shared/tests/calendar/import.spec.ts | 1056 | LOCATION:Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore m | CODE |
| LOW⚡ | packages/shared/tests/calendar/import.spec.ts | 1056 | LOCATION:Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore m | CODE |
| LOW | …kages/shared/tests/keys/reactivatedAddressKeys.spec.ts | 24 | const address1 = 'test@test.com'; | CODE |
| 302 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | packages/pass/lib/items/item.requests.ts | 136 | MailboxIDs: item.extraData.alias.extraData.mailboxes.map(({ id }) => id), | CODE |
| CRITICAL | …umo/src/app/services/schedules/ScheduleService.test.ts | 142 | expect(h.bridge.reportRunStatus.mock.calls.map(([call]) => call.status)).toEqual(['accepted', 'running']); | CODE |
| CRITICAL | …umo/src/app/services/schedules/ScheduleService.test.ts | 147 | expect(h.bridge.reportRunStatus.mock.calls.map(([call]) => call.status)).toEqual([ | CODE |
| CRITICAL | …umo/src/app/services/schedules/ScheduleService.test.ts | 183 | expect(h.bridge.reportRunStatus.mock.calls.every(([call]) => call.connectionId === 'connection-2')).toBe(true); | CODE |
| CRITICAL | …umo/src/app/services/schedules/ScheduleService.test.ts | 281 | expect(h.bridge.reportRunStatus.mock.calls.map(([call]) => call.status)).toEqual(['accepted', 'running']); | CODE |
| CRITICAL | …umo/src/app/services/schedules/ScheduleService.test.ts | 295 | expect(h.bridge.getPendingRuns.mock.calls.some(([call]) => call.connectionId === 'old')).toBe(false); | CODE |
| CRITICAL | …umo/src/app/services/schedules/ScheduleService.test.ts | 339 | expect(h.bridge.reportRunStatus.mock.calls.map(([request]) => request.status)).toEqual(['skipped']); | CODE |
| CRITICAL | …umo/src/app/services/schedules/ScheduleService.test.ts | 381 | expect(h.runExecutor.claim.mock.calls.filter(([run]) => run.runId === pendingRun.runId)).toHaveLength(2); | CODE |
| CRITICAL | …umo/src/app/services/schedules/ScheduleService.test.ts | 383 | expect(h.bridge.reportRunStatus.mock.calls.every(([call]) => call.runId === second.runId)).toBe(true); | CODE |
| CRITICAL⚡ | …extension/src/__mocks__/webextension-polyfill/index.ts | 88 | browser.privacy.services.autofillAddressEnabled.get.mockClear(); | CODE |
| CRITICAL⚡ | …extension/src/__mocks__/webextension-polyfill/index.ts | 89 | browser.privacy.services.autofillAddressEnabled.set.mockClear(); | CODE |
| CRITICAL⚡ | …extension/src/__mocks__/webextension-polyfill/index.ts | 90 | browser.privacy.services.passwordSavingEnabled.get.mockClear(); | CODE |
| CRITICAL⚡ | …extension/src/__mocks__/webextension-polyfill/index.ts | 91 | browser.privacy.services.passwordSavingEnabled.set.mockClear(); | CODE |
| CRITICAL | …s/pass-extension/src/app/worker/services/activation.ts | 241 | const session: Partial<AuthSession> = fromClientApp ? ctx.service.auth.config.authStore.getSession() : {}; | CODE |
| CRITICAL | …/worker/services/auth/auth.service.integration.spec.ts | 66 | const listeners = browser.alarms.onAlarm.addListener.mock.calls.map(([fn]) => fn); | CODE |
| CRITICAL | …s-extension/src/app/worker/services/auth/auth.utils.ts | 26 | const when = await ctx.service.auth.alarms.autoLockAlarm.when(); | CODE |
| CRITICAL | …ions/pass-extension/src/tests/offline-fallback.spec.ts | 338 | ctx.service.store.dispatch.mock.calls.filter(([action]: any) => offlineResume.intent.match(action)); | CODE |
| CRITICAL | applications/pass-extension/src/tests/auth.ts | 75 | const listeners = browser.alarms.onAlarm.addListener.mock.calls.map(([listener]) => listener); | CODE |
| CRITICAL⚡ | …lications/pass-extension/src/lib/utils/privacy.spec.ts | 79 | browser.privacy.services.autofillAddressEnabled.get.mockResolvedValue(details); | CODE |
| CRITICAL⚡ | …lications/pass-extension/src/lib/utils/privacy.spec.ts | 80 | browser.privacy.services.passwordSavingEnabled.get.mockResolvedValue(details); | CODE |
| CRITICAL⚡ | …lications/pass-extension/src/lib/utils/privacy.spec.ts | 90 | browser.privacy.services.autofillAddressEnabled.get.mockResolvedValue(detailsActive); | CODE |
| CRITICAL⚡ | …lications/pass-extension/src/lib/utils/privacy.spec.ts | 91 | browser.privacy.services.passwordSavingEnabled.get.mockResolvedValue(detailsInactive); | CODE |
| CRITICAL | …lications/pass-extension/src/lib/utils/privacy.spec.ts | 166 | browser.privacy.services.autofillAddressEnabled.set.mockRejectedValue(new Error()); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .grype.yaml | 1 | fail-on-severity: "high" | COMMENT |
| LOW | …lugin-custom-rules/__tests__/validate-ttag-key.test.js | 41 | // Auto-generated key warnings are handled by validate-ttag-key-autofix-warning rule | COMMENT |
| LOW | packages/drive-store/store/_downloads/interface.ts | 41 | // Both up and down, e.g., when something is retried. | COMMENT |
| LOW | …rive-store/store/_downloads/download/downloadBlocks.ts | 301 | // If we experience some slight issue on server side, lets try | COMMENT |
| LOW | …rive-store/store/_downloads/download/downloadBlocks.ts | 321 | ); | COMMENT |
| LOW | packages/drive-store/store/_links/interface.ts | 21 | createTime: number; | COMMENT |
| LOW | packages/drive-store/store/_links/interface.ts | 121 | // encryptedName for renaming procedure (to generate new sessionKey). | COMMENT |
| LOW | packages/pass/components/Promo/FamilyPlanPromo2024.scss | 21 | &:focus { | COMMENT |
| LOW | packages/pack/scripts/validate.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | packages/shared/lib/mail/linkifyInstance.ts | 1 | import LinkifyIt from 'linkify-it'; | COMMENT |
| LOW | …kages/payments-ui/ui/containers/EditCardModal.test.tsx | 1 | // import { fireEvent, waitFor } from '@testing-library/react'; | COMMENT |
| LOW | …kages/payments-ui/ui/containers/EditCardModal.test.tsx | 21 | // const defaultCard: CardModel = { | COMMENT |
| LOW | …kages/payments-ui/ui/containers/EditCardModal.test.tsx | 41 | COMMENT | |
| LOW | …kages/payments-ui/ui/containers/EditCardModal.test.tsx | 61 | // fireEvent.click(getByTestId('toggle-subscription-renew')); | COMMENT |
| LOW | …kages/payments-ui/ui/containers/EditCardModal.test.tsx | 81 | // /> | COMMENT |
| LOW | …kages/payments-ui/ui/containers/EditCardModal.test.tsx | 101 | COMMENT | |
| LOW | …kages/payments-ui/ui/containers/EditCardModal.test.tsx | 121 | // ); | COMMENT |
| LOW | …kages/payments-ui/ui/containers/EditCardModal.test.tsx | 141 | // const paymentMethodId = 'paymentMethodId123'; | COMMENT |
| LOW | packages/styles/scss/lib/_responsive-classes.scss | 41 | /// @content The declaration block of a css rule. Used when $param is a String or a List | COMMENT |
| LOW | packages/styles/scss/lib/_include-media.scss | 1 | /* stylelint-disable */ | COMMENT |
| LOW | packages/styles/scss/lib/_include-media.scss | 41 | ) !default; | COMMENT |
| LOW | packages/styles/scss/lib/_include-media.scss | 61 | 'retina3x': '(-webkit-min-device-pixel-ratio: 3), (min-resolution: 350dpi), (min-resolution: 3dppx)', | COMMENT |
| LOW | packages/styles/scss/lib/_include-media.scss | 81 | /// | COMMENT |
| LOW | packages/styles/scss/lib/_include-media.scss | 101 | /// } | COMMENT |
| LOW | packages/styles/scss/lib/_include-media.scss | 121 | /// } | COMMENT |
| LOW | packages/styles/scss/lib/_include-media.scss | 141 | COMMENT | |
| LOW | packages/styles/scss/lib/_include-media.scss | 161 | /// @example scss - This media query will NOT show because it intercepts the static breakpoint but contains a media expr | COMMENT |
| LOW | packages/styles/scss/lib/_include-media.scss | 261 | /// | COMMENT |
| LOW | packages/styles/scss/lib/_include-media.scss | 321 | $dimension: get-expression-dimension($expression, $operator); | COMMENT |
| LOW | packages/styles/scss/lib/_include-media.scss | 481 | /// the call. It is helpful when having a component needing an extended | COMMENT |
| LOW | packages/styles/scss/lib/_include-media.scss | 501 | /// .foo { | COMMENT |
| LOW | packages/styles/scss/lib/_include-media.scss | 541 | /// | COMMENT |
| LOW | packages/styles/scss/base/_viewport.scss | 21 | COMMENT | |
| LOW | packages/components/jest.setup.js | 61 | COMMENT | |
| LOW | …scription/confirm-button/SubscriptionConfirmButton.tsx | 21 | // re-subscribe user to the same plan and cycle that he already has. In this case, the only thing that we can do to | COMMENT |
| LOW | …/containers/vpn/WireGuardConfigurationSection/curve.ts | 1 | // Thanks DJB https://ed25519.cr.yp.to | COMMENT |
| LOW | …ts/containers/credentialLeak/BreachRecommendations.tsx | 21 | // let match; | COMMENT |
| LOW | packages/account/breaches/breachReportsSlice.ts | 1 | // TODO: until design and api changes are made this slice is no longer being used. Data fetching is in BreachAlertsSecur | COMMENT |
| LOW | packages/account/breaches/breachReportsSlice.ts | 21 | // const fetchedData = toCamelCase(Breaches); | COMMENT |
| LOW | packages/account/breaches/breachReportsSlice.ts | 41 | // miss: ({ extraArgument }) => { | COMMENT |
| LOW | packages/account/breaches/breachReportsSlice.ts | 61 | // export const breachReportsReducer = { [name]: slice.reducer }; | COMMENT |
| LOW | packages/account/breaches/breachAlertListener.ts | 1 | // TODO: until design and api changes are made this listener is no longer being used. Data fetching is in BreachAlertsSe | COMMENT |
| LOW | packages/drive/modules/busDriver/internal/BusDriver.ts | 121 | async emit(event: BusDriverEvent, driveClient: BusDriverClient): Promise<void> { | COMMENT |
| LOW | packages/mail-message/src/helpers/schedule.ts | 21 | // 9:30, 10:00, 10:30 | COMMENT |
| LOW | packages/raw-images/dcraw.c | 21 | COMMENT | |
| LOW | packages/raw-images/dcraw.c | 41 | #include <string.h> | COMMENT |
| LOW | packages/raw-images/dcraw.c | 61 | typedef __int64 INT64; | COMMENT |
| LOW | packages/raw-images/dcraw.c | 81 | #include <jpeglib.h> /* Decode compressed Kodak DC120 photos */ | COMMENT |
| LOW | packages/raw-images/dcraw.c | 161 | } ph1; | COMMENT |
| LOW | applications/vpn-settings/src/vitest.d.ts | 1 | // Augments the matcher types with @testing-library/jest-dom (toBeInTheDocument, …). | COMMENT |
| LOW | …dar/src/app/containers/calendar/MainContainer.spec.tsx | 541 | // fireEvent.focus(screen.getByTitle(/Select event end date/)); | COMMENT |
| LOW | …ers/calendar/eventActions/getSaveSingleEventActions.ts | 121 | // type: SAVE_CONFIRMATION_TYPES.SINGLE, | COMMENT |
| LOW | applications/lumo/webpack.reveal.ts | 1 | import path from 'path'; | COMMENT |
| LOW | applications/lumo/webpack.config.ts | 101 | loader: 'file-loader', | COMMENT |
| LOW | applications/lumo/src/app/index.scss | 201 | .new-label { | COMMENT |
| LOW | applications/lumo/src/app/bootstrap.ts | 301 | COMMENT | |
| LOW | applications/lumo/src/app/__mocks__/MSWController.tsx | 1 | // import React, { useEffect, useState } from 'react'; | COMMENT |
| LOW | applications/lumo/src/app/__mocks__/MSWController.tsx | 21 | // const enableMSW = async () => { | COMMENT |
| LOW | applications/lumo/src/app/__mocks__/MSWController.tsx | 41 | // }, | COMMENT |
| LOW | applications/lumo/src/app/__mocks__/MSWController.tsx | 61 | // } catch (error) { | COMMENT |
| 152 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/payments/core/addon/addons.test.ts | 52 | // ─── Config invariants (registry gate) ─────────────────────────────────────── | COMMENT |
| MEDIUM | packages/payments/core/addon/addons.test.ts | 102 | // ─── getAddonConfigsByPlanName (P1) ────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/payments/core/addon/addons.test.ts | 142 | // ─── getAddonDisplayOrder (P1) ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ments-ui/ui/billing-address/hooks/useVatNumber.test.ts | 97 | // ─── 1. Initialization and defaults ────────────────────────────── | COMMENT |
| MEDIUM | …ments-ui/ui/billing-address/hooks/useVatNumber.test.ts | 183 | // ─── 2. Fetching VAT number ────────────────────────────────────── | COMMENT |
| MEDIUM | …ments-ui/ui/billing-address/hooks/useVatNumber.test.ts | 244 | // ─── 3. isAuthenticated resolution ─────────────────────────────── | COMMENT |
| MEDIUM | …ments-ui/ui/billing-address/hooks/useVatNumber.test.ts | 277 | // ─── 4. paymentsApi resolution ─────────────────────────────────── | COMMENT |
| MEDIUM | …ments-ui/ui/billing-address/hooks/useVatNumber.test.ts | 299 | // ─── 5. setVatNumber (handleVatNumberChange) ───────────────────── | COMMENT |
| MEDIUM | …ments-ui/ui/billing-address/hooks/useVatNumber.test.ts | 399 | // ─── 6. Country/plan change effect ─────────────────────────────── | COMMENT |
| MEDIUM | …ments-ui/ui/billing-address/hooks/useVatNumber.test.ts | 502 | // ─── 7. vatUpdatedInModal ──────────────────────────────────────── | COMMENT |
| MEDIUM | …ments-ui/ui/billing-address/hooks/useVatNumber.test.ts | 617 | // ─── 8. countriesWithVatId coverage ────────────────────────────── | COMMENT |
| MEDIUM | …ments-ui/ui/billing-address/hooks/useVatNumber.test.ts | 666 | // ─── 9. Prefill behaviour ──────────────────────────────────────── | COMMENT |
| MEDIUM | …payments/planCustomizer/addonCustomizerHelpers.test.ts | 26 | // ─── computeAddonCustomizerItems ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …payments/planCustomizer/addonCustomizerHelpers.test.ts | 193 | // ─── getAddonCustomizerProperties ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …payments/planCustomizer/addonCustomizerHelpers.test.ts | 470 | // ─── trial mode ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …payments/planCustomizer/addonCustomizerHelpers.test.ts | 618 | // ─── syncWhenEqualAddons (via getAddonCustomizerProperties) ─────────────────── | COMMENT |
| MEDIUM | …payments/planCustomizer/addonCustomizerHelpers.test.ts | 686 | // ─── syncAlwaysAddons (via getAddonCustomizerProperties) ───────────────────── | COMMENT |
| MEDIUM | applications/lumo/src/app/bootstrap.ts | 302 | // ── Launched, never awaited before the render gate ────────────────────────────────── | COMMENT |
| MEDIUM | applications/lumo/src/app/bootstrap.ts | 310 | // ── The render gate ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | applications/lumo/src/app/bootstrap.ts | 353 | // ── Everything past here runs while the user can already type ─────────────────────── | COMMENT |
| MEDIUM | applications/lumo/src/app/llm/visualizationPrompt.ts | 1 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | applications/lumo/src/app/llm/visualizationPrompt.ts | 9 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/lumo/src/app/features/imageActions/imageActions.scss | 43 | // ── Inline image card (image with hover-overlay controls) ──────────────────── | COMMENT |
| MEDIUM | …s/lumo/src/app/features/imageActions/imageActions.scss | 104 | // ── Image lightbox modal ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 9 | // ── Outer shell ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 18 | // ── Tab toggle bar (standalone /images page only) ───────────────────────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 68 | // ── Top pane: gallery (scrollable) ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 76 | // ── Inspiration tab (scrollable) ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 88 | // ── Top pane: empty state (Lottie + title) ──────────────────────────────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 130 | // ── Explore grid (appended inside the main scroll container) ────────────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 144 | // ── Bottom panel (suggestions + composer, always visible) ───────────────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 198 | // ── Composer wrapper ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 243 | // ── Suppress hover overlays while the created section is scrolling ──────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 249 | // ── Image card ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 345 | // ── Load more ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 353 | // ── Discover list ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …cations/lumo/src/app/features/gallery/GalleryView.scss | 456 | // ── Lightbox ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/lumo/src/app/features/api-keys/ApiKeysPanel.scss | 8 | // ── Empty state ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/lumo/src/app/features/api-keys/ApiKeysPanel.scss | 30 | // ── Key list ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/lumo/src/app/features/api-keys/ApiKeysPanel.scss | 127 | // ── Status badges ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/lumo/src/app/features/api-keys/ApiKeysPanel.scss | 173 | // ── Inline forms ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/lumo/src/app/features/api-keys/ApiKeysPanel.scss | 211 | // ── Token reveal dialog ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/lumo/src/app/features/api-keys/ApiKeysPanel.scss | 305 | // ── Usage sparkline ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/lumo/src/app/features/api-keys/ApiKeysPanel.scss | 390 | // ── Loading skeleton ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/lumo/src/app/features/api-keys/ApiKeysPanel.scss | 415 | // ── Expanded per-key usage ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/lumo/src/app/features/api-keys/ApiKeysPanel.scss | 446 | // ── API usage dashboard ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/app/components/LumoMarkdown/InlineImageComponent.tsx | 110 | // ── Error / loading states ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/app/components/LumoMarkdown/InlineImageComponent.tsx | 148 | // ── Main render ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/components/Composer/hooks/fileMentionHelpers.test.ts | 10 | // ─── helpers ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/components/Composer/hooks/fileMentionHelpers.test.ts | 16 | // ─── buildAlreadyMentionedNames ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/components/Composer/hooks/fileMentionHelpers.test.ts | 59 | // ─── buildAttachedNames ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/components/Composer/hooks/fileMentionHelpers.test.ts | 89 | // ─── filterFiles ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/components/Composer/hooks/fileMentionHelpers.test.ts | 183 | // ─── combined: already-mentioned files are excluded from dropdown ───────────── | COMMENT |
| MEDIUM | …p/components/Composer/hooks/fileMentionHelpers.test.ts | 265 | // ─── isMentionableFile ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | applications/lumo/src/app/services/search/stopwords.ts | 5 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | applications/lumo/src/app/services/search/stopwords.ts | 7 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | applications/lumo/src/app/services/search/stopwords.ts | 144 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | applications/lumo/src/app/services/search/stopwords.ts | 146 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | applications/lumo/src/app/services/search/stopwords.ts | 214 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | applications/lumo/src/app/services/search/stopwords.ts | 216 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …omponents/Settings/Aliases/Domains/CustomDomainDNS.tsx | 45 | You are on staging env. Don't forget to replace 'proton.me' below with 'proton.black' | CODE |
| LOW | …/PostQuantumKeysOptInSection/PostQuantumOptInModal.tsx | 330 | ? c('pqc-optin: Info').jt`Don't forget to generate new recovery data.` | CODE |
| LOW | applications/mail/locales/id_ID.json | 7085 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/tr_TR.json | 7490 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/hu_HU.json | 6920 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/pt_PT.json | 7218 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/sv_SE.json | 7395 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/ko_KR.json | 7277 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/es_ES.json | 7490 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/be_BY.json | 7693 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/ja_JP.json | 7353 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/zh_CN.json | 7355 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/el_GR.json | 7487 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/it_IT.json | 7451 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/fi_FI.json | 7237 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/ka_GE.json | 7192 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/hi_IN.json | 7419 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/ru_RU.json | 7447 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/sl_SI.json | 7296 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/nl_NL.json | 7359 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/nb_NO.json | 7391 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/da_DK.json | 7490 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/ca_ES.json | 7490 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/de_DE.json | 7490 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/pt_BR.json | 7473 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/zh_TW.json | 7202 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/es_LA.json | 7490 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/fr_FR.json | 7443 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/cs_CZ.json | 7438 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/uk_UA.json | 7457 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/sk_SK.json | 7742 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/ro_RO.json | 7616 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/pl_PL.json | 7430 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | applications/mail/locales/hr_HR.json | 7311 | "Don't forget to share the password with the recipient": [ | CODE |
| LOW | …/components/composer/modals/PasswordInnerModalForm.tsx | 37 | <Info className="mb-1" title={c('Info').t`Don't forget to share the password with the recipient`} /> | CODE |
| LOW | applications/account/locales/id_ID.json | 19150 | "Don't forget to generate new recovery data.": [ | CODE |
| LOW | applications/account/locales/zh_TW.json | 19321 | "Don't forget to generate new recovery data.": [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/drive-store/store/_links/useLink.ts | 779 | // Also we only want it in the shared with me root view, so we need to check if parentLinkId is not pres | COMMENT |
| LOW | packages/account/plans/index.ts | 116 | // Step 1: load the plans without any parameters. It can return either main currency or a regional one. | COMMENT |
| LOW | packages/account/plans/index.ts | 130 | // Step 2: if some required currencies are missing, then we fetch them separately | COMMENT |
| LOW | packages/account/accountSessions/storage.ts | 111 | * The purpose of this function is to extend the lifetime of the iaas cookie. | COMMENT |
| LOW | applications/lumo/src/app/llm/index.ts | 188 | // Step 0: Apply any context-compaction boundary. Summarized messages are | COMMENT |
| LOW | applications/lumo/src/app/llm/index.ts | 234 | // Step 1: Transform messages to turns by iterating over blocks | COMMENT |
| LOW⚡ | applications/lumo/src/app/llm/index.ts | 303 | // Step 2: Insert the final empty assistant turn | COMMENT |
| LOW⚡ | applications/lumo/src/app/llm/index.ts | 306 | // Step 3: (removed) The documentContext string used to be written to turns[i].context, but | COMMENT |
| LOW⚡ | applications/lumo/src/app/llm/index.ts | 365 | // Step 4: Remove empty assistant turns | COMMENT |
| LOW⚡ | applications/lumo/src/app/llm/index.ts | 368 | // Step 5: Prepend the compaction summary (if any) as the leading turn so it | COMMENT |
| LOW | applications/mail/src/app/hooks/useExpiringElement.ts | 15 | * We need to check if we find an expiration time set in the state. | COMMENT |
| LOW | …lications/drive/src/app/legacy/store/_links/useLink.ts | 786 | // Also we only want it in the shared with me root view, so we need to check if parentLinkId is not pres | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ations/lumo/src/app/features/dev/TestRendererModal.tsx | 409 | print(f"5! = {result}")`, | CODE |
| HIGH | …s/lumo/src/app/features/api-docs/lumoApiDocs.config.ts | 155 | print(r.json()["choices"][0]["message"]["content"])`, | CODE |
| HIGH | …s/lumo/src/app/features/api-docs/lumoApiDocs.config.ts | 279 | print(r.json())`, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | applications/lumo/src/app/redux/sagas/attachments.ts | 379 | // Tag AI-generated images and artifact assets for /assets/generated listing. | COMMENT |
| HIGH | applications/mail/src/app/styles/_message.scss | 317 | // hide coma, as requested :D | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …ications/pass-desktop/macOS/scripts/get-app-version.py | 29 | print(f"Error decoding JSON from file: {manifest_path}") | CODE |
| LOW⚡ | …ications/pass-desktop/macOS/scripts/get-app-version.py | 32 | except Exception as e: | CODE |
| MEDIUM⚡ | …ications/pass-desktop/macOS/scripts/get-app-version.py | 33 | print(f"An error occurred: {e}") | CODE |
| MEDIUM⚡ | …s/pass-extension/safari/tools/get-extension-version.py | 29 | print(f"Error decoding JSON from file: {manifest_path}") | CODE |
| LOW⚡ | …s/pass-extension/safari/tools/get-extension-version.py | 32 | except Exception as e: | CODE |
| MEDIUM⚡ | …s/pass-extension/safari/tools/get-extension-version.py | 33 | print(f"An error occurred: {e}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/account/plans/index.ts | 116 | // Step 1: load the plans without any parameters. It can return either main currency or a regional one. | COMMENT |
| LOW | packages/account/plans/index.ts | 130 | // Step 2: if some required currencies are missing, then we fetch them separately | COMMENT |
| LOW | applications/lumo/src/app/llm/index.ts | 188 | // Step 0: Apply any context-compaction boundary. Summarized messages are | COMMENT |
| LOW | applications/lumo/src/app/llm/index.ts | 234 | // Step 1: Transform messages to turns by iterating over blocks | COMMENT |
| LOW⚡ | applications/lumo/src/app/llm/index.ts | 303 | // Step 2: Insert the final empty assistant turn | COMMENT |
| LOW⚡ | applications/lumo/src/app/llm/index.ts | 365 | // Step 4: Remove empty assistant turns | COMMENT |
| LOW⚡ | applications/lumo/src/app/llm/index.ts | 368 | // Step 5: Prepend the compaction summary (if any) as the leading turn so it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/account/scimSetup/actions.ts | 123 | // TODO: Add error handling - now we just move back item status to "Waiting" | COMMENT |
| LOW | …s/mail/src/app/hooks/composer/useScheduleSend.test.tsx | 194 | // TODO: Implement test for handleScheduleSendModal | COMMENT |
| LOW | …s/mail/src/app/hooks/composer/useScheduleSend.test.tsx | 198 | // TODO: Implement test for handleScheduleSend | COMMENT |
| LOW | …rc/app/components/EmailOrBitcoinAddressInput/index.tsx | 144 | // TODO: implement this later | COMMENT |
| LOW | …rs/Spreadsheet/components/Menubar/menus/FormatMenu.tsx | 66 | // TODO: implement | COMMENT |
| LOW | …rs/Spreadsheet/components/Menubar/menus/FormatMenu.tsx | 90 | // TODO: implement | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …components/Conversation/artifact/createArtifactTool.ts | 10 | // "canvas". Without this, the model echoes the tool's own vocabulary ("I've created an artifact | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …tions/lumo/src/app/upsells/LumoPlusBackdropOverlay.tsx | 13 | // Find and hide the backdrop elements - use a more robust approach | COMMENT |
| MEDIUM | …ornPrivate/emailReservation/EmailReservationSignup.tsx | 22 | activationCode: '', // Essentially the user's password | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/metrics/scripts/generate-schema-types.sh | 11 | # Check if the command succeeded | COMMENT |
| LOW | …ns/pass-desktop/macOS/scripts/download_rust_package.sh | 22 | # Check if the current local package is using the right version | COMMENT |
| LOW | …/pass-desktop/src/uninstallers/macos/daemon/cleanup.sh | 10 | # Check if both main app and beta app are gone | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ckages/components/containers/filePreview/iwad/index.js | 1565 | function processData(byteArray) { | CODE |
| LOW | applications/lumo/public/mockServiceWorker.js | 124 | async function handleRequest(event, requestId, requestInterceptedAt) { | CODE |
| LOW | …/public/assets/background-blur/vision_wasm_internal.js | 1508 | function processData(byteArray) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | applications/lumo/util/make_css_transform.py | 32 | # Example usage | COMMENT |