{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-cc1fb1873479890c", "name": "Stray `console.log` in TS/JS \u2014 frontend/tests/shared/connect-mock.ts:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/tests/shared/connect-mock.ts:93"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b1f86108c463e6ae", "name": "TODO/FIXME marker in shipping code \u2014 frontend/tests/test-variant-console/acls/acl-delete-multi-match.spec.ts:23", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/tests/test-variant-console/acls/acl-delete-multi-match.spec.ts:23"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b85130d46553c3e1", "name": "TODO/FIXME marker in shipping code \u2014 frontend/tests/test-variant-console/acls/acl-principal-special-chars.spec.ts:22", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/tests/test-variant-console/acls/acl-principal-special-chars.spec.ts:22"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18da3cd1c9083908", "name": "TODO/FIXME marker in shipping code \u2014 frontend/tests/test-variant-console/utils/shadowlink-page.ts:451", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/tests/test-variant-console/utils/shadowlink-page.ts:451"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-94aa52c2bc2ccbb3", "name": "Stray `console.log` in TS/JS \u2014 frontend/tests/test-variant-console/utils/shadowlink-page.ts:541", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/tests/test-variant-console/utils/shadowlink-page.ts:541"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bc88be7b7e8a5e15", "name": "TODO/FIXME marker in shipping code \u2014 frontend/tests/test-variant-console-enterprise/users-authorization.spec.ts:14", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/tests/test-variant-console-enterprise/users-authorization.spec.ts:14"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b8c00ece8e0db89d", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/config.ts:62", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/config.ts:62"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5773c8f391eaec02", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/state/backend-api.ts:629", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/state/backend-api.ts:629"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bb2625339c351db0", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/state/backend-api.ts:242", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/state/backend-api.ts:242"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a0fffe5eba95840e", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/state/ui.ts:152", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/state/ui.ts:152"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1017aa284103293d", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/state/connect/state.ts:655", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/state/connect/state.ts:655"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02282e90416218c5", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/utils/message-converters.ts:125", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/utils/message-converters.ts:125"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-59a38865207e4309", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/utils/env.ts:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/utils/env.ts:104"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0e1ec8f33fa96631", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/utils/utils.ts:152", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/utils/utils.ts:152"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e81cfc2626a591c8", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/utils/tsx-utils.tsx:392", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/utils/tsx-utils.tsx:392"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9c767f57d99cdbe", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/utils/interpreter/find-function.ts:128", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/utils/interpreter/find-function.ts:128"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a7604d92c249ca6", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/require-auth.tsx:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/require-auth.tsx:31"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0e892d34eb776b53", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/layout/sidebar.tsx:133", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/layout/sidebar.tsx:133"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2c42dabcf4796a0", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/badge.tsx:124", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/badge.tsx:124"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fde6b0d3ad828508", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/code-block.tsx:125", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/code-block.tsx:125"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9dc69cd8004f9037", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/redpanda-ui/components/code-block.tsx:120", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/redpanda-ui/components/code-block.tsx:120"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b3c98fadc044514", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/code-block-dynamic.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/code-block-dynamic.tsx:192"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-961a18667a50e332", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/redpanda-ui/components/code-block-dynamic.", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/redpanda-ui/components/code-block-dynamic.tsx:181"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0fe3c16a884ef50e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/redpanda-ui/components/chart.tsx:78", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/redpanda-ui/components/chart.tsx:78"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a027d9ae147b3bc", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/multi-select.tsx:494", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/multi-select.tsx:494"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-abe6d4222b24e686", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/redpanda-ui/components/code-tabs.tsx:207", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/redpanda-ui/components/code-tabs.tsx:207"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c4ae4b089fd5eb93", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/dropzone.tsx:139", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/dropzone.tsx:139"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-beab4135fc177124", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/auto-form/fields/sha", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/auto-form/fields/shared.tsx:178"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac64defbf1e7c951", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/combobox/index.tsx:5", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/combobox/index.tsx:504"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b80a00f8892a46bb", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/ui/connect/log-explorer.tsx:311", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/ui/connect/log-explorer.tsx:311"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7da6a8c2276ba4e8", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/ui/mcp/mcp-server-card.tsx:100", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/ui/mcp/mcp-server-card.tsx:100"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df9a6b82e54f57c7", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/security/users/user-edit-modals.tsx:204", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/security/users/user-edit-modals.tsx:204"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-659b1c7083b4b205", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/security/users/user-create.tsx:418", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/security/users/user-create.tsx:418"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be7d13862f708c8e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/security/tabs/permissions-list-tab-ne", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/security/tabs/permissions-list-tab-new.tsx:206"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b699373836933a49", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/connect/create-connector.tsx:469", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/connect/create-connector.tsx:469"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40e834ab5c3e4af1", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/connect/dynamic-ui/components.tsx:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/connect/dynamic-ui/components.tsx:124"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ba3937f3484dc41", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/transforms/transform-details.tsx:309", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/transforms/transform-details.tsx:309"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ebb9ae5bac164047", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/rp-connect/pipelines-details.tsx:408", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/rp-connect/pipelines-details.tsx:408"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c4243d4389d4c68", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/rp-connect/pipelines-create.tsx:512", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/rp-connect/pipelines-create.tsx:512"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0441e20e81466a54", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/rp-connect/pipeline/pipeline-command-menu.tsx:639", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/rp-connect/pipeline/pipeline-command-menu.tsx:639"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee2d9cac8d56ecad", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/topic-list.tsx:527", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/topic-list.tsx:527"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a3f8b398e2166eda", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/topic-list-new.tsx:595", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/topic-list-new.tsx:595"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78868c8124e434a9", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/tab-docu.tsx:156", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/tab-docu.tsx:156"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0eac1bc46b7fb128", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/topics/create-topic-dialog.tsx:628", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/topics/create-topic-dialog.tsx:628"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-94e5fa7410ee04fc", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/tab-config.tsx:22", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/tab-config.tsx:22"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be636c7aba63d474", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/tab-partitions.tsx:45", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/tab-partitions.tsx:45"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a944d8e877e40ec", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/topic-produce.tsx:276", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/topic-produce.tsx:276"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02bdf1004f284eff", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/quick-info.tsx:24", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/quick-info.tsx:24"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1eeaf9b51a0441b1", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/Tab.Messages/preview-settings.tsx:288", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/Tab.Messages/preview-settings.tsx:288"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fd18fe7c40a1912", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/topics/Tab.Messages/index.tsx:689", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/topics/Tab.Messages/index.tsx:689"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2df045ee37fbd232", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/mcp-servers/list/remote-mcp-list-page.tsx:256", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/mcp-servers/list/remote-mcp-list-page.tsx:256"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5f7cdf6fa0df296e", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/admin/admin-role-bindings.tsx:80", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/admin/admin-role-bindings.tsx:80"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb6efb3bbbe983e3", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/admin/upload-license-page.tsx:93", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/admin/upload-license-page.tsx:93"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e8eb0cdc8ee1e3a", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/knowledgebase/create/knowledge-base-create-page.tsx:1", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/knowledgebase/create/knowledge-base-create-page.tsx:148"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-777b1d0fa4ebb8e9", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/shadowlinks/create/connection/mtls-co", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/shadowlinks/create/connection/mtls-configuration.tsx:129"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dfe0c666edf88acf", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/shadowlinks/details/shadow-link-diagr", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/shadowlinks/details/shadow-link-diagram.tsx:30"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24a9421c52c70415", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/agents/list/ai-agent-list-page.tsx:270", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/agents/list/ai-agent-list-page.tsx:270"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31b2431732919a63", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/agents/details/ai-agent-integrations-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/agents/details/ai-agent-integrations-tab.tsx:202"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4707804ecfebf55d", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/agents/details/conversation-detail-pa", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/agents/details/conversation-detail-page.tsx:165"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c798384d7a9d6d65", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/agents/details/ai-agent-transcripts-t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/agents/details/ai-agent-transcripts-tab.tsx:177"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ee4ab9a85a06e66", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/agents/details/ai-agent-card-tab.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/agents/details/ai-agent-card-tab.tsx:373"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f1fa26acba27493", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/agents/details/a2a/a2a-chat-language-model.tsx:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/agents/details/a2a/a2a-chat-language-model.tsx:46"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5c86bb20a1f116f", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/transcripts/transcript-list-page.tsx:48", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/transcripts/transcript-list-page.tsx:48"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd9a5f58e167dd7e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/transcripts/components/transcript-wat", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/transcripts/components/transcript-waterfall.tsx:46"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c2adbbdc913b20a9", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/transcripts/components/service-filter", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/transcripts/components/service-filter.tsx:103"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a87dd248bde2b39", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/transcripts/components/linked-trace-b", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/transcripts/components/linked-trace-banner.tsx:34"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08306ed23dc2bfc8", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/transcripts/components/tool-event-car", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/transcripts/components/tool-event-card.tsx:81"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c18ed40f715bfbe", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/schemas/schema-context-selector.tsx:6", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/schemas/schema-context-selector.tsx:67"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a3fe3248c45790b", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/reassign-partitions/reassign-partitions.tsx:79", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/reassign-partitions/reassign-partitions.tsx:79"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7be6fc8019d9d34e", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/reassign-partitions/components/indeterminate-checkbox.tsx:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/reassign-partitions/components/indeterminate-checkbox.tsx:21"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c0b20e5ce299d207", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/reassign-partitions/components/active-reassignments.t", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/reassign-partitions/components/active-reassignments.tsx:56"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7b7f0141ae5dc58", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/reassign-partitions/components/active-reassignments.tsx:613", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/reassign-partitions/components/active-reassignments.tsx:613"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-94eb3ddc3cd04291", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/reassign-partitions/logic/reassignment-tracker.ts:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/reassign-partitions/logic/reassignment-tracker.ts:124"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-db2d7cdd1a96dfd6", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/reassign-partitions/logic/reassign-logic.ts:189", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/reassign-partitions/logic/reassign-logic.ts:189"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e13a5c5a8fc32bb7", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/reassign-partitions/logic/reassign-logic.ts:684", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/reassign-partitions/logic/reassign-logic.ts:684"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d285b9f9bb2a2f54", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/debug-helper/debug-dialog.tsx:375", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/debug-helper/debug-dialog.tsx:375"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58e99ccadfcf3508", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/misc/login-complete.tsx:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/misc/login-complete.tsx:58"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f508bfa17d032664", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/misc/login.tsx:94", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/misc/login.tsx:94"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bc727fd5cc9c8fbc", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/ai-elements/prompt-input.tsx:300", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/ai-elements/prompt-input.tsx:300"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d104d4e8a51a6c2", "name": "Privileged port 10 in use", "shortDescription": {"text": "Privileged port 10 in use"}, "fullDescription": {"text": "Port 10 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e4afd97545ddc911", "name": "Possible secret in frontend/src/components/constants.ts", "shortDescription": {"text": "Possible secret in frontend/src/components/constants.ts"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-245836f735ae12fb", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/redpanda-ui/components/code-block.tsx:120", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/redpanda-ui/components/code-block.tsx:120"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-034507651d45df75", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/redpanda-ui/components/code-block-dynamic.tsx:181", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/redpanda-ui/components/code-block-dynamic.tsx:181"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-be4b99cb7adea16d", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/redpanda-ui/components/chart.tsx:78", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/redpanda-ui/components/chart.tsx:78"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5ccfefa7c7a763e0", "name": "Possible secret in frontend/src/components/redpanda-ui/components/input.tsx", "shortDescription": {"text": "Possible secret in frontend/src/components/redpanda-ui/components/input.tsx"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-4e2868aaf403f8bb", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/redpanda-ui/components/code-tabs.tsx:207", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/redpanda-ui/components/code-tabs.tsx:207"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c42575a7c4f9df6f", "name": "Insecure pattern 'private_key_in_repo' in frontend/src/components/pages/shadowlinks/create/model.test.ts:71", "shortDescription": {"text": "Insecure pattern 'private_key_in_repo' in frontend/src/components/pages/shadowlinks/create/model.test.ts:71"}, "fullDescription": {"text": "Found a known-risky pattern (private_key_in_repo). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-b753b6a2c1fca799", "name": "Possible secret in docs/config/console.yaml", "shortDescription": {"text": "Possible secret in docs/config/console.yaml"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-d2820f070c42c603", "name": "Possible secret in backend/pkg/tools/openapi-generator/v1/main.go", "shortDescription": {"text": "Possible secret in backend/pkg/tools/openapi-generator/v1/main.go"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-ec0b821656bc2fc2", "name": "Possible secret in backend/pkg/tools/openapi-generator/v1alpha2/main.go", "shortDescription": {"text": "Possible secret in backend/pkg/tools/openapi-generator/v1alpha2/main.go"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-09cf6c0683317dc7", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6fcb692b84da5258", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "golangci/golangci-lint-action@v8 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ee8587e1afdb7f3a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f5da55dd4261a033", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6.0.2 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be84167d8d0618de", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c2f1a9f721403b0", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a89956212f7d4527", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/github-script@v7 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ff81993a7836e59", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a3979cada883cb8", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "arduino/setup-task@v1 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2e99d28115560341", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0222d0de06e4dc7a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "bufbuild/buf-action@v1 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a422ae1bee735981", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-21ed9084e1ff927c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/github-script@v7 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9da6716cbd83decc", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de53ac274e5b4ecf", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-37716d9c0a33ad5c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-36c56cb29ce90e65", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/github-script@v7 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b8b3668b93840e4", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a1e6938349006c93", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6.0.2 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-983b5d70601fd653", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f12562ea7124e9ce", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-29f24fea8ff987cd", "name": "Very large file: frontend/src/routeTree.gen.ts (1705 lines)", "shortDescription": {"text": "Very large file: frontend/src/routeTree.gen.ts (1705 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-60a86311acaecb92", "name": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1alpha3/ai_agent_pb.ts (1296 lines)", "shortDescription": {"text": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1alpha3/ai_agent_pb.ts (1296 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cfcfdfe79ce39268", "name": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1alpha3/knowledge_base_pb.ts (1425 lines)", "shortDescription": {"text": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1alpha3/knowledge_base_pb.ts (1425 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7655800768c757cc", "name": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1/kafka_connect_pb.ts (1207 lines)", "shortDescription": {"text": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1/kafka_connect_pb.ts (1207 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e028ba3bdce441a0", "name": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1/pipeline_pb.ts (1430 lines)", "shortDescription": {"text": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1/pipeline_pb.ts (1430 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-645a16e5287e2e13", "name": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1alpha2/kafka_connect_pb.ts (1207 lines)", "shortDescription": {"text": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1alpha2/kafka_connect_pb.ts (1207 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0fbaa58d2d82232c", "name": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1alpha1/kafka_connect_pb.ts (1222 lines)", "shortDescription": {"text": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1alpha1/kafka_connect_pb.ts (1222 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6daf8de6758f7233", "name": "Very large file: frontend/src/protogen/redpanda/api/adp/v1alpha1/mcp_server_pb.ts (1114 lines)", "shortDescription": {"text": "Very large file: frontend/src/protogen/redpanda/api/adp/v1alpha1/mcp_server_pb.ts (1114 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f2ec5760364d6f0a", "name": "Very large file: frontend/src/protogen/redpanda/api/adp/v1alpha1/oauth_provider_pb.ts (934 lines)", "shortDescription": {"text": "Very large file: frontend/src/protogen/redpanda/api/adp/v1alpha1/oauth_provider_pb.ts (934 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d00a0bb2477c1538", "name": "Very large file: frontend/src/protogen/redpanda/core/admin/v2/shadow_link_pb.ts (1801 lines)", "shortDescription": {"text": "Very large file: frontend/src/protogen/redpanda/core/admin/v2/shadow_link_pb.ts (1801 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8557bcbdb9d59d5d", "name": "Very large file: frontend/src/protogen/buf/validate/validate_pb.ts (4967 lines)", "shortDescription": {"text": "Very large file: frontend/src/protogen/buf/validate/validate_pb.ts (4967 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-03b521aa9f71c18a", "name": "Very large file: frontend/src/protogen/protoc-gen-openapiv2/options/openapiv2_pb.ts (1525 lines)", "shortDescription": {"text": "Very large file: frontend/src/protogen/protoc-gen-openapiv2/options/openapiv2_pb.ts (1525 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5c1c6545666c7e8e", "name": "Very large file: frontend/src/state/backend-api.ts (3214 lines)", "shortDescription": {"text": "Very large file: frontend/src/state/backend-api.ts (3214 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3394fb0fdefce674", "name": "Very large file: frontend/src/components/redpanda-ui/components/icons.tsx (1040 lines)", "shortDescription": {"text": "Very large file: frontend/src/components/redpanda-ui/components/icons.tsx (1040 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1888516cff2a02be", "name": "Very large file: frontend/src/components/pages/topics/Tab.Messages/index.tsx (1927 lines)", "shortDescription": {"text": "Very large file: frontend/src/components/pages/topics/Tab.Messages/index.tsx (1927 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f13aca968590ede", "name": "Very large file: frontend/src/components/pages/agents/details/ai-agent-configuration-tab.tsx (1549 lines)", "shortDescription": {"text": "Very large file: frontend/src/components/pages/agents/details/ai-agent-configuration-tab.tsx (1549 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-abbc88b696907293", "name": "Very large file: frontend/src/components/pages/agents/details/a2a/chat/hooks/use-message-streaming.test.ts (1313 lines)", "shortDescription": {"text": "Very large file: frontend/src/components/pages/agents/details/a2a/chat/hooks/use-message-streaming.test.ts (1313 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-06ec6610f718b723", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/observability.pb.go (1241 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/observability.pb.go (1241 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9e8e90b715c72027", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/transcript.pb.go (1492 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/transcript.pb.go (1492 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f799f7676480a30", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/sql.pb.go (1218 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/sql.pb.go (1218 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8dd9f44bc32d2bf7", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/knowledge_base.pb.go (4318 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/knowledge_base.pb.go (4318 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-45444f50678ac14e", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/ai_agent.pb.go (3321 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/ai_agent.pb.go (3321 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a35f75d3759d0b1", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/tracing.pb.go (1525 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/tracing.pb.go (1525 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6eccd776fa7ea25c", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/mcp.pb.go (2319 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/mcp.pb.go (2319 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e945541873a53058", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/user.pb.go (1110 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/user.pb.go (1110 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9cb4977de1d90e76", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/topic.pb.go (2398 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/topic.pb.go (2398 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3fbc235c756160bc", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/kafka_connect.pb.gw.go (1451 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/kafka_connect.pb.gw.go (1451 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-883ca60e0647571e", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/security.pb.go (1273 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/security.pb.go (1273 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-89955c2048797bef", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.gw.go (975 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.gw.go (975 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1350e27bcb3acfce", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/cloud_storage.pb.go (1543 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/cloud_storage.pb.go (1543 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-08d923f5e6c2c6dd", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.go (3728 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.go (3728 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6754c35aff78e7df", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/secret.pb.gw.go (1069 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/secret.pb.gw.go (1069 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b0d508bf969ba23", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/acl.pb.go (1608 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/acl.pb.go (1608 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b722019c2c6a6b1a", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/kafka_connect.pb.go (3113 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/kafka_connect.pb.go (3113 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6714e76fe47753fc", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/quota.pb.go (1759 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/quota.pb.go (1759 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f764740da0475bfa", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/secret.pb.go (2416 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/secret.pb.go (2416 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-016cb87822e2b293", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/mcp.pb.go (2402 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/mcp.pb.go (2402 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eb2ef4ac678939d8", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/transform.pb.go (1027 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/transform.pb.go (1027 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-712dbe933a434964", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/shadowlink.pb.go (1077 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/shadowlink.pb.go (1077 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5ba1ec13f57908e0", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/user.pb.go (1124 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/user.pb.go (1124 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1964f7821e75fa45", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/topic.pb.go (1723 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/topic.pb.go (1723 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-973e45d15cf5202f", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/kafka_connect.pb.gw.go (1505 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/kafka_connect.pb.gw.go (1505 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ce71d12ecfd71c01", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/cloud_storage.pb.go (1562 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/cloud_storage.pb.go (1562 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-74425621af8529a3", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/pipeline.pb.go (2269 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/pipeline.pb.go (2269 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eabb50d5f98dd3ac", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/secret.pb.gw.go (1049 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/secret.pb.gw.go (1049 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2788fd09b1881ccc", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/acl.pb.go (1604 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/acl.pb.go (1604 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cf1cceb2297f9a47", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/kafka_connect.pb.go (3150 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/kafka_connect.pb.go (3150 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-73f313e7d57fd819", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/secret.pb.go (2095 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/secret.pb.go (2095 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aaf7df022302fe69", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/transform.pb.go (1039 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/transform.pb.go (1039 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-29da0bb4c8ef8c04", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/user.pb.go (1122 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/user.pb.go (1122 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-07cbc07cfac79df5", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/topic.pb.go (1721 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/topic.pb.go (1721 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f62d6ccc04d5a76", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/kafka_connect.pb.gw.go (1505 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/kafka_connect.pb.gw.go (1505 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dcb7a20b37511e8d", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/acl.pb.go (1598 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/acl.pb.go (1598 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e58cd67af8c67fac", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/kafka_connect.pb.go (3146 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/kafka_connect.pb.go (3146 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f6ba2a2bc6f51087", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/secret.pb.go (1206 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/secret.pb.go (1206 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df923ad950f22511", "name": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/transform.pb.go (1035 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/transform.pb.go (1035 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c563c8cd33e4c55c", "name": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/list_messages.pb.go (1002 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/list_messages.pb.go (1002 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-14efc1045132d4e2", "name": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/authentication.pb.go (1215 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/authentication.pb.go (1215 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-473a11790b0f24bc", "name": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/pipeline.pb.go (1294 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/pipeline.pb.go (1294 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-32529b9a273cf9d9", "name": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/debug_bundle.pb.go (1994 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/debug_bundle.pb.go (1994 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0007f0cbd30821a9", "name": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/cluster_status.pb.go (1699 lines)", "shortDescription": {"text": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/cluster_status.pb.go (1699 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2da0740f21542a06", "name": "Very large file: backend/pkg/connect/get_connectors_test.go (1737 lines)", "shortDescription": {"text": "Very large file: backend/pkg/connect/get_connectors_test.go (1737 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-249f5f46d1a8430f", "name": "Very large file: backend/pkg/api/connect/integration/topic_v1_test.go (2555 lines)", "shortDescription": {"text": "Very large file: backend/pkg/api/connect/integration/topic_v1_test.go (2555 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-24a3b82f34e0844f", "name": "Very large file: backend/pkg/serde/service_integration_test.go (4448 lines)", "shortDescription": {"text": "Very large file: backend/pkg/serde/service_integration_test.go (4448 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "372 tests / 1718 src (ratio 0.22)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c9791d28c3d2d9a2", "name": "69 TODO/FIXME markers", "shortDescription": {"text": "69 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 36 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 652 placeholder/mock markers across 243 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d23d984364364f8", "name": "Agent authority lacks a verifier contract: frontend/.mcp.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.mcp.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5ebe7a77a5a7f967", "name": "Agent instruction/config may expose a secret: frontend/.claude/agents/redpanda-logo-fetcher.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: frontend/.claude/agents/redpanda-logo-fetcher.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-436c48c0456a9c62", "name": "Agent authority lacks a verifier contract: frontend/.claude/skills/tanstack-router-migration/references/route-templates.", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/tanstack-router-migration/references/route-templates.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9cf2392594639cbf", "name": "Agent authority lacks a verifier contract: frontend/.claude/skills/ui-development/rules/use-ui-registry.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/ui-development/rules/use-ui-registry.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-09debbefd307836c", "name": "Agent authority lacks a verifier contract: frontend/.claude/skills/api-patterns/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/api-patterns/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a52143ca7a4bb3ec", "name": "Agent authority lacks a verifier contract: frontend/.claude/skills/api-patterns/rules/api-toast-errors.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/api-patterns/rules/api-toast-errors.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5f1b4b0792a5e793", "name": "Agent authority lacks a verifier contract: frontend/.claude/skills/api-patterns/rules/protobuf-no-edit.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/api-patterns/rules/protobuf-no-edit.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4fedc0e0f2f91457", "name": "Agent authority lacks a verifier contract: frontend/.claude/skills/react-best-practices/rules/async-dependencies.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/react-best-practices/rules/async-dependencies.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6288744b1a022c7a", "name": "Agent authority lacks a verifier contract: frontend/.claude/skills/react-best-practices/rules/js-length-check-first.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/react-best-practices/rules/js-length-check-first.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6fead34f35f586f3", "name": "Agent authority lacks a verifier contract: frontend/.claude/skills/react-best-practices/rules/rendering-svg-precision.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/react-best-practices/rules/rendering-svg-precision.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-81c191d64be0118a", "name": "Agent authority lacks a verifier contract: frontend/.claude/skills/code-standards/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/code-standards/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34e71860b069f7ea", "name": "Commented-code block (5 lines) in frontend/vitest.setup.integration.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/vitest.setup.integration.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-096f1f902d82c541", "name": "Commented-code block (7 lines) in frontend/tests/mocks/redpanda-ui.ts:12", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/tests/mocks/redpanda-ui.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c752763e60582536", "name": "Commented-code block (5 lines) in frontend/tests/shared/global-setup.mjs:270", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/tests/shared/global-setup.mjs:270"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e732e3bb4d1d2ba9", "name": "Commented-code block (7 lines) in frontend/tests/test-variant-console/transforms/transforms.spec.ts:14", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/tests/test-variant-console/transforms/transforms.spec.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0902583f61cfa3ef", "name": "Commented-code block (5 lines) in frontend/tests/test-variant-console/quotas/quota-error.spec.ts:34", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/tests/test-variant-console/quotas/quota-error.spec.ts:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ede9bb602bc23238", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/scripts/serve.mjs:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/scripts/serve.mjs:38"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c1db3f45db14eb7", "name": "Commented-code block (8 lines) in frontend/src/test-utils.tsx:21", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/test-utils.tsx:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96a6f4805b0a418f", "name": "Commented-code block (5 lines) in frontend/src/federation/console-app.test.tsx:108", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/federation/console-app.test.tsx:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9bb9ff56fce7639b", "name": "Commented-code block (5 lines) in frontend/src/protogen/redpanda/ui/registry/autoform/v1/auto_form_ui_pb.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/protogen/redpanda/ui/registry/autoform/v1/auto_form_ui_pb.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5602cb7628a7039a", "name": "Commented-code block (5 lines) in frontend/src/protogen/buf/validate/validate_pb.ts:26", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/protogen/buf/validate/validate_pb.ts:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-557e59d5fc98b6a9", "name": "Commented-code block (32 lines) in frontend/src/state/backend-api.ts:552", "shortDescription": {"text": "Commented-code block (32 lines) in frontend/src/state/backend-api.ts:552"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f0e4f0a83c75b04e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/state/backend-api.ts:204", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/state/backend-api.ts:204"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dab98b18bfa3b95d", "name": "Commented-code block (5 lines) in frontend/src/state/rest-interfaces.ts:814", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/state/rest-interfaces.ts:814"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1503816585e2df87", "name": "Commented-code block (6 lines) in frontend/src/utils/message-table-helpers.test.ts:101", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/utils/message-table-helpers.test.ts:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b33d3658b9054ff7", "name": "Commented-code block (10 lines) in frontend/src/utils/tsx-utils.tsx:589", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/utils/tsx-utils.tsx:589"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4336f8c3c69d1b47", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/utils/fetch-with-timeout.ts:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/utils/fetch-with-timeout.ts:28"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-96bca8c80e492ec2", "name": "Commented-code block (5 lines) in frontend/src/utils/formatters/config-value-formatter.ts:85", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/utils/formatters/config-value-formatter.ts:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d04c73664613409", "name": "Commented-code block (8 lines) in frontend/src/components/redpanda-ui/components/checkbox.tsx:10", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/components/redpanda-ui/components/checkbox.tsx:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2377c9276b08ba7", "name": "Commented-code block (6 lines) in frontend/src/components/redpanda-ui/components/radio-group.tsx:31", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/redpanda-ui/components/radio-group.tsx:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d782b7929d632a1a", "name": "Commented-code block (5 lines) in frontend/src/components/redpanda-ui/components/code-block-dynamic.tsx:328", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/redpanda-ui/components/code-block-dynamic.tsx:328"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bfcf0a079c0d76a2", "name": "Commented-code block (6 lines) in frontend/src/components/redpanda-ui/components/switch.tsx:22", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/redpanda-ui/components/switch.tsx:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b4b79f5cc6579af", "name": "Commented-code block (5 lines) in frontend/src/components/redpanda-ui/components/tabs.tsx:330", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/redpanda-ui/components/tabs.tsx:330"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-989d3fbed93ac227", "name": "Commented-code block (6 lines) in frontend/src/components/redpanda-ui/components/auto-form/field-utils.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/redpanda-ui/components/auto-form/field-utils.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd1a1263a33ec09b", "name": "Commented-code block (8 lines) in frontend/src/components/redpanda-ui/components/auto-form/helpers.ts:199", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/components/redpanda-ui/components/auto-form/helpers.ts:199"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d29132830340faf7", "name": "Commented-code block (5 lines) in frontend/src/components/redpanda-ui/components/auto-form/runtime-provider.tsx:67", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/redpanda-ui/components/auto-form/runtime-provider.tsx:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eea42e6c7044540f", "name": "Commented-code block (7 lines) in frontend/src/components/redpanda-ui/components/auto-form/fields/slider.tsx:27", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/components/redpanda-ui/components/auto-form/fields/slider.tsx:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-371967359fd43a0b", "name": "Commented-code block (5 lines) in frontend/src/components/redpanda-ui/lib/utils.tsx:28", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/redpanda-ui/lib/utils.tsx:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1597263fe596acad", "name": "Commented-code block (8 lines) in frontend/src/components/ui/connect/log-explorer.test.tsx:110", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/components/ui/connect/log-explorer.test.tsx:110"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-115c051d6eccd8e1", "name": "Commented-code block (6 lines) in frontend/src/components/pages/security/shared/acl-model.test.tsx:359", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/security/shared/acl-model.test.tsx:359"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e68d45fc5473fbc", "name": "Legacy-named symbol `AclsTabLegacy` in frontend/src/components/pages/security/tabs/acls-tab.tsx:276", "shortDescription": {"text": "Legacy-named symbol `AclsTabLegacy` in frontend/src/components/pages/security/tabs/acls-tab.tsx:276"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c1a27286d21f3093", "name": "Commented-code block (5 lines) in frontend/src/components/pages/connect/overview.tsx:133", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/connect/overview.tsx:133"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1ceea71a87f5867", "name": "Commented-code block (5 lines) in frontend/src/components/pages/rp-connect/onboarding/add-user-step.test.tsx:464", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/rp-connect/onboarding/add-user-step.test.tsx:464"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b37354832a10b3b", "name": "Commented-code block (5 lines) in frontend/src/components/pages/rp-connect/onboarding/add-topic-step.tsx:132", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/rp-connect/onboarding/add-topic-step.tsx:132"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62759140359bb2e3", "name": "Commented-code block (6 lines) in frontend/src/components/pages/rp-connect/pipeline/index.test.tsx:667", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/rp-connect/pipeline/index.test.tsx:667"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc00f4b637d63e65", "name": "Legacy-named symbol `is_deprecated` in frontend/src/components/pages/rp-connect/template-gallery/__tests__/template-yaml", "shortDescription": {"text": "Legacy-named symbol `is_deprecated` in frontend/src/components/pages/rp-connect/template-gallery/__tests__/template-yaml-schema.test.tsx:31"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-81038b5a164dfa6f", "name": "Commented-code block (7 lines) in frontend/src/components/pages/topics/Tab.Messages/preview-settings.tsx:353", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/components/pages/topics/Tab.Messages/preview-settings.tsx:353"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-229ebe5a7f0a1b78", "name": "Commented-code block (5 lines) in frontend/src/components/pages/consumers/modals.tsx:71", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/consumers/modals.tsx:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4011b97935304dfa", "name": "Commented-code block (5 lines) in frontend/src/components/pages/observability/observability-page.test.tsx:28", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/observability/observability-page.test.tsx:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6db7256e8cad27b", "name": "Commented-code block (5 lines) in frontend/src/components/pages/shadowlinks/create/shadowlink-create-page.test.tsx:480", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/shadowlinks/create/shadowlink-create-page.test.tsx:480"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f99c24b1059b5f60", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/pages/agents/details/a2a/a2a-chat-language-model.t", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/pages/agents/details/a2a/a2a-chat-language-model.tsx:252"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de73085e28621473", "name": "Commented-code block (8 lines) in frontend/src/components/pages/agents/details/a2a/chat/utils/parse-a2a-error.test.ts:20", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/components/pages/agents/details/a2a/chat/utils/parse-a2a-error.test.ts:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c6063878269a4105", "name": "Commented-code block (6 lines) in frontend/src/components/pages/agents/details/a2a/chat/hooks/use-message-streaming.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/agents/details/a2a/chat/hooks/use-message-streaming.ts:354"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cba1d856dbd96857", "name": "Commented-code block (9 lines) in frontend/src/components/pages/agents/details/a2a/chat/hooks/use-message-streaming.test", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/components/pages/agents/details/a2a/chat/hooks/use-message-streaming.test.ts:920"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0fdab9c87fc79c7", "name": "Commented-code block (6 lines) in frontend/src/components/pages/schemas/edit-compatibility.test.tsx:205", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/schemas/edit-compatibility.test.tsx:205"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a2984ccc5beac4c", "name": "Commented-code block (6 lines) in frontend/src/components/pages/schemas/edit-mode.test.tsx:263", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/schemas/edit-mode.test.tsx:263"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2f34400b94607f1", "name": "Legacy-named symbol `brokersOld` in frontend/src/components/pages/reassign-partitions/reassign-partitions.tsx:637", "shortDescription": {"text": "Legacy-named symbol `brokersOld` in frontend/src/components/pages/reassign-partitions/reassign-partitions.tsx:637"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-192bf406462991d3", "name": "Legacy-named symbol `brokersOld` in frontend/src/components/pages/reassign-partitions/components/active-reassignments.ts", "shortDescription": {"text": "Legacy-named symbol `brokersOld` in frontend/src/components/pages/reassign-partitions/components/active-reassignments.tsx:547"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-51620ab14347298c", "name": "Commented-code block (6 lines) in frontend/src/components/pages/reassign-partitions/components/bandwidth-slider.tsx:20", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/reassign-partitions/components/bandwidth-slider.tsx:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eac7066a1f499ef0", "name": "Commented-code block (5 lines) in frontend/src/components/pages/reassign-partitions/logic/reassignment-tracker.ts:44", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/reassign-partitions/logic/reassignment-tracker.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2869ef2a66ffabf0", "name": "Commented-code block (6 lines) in frontend/src/components/pages/reassign-partitions/logic/reassign-logic.ts:19", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/reassign-partitions/logic/reassign-logic.ts:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c13ba6d10bda8aa9", "name": "Commented-code block (5 lines) in frontend/src/components/debug-helper/connect-config-fixtures.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/debug-helper/connect-config-fixtures.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c3f3d10145cff3e", "name": "Commented-code block (5 lines) in frontend/src/components/misc/router-sync.tsx:57", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/misc/router-sync.tsx:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-067cb5b342e0b057", "name": "Commented-code block (6 lines) in frontend/src/components/misc/login-complete.tsx:74", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/misc/login-complete.tsx:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68da72f2ce1eca08", "name": "Commented-code block (7 lines) in frontend/src/components/misc/error-boundary.tsx:23", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/components/misc/error-boundary.tsx:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-672d0a234d437d96", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/ai-elements/prompt-input.tsx:671", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/ai-elements/prompt-input.tsx:671"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-98ab3944f71ed79b", "name": "Commented-code block (5 lines) in frontend/src/components/ai-elements/tool.test.tsx:164", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/ai-elements/tool.test.tsx:164"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b3e0e57d6ce33b5", "name": "Commented-code block (9 lines) in frontend/src/components/ai-elements/shimmer.test.tsx:17", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/components/ai-elements/shimmer.test.tsx:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13d4b8bf2d3cd244", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/debugBundle/debug-bundle-link.tsx:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/debugBundle/debug-bundle-link.tsx:47"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-566161b4f7775bf0", "name": "Legacy-named symbol `TopicListLegacy` in frontend/src/routes/topics/index.tsx:16", "shortDescription": {"text": "Legacy-named symbol `TopicListLegacy` in frontend/src/routes/topics/index.tsx:16"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8ed98ab7a973d751", "name": "Commented-code block (8 lines) in frontend/src/react-query/react-query.utils.ts:45", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/react-query/react-query.utils.ts:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f94cb890aecf211", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/topic.tsx:67", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/topic.tsx:67"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ccc177ed7346c67d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/consumer-group.tsx:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/consumer-group.tsx:28"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ecba4ab191a4b958", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/kafka-connect.tsx:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/kafka-connect.tsx:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-41121b4d311d2f0e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/remote-mcp.tsx:284", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/remote-mcp.tsx:284"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0dcdc1f04787302f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/schema-registry.tsx:58", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/schema-registry.tsx:58"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1088336ee31f23d4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/onboarding.tsx:14", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/onboarding.tsx:14"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-261bd706249c6e88", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/ai-agent.tsx:247", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/ai-agent.tsx:247"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a6726e789c577be8", "name": "Commented-code block (7 lines) in frontend/src/hooks/use-aigw-transport.ts:21", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/hooks/use-aigw-transport.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-910bf52d467fb3bd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/hooks/use-news-feed.ts:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/hooks/use-news-feed.ts:26"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0dd045459d5149b6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/hubspot/hubspot.helper.ts:68", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/hubspot/hubspot.helper.ts:68"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a53b371c04036460", "name": "Dangling fetch: POST https://api.hsforms.com/submissions/v3/integration/submit/${portalId}/${formId} (frontend/src/hubsp", "shortDescription": {"text": "Dangling fetch: POST https://api.hsforms.com/submissions/v3/integration/submit/${portalId}/${formId} (frontend/src/hubspot/hubspot.helper.ts:68)"}, "fullDescription": {"text": "`frontend/src/hubspot/hubspot.helper.ts:68` calls `POST https://api.hsforms.com/submissions/v3/integration/submit/${portalId}/${formId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.hsforms.com/submissions/v3/integration/submit/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b8073f7bf758f6d0", "name": "Unused endpoint: USE /api/*", "shortDescription": {"text": "Unused endpoint: USE /api/*"}, "fullDescription": {"text": "`frontend/scripts/serve.mjs` declares `USE /api/*` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a7da4485ffd5140", "name": "Unused endpoint: GET /*", "shortDescription": {"text": "Unused endpoint: GET /*"}, "fullDescription": {"text": "`frontend/scripts/serve.mjs` declares `GET /*` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/17979"}, "properties": {"repository": "redpanda-data/console", "repoUrl": "https://github.com/redpanda-data/console", "branch": "main"}, "results": [{"ruleId": "scanner-cc1fb1873479890c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/tests/shared/connect-mock.ts:93"}, "properties": {"repobilityId": "c94ee2a0cce98ef3", "scanner": "scanner-primary", "fingerprint": "cc1fb1873479890c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b1f86108c463e6ae", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/tests/test-variant-console/acls/acl-delete-multi-match.spec.ts:23"}, "properties": {"repobilityId": "f58dfde86037395c", "scanner": "scanner-primary", "fingerprint": "b1f86108c463e6ae", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b85130d46553c3e1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/tests/test-variant-console/acls/acl-principal-special-chars.spec.ts:22"}, "properties": {"repobilityId": "b59ad45df59da03b", "scanner": "scanner-primary", "fingerprint": "b85130d46553c3e1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-18da3cd1c9083908", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/tests/test-variant-console/utils/shadowlink-page.ts:451"}, "properties": {"repobilityId": "0259e9d186d36d2f", "scanner": "scanner-primary", "fingerprint": "18da3cd1c9083908", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-94aa52c2bc2ccbb3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/tests/test-variant-console/utils/shadowlink-page.ts:541"}, "properties": {"repobilityId": "648eae4dbcfcb3d9", "scanner": "scanner-primary", "fingerprint": "94aa52c2bc2ccbb3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bc88be7b7e8a5e15", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/tests/test-variant-console-enterprise/users-authorization.spec.ts:14"}, "properties": {"repobilityId": "079380bfed6c3207", "scanner": "scanner-primary", "fingerprint": "bc88be7b7e8a5e15", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b8c00ece8e0db89d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/config.ts:62"}, "properties": {"repobilityId": "088b0707bb27834b", "scanner": "scanner-primary", "fingerprint": "b8c00ece8e0db89d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5773c8f391eaec02", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/state/backend-api.ts:629"}, "properties": {"repobilityId": "c5650f3deec463d3", "scanner": "scanner-primary", "fingerprint": "5773c8f391eaec02", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-bb2625339c351db0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/state/backend-api.ts:242"}, "properties": {"repobilityId": "4184f2d5da00da32", "scanner": "scanner-primary", "fingerprint": "bb2625339c351db0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a0fffe5eba95840e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/state/ui.ts:152"}, "properties": {"repobilityId": "6c8ebeb1b0060cc7", "scanner": "scanner-primary", "fingerprint": "a0fffe5eba95840e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1017aa284103293d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/state/connect/state.ts:655"}, "properties": {"repobilityId": "a1171351ca4419bc", "scanner": "scanner-primary", "fingerprint": "1017aa284103293d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-02282e90416218c5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/utils/message-converters.ts:125"}, "properties": {"repobilityId": "dfb7dae095f20c8e", "scanner": "scanner-primary", "fingerprint": "02282e90416218c5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-59a38865207e4309", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/utils/env.ts:104"}, "properties": {"repobilityId": "c4fc52a61e17aa15", "scanner": "scanner-primary", "fingerprint": "59a38865207e4309", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0e1ec8f33fa96631", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/utils/utils.ts:152"}, "properties": {"repobilityId": "4d7bddc8c3235c98", "scanner": "scanner-primary", "fingerprint": "0e1ec8f33fa96631", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e81cfc2626a591c8", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/utils/tsx-utils.tsx:392"}, "properties": {"repobilityId": "8c3e8faf28e0d39d", "scanner": "scanner-primary", "fingerprint": "e81cfc2626a591c8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-a9c767f57d99cdbe", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/utils/interpreter/find-function.ts:128"}, "properties": {"repobilityId": "4fec189176404f5c", "scanner": "scanner-primary", "fingerprint": "a9c767f57d99cdbe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-6a7604d92c249ca6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/require-auth.tsx:31"}, "properties": {"repobilityId": "5ead083b656da265", "scanner": "scanner-primary", "fingerprint": "6a7604d92c249ca6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0e892d34eb776b53", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/layout/sidebar.tsx:133"}, "properties": {"repobilityId": "3b4f5d444f8f47a4", "scanner": "scanner-primary", "fingerprint": "0e892d34eb776b53", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f2c42dabcf4796a0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/badge.tsx:124"}, "properties": {"repobilityId": "1dba8c371fef50fd", "scanner": "scanner-primary", "fingerprint": "f2c42dabcf4796a0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fde6b0d3ad828508", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/code-block.tsx:125"}, "properties": {"repobilityId": "fc83e465856c83a9", "scanner": "scanner-primary", "fingerprint": "fde6b0d3ad828508", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9dc69cd8004f9037", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/redpanda-ui/components/code-block.tsx:120"}, "properties": {"repobilityId": "a4b682794bb4bc34", "scanner": "scanner-primary", "fingerprint": "9dc69cd8004f9037", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0b3c98fadc044514", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/code-block-dynamic.tsx:192"}, "properties": {"repobilityId": "f82b67c24178c2ce", "scanner": "scanner-primary", "fingerprint": "0b3c98fadc044514", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-961a18667a50e332", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/redpanda-ui/components/code-block-dynamic.tsx:181"}, "properties": {"repobilityId": "fcbe7bf3b0a33fb1", "scanner": "scanner-primary", "fingerprint": "961a18667a50e332", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0fe3c16a884ef50e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/redpanda-ui/components/chart.tsx:78"}, "properties": {"repobilityId": "f0ba446a12504213", "scanner": "scanner-primary", "fingerprint": "0fe3c16a884ef50e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2a027d9ae147b3bc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/multi-select.tsx:494"}, "properties": {"repobilityId": "78ae7f39cdec5e17", "scanner": "scanner-primary", "fingerprint": "2a027d9ae147b3bc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-abe6d4222b24e686", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/redpanda-ui/components/code-tabs.tsx:207"}, "properties": {"repobilityId": "fb3646f5918f6318", "scanner": "scanner-primary", "fingerprint": "abe6d4222b24e686", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c4ae4b089fd5eb93", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/dropzone.tsx:139"}, "properties": {"repobilityId": "d978c75b31e73bde", "scanner": "scanner-primary", "fingerprint": "c4ae4b089fd5eb93", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-beab4135fc177124", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/auto-form/fields/shared.tsx:178"}, "properties": {"repobilityId": "d7408e4988d8eea7", "scanner": "scanner-primary", "fingerprint": "beab4135fc177124", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ac64defbf1e7c951", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/redpanda-ui/components/combobox/index.tsx:504"}, "properties": {"repobilityId": "312cdc10007e8d53", "scanner": "scanner-primary", "fingerprint": "ac64defbf1e7c951", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b80a00f8892a46bb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/ui/connect/log-explorer.tsx:311"}, "properties": {"repobilityId": "5d884afbc06242db", "scanner": "scanner-primary", "fingerprint": "b80a00f8892a46bb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7da6a8c2276ba4e8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/ui/mcp/mcp-server-card.tsx:100"}, "properties": {"repobilityId": "3bfa8ea0bfeaf1b3", "scanner": "scanner-primary", "fingerprint": "7da6a8c2276ba4e8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-df9a6b82e54f57c7", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/security/users/user-edit-modals.tsx:204"}, "properties": {"repobilityId": "f98c4338d290db1b", "scanner": "scanner-primary", "fingerprint": "df9a6b82e54f57c7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-659b1c7083b4b205", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/security/users/user-create.tsx:418"}, "properties": {"repobilityId": "4c762fbb997c14c7", "scanner": "scanner-primary", "fingerprint": "659b1c7083b4b205", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-be7d13862f708c8e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/security/tabs/permissions-list-tab-new.tsx:206"}, "properties": {"repobilityId": "be5a21bd62adbec9", "scanner": "scanner-primary", "fingerprint": "be7d13862f708c8e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b699373836933a49", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/connect/create-connector.tsx:469"}, "properties": {"repobilityId": "13869b2406a4c82e", "scanner": "scanner-primary", "fingerprint": "b699373836933a49", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-40e834ab5c3e4af1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/connect/dynamic-ui/components.tsx:124"}, "properties": {"repobilityId": "8767141bfa711218", "scanner": "scanner-primary", "fingerprint": "40e834ab5c3e4af1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3ba3937f3484dc41", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/transforms/transform-details.tsx:309"}, "properties": {"repobilityId": "a5939f7283762152", "scanner": "scanner-primary", "fingerprint": "3ba3937f3484dc41", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ebb9ae5bac164047", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/rp-connect/pipelines-details.tsx:408"}, "properties": {"repobilityId": "a7a5b1a5c8004bdc", "scanner": "scanner-primary", "fingerprint": "ebb9ae5bac164047", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8c4243d4389d4c68", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/rp-connect/pipelines-create.tsx:512"}, "properties": {"repobilityId": "b9f17f32ba55256a", "scanner": "scanner-primary", "fingerprint": "8c4243d4389d4c68", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0441e20e81466a54", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/rp-connect/pipeline/pipeline-command-menu.tsx:639"}, "properties": {"repobilityId": "820a293b75905757", "scanner": "scanner-primary", "fingerprint": "0441e20e81466a54", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ee2d9cac8d56ecad", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/topic-list.tsx:527"}, "properties": {"repobilityId": "13a69d480e08ff7c", "scanner": "scanner-primary", "fingerprint": "ee2d9cac8d56ecad", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-a3f8b398e2166eda", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/topic-list-new.tsx:595"}, "properties": {"repobilityId": "736a0c389007025a", "scanner": "scanner-primary", "fingerprint": "a3f8b398e2166eda", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-78868c8124e434a9", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/tab-docu.tsx:156"}, "properties": {"repobilityId": "1fa1714a64c00a87", "scanner": "scanner-primary", "fingerprint": "78868c8124e434a9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0eac1bc46b7fb128", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/topics/create-topic-dialog.tsx:628"}, "properties": {"repobilityId": "539a5c1e84b7a382", "scanner": "scanner-primary", "fingerprint": "0eac1bc46b7fb128", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-94e5fa7410ee04fc", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/tab-config.tsx:22"}, "properties": {"repobilityId": "a8ec7d28250d268d", "scanner": "scanner-primary", "fingerprint": "94e5fa7410ee04fc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-be636c7aba63d474", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/tab-partitions.tsx:45"}, "properties": {"repobilityId": "b83abb768872fdf8", "scanner": "scanner-primary", "fingerprint": "be636c7aba63d474", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-2a944d8e877e40ec", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/topic-produce.tsx:276"}, "properties": {"repobilityId": "a3c248251f1e01a3", "scanner": "scanner-primary", "fingerprint": "2a944d8e877e40ec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-02bdf1004f284eff", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/quick-info.tsx:24"}, "properties": {"repobilityId": "d250d49d0ec798d5", "scanner": "scanner-primary", "fingerprint": "02bdf1004f284eff", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1eeaf9b51a0441b1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/topics/Tab.Messages/preview-settings.tsx:288"}, "properties": {"repobilityId": "960cc9600152beb5", "scanner": "scanner-primary", "fingerprint": "1eeaf9b51a0441b1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8fd18fe7c40a1912", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/topics/Tab.Messages/index.tsx:689"}, "properties": {"repobilityId": "f987372d11a11069", "scanner": "scanner-primary", "fingerprint": "8fd18fe7c40a1912", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2df045ee37fbd232", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/mcp-servers/list/remote-mcp-list-page.tsx:256"}, "properties": {"repobilityId": "361227403303f539", "scanner": "scanner-primary", "fingerprint": "2df045ee37fbd232", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5f7cdf6fa0df296e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/admin/admin-role-bindings.tsx:80"}, "properties": {"repobilityId": "69c10a976909c9ef", "scanner": "scanner-primary", "fingerprint": "5f7cdf6fa0df296e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-eb6efb3bbbe983e3", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/admin/upload-license-page.tsx:93"}, "properties": {"repobilityId": "a1661228ccc73c6c", "scanner": "scanner-primary", "fingerprint": "eb6efb3bbbe983e3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-2e8eb0cdc8ee1e3a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/knowledgebase/create/knowledge-base-create-page.tsx:148"}, "properties": {"repobilityId": "a6618f49c20e38dd", "scanner": "scanner-primary", "fingerprint": "2e8eb0cdc8ee1e3a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-777b1d0fa4ebb8e9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/shadowlinks/create/connection/mtls-configuration.tsx:129"}, "properties": {"repobilityId": "2fb5c630c598b481", "scanner": "scanner-primary", "fingerprint": "777b1d0fa4ebb8e9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dfe0c666edf88acf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/shadowlinks/details/shadow-link-diagram.tsx:30"}, "properties": {"repobilityId": "aa804678c8740451", "scanner": "scanner-primary", "fingerprint": "dfe0c666edf88acf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-24a9421c52c70415", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/agents/list/ai-agent-list-page.tsx:270"}, "properties": {"repobilityId": "e9a4092edeaf2630", "scanner": "scanner-primary", "fingerprint": "24a9421c52c70415", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-31b2431732919a63", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/agents/details/ai-agent-integrations-tab.tsx:202"}, "properties": {"repobilityId": "123fc5294184a0e1", "scanner": "scanner-primary", "fingerprint": "31b2431732919a63", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4707804ecfebf55d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/agents/details/conversation-detail-page.tsx:165"}, "properties": {"repobilityId": "e0795dc6b6d97906", "scanner": "scanner-primary", "fingerprint": "4707804ecfebf55d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c798384d7a9d6d65", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/agents/details/ai-agent-transcripts-tab.tsx:177"}, "properties": {"repobilityId": "a0493bb9efaaeb54", "scanner": "scanner-primary", "fingerprint": "c798384d7a9d6d65", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3ee4ab9a85a06e66", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/agents/details/ai-agent-card-tab.tsx:373"}, "properties": {"repobilityId": "9eaca516e96c598f", "scanner": "scanner-primary", "fingerprint": "3ee4ab9a85a06e66", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6f1fa26acba27493", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/agents/details/a2a/a2a-chat-language-model.tsx:46"}, "properties": {"repobilityId": "f235a1242cfb56ad", "scanner": "scanner-primary", "fingerprint": "6f1fa26acba27493", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b5c86bb20a1f116f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/transcripts/transcript-list-page.tsx:48"}, "properties": {"repobilityId": "820c9c0695ede7a6", "scanner": "scanner-primary", "fingerprint": "b5c86bb20a1f116f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-fd9a5f58e167dd7e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/transcripts/components/transcript-waterfall.tsx:46"}, "properties": {"repobilityId": "dabc8b2e6a16cb34", "scanner": "scanner-primary", "fingerprint": "fd9a5f58e167dd7e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c2adbbdc913b20a9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/transcripts/components/service-filter.tsx:103"}, "properties": {"repobilityId": "6fb5d7ba9b0f1025", "scanner": "scanner-primary", "fingerprint": "c2adbbdc913b20a9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3a87dd248bde2b39", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/transcripts/components/linked-trace-banner.tsx:34"}, "properties": {"repobilityId": "c8eb08fbd3d5f00d", "scanner": "scanner-primary", "fingerprint": "3a87dd248bde2b39", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-08306ed23dc2bfc8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/transcripts/components/tool-event-card.tsx:81"}, "properties": {"repobilityId": "18a5f811261bb4ba", "scanner": "scanner-primary", "fingerprint": "08306ed23dc2bfc8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1c18ed40f715bfbe", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/pages/schemas/schema-context-selector.tsx:67"}, "properties": {"repobilityId": "1a3d7c43a2d353ab", "scanner": "scanner-primary", "fingerprint": "1c18ed40f715bfbe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8a3fe3248c45790b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/reassign-partitions/reassign-partitions.tsx:79"}, "properties": {"repobilityId": "1e7c1ee8d3b4ae2f", "scanner": "scanner-primary", "fingerprint": "8a3fe3248c45790b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7be6fc8019d9d34e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/reassign-partitions/components/indeterminate-checkbox.tsx:21"}, "properties": {"repobilityId": "7c002c51b340370e", "scanner": "scanner-primary", "fingerprint": "7be6fc8019d9d34e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c0b20e5ce299d207", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/reassign-partitions/components/active-reassignments.tsx:56"}, "properties": {"repobilityId": "48a38e33f6868b4b", "scanner": "scanner-primary", "fingerprint": "c0b20e5ce299d207", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-c7b7f0141ae5dc58", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/reassign-partitions/components/active-reassignments.tsx:613"}, "properties": {"repobilityId": "4c7a4c792219498b", "scanner": "scanner-primary", "fingerprint": "c7b7f0141ae5dc58", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-94eb3ddc3cd04291", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/reassign-partitions/logic/reassignment-tracker.ts:124"}, "properties": {"repobilityId": "dd286b21eadb3e90", "scanner": "scanner-primary", "fingerprint": "94eb3ddc3cd04291", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db2d7cdd1a96dfd6", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/pages/reassign-partitions/logic/reassign-logic.ts:189"}, "properties": {"repobilityId": "38977abf07da39e3", "scanner": "scanner-primary", "fingerprint": "db2d7cdd1a96dfd6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e13a5c5a8fc32bb7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/pages/reassign-partitions/logic/reassign-logic.ts:684"}, "properties": {"repobilityId": "d50454db426a2e05", "scanner": "scanner-primary", "fingerprint": "e13a5c5a8fc32bb7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d285b9f9bb2a2f54", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/debug-helper/debug-dialog.tsx:375"}, "properties": {"repobilityId": "cab581b4fed957c2", "scanner": "scanner-primary", "fingerprint": "d285b9f9bb2a2f54", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-58e99ccadfcf3508", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/misc/login-complete.tsx:58"}, "properties": {"repobilityId": "5c34b1c824555844", "scanner": "scanner-primary", "fingerprint": "58e99ccadfcf3508", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f508bfa17d032664", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/misc/login.tsx:94"}, "properties": {"repobilityId": "7b02a0ed19a3ad43", "scanner": "scanner-primary", "fingerprint": "f508bfa17d032664", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bc727fd5cc9c8fbc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/ai-elements/prompt-input.tsx:300"}, "properties": {"repobilityId": "78a9ab157648951a", "scanner": "scanner-primary", "fingerprint": "bc727fd5cc9c8fbc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3d104d4e8a51a6c2", "level": "warning", "message": {"text": "Privileged port 10 in use"}, "properties": {"repobilityId": "735372d6b5594915", "scanner": "scanner-primary", "fingerprint": "3d104d4e8a51a6c2", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "proto/gen/openapi/openapi.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-e4afd97545ddc911", "level": "error", "message": {"text": "Possible secret in frontend/src/components/constants.ts"}, "properties": {"repobilityId": "1f19113246017699", "scanner": "scanner-primary", "fingerprint": "e4afd97545ddc911", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/components/constants.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-245836f735ae12fb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/redpanda-ui/components/code-block.tsx:120"}, "properties": {"repobilityId": "e08fb99abb561c21", "scanner": "scanner-primary", "fingerprint": "245836f735ae12fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/components/redpanda-ui/components/code-block.tsx"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-034507651d45df75", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/redpanda-ui/components/code-block-dynamic.tsx:181"}, "properties": {"repobilityId": "415e353ff5707b9d", "scanner": "scanner-primary", "fingerprint": "034507651d45df75", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/components/redpanda-ui/components/code-block-dynamic.tsx"}, "region": {"startLine": 181}}}]}, {"ruleId": "scanner-be4b99cb7adea16d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/redpanda-ui/components/chart.tsx:78"}, "properties": {"repobilityId": "a1dc20eda0c69bfa", "scanner": "scanner-primary", "fingerprint": "be4b99cb7adea16d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/components/redpanda-ui/components/chart.tsx"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-5ccfefa7c7a763e0", "level": "error", "message": {"text": "Possible secret in frontend/src/components/redpanda-ui/components/input.tsx"}, "properties": {"repobilityId": "8a4ecceb2ba38e1a", "scanner": "scanner-primary", "fingerprint": "5ccfefa7c7a763e0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/components/redpanda-ui/components/input.tsx"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-4e2868aaf403f8bb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/redpanda-ui/components/code-tabs.tsx:207"}, "properties": {"repobilityId": "b965ec7ab9c33670", "scanner": "scanner-primary", "fingerprint": "4e2868aaf403f8bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/components/redpanda-ui/components/code-tabs.tsx"}, "region": {"startLine": 207}}}]}, {"ruleId": "scanner-c42575a7c4f9df6f", "level": "error", "message": {"text": "Insecure pattern 'private_key_in_repo' in frontend/src/components/pages/shadowlinks/create/model.test.ts:71"}, "properties": {"repobilityId": "50432d24bf35bcc6", "scanner": "scanner-primary", "fingerprint": "c42575a7c4f9df6f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["owasp", "private_key_in_repo"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/components/pages/shadowlinks/create/model.test.ts"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-b753b6a2c1fca799", "level": "error", "message": {"text": "Possible secret in docs/config/console.yaml"}, "properties": {"repobilityId": "9bc1cd956d72b030", "scanner": "scanner-primary", "fingerprint": "b753b6a2c1fca799", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/config/console.yaml"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-b753b6a2c1fca799", "level": "error", "message": {"text": "Possible secret in docs/config/console.yaml"}, "properties": {"repobilityId": "9bc1cd956d72b030", "scanner": "scanner-primary", "fingerprint": "b753b6a2c1fca799", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/config/console.yaml"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-b753b6a2c1fca799", "level": "error", "message": {"text": "Possible secret in docs/config/console.yaml"}, "properties": {"repobilityId": "9bc1cd956d72b030", "scanner": "scanner-primary", "fingerprint": "b753b6a2c1fca799", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/config/console.yaml"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-d2820f070c42c603", "level": "error", "message": {"text": "Possible secret in backend/pkg/tools/openapi-generator/v1/main.go"}, "properties": {"repobilityId": "8a03213ff4efe234", "scanner": "scanner-primary", "fingerprint": "d2820f070c42c603", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/pkg/tools/openapi-generator/v1/main.go"}, "region": {"startLine": 392}}}]}, {"ruleId": "scanner-d2820f070c42c603", "level": "error", "message": {"text": "Possible secret in backend/pkg/tools/openapi-generator/v1/main.go"}, "properties": {"repobilityId": "8a03213ff4efe234", "scanner": "scanner-primary", "fingerprint": "d2820f070c42c603", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/pkg/tools/openapi-generator/v1/main.go"}, "region": {"startLine": 428}}}]}, {"ruleId": "scanner-ec0b821656bc2fc2", "level": "error", "message": {"text": "Possible secret in backend/pkg/tools/openapi-generator/v1alpha2/main.go"}, "properties": {"repobilityId": "779b282fe7ad462e", "scanner": "scanner-primary", "fingerprint": "ec0b821656bc2fc2", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/pkg/tools/openapi-generator/v1alpha2/main.go"}, "region": {"startLine": 392}}}]}, {"ruleId": "scanner-ec0b821656bc2fc2", "level": "error", "message": {"text": "Possible secret in backend/pkg/tools/openapi-generator/v1alpha2/main.go"}, "properties": {"repobilityId": "779b282fe7ad462e", "scanner": "scanner-primary", "fingerprint": "ec0b821656bc2fc2", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/pkg/tools/openapi-generator/v1alpha2/main.go"}, "region": {"startLine": 428}}}]}, {"ruleId": "scanner-09cf6c0683317dc7", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c9449f4eee75a8db", "scanner": "scanner-primary", "fingerprint": "09cf6c0683317dc7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-react-doctor.yml"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-09cf6c0683317dc7", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0edea38cf3f7311", "scanner": "scanner-primary", "fingerprint": "09cf6c0683317dc7", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-react-doctor.yml"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-09cf6c0683317dc7", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "84ee3f9c9cfc84f3", "scanner": "scanner-primary", "fingerprint": "09cf6c0683317dc7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-react-doctor.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-6fcb692b84da5258", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "26384c9f011e2b93", "scanner": "scanner-primary", "fingerprint": "6fcb692b84da5258", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/backend-lint-test.yml"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-6fcb692b84da5258", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ad266af0d8976ba1", "scanner": "scanner-primary", "fingerprint": "6fcb692b84da5258", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/backend-lint-test.yml"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-6fcb692b84da5258", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "fd29a95ea2cb9845", "scanner": "scanner-primary", "fingerprint": "6fcb692b84da5258", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/backend-lint-test.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e8a701ed682aa4e3", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ee3316d1a53eb2d9", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "60cdc66da048bf2f", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e8a701ed682aa4e3", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ee3316d1a53eb2d9", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e8a701ed682aa4e3", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ee3316d1a53eb2d9", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "57d8ced0f4ebe1ce", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "438a50b1e6098f71", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e8a701ed682aa4e3", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ee3316d1a53eb2d9", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e8a701ed682aa4e3", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-ee8587e1afdb7f3a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ee3316d1a53eb2d9", "scanner": "scanner-primary", "fingerprint": "ee8587e1afdb7f3a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-verify.yml"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-f5da55dd4261a033", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "95798731c7265114", "scanner": "scanner-primary", "fingerprint": "f5da55dd4261a033", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-visual.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-f5da55dd4261a033", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0ebd78cf426963c6", "scanner": "scanner-primary", "fingerprint": "f5da55dd4261a033", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-visual.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-f5da55dd4261a033", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3b17a1d2a676d434", "scanner": "scanner-primary", "fingerprint": "f5da55dd4261a033", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-visual.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-be84167d8d0618de", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d46447ceaa847a7c", "scanner": "scanner-primary", "fingerprint": "be84167d8d0618de", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/changelog.yml"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-be84167d8d0618de", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2306caf5eb901aa7", "scanner": "scanner-primary", "fingerprint": "be84167d8d0618de", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/changelog.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-be84167d8d0618de", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e60771256ef231fa", "scanner": "scanner-primary", "fingerprint": "be84167d8d0618de", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/changelog.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-be84167d8d0618de", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "79c58aa5b9fa6676", "scanner": "scanner-primary", "fingerprint": "be84167d8d0618de", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/changelog.yml"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-1c2f1a9f721403b0", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "9bdfb2315b8aa7c0", "scanner": "scanner-primary", "fingerprint": "1c2f1a9f721403b0", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/changelog.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a89956212f7d4527", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d5487735b807d5f2", "scanner": "scanner-primary", "fingerprint": "a89956212f7d4527", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/enterprise-ci-skip.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-3ff81993a7836e59", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "50e32922e3ed713c", "scanner": "scanner-primary", "fingerprint": "3ff81993a7836e59", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/enterprise-ci-skip.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a3979cada883cb8", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "59994d64efaa096e", "scanner": "scanner-primary", "fingerprint": "0a3979cada883cb8", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/proto-generate.yml"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-0a3979cada883cb8", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d4ad1f5003663602", "scanner": "scanner-primary", "fingerprint": "0a3979cada883cb8", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/proto-generate.yml"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-2e99d28115560341", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "079abbf008f766e3", "scanner": "scanner-primary", "fingerprint": "2e99d28115560341", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/proto-generate.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0222d0de06e4dc7a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "716b39212571474a", "scanner": "scanner-primary", "fingerprint": "0222d0de06e4dc7a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/buf.yml"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-0222d0de06e4dc7a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "716b39212571474a", "scanner": "scanner-primary", "fingerprint": "0222d0de06e4dc7a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/buf.yml"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-0222d0de06e4dc7a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "716b39212571474a", "scanner": "scanner-primary", "fingerprint": "0222d0de06e4dc7a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/buf.yml"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-a422ae1bee735981", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "dbc0d7ea5ce8d986", "scanner": "scanner-primary", "fingerprint": "a422ae1bee735981", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/buf.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-21ed9084e1ff927c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "82576c46b8e817d3", "scanner": "scanner-primary", "fingerprint": "21ed9084e1ff927c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/repository-dispatch.yml"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-9da6716cbd83decc", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b690754a6631d7e9", "scanner": "scanner-primary", "fingerprint": "9da6716cbd83decc", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/repository-dispatch.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de53ac274e5b4ecf", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "69dd0abad9dba1dc", "scanner": "scanner-primary", "fingerprint": "de53ac274e5b4ecf", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-de53ac274e5b4ecf", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8ead6a2c2bfe167b", "scanner": "scanner-primary", "fingerprint": "de53ac274e5b4ecf", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-37716d9c0a33ad5c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "abfb5752158cf655", "scanner": "scanner-primary", "fingerprint": "37716d9c0a33ad5c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-36c56cb29ce90e65", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ae02b795523e2c7", "scanner": "scanner-primary", "fingerprint": "36c56cb29ce90e65", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/fork-pr-dispatch.yml"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-36c56cb29ce90e65", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ae02b795523e2c7", "scanner": "scanner-primary", "fingerprint": "36c56cb29ce90e65", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/fork-pr-dispatch.yml"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-3b8b3668b93840e4", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "73b2cd2a4cdde147", "scanner": "scanner-primary", "fingerprint": "3b8b3668b93840e4", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/fork-pr-dispatch.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a1e6938349006c93", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d1530e97469d95e1", "scanner": "scanner-primary", "fingerprint": "a1e6938349006c93", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-update-baselines.yml"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-a1e6938349006c93", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a546be8edad7c02b", "scanner": "scanner-primary", "fingerprint": "a1e6938349006c93", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-update-baselines.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-a1e6938349006c93", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2957f3a2fc7867fe", "scanner": "scanner-primary", "fingerprint": "a1e6938349006c93", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-update-baselines.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-983b5d70601fd653", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "7c36cdb6e1cb3f73", "scanner": "scanner-primary", "fingerprint": "983b5d70601fd653", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/frontend-update-baselines.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f12562ea7124e9ce", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "9e27c9208676fe82", "scanner": "scanner-primary", "fingerprint": "f12562ea7124e9ce", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-29f24fea8ff987cd", "level": "note", "message": {"text": "Very large file: frontend/src/routeTree.gen.ts (1705 lines)"}, "properties": {"repobilityId": "ebe9987c9552bc17", "scanner": "scanner-primary", "fingerprint": "29f24fea8ff987cd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-60a86311acaecb92", "level": "note", "message": {"text": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1alpha3/ai_agent_pb.ts (1296 lines)"}, "properties": {"repobilityId": "beccc5ecbf8deec4", "scanner": "scanner-primary", "fingerprint": "60a86311acaecb92", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cfcfdfe79ce39268", "level": "note", "message": {"text": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1alpha3/knowledge_base_pb.ts (1425 lines)"}, "properties": {"repobilityId": "15a69543958bf4b0", "scanner": "scanner-primary", "fingerprint": "cfcfdfe79ce39268", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7655800768c757cc", "level": "note", "message": {"text": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1/kafka_connect_pb.ts (1207 lines)"}, "properties": {"repobilityId": "fcf730d1d2e08fcb", "scanner": "scanner-primary", "fingerprint": "7655800768c757cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e028ba3bdce441a0", "level": "note", "message": {"text": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1/pipeline_pb.ts (1430 lines)"}, "properties": {"repobilityId": "f10f0fa975082b74", "scanner": "scanner-primary", "fingerprint": "e028ba3bdce441a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-645a16e5287e2e13", "level": "note", "message": {"text": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1alpha2/kafka_connect_pb.ts (1207 lines)"}, "properties": {"repobilityId": "0ef3b5a063250630", "scanner": "scanner-primary", "fingerprint": "645a16e5287e2e13", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0fbaa58d2d82232c", "level": "note", "message": {"text": "Very large file: frontend/src/protogen/redpanda/api/dataplane/v1alpha1/kafka_connect_pb.ts (1222 lines)"}, "properties": {"repobilityId": "bf4ad0b1513f3b98", "scanner": "scanner-primary", "fingerprint": "0fbaa58d2d82232c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6daf8de6758f7233", "level": "note", "message": {"text": "Very large file: frontend/src/protogen/redpanda/api/adp/v1alpha1/mcp_server_pb.ts (1114 lines)"}, "properties": {"repobilityId": "102f2bceb46a09d7", "scanner": "scanner-primary", "fingerprint": "6daf8de6758f7233", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f2ec5760364d6f0a", "level": "note", "message": {"text": "Very large file: frontend/src/protogen/redpanda/api/adp/v1alpha1/oauth_provider_pb.ts (934 lines)"}, "properties": {"repobilityId": "9fb2c2738ea2692a", "scanner": "scanner-primary", "fingerprint": "f2ec5760364d6f0a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d00a0bb2477c1538", "level": "note", "message": {"text": "Very large file: frontend/src/protogen/redpanda/core/admin/v2/shadow_link_pb.ts (1801 lines)"}, "properties": {"repobilityId": "f5fc1122f1b6db3f", "scanner": "scanner-primary", "fingerprint": "d00a0bb2477c1538", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8557bcbdb9d59d5d", "level": "note", "message": {"text": "Very large file: frontend/src/protogen/buf/validate/validate_pb.ts (4967 lines)"}, "properties": {"repobilityId": "c378fbcd26516ce7", "scanner": "scanner-primary", "fingerprint": "8557bcbdb9d59d5d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-03b521aa9f71c18a", "level": "note", "message": {"text": "Very large file: frontend/src/protogen/protoc-gen-openapiv2/options/openapiv2_pb.ts (1525 lines)"}, "properties": {"repobilityId": "b62d0fa834b31d63", "scanner": "scanner-primary", "fingerprint": "03b521aa9f71c18a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5c1c6545666c7e8e", "level": "note", "message": {"text": "Very large file: frontend/src/state/backend-api.ts (3214 lines)"}, "properties": {"repobilityId": "3369744877b2e220", "scanner": "scanner-primary", "fingerprint": "5c1c6545666c7e8e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3394fb0fdefce674", "level": "note", "message": {"text": "Very large file: frontend/src/components/redpanda-ui/components/icons.tsx (1040 lines)"}, "properties": {"repobilityId": "314e1e5640c11fce", "scanner": "scanner-primary", "fingerprint": "3394fb0fdefce674", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1888516cff2a02be", "level": "note", "message": {"text": "Very large file: frontend/src/components/pages/topics/Tab.Messages/index.tsx (1927 lines)"}, "properties": {"repobilityId": "5e7d549cf5148bc7", "scanner": "scanner-primary", "fingerprint": "1888516cff2a02be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5f13aca968590ede", "level": "note", "message": {"text": "Very large file: frontend/src/components/pages/agents/details/ai-agent-configuration-tab.tsx (1549 lines)"}, "properties": {"repobilityId": "26cc15f65ce3902e", "scanner": "scanner-primary", "fingerprint": "5f13aca968590ede", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-abbc88b696907293", "level": "note", "message": {"text": "Very large file: frontend/src/components/pages/agents/details/a2a/chat/hooks/use-message-streaming.test.ts (1313 lines)"}, "properties": {"repobilityId": "429f62c1a1f57c7e", "scanner": "scanner-primary", "fingerprint": "abbc88b696907293", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-06ec6610f718b723", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/observability.pb.go (1241 lines)"}, "properties": {"repobilityId": "c106b7a88c509a63", "scanner": "scanner-primary", "fingerprint": "06ec6610f718b723", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9e8e90b715c72027", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/transcript.pb.go (1492 lines)"}, "properties": {"repobilityId": "43385bd8cb2e6b97", "scanner": "scanner-primary", "fingerprint": "9e8e90b715c72027", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0f799f7676480a30", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/sql.pb.go (1218 lines)"}, "properties": {"repobilityId": "af6200d7b0b86015", "scanner": "scanner-primary", "fingerprint": "0f799f7676480a30", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8dd9f44bc32d2bf7", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/knowledge_base.pb.go (4318 lines)"}, "properties": {"repobilityId": "862e49af3dd11750", "scanner": "scanner-primary", "fingerprint": "8dd9f44bc32d2bf7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-45444f50678ac14e", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/ai_agent.pb.go (3321 lines)"}, "properties": {"repobilityId": "6c9496dd1c422da5", "scanner": "scanner-primary", "fingerprint": "45444f50678ac14e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4a35f75d3759d0b1", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/tracing.pb.go (1525 lines)"}, "properties": {"repobilityId": "a239681a47b296d8", "scanner": "scanner-primary", "fingerprint": "4a35f75d3759d0b1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6eccd776fa7ea25c", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha3/mcp.pb.go (2319 lines)"}, "properties": {"repobilityId": "72115405626e92d6", "scanner": "scanner-primary", "fingerprint": "6eccd776fa7ea25c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e945541873a53058", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/user.pb.go (1110 lines)"}, "properties": {"repobilityId": "554ed429b44455fc", "scanner": "scanner-primary", "fingerprint": "e945541873a53058", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9cb4977de1d90e76", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/topic.pb.go (2398 lines)"}, "properties": {"repobilityId": "c5339a15a2635ceb", "scanner": "scanner-primary", "fingerprint": "9cb4977de1d90e76", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3fbc235c756160bc", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/kafka_connect.pb.gw.go (1451 lines)"}, "properties": {"repobilityId": "e32a4f95bf5236e7", "scanner": "scanner-primary", "fingerprint": "3fbc235c756160bc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-883ca60e0647571e", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/security.pb.go (1273 lines)"}, "properties": {"repobilityId": "5f8d0193a886abe2", "scanner": "scanner-primary", "fingerprint": "883ca60e0647571e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-89955c2048797bef", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.gw.go (975 lines)"}, "properties": {"repobilityId": "ab2c0a0d2b0d5678", "scanner": "scanner-primary", "fingerprint": "89955c2048797bef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1350e27bcb3acfce", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/cloud_storage.pb.go (1543 lines)"}, "properties": {"repobilityId": "4a01413eb3238299", "scanner": "scanner-primary", "fingerprint": "1350e27bcb3acfce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-08d923f5e6c2c6dd", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.go (3728 lines)"}, "properties": {"repobilityId": "4aedc798a4e2fb17", "scanner": "scanner-primary", "fingerprint": "08d923f5e6c2c6dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6754c35aff78e7df", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/secret.pb.gw.go (1069 lines)"}, "properties": {"repobilityId": "99a6bf0dee55ac52", "scanner": "scanner-primary", "fingerprint": "6754c35aff78e7df", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3b0d508bf969ba23", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/acl.pb.go (1608 lines)"}, "properties": {"repobilityId": "c8620ce5c82ac171", "scanner": "scanner-primary", "fingerprint": "3b0d508bf969ba23", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b722019c2c6a6b1a", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/kafka_connect.pb.go (3113 lines)"}, "properties": {"repobilityId": "3468a21b84b3cb02", "scanner": "scanner-primary", "fingerprint": "b722019c2c6a6b1a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6714e76fe47753fc", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/quota.pb.go (1759 lines)"}, "properties": {"repobilityId": "080b10f45f50be65", "scanner": "scanner-primary", "fingerprint": "6714e76fe47753fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f764740da0475bfa", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/secret.pb.go (2416 lines)"}, "properties": {"repobilityId": "7846256dfea4f44c", "scanner": "scanner-primary", "fingerprint": "f764740da0475bfa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-016cb87822e2b293", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/mcp.pb.go (2402 lines)"}, "properties": {"repobilityId": "a6edb35ecdea6145", "scanner": "scanner-primary", "fingerprint": "016cb87822e2b293", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eb2ef4ac678939d8", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/transform.pb.go (1027 lines)"}, "properties": {"repobilityId": "1d79811445246481", "scanner": "scanner-primary", "fingerprint": "eb2ef4ac678939d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-712dbe933a434964", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1/shadowlink.pb.go (1077 lines)"}, "properties": {"repobilityId": "d9e2164593c3ab4b", "scanner": "scanner-primary", "fingerprint": "712dbe933a434964", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5ba1ec13f57908e0", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/user.pb.go (1124 lines)"}, "properties": {"repobilityId": "ef75dc9cc224a324", "scanner": "scanner-primary", "fingerprint": "5ba1ec13f57908e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1964f7821e75fa45", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/topic.pb.go (1723 lines)"}, "properties": {"repobilityId": "89a14fdf04c2040c", "scanner": "scanner-primary", "fingerprint": "1964f7821e75fa45", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-973e45d15cf5202f", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/kafka_connect.pb.gw.go (1505 lines)"}, "properties": {"repobilityId": "25443f0cf3afb025", "scanner": "scanner-primary", "fingerprint": "973e45d15cf5202f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ce71d12ecfd71c01", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/cloud_storage.pb.go (1562 lines)"}, "properties": {"repobilityId": "4cdac5d2a7184a78", "scanner": "scanner-primary", "fingerprint": "ce71d12ecfd71c01", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-74425621af8529a3", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/pipeline.pb.go (2269 lines)"}, "properties": {"repobilityId": "1f8201d296e03369", "scanner": "scanner-primary", "fingerprint": "74425621af8529a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eabb50d5f98dd3ac", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/secret.pb.gw.go (1049 lines)"}, "properties": {"repobilityId": "4c26a7da0de34ca4", "scanner": "scanner-primary", "fingerprint": "eabb50d5f98dd3ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2788fd09b1881ccc", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/acl.pb.go (1604 lines)"}, "properties": {"repobilityId": "24bd1a54036b7940", "scanner": "scanner-primary", "fingerprint": "2788fd09b1881ccc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cf1cceb2297f9a47", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/kafka_connect.pb.go (3150 lines)"}, "properties": {"repobilityId": "abc92469a6d7bc7c", "scanner": "scanner-primary", "fingerprint": "cf1cceb2297f9a47", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-73f313e7d57fd819", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/secret.pb.go (2095 lines)"}, "properties": {"repobilityId": "874e9341eb74a8c7", "scanner": "scanner-primary", "fingerprint": "73f313e7d57fd819", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-aaf7df022302fe69", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha2/transform.pb.go (1039 lines)"}, "properties": {"repobilityId": "92f2d41213314d2b", "scanner": "scanner-primary", "fingerprint": "aaf7df022302fe69", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-29da0bb4c8ef8c04", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/user.pb.go (1122 lines)"}, "properties": {"repobilityId": "d5482c22bd53d7a4", "scanner": "scanner-primary", "fingerprint": "29da0bb4c8ef8c04", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-07cbc07cfac79df5", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/topic.pb.go (1721 lines)"}, "properties": {"repobilityId": "a63d8d1c5f273b63", "scanner": "scanner-primary", "fingerprint": "07cbc07cfac79df5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8f62d6ccc04d5a76", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/kafka_connect.pb.gw.go (1505 lines)"}, "properties": {"repobilityId": "e008cc529f192cda", "scanner": "scanner-primary", "fingerprint": "8f62d6ccc04d5a76", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dcb7a20b37511e8d", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/acl.pb.go (1598 lines)"}, "properties": {"repobilityId": "be7ba30d7302630a", "scanner": "scanner-primary", "fingerprint": "dcb7a20b37511e8d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e58cd67af8c67fac", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/kafka_connect.pb.go (3146 lines)"}, "properties": {"repobilityId": "efaca3383d1b9495", "scanner": "scanner-primary", "fingerprint": "e58cd67af8c67fac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f6ba2a2bc6f51087", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/secret.pb.go (1206 lines)"}, "properties": {"repobilityId": "27b2f261b14d5ff7", "scanner": "scanner-primary", "fingerprint": "f6ba2a2bc6f51087", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-df923ad950f22511", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/dataplane/v1alpha1/transform.pb.go (1035 lines)"}, "properties": {"repobilityId": "2abaff6d1cc9142b", "scanner": "scanner-primary", "fingerprint": "df923ad950f22511", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c563c8cd33e4c55c", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/list_messages.pb.go (1002 lines)"}, "properties": {"repobilityId": "debea3d5a83d009a", "scanner": "scanner-primary", "fingerprint": "c563c8cd33e4c55c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-14efc1045132d4e2", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/authentication.pb.go (1215 lines)"}, "properties": {"repobilityId": "ed19da4eec842b49", "scanner": "scanner-primary", "fingerprint": "14efc1045132d4e2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-473a11790b0f24bc", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/pipeline.pb.go (1294 lines)"}, "properties": {"repobilityId": "fcae3630c68902c8", "scanner": "scanner-primary", "fingerprint": "473a11790b0f24bc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-32529b9a273cf9d9", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/debug_bundle.pb.go (1994 lines)"}, "properties": {"repobilityId": "23e16d6bb9258312", "scanner": "scanner-primary", "fingerprint": "32529b9a273cf9d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0007f0cbd30821a9", "level": "note", "message": {"text": "Very large file: backend/pkg/protogen/redpanda/api/console/v1alpha1/cluster_status.pb.go (1699 lines)"}, "properties": {"repobilityId": "7ad08c91c5b8e968", "scanner": "scanner-primary", "fingerprint": "0007f0cbd30821a9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2da0740f21542a06", "level": "note", "message": {"text": "Very large file: backend/pkg/connect/get_connectors_test.go (1737 lines)"}, "properties": {"repobilityId": "023f082bee9ae0bf", "scanner": "scanner-primary", "fingerprint": "2da0740f21542a06", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-249f5f46d1a8430f", "level": "note", "message": {"text": "Very large file: backend/pkg/api/connect/integration/topic_v1_test.go (2555 lines)"}, "properties": {"repobilityId": "d296adcdbe74342d", "scanner": "scanner-primary", "fingerprint": "249f5f46d1a8430f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-24a3b82f34e0844f", "level": "note", "message": {"text": "Very large file: backend/pkg/serde/service_integration_test.go (4448 lines)"}, "properties": {"repobilityId": "20a81d2f8ac2de6b", "scanner": "scanner-primary", "fingerprint": "24a3b82f34e0844f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-c9791d28c3d2d9a2", "level": "note", "message": {"text": "69 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "c9791d28c3d2d9a2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "c5d7eb01be45e958", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "54dc745358b22d54", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "4e6ae622f2feefc9", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "3cadaceee9e64603", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "095e1bda3f4abc56", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "3e1e6549ee7a4250", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-0d23d984364364f8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.mcp.json"}, "properties": {"repobilityId": "3471173d533a12f5", "scanner": "scanner-primary", "fingerprint": "0d23d984364364f8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "mcp_config"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.mcp.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5ebe7a77a5a7f967", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: frontend/.claude/agents/redpanda-logo-fetcher.md"}, "properties": {"repobilityId": "db8fdad2e2a9aeee", "scanner": "scanner-primary", "fingerprint": "5ebe7a77a5a7f967", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.claude/agents/redpanda-logo-fetcher.md"}, "region": {"startLine": 190}}}]}, {"ruleId": "scanner-436c48c0456a9c62", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/tanstack-router-migration/references/route-templates.md"}, "properties": {"repobilityId": "19ed41a04f81dae3", "scanner": "scanner-primary", "fingerprint": "436c48c0456a9c62", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.claude/skills/tanstack-router-migration/references/route-templates.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9cf2392594639cbf", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/ui-development/rules/use-ui-registry.md"}, "properties": {"repobilityId": "e2a8eb025f49d0e0", "scanner": "scanner-primary", "fingerprint": "9cf2392594639cbf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.claude/skills/ui-development/rules/use-ui-registry.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-09debbefd307836c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/api-patterns/SKILL.md"}, "properties": {"repobilityId": "52ca3f37214b077c", "scanner": "scanner-primary", "fingerprint": "09debbefd307836c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.claude/skills/api-patterns/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a52143ca7a4bb3ec", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/api-patterns/rules/api-toast-errors.md"}, "properties": {"repobilityId": "e74497574c539e61", "scanner": "scanner-primary", "fingerprint": "a52143ca7a4bb3ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.claude/skills/api-patterns/rules/api-toast-errors.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5f1b4b0792a5e793", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/api-patterns/rules/protobuf-no-edit.md"}, "properties": {"repobilityId": "363792626a9faff0", "scanner": "scanner-primary", "fingerprint": "5f1b4b0792a5e793", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.claude/skills/api-patterns/rules/protobuf-no-edit.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4fedc0e0f2f91457", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/react-best-practices/rules/async-dependencies.md"}, "properties": {"repobilityId": "756df6d09b27ccd1", "scanner": "scanner-primary", "fingerprint": "4fedc0e0f2f91457", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.claude/skills/react-best-practices/rules/async-dependencies.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6288744b1a022c7a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/react-best-practices/rules/js-length-check-first.md"}, "properties": {"repobilityId": "249552d8336f0c0d", "scanner": "scanner-primary", "fingerprint": "6288744b1a022c7a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.claude/skills/react-best-practices/rules/js-length-check-first.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6fead34f35f586f3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/react-best-practices/rules/rendering-svg-precision.md"}, "properties": {"repobilityId": "11250311b2301424", "scanner": "scanner-primary", "fingerprint": "6fead34f35f586f3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.claude/skills/react-best-practices/rules/rendering-svg-precision.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-81c191d64be0118a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.claude/skills/code-standards/SKILL.md"}, "properties": {"repobilityId": "dac25efa44515476", "scanner": "scanner-primary", "fingerprint": "81c191d64be0118a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.claude/skills/code-standards/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-34e71860b069f7ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/vitest.setup.integration.ts:1"}, "properties": {"repobilityId": "97c9a09570f99b1d", "scanner": "scanner-primary", "fingerprint": "34e71860b069f7ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-096f1f902d82c541", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/tests/mocks/redpanda-ui.ts:12"}, "properties": {"repobilityId": "0e62b1ddbe8485a2", "scanner": "scanner-primary", "fingerprint": "096f1f902d82c541", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c752763e60582536", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/tests/shared/global-setup.mjs:270"}, "properties": {"repobilityId": "0743db2a8d2ef90b", "scanner": "scanner-primary", "fingerprint": "c752763e60582536", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e732e3bb4d1d2ba9", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/tests/test-variant-console/transforms/transforms.spec.ts:14"}, "properties": {"repobilityId": "7550169850187619", "scanner": "scanner-primary", "fingerprint": "e732e3bb4d1d2ba9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0902583f61cfa3ef", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/tests/test-variant-console/quotas/quota-error.spec.ts:34"}, "properties": {"repobilityId": "a20a58bab87a4610", "scanner": "scanner-primary", "fingerprint": "0902583f61cfa3ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ede9bb602bc23238", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/scripts/serve.mjs:38"}, "properties": {"repobilityId": "cea6ed93a37270ea", "scanner": "scanner-primary", "fingerprint": "ede9bb602bc23238", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7c1db3f45db14eb7", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/test-utils.tsx:21"}, "properties": {"repobilityId": "34d4467f919f33e6", "scanner": "scanner-primary", "fingerprint": "7c1db3f45db14eb7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96a6f4805b0a418f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/federation/console-app.test.tsx:108"}, "properties": {"repobilityId": "115ba0a1fe660d90", "scanner": "scanner-primary", "fingerprint": "96a6f4805b0a418f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bb9ff56fce7639b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/protogen/redpanda/ui/registry/autoform/v1/auto_form_ui_pb.ts:1"}, "properties": {"repobilityId": "c39f66617a60b088", "scanner": "scanner-primary", "fingerprint": "9bb9ff56fce7639b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5602cb7628a7039a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/protogen/buf/validate/validate_pb.ts:26"}, "properties": {"repobilityId": "bb81f764cb7c772d", "scanner": "scanner-primary", "fingerprint": "5602cb7628a7039a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-557e59d5fc98b6a9", "level": "none", "message": {"text": "Commented-code block (32 lines) in frontend/src/state/backend-api.ts:552"}, "properties": {"repobilityId": "17b60e2fcc40e24b", "scanner": "scanner-primary", "fingerprint": "557e59d5fc98b6a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0e4f0a83c75b04e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/state/backend-api.ts:204"}, "properties": {"repobilityId": "dc38ddb63721c79a", "scanner": "scanner-primary", "fingerprint": "f0e4f0a83c75b04e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dab98b18bfa3b95d", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/state/rest-interfaces.ts:814"}, "properties": {"repobilityId": "10782f0cc119aa70", "scanner": "scanner-primary", "fingerprint": "dab98b18bfa3b95d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1503816585e2df87", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/utils/message-table-helpers.test.ts:101"}, "properties": {"repobilityId": "4f4accb3032cf09b", "scanner": "scanner-primary", "fingerprint": "1503816585e2df87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b33d3658b9054ff7", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/utils/tsx-utils.tsx:589"}, "properties": {"repobilityId": "8921c99e8790a932", "scanner": "scanner-primary", "fingerprint": "b33d3658b9054ff7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4336f8c3c69d1b47", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/utils/fetch-with-timeout.ts:28"}, "properties": {"repobilityId": "569cac200b0fa513", "scanner": "scanner-primary", "fingerprint": "4336f8c3c69d1b47", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-96bca8c80e492ec2", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/utils/formatters/config-value-formatter.ts:85"}, "properties": {"repobilityId": "7a0e5a60c6a3e3dd", "scanner": "scanner-primary", "fingerprint": "96bca8c80e492ec2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d04c73664613409", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/components/redpanda-ui/components/checkbox.tsx:10"}, "properties": {"repobilityId": "4cb12d13aec5d471", "scanner": "scanner-primary", "fingerprint": "3d04c73664613409", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2377c9276b08ba7", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/redpanda-ui/components/radio-group.tsx:31"}, "properties": {"repobilityId": "3dcfc264af9fb2dc", "scanner": "scanner-primary", "fingerprint": "f2377c9276b08ba7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d782b7929d632a1a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/redpanda-ui/components/code-block-dynamic.tsx:328"}, "properties": {"repobilityId": "b3c044fa13f1d408", "scanner": "scanner-primary", "fingerprint": "d782b7929d632a1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bfcf0a079c0d76a2", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/redpanda-ui/components/switch.tsx:22"}, "properties": {"repobilityId": "01cc3c7051977cc9", "scanner": "scanner-primary", "fingerprint": "bfcf0a079c0d76a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b4b79f5cc6579af", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/redpanda-ui/components/tabs.tsx:330"}, "properties": {"repobilityId": "1f23e7d71b46fcca", "scanner": "scanner-primary", "fingerprint": "6b4b79f5cc6579af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-989d3fbed93ac227", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/redpanda-ui/components/auto-form/field-utils.ts:3"}, "properties": {"repobilityId": "f18acb258f2575c9", "scanner": "scanner-primary", "fingerprint": "989d3fbed93ac227", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd1a1263a33ec09b", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/components/redpanda-ui/components/auto-form/helpers.ts:199"}, "properties": {"repobilityId": "3903491ba5d69422", "scanner": "scanner-primary", "fingerprint": "cd1a1263a33ec09b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d29132830340faf7", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/redpanda-ui/components/auto-form/runtime-provider.tsx:67"}, "properties": {"repobilityId": "6552338286757608", "scanner": "scanner-primary", "fingerprint": "d29132830340faf7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eea42e6c7044540f", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/components/redpanda-ui/components/auto-form/fields/slider.tsx:27"}, "properties": {"repobilityId": "97a46c0d7533c1d7", "scanner": "scanner-primary", "fingerprint": "eea42e6c7044540f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-371967359fd43a0b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/redpanda-ui/lib/utils.tsx:28"}, "properties": {"repobilityId": "b769f7b04469388e", "scanner": "scanner-primary", "fingerprint": "371967359fd43a0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1597263fe596acad", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/components/ui/connect/log-explorer.test.tsx:110"}, "properties": {"repobilityId": "d3c9917a3d570659", "scanner": "scanner-primary", "fingerprint": "1597263fe596acad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-115c051d6eccd8e1", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/security/shared/acl-model.test.tsx:359"}, "properties": {"repobilityId": "16569b9ab5ebf3ff", "scanner": "scanner-primary", "fingerprint": "115c051d6eccd8e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e68d45fc5473fbc", "level": "note", "message": {"text": "Legacy-named symbol `AclsTabLegacy` in frontend/src/components/pages/security/tabs/acls-tab.tsx:276"}, "properties": {"repobilityId": "716d15d0553eef71", "scanner": "scanner-primary", "fingerprint": "9e68d45fc5473fbc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c1a27286d21f3093", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/connect/overview.tsx:133"}, "properties": {"repobilityId": "d867e7d279c75e68", "scanner": "scanner-primary", "fingerprint": "c1a27286d21f3093", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1ceea71a87f5867", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/rp-connect/onboarding/add-user-step.test.tsx:464"}, "properties": {"repobilityId": "9f19402b946834c1", "scanner": "scanner-primary", "fingerprint": "a1ceea71a87f5867", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b37354832a10b3b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/rp-connect/onboarding/add-topic-step.tsx:132"}, "properties": {"repobilityId": "05104b3a7b54825c", "scanner": "scanner-primary", "fingerprint": "0b37354832a10b3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62759140359bb2e3", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/rp-connect/pipeline/index.test.tsx:667"}, "properties": {"repobilityId": "13351afb5288e40b", "scanner": "scanner-primary", "fingerprint": "62759140359bb2e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc00f4b637d63e65", "level": "note", "message": {"text": "Legacy-named symbol `is_deprecated` in frontend/src/components/pages/rp-connect/template-gallery/__tests__/template-yaml-schema.test.tsx:31"}, "properties": {"repobilityId": "fe97caef12054809", "scanner": "scanner-primary", "fingerprint": "fc00f4b637d63e65", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-81038b5a164dfa6f", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/components/pages/topics/Tab.Messages/preview-settings.tsx:353"}, "properties": {"repobilityId": "d7e66639e892038a", "scanner": "scanner-primary", "fingerprint": "81038b5a164dfa6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-229ebe5a7f0a1b78", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/consumers/modals.tsx:71"}, "properties": {"repobilityId": "8a97ba4535952dcb", "scanner": "scanner-primary", "fingerprint": "229ebe5a7f0a1b78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4011b97935304dfa", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/observability/observability-page.test.tsx:28"}, "properties": {"repobilityId": "cc03b87bee676d8e", "scanner": "scanner-primary", "fingerprint": "4011b97935304dfa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6db7256e8cad27b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/shadowlinks/create/shadowlink-create-page.test.tsx:480"}, "properties": {"repobilityId": "ee14c2380cfdd1cd", "scanner": "scanner-primary", "fingerprint": "a6db7256e8cad27b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f99c24b1059b5f60", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/pages/agents/details/a2a/a2a-chat-language-model.tsx:252"}, "properties": {"repobilityId": "7a8250f5fc13da90", "scanner": "scanner-primary", "fingerprint": "f99c24b1059b5f60", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-de73085e28621473", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/components/pages/agents/details/a2a/chat/utils/parse-a2a-error.test.ts:20"}, "properties": {"repobilityId": "f11b25c5f3edf5f6", "scanner": "scanner-primary", "fingerprint": "de73085e28621473", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6063878269a4105", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/agents/details/a2a/chat/hooks/use-message-streaming.ts:354"}, "properties": {"repobilityId": "5a36093324255fc0", "scanner": "scanner-primary", "fingerprint": "c6063878269a4105", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cba1d856dbd96857", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/components/pages/agents/details/a2a/chat/hooks/use-message-streaming.test.ts:920"}, "properties": {"repobilityId": "0caa6c399f95c25a", "scanner": "scanner-primary", "fingerprint": "cba1d856dbd96857", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0fdab9c87fc79c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/schemas/edit-compatibility.test.tsx:205"}, "properties": {"repobilityId": "5d853eac0336836e", "scanner": "scanner-primary", "fingerprint": "a0fdab9c87fc79c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a2984ccc5beac4c", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/schemas/edit-mode.test.tsx:263"}, "properties": {"repobilityId": "e61840009dc603fa", "scanner": "scanner-primary", "fingerprint": "2a2984ccc5beac4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2f34400b94607f1", "level": "note", "message": {"text": "Legacy-named symbol `brokersOld` in frontend/src/components/pages/reassign-partitions/reassign-partitions.tsx:637"}, "properties": {"repobilityId": "4b013e282c561e5e", "scanner": "scanner-primary", "fingerprint": "d2f34400b94607f1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-192bf406462991d3", "level": "note", "message": {"text": "Legacy-named symbol `brokersOld` in frontend/src/components/pages/reassign-partitions/components/active-reassignments.tsx:547"}, "properties": {"repobilityId": "684d6bd472df7c38", "scanner": "scanner-primary", "fingerprint": "192bf406462991d3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-51620ab14347298c", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/reassign-partitions/components/bandwidth-slider.tsx:20"}, "properties": {"repobilityId": "263a066fbcb3d3d2", "scanner": "scanner-primary", "fingerprint": "51620ab14347298c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eac7066a1f499ef0", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/pages/reassign-partitions/logic/reassignment-tracker.ts:44"}, "properties": {"repobilityId": "209d9cdf1b4ed5dc", "scanner": "scanner-primary", "fingerprint": "eac7066a1f499ef0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2869ef2a66ffabf0", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/pages/reassign-partitions/logic/reassign-logic.ts:19"}, "properties": {"repobilityId": "0249a1b7557bddfa", "scanner": "scanner-primary", "fingerprint": "2869ef2a66ffabf0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c13ba6d10bda8aa9", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/debug-helper/connect-config-fixtures.ts:12"}, "properties": {"repobilityId": "4acfb9f0e7e5d6c0", "scanner": "scanner-primary", "fingerprint": "c13ba6d10bda8aa9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c3f3d10145cff3e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/misc/router-sync.tsx:57"}, "properties": {"repobilityId": "a6a443782af64387", "scanner": "scanner-primary", "fingerprint": "4c3f3d10145cff3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-067cb5b342e0b057", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/misc/login-complete.tsx:74"}, "properties": {"repobilityId": "563f5baec4b843d4", "scanner": "scanner-primary", "fingerprint": "067cb5b342e0b057", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68da72f2ce1eca08", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/components/misc/error-boundary.tsx:23"}, "properties": {"repobilityId": "98854dbf317116d7", "scanner": "scanner-primary", "fingerprint": "68da72f2ce1eca08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-672d0a234d437d96", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/ai-elements/prompt-input.tsx:671"}, "properties": {"repobilityId": "86da27f1ca5b60cf", "scanner": "scanner-primary", "fingerprint": "672d0a234d437d96", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-98ab3944f71ed79b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/ai-elements/tool.test.tsx:164"}, "properties": {"repobilityId": "d0dd0d1133cac754", "scanner": "scanner-primary", "fingerprint": "98ab3944f71ed79b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b3e0e57d6ce33b5", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/components/ai-elements/shimmer.test.tsx:17"}, "properties": {"repobilityId": "53618e4b2ff9ec4e", "scanner": "scanner-primary", "fingerprint": "9b3e0e57d6ce33b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13d4b8bf2d3cd244", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/debugBundle/debug-bundle-link.tsx:47"}, "properties": {"repobilityId": "787995b77ad25673", "scanner": "scanner-primary", "fingerprint": "13d4b8bf2d3cd244", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-566161b4f7775bf0", "level": "note", "message": {"text": "Legacy-named symbol `TopicListLegacy` in frontend/src/routes/topics/index.tsx:16"}, "properties": {"repobilityId": "ef69226c3e1fac6b", "scanner": "scanner-primary", "fingerprint": "566161b4f7775bf0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8ed98ab7a973d751", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/react-query/react-query.utils.ts:45"}, "properties": {"repobilityId": "018be83ed7bb3ac2", "scanner": "scanner-primary", "fingerprint": "8ed98ab7a973d751", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f94cb890aecf211", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/topic.tsx:67"}, "properties": {"repobilityId": "3ee463fa35e9bec0", "scanner": "scanner-primary", "fingerprint": "6f94cb890aecf211", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ccc177ed7346c67d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/consumer-group.tsx:28"}, "properties": {"repobilityId": "425670dc0ecf433c", "scanner": "scanner-primary", "fingerprint": "ccc177ed7346c67d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ecba4ab191a4b958", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/kafka-connect.tsx:17"}, "properties": {"repobilityId": "8dbbb64ba74cf2b3", "scanner": "scanner-primary", "fingerprint": "ecba4ab191a4b958", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-41121b4d311d2f0e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/remote-mcp.tsx:284"}, "properties": {"repobilityId": "57b230bc2c4c89ba", "scanner": "scanner-primary", "fingerprint": "41121b4d311d2f0e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0dcdc1f04787302f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/schema-registry.tsx:58"}, "properties": {"repobilityId": "4a6109541ffe6c0a", "scanner": "scanner-primary", "fingerprint": "0dcdc1f04787302f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1088336ee31f23d4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/onboarding.tsx:14"}, "properties": {"repobilityId": "79059807790aed5b", "scanner": "scanner-primary", "fingerprint": "1088336ee31f23d4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-261bd706249c6e88", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/react-query/api/ai-agent.tsx:247"}, "properties": {"repobilityId": "204e5a0b02fa2d53", "scanner": "scanner-primary", "fingerprint": "261bd706249c6e88", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a6726e789c577be8", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/hooks/use-aigw-transport.ts:21"}, "properties": {"repobilityId": "f08b0f869890468e", "scanner": "scanner-primary", "fingerprint": "a6726e789c577be8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-910bf52d467fb3bd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/hooks/use-news-feed.ts:26"}, "properties": {"repobilityId": "2c1a5015be027173", "scanner": "scanner-primary", "fingerprint": "910bf52d467fb3bd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0dd045459d5149b6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/hubspot/hubspot.helper.ts:68"}, "properties": {"repobilityId": "c2b6f9e9807b3071", "scanner": "scanner-primary", "fingerprint": "0dd045459d5149b6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a53b371c04036460", "level": "error", "message": {"text": "Dangling fetch: POST https://api.hsforms.com/submissions/v3/integration/submit/${portalId}/${formId} (frontend/src/hubspot/hubspot.helper.ts:68)"}, "properties": {"repobilityId": "a4b2c2f02afa1e95", "scanner": "scanner-primary", "fingerprint": "a53b371c04036460", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b8073f7bf758f6d0", "level": "note", "message": {"text": "Unused endpoint: USE /api/*"}, "properties": {"repobilityId": "ec7ebd28d11ea9d6", "scanner": "scanner-primary", "fingerprint": "b8073f7bf758f6d0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a7da4485ffd5140", "level": "note", "message": {"text": "Unused endpoint: GET /*"}, "properties": {"repobilityId": "41f8dcc8745125e4", "scanner": "scanner-primary", "fingerprint": "7a7da4485ffd5140", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}