{"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-06e441a64fe8e901", "name": "Stray `console.log` in TS/JS \u2014 apps/update-server/src/github.ts:94", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/update-server/src/github.ts: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-8ca17c349dffd572", "name": "Stray `console.log` in TS/JS \u2014 apps/update-server/src/index.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/update-server/src/index.ts:26"}, "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-74a5b3a31580deb9", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/website/src/app/layout.tsx:44", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/website/src/app/layout.tsx:44"}, "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-0a1c79c222447817", "name": "Stray `console.log` in TS/JS \u2014 apps/deprecated-cli/src/index.ts:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/deprecated-cli/src/index.ts:8"}, "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-bbeaf9cc1851044d", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/scripts/bundle-eslint-server.ts:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/scripts/bundle-eslint-server.ts: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-0efc621978a6ce9f", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/scripts/clear-vite-cache.ts:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/scripts/clear-vite-cache.ts:53"}, "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-05d778f1ef54b55b", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/scripts/clean-data.ts:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/scripts/clean-data.ts:24"}, "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-73be755f82156cc5", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/etc/windows/windowsSign.ts:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/etc/windows/windowsSign.ts:29"}, "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-40a82366b03bba2f", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/etc/forge-plugins/squirrel-installer-name-fix.ts:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/etc/forge-plugins/squirrel-installer-name-fix.ts:60"}, "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-e9d486a073243898", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/vite-plugins/license-plugin.ts:233", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/vite-plugins/license-plugin.ts:233"}, "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-3023d99184b3fc2c", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/src/ui-preload/index.ts:88", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/ui-preload/index.ts:88"}, "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-e0c936997681a152", "name": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/shared/chromium-errors/codes.ts:1014", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/shared/chromium-errors/codes.ts:1014"}, "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-410692a92252ee06", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sidebar.tsx:80", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sidebar.tsx:80"}, "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-360b2d3aed074631", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/agent-settings.worktr", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/agent-settings.worktree-setup.tsx:579"}, "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-cc900327ca567559", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/screens/settings/sections/plugins-section.tsx:", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/screens/settings/sections/plugins-section.tsx:43"}, "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-92bf6090db11f8d0", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/custom-providers-sect", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/custom-providers-section.tsx:1107"}, "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-aadeda0c53722163", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/history-section.tsx:3", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/history-section.tsx:329"}, "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-1d7b1384bc5a85cc", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/personalization-setti", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/personalization-settings-section.tsx:250"}, "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-1830412d670f896a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/models-providers-sect", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/models-providers-section.tsx:1076"}, "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-b9434208895e6c1f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/about-section.tsx:366", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/about-section.tsx:366"}, "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-c55a50919833435d", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/_components/settings-scroll-ta", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/_components/settings-scroll-tabs.tsx:73"}, "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-a55e47e0d85b9290", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/onboarding/steps/02-auth.tsx:881", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/onboarding/steps/02-auth.tsx:881"}, "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-6b118e7665167d00", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/file-tree/file-tree-node.tsx:152", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/file-tree/file-tree-node.tsx:152"}, "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-856a5c6ae3f38fd2", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/file-tree/file-tree-workspace-view", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/file-tree/file-tree-workspace-view.tsx:1005"}, "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-d51bacef103b6816", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/file-tree/file-tree-sidebar.tsx:14", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/file-tree/file-tree-sidebar.tsx:149"}, "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-9af9d9878c776dc9", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/file-tree/file-preview-tab-content", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/file-tree/file-preview-tab-content.tsx:1062"}, "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-d349397e2f0bf4c8", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/command-center/_components/command", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/command-center/_components/command-center-footer.tsx:54"}, "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-fc41b90cdf1ff2b4", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/command-center/_components/command", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/command-center/_components/command-center-row.tsx:98"}, "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-d599c79bfbb1de15", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/command-center/_components/command", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/command-center/_components/command-center-file-filter.tsx:84"}, "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-fbbad7b3eb741eda", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/worksp", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/workspace-setup-status.tsx:151"}, "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-1e88b98d7b703cbc", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-user-plan-action.tsx:89"}, "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-e650bfe583516ce3", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/tool-a", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/tool-approval-select.tsx:179"}, "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-ab77904982b946df", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/model-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/model-select.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-d0d5abfffe76097e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/worksp", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/workspace-select.tsx:438"}, "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-2f99f5e0a30e5649", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/empty-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/empty-chat-suggestions.tsx:110"}, "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-499c007639200ac4", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/thinking.tsx:59"}, "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-03ef2003da2254fa", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/list-library-docs.tsx:21"}, "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-fe6d9b917db679ed", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/update-workspace-md.tsx:26"}, "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-f728d0839b85e0e3", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/execute-sandbox-js.tsx:210"}, "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-44f1ccb682952bb9", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/grep-search.tsx:20"}, "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-3e7d73d11ef72e07", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/ls.tsx:29"}, "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-84298ebb4d8e4303", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/read-console-logs.tsx:151"}, "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-1a810092ab108899", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/execute-shell-command.tsx:491"}, "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-e42299a4aa3e4275", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/mkdir.tsx:31"}, "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-db3139c38acb25dc", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/copy.tsx:75"}, "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-772cdff9bf54902e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/glob.tsx:21"}, "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-6c8df80f122f7b59", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/delete.tsx:109"}, "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-509ba43893cf61ff", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/get-linting-diagnostics.tsx:62"}, "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-6a10e27bda036dea", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/ask-user-questions.tsx:83"}, "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-41dbdf365d89ab76", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/read.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-979170bc8e1b75c2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messa", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/read.tsx:114"}, "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-b630001189f439a1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/search-in-library-docs.tsx:21"}, "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-f55a7389b5a8c928", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/shared/tool-part-ui-not-collapsible.tsx:40"}, "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-6ff6a266f6ecf8be", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/write/create-log.tsx:22"}, "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-d950cd076f6ef099", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/write/create-plan.tsx:66"}, "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-af6424b45a6d26ec", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/write/generic-write.tsx:255"}, "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-3c7f7ecf262be3bf", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/multi-edit/plan-checkoff.tsx:69"}, "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-24c30360caad16c6", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/multi-edit/log-edit.tsx:22"}, "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-f8e54e2b549cfd18", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/messag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/multi-edit/generic-multi-edit.tsx:263"}, "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-5e4d4563cdd32ff1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/mentions/suggestion-popup.tsx:182"}, "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-ac953715cb4eec34", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/mentions/file-path-tree.tsx:45"}, "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-3ff348eb116437de", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/mentions/workspace-preview-summary.tsx:22"}, "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-6b2a385ff0ea0ace", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/shared/inline-badge.tsx:154"}, "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-7a42d4980475483f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/slash/suggestion-popup.tsx:99"}, "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-ffa3e98fd90de1b3", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/workspace-md-section.tsx:152"}, "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-b80cdea82855950a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/log-channel-section.tsx:92"}, "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-57dacf390f2ff3fe", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/plan-section.tsx:134"}, "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-2e4f06eb40500557", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/user-question-section.tsx:710"}, "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-d6eb72b69048b568", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/file-diff-section.tsx:154"}, "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-75c066f547194a1d", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/stories/w", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/stories/workspace-md-section.stories.tsx:45"}, "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-d5171962753b76de", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/content/_components/omnibox/index.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/content/_components/omnibox/index.tsx:348"}, "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-fb3b3d389dd5d95a", "name": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/ui/screens/main/content/_components/omnibox/index.tsx:244", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/ui/screens/main/content/_components/omnibox/index.tsx:244"}, "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-dd83e1e8eadbc46b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/content/_components/omnibox/utils.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/content/_components/omnibox/utils.tsx:266"}, "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-f16fe3bab9b16013", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/content/_components/control-button", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/content/_components/control-buttons/search-bar.tsx:217"}, "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-44f15518633aff06", "name": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/ui/screens/main/_components/global-hotkey-bindings.tsx:321", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/ui/screens/main/_components/global-hotkey-bindings.tsx:321"}, "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-25087e22f66df711", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/_components/agent-preview-panel.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/_components/agent-preview-panel.tsx:422"}, "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-4982f4e3ec968c37", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/_components/sidebar-titlebar-row.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/_components/sidebar-titlebar-row.tsx:105"}, "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-8b523f16cbcffc35", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/_components/sidebar-auth-footer.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/_components/sidebar-auth-footer.tsx:85"}, "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-5168537e72623c62", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/sidebar/worktree-cleanup-badge.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/sidebar/worktree-cleanup-badge.tsx:91"}, "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-a022d3d927b5a3f1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/sidebar/agents-list/index.tsx:553", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/sidebar/agents-list/index.tsx:553"}, "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-36f1e0cd41621ffe", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/sidebar/agents-list/_components/ag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/sidebar/agents-list/_components/agent-card.tsx:236"}, "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-c490ab1a9fd02940", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/src/ui/utils/theme-color-sync.ts:99", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/ui/utils/theme-color-sync.ts:99"}, "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-92343587e015941b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/model-thinking-panel.tsx:48", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/model-thinking-panel.tsx:48"}, "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-c012e313790ea03e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/components/file-icon.tsx:34", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/components/file-icon.tsx:34"}, "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-27de327457728467", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/components/ui/streaming-code-block.tsx:175", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/components/ui/streaming-code-block.tsx:175"}, "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-6416efed71017839", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/components/ui/mermaid.tsx:147", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/components/ui/mermaid.tsx:147"}, "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-5a37a7189d1a3050", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/components/ui/code-block.tsx:280", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/components/ui/code-block.tsx:280"}, "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-7ac7ae7ef8622a5f", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/src/ui/components/ui/CodeTheme.stories.tsx:136", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/ui/components/ui/CodeTheme.stories.tsx:136"}, "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-4295900b35ffbd94", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/attachment-renderers/shared/expanded", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/attachment-renderers/shared/expanded-shell.tsx:27"}, "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-dbc2d99ec2dd53dd", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/file-preview/previews/fallback.tsx:1", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/file-preview/previews/fallback.tsx:14"}, "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-fbc219a841880d8a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/file-preview/previews/font.tsx:95", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/file-preview/previews/font.tsx:95"}, "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-f2dea277578a6bce", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/file-preview/previews/audio.tsx:15", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/file-preview/previews/audio.tsx:15"}, "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-36843e767cb671ea", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/pages/routes/home.tsx:183", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/pages/routes/home.tsx:183"}, "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-d331ef5efd2d53eb", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/pages/routes/diff-review/$agentInstanceId.tsx:104", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/pages/routes/diff-review/$agentInstanceId.tsx:104"}, "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-950bc2aeab430c39", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/index.ts:139", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/index.ts:139"}, "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-40446ca18790c83d", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/agents/shared/prompts/utils/workspace-info/get-package-manager.t", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/agents/shared/prompts/utils/workspace-info/get-package-manager.ts:35"}, "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-af2f508de6aa19a8", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/agents/shared/prompts/utils/workspace-info/get-project-root.ts:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/agents/shared/prompts/utils/workspace-info/get-project-root.ts:23"}, "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-07b867ffc5ac8415", "name": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/backend/services/file-picker.ts:65", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/backend/services/file-picker.ts:65"}, "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-eda7281b76d21554", "name": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/backend/services/window-layout/ui-controller.ts:927", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/backend/services/window-layout/ui-controller.ts:927"}, "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-ef81d481ccb21c55", "name": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/backend/services/window-layout/browsing-tab-controller.ts:812", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/backend/services/window-layout/browsing-tab-controller.ts:812"}, "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-9b7445b3ba26bd45", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/services/window-layout/browsing-tab-controller.ts:2499", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/services/window-layout/browsing-tab-controller.ts:2499"}, "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-38aa06b59ffb309d", "name": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/backend/services/window-layout/tab-error-handler/chromium-error-co", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/backend/services/window-layout/tab-error-handler/chromium-error-codes.ts:1014"}, "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-bee0692e0338f8a4", "name": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/services/toolbox/tools/browser/read-console-logs.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/services/toolbox/tools/browser/read-console-logs.ts:33"}, "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-97e79536299b8190", "name": "Stray `console.log` in TS/JS \u2014 scripts/release/nightly-version.ts:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/release/nightly-version.ts:122"}, "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-07d86374a5859ddd", "name": "Stray `console.log` in TS/JS \u2014 scripts/release/index.ts:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/release/index.ts: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-e8a6edf44acfa8e6", "name": "Stray `console.log` in TS/JS \u2014 scripts/experiments/extract-compression-test-data.ts:149", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/experiments/extract-compression-test-data.ts:149"}, "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-54aafa079beff87d", "name": "Stray `console.log` in TS/JS \u2014 agent/runtime-node/build.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent/runtime-node/build.ts:30"}, "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-d82385182415250c", "name": "Stray `console.log` in TS/JS \u2014 agent/runtime-node/src/__tests__/glob-ripgrep.test.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent/runtime-node/src/__tests__/glob-ripgrep.test.ts: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-afa46f1a2787eba9", "name": "Stray `console.log` in TS/JS \u2014 agent/runtime-node/src/__tests__/grep-ripgrep.test.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent/runtime-node/src/__tests__/grep-ripgrep.test.ts: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-309dd2d48b661fff", "name": "Stray `console.log` in TS/JS \u2014 agent/runtime-node/src/__tests__/utils/test-fixtures.ts:132", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent/runtime-node/src/__tests__/utils/test-fixtures.ts:132"}, "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-671b25536dfa99f7", "name": "TODO/FIXME marker in shipping code \u2014 agent/runtime-node/src/glob/glob-ripgrep.ts:99", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 agent/runtime-node/src/glob/glob-ripgrep.ts:99"}, "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-9dcf682f8fad0820", "name": "Stray `console.log` in TS/JS \u2014 packages/agent-shell/build.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/agent-shell/build.js:14"}, "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-636eff3f7aedaaeb", "name": "Stray `console.log` in TS/JS \u2014 packages/karton/build.js:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/karton/build.js:40"}, "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-3b4d3b55a65384ab", "name": "Stray `console.log` in TS/JS \u2014 packages/karton/test/client/karton-client.test.ts:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/karton/test/client/karton-client.test.ts:44"}, "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-541eb5d15e1f803a", "name": "Stray `console.log` in TS/JS \u2014 packages/karton/test/server/karton-server-lazy-registration.test.ts:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/karton/test/server/karton-server-lazy-registration.test.ts:82"}, "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-17b3b58fe3f9f28a", "name": "TODO/FIXME marker in shipping code \u2014 packages/karton/src/server/karton-server.ts:254", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/karton/src/server/karton-server.ts:254"}, "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-4d9d7021ad8c1669", "name": "Stray `console.log` in TS/JS \u2014 packages/stage-ui/src/generate-theme-colors.ts:377", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/stage-ui/src/generate-theme-colors.ts:377"}, "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-ce44d6992772da05", "name": "Stray `console.log` in TS/JS \u2014 packages/stage-ui/src/code-block/extract-vars-from-example-theme.ts:622", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/stage-ui/src/code-block/extract-vars-from-example-theme.ts:622"}, "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-428bc7428438b2e8", "name": "Stray `console.log` in TS/JS \u2014 packages/stage-ui/src/code-block/generate-code-block-theme-json.ts:910", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/stage-ui/src/code-block/generate-code-block-theme-json.ts:910"}, "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-1950002c45ebb576", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/stage-ui/src/components/select.tsx:481", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/stage-ui/src/components/select.tsx:481"}, "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-657dd7da78dee253", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/stage-ui/src/components/searchable-select.tsx:364", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/stage-ui/src/components/searchable-select.tsx:364"}, "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-41b7c05b353f9b99", "name": "Stray `console.log` in TS/JS \u2014 packages/agent-core/build.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/agent-core/build.js:14"}, "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-06089a9b91a86e18", "name": "TODO/FIXME marker in shipping code \u2014 packages/agent-core/src/agents/base-agent.ts:938", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/agent-core/src/agents/base-agent.ts:938"}, "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-b29a36548d50df3e", "name": "Dockerfile runs as root: apps/update-server/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: apps/update-server/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e0c1b6417a889249", "name": "Docker base image is tag-pinned but not digest-pinned: node:22-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "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-ed37e0b42fd1850f", "name": "Insecure pattern 'dangerous_innerhtml' in apps/website/src/app/layout.tsx:44", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/website/src/app/layout.tsx:44"}, "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-6924459c0a11923b", "name": "Insecure pattern 'node_child_process' in apps/browser/scripts/bundle-eslint-server.ts:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/scripts/bundle-eslint-server.ts:19"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2bb49d4e341f1ecd", "name": "Insecure pattern 'node_child_process' in apps/browser/scripts/clear-vite-cache.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/scripts/clear-vite-cache.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b73174391b5791ae", "name": "Insecure pattern 'cors_wildcard' in apps/browser/bundled/skills/debug/SKILL.md:113", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in apps/browser/bundled/skills/debug/SKILL.md:113"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de937abdd24076ab", "name": "Insecure pattern 'direct_innerhtml_assignment' in apps/browser/bundled/plugins/figma/apps/figma-app/index.html:61", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in apps/browser/bundled/plugins/figma/apps/figma-app/index.html:61"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-07ca3761270219dc", "name": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/screens/settings/sections/plugins-section.tsx:43", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/screens/settings/sections/plugins-section.tsx:43"}, "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-82fe0b8db1f12df5", "name": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/t", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/read.tsx:114"}, "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-c6343fd7fd48ea38", "name": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/components/file-icon.tsx:34", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/components/file-icon.tsx:34"}, "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-d860fc3f654fc773", "name": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/components/ui/streaming-code-block.tsx:175", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/components/ui/streaming-code-block.tsx:175"}, "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-5594b5977da5444b", "name": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/components/ui/mermaid.tsx:147", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/components/ui/mermaid.tsx:147"}, "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-29b8f998ce703070", "name": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/components/ui/code-block.tsx:280", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/components/ui/code-block.tsx:280"}, "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-ef0ca982578b4240", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/utils/command-executor.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/utils/command-executor.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4b582013ba01e339", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/utils/port-utils.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/utils/port-utils.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9fb0473602897214", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/agents/shared/prompts/utils/workspace-info/index.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/agents/shared/prompts/utils/workspace-info/index.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-536430688b72851d", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/macos-closed-lid-sleep.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/macos-closed-lid-sleep.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-201c58be20f5b6d8", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/file-tree/index.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/file-tree/index.ts:3"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0cce1db1adf3a4af", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/git/index.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/git/index.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d963e54ffb5d9d8c", "name": "Insecure pattern 'cors_wildcard' in apps/browser/src/backend/services/log-ingest/index.ts:18", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in apps/browser/src/backend/services/log-ingest/index.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eef1fed77db9c837", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/terminal/index.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/terminal/index.ts:3"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ab0b6c3dd0356f2", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/mount-manager/worktree-setup", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/mount-manager/worktree-setup-runner.ts:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-27c98ae3ce92ff95", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/client.ts:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/client.ts:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b92c063918cc5279", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/types.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/types.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb9c9e51ca467f46", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/biome.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/biome.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bd4e0d18d61ef780", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/eslint.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/eslint.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ca5f46278da8521", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/typescript.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/typescript.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a323ca703d9b8287", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/utils/binary-fin", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/utils/binary-finder.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3a19650f37024aa2", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/utils/spawn-help", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/utils/spawn-helpers.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a9f10ae31c8f514", "name": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/telemetry/process-snapshot.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/telemetry/process-snapshot.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9153b85e13e4142a", "name": "Insecure pattern 'exec_used' in scripts/release/git-utils.ts:16", "shortDescription": {"text": "Insecure pattern 'exec_used' in scripts/release/git-utils.ts:16"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a3ef0e660afc7a7", "name": "Insecure pattern 'node_child_process' in scripts/release/git-utils.ts:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/release/git-utils.ts:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a2054f0c95229214", "name": "Insecure pattern 'exec_used' in scripts/release/nightly-version.ts:64", "shortDescription": {"text": "Insecure pattern 'exec_used' in scripts/release/nightly-version.ts:64"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-413c758533392a3e", "name": "Insecure pattern 'node_child_process' in scripts/release/nightly-version.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/release/nightly-version.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b849f6dbd54894cf", "name": "Insecure pattern 'node_child_process' in scripts/experiments/extract-compression-test-data.ts:28", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/experiments/extract-compression-test-data.ts:28"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-033d7928513ef451", "name": "Insecure pattern 'node_child_process' in agent/runtime-node/src/__tests__/file-operations.test.ts:412", "shortDescription": {"text": "Insecure pattern 'node_child_process' in agent/runtime-node/src/__tests__/file-operations.test.ts:412"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-548235abfc1da899", "name": "Insecure pattern 'node_child_process' in agent/runtime-node/src/__tests__/shared/grep-test-suite.ts:313", "shortDescription": {"text": "Insecure pattern 'node_child_process' in agent/runtime-node/src/__tests__/shared/grep-test-suite.ts:313"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f481b945ca465352", "name": "Insecure pattern 'node_child_process' in agent/runtime-node/src/grep/grep-ripgrep.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in agent/runtime-node/src/grep/grep-ripgrep.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e15aedf441f1e88b", "name": "Insecure pattern 'node_child_process' in agent/runtime-node/src/glob/glob-ripgrep.ts:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in agent/runtime-node/src/glob/glob-ripgrep.ts:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cf1d8754ded77164", "name": "Insecure pattern 'node_child_process' in agent/runtime-node/src/vscode-ripgrep/download.ts:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in agent/runtime-node/src/vscode-ripgrep/download.ts:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-526646ce12869739", "name": "Insecure pattern 'node_child_process' in packages/agent-shell/build.js:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/agent-shell/build.js:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e74ac029a13f1f79", "name": "Insecure pattern 'node_child_process' in packages/agent-shell/src/engine/session-manager.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/agent-shell/src/engine/session-manager.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-92591476f70130fb", "name": "Insecure pattern 'node_child_process' in packages/agent-shell/src/engine/shell-env/detect-shell.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/agent-shell/src/engine/shell-env/detect-shell.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5dfc5d9782bccf13", "name": "Insecure pattern 'node_child_process' in packages/agent-shell/src/engine/shell-env/resolve-shell-env.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/agent-shell/src/engine/shell-env/resolve-shell-env.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a17a1caca5c14f3c", "name": "Insecure pattern 'node_child_process' in packages/karton/build.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/karton/build.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8ccf8394e6f963df", "name": "Insecure pattern 'node_child_process' in packages/agent-core/build.js:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/agent-core/build.js:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f96b7fc179778eae", "name": "Insecure pattern 'node_child_process' in packages/agent-core/src/file-read-transformer/transformers/disk-image.ts:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/agent-core/src/file-read-transformer/transformers/disk-image.ts:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-347145f029bd508f", "name": "Insecure pattern 'node_child_process' in packages/agent-core/src/services/mount-manager/workspace-info/git.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/agent-core/src/services/mount-manager/workspace-info/git.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5ea4682287727c57", "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@v4 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-616dcaccfccca14b", "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-49b75608eb4cfcc0", "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@v4 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-b753e419cd0f8b83", "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-e2f360a5a0d2acd2", "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@v4 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-432eba8849c1c9cc", "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@v4 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-8ef3aa41758a997c", "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-5bc4cf5aa717df4c", "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@v4 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-fc1c6dcb00af79ac", "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-51ffe7b4f95d0c64", "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-f5c6e806454f7092", "name": "Install-time lifecycle script performs network/shell-sensitive actions", "shortDescription": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "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": "medium", "confidence": 1.0}}, {"id": "scanner-4ac72d95d6c1e301", "name": "Very large file: apps/browser/src/shared/karton-contracts/ui/index.ts (2102 lines)", "shortDescription": {"text": "Very large file: apps/browser/src/shared/karton-contracts/ui/index.ts (2102 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-77e5e55a830f65ce", "name": "Very large file: apps/browser/src/ui/screens/settings/sections/models-providers-section.tsx (1689 lines)", "shortDescription": {"text": "Very large file: apps/browser/src/ui/screens/settings/sections/models-providers-section.tsx (1689 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-7c08c80030b16677", "name": "Very large file: apps/browser/src/ui/screens/main/file-tree/file-preview-tab-content.tsx (2780 lines)", "shortDescription": {"text": "Very large file: apps/browser/src/ui/screens/main/file-tree/file-preview-tab-content.tsx (2780 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-3899963cb57a60cc", "name": "Very large file: apps/browser/src/ui/screens/main/agent-chat/chat/_components/chat-history.tsx (1346 lines)", "shortDescription": {"text": "Very large file: apps/browser/src/ui/screens/main/agent-chat/chat/_components/chat-history.tsx (1346 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-14b764ae2f8a613e", "name": "Very large file: apps/browser/src/ui/screens/main/agent-chat/chat/_components/panel-footer.tsx (1782 lines)", "shortDescription": {"text": "Very large file: apps/browser/src/ui/screens/main/agent-chat/chat/_components/panel-footer.tsx (1782 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-3e20d3952435c590", "name": "Very large file: apps/browser/src/ui/screens/main/agent-chat/chat/_components/workspace-select.tsx (3950 lines)", "shortDescription": {"text": "Very large file: apps/browser/src/ui/screens/main/agent-chat/chat/_components/workspace-select.tsx (3950 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-02e4c1344bb3528a", "name": "Very large file: apps/browser/src/ui/screens/main/sidebar/agents-list/index.tsx (2645 lines)", "shortDescription": {"text": "Very large file: apps/browser/src/ui/screens/main/sidebar/agents-list/index.tsx (2645 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-fe02dba2413e2438", "name": "Very large file: apps/browser/src/backend/services/file-tree/index.ts (1895 lines)", "shortDescription": {"text": "Very large file: apps/browser/src/backend/services/file-tree/index.ts (1895 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-15f0d3009229bb91", "name": "Very large file: apps/browser/src/backend/services/window-layout/index.ts (3318 lines)", "shortDescription": {"text": "Very large file: apps/browser/src/backend/services/window-layout/index.ts (3318 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-59448965d502e5c8", "name": "Very large file: apps/browser/src/backend/services/window-layout/browsing-tab-controller.ts (3041 lines)", "shortDescription": {"text": "Very large file: apps/browser/src/backend/services/window-layout/browsing-tab-controller.ts (3041 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-d90bd56c00e931c1", "name": "Very large file: apps/browser/src/backend/services/toolbox/index.ts (1824 lines)", "shortDescription": {"text": "Very large file: apps/browser/src/backend/services/toolbox/index.ts (1824 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-243504b5c55b7b45", "name": "Very large file: apps/browser/src/backend/services/toolbox/services/mount-manager/index.ts (1681 lines)", "shortDescription": {"text": "Very large file: apps/browser/src/backend/services/toolbox/services/mount-manager/index.ts (1681 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-20126d562407989d", "name": "Very large file: packages/agent-core/src/agents/base-agent.ts (3375 lines)", "shortDescription": {"text": "Very large file: packages/agent-core/src/agents/base-agent.ts (3375 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-d3c094692b556bae", "name": "Very large file: packages/agent-core/src/agents/shared/message-conversion.ts (1415 lines)", "shortDescription": {"text": "Very large file: packages/agent-core/src/agents/shared/message-conversion.ts (1415 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-82ce25ea89b0df66", "name": "Very large file: packages/agent-core/src/services/agent-manager/agent-manager.ts (1724 lines)", "shortDescription": {"text": "Very large file: packages/agent-core/src/services/agent-manager/agent-manager.ts (1724 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-4ee7c0d8f5c15810", "name": "Very large file: packages/agent-core/src/services/diff-history/index.ts (1823 lines)", "shortDescription": {"text": "Very large file: packages/agent-core/src/services/diff-history/index.ts (1823 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-7d5d988c330df784", "name": "Very large file: packages/agent-core/src/services/diff-history/utils/db.test.ts (2181 lines)", "shortDescription": {"text": "Very large file: packages/agent-core/src/services/diff-history/utils/db.test.ts (2181 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-8c1ec379a95b3b15", "name": "Very large file: packages/agent-core/src/services/diff-history/utils/diff.test.ts (1974 lines)", "shortDescription": {"text": "Very large file: packages/agent-core/src/services/diff-history/utils/diff.test.ts (1974 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": "128 tests / 989 src (ratio 0.13)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2a3c3892bcd596b5", "name": "Node manifest has dependencies but no lockfile: apps/website/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/website/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b149c550289ea76e", "name": "Node manifest has dependencies but no lockfile: apps/stagewise-cli/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/stagewise-cli/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9d28c09d4692c8c5", "name": "Node manifest has dependencies but no lockfile: apps/deprecated-cli/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/deprecated-cli/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d856982b111d248c", "name": "Node manifest has dependencies but no lockfile: apps/browser/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/browser/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6fb57c931d218c3d", "name": "Node manifest has dependencies but no lockfile: agent/runtime-node/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: agent/runtime-node/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40d2fc5e5ebbea05", "name": "Node manifest has dependencies but no lockfile: packages/agent-shell/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/agent-shell/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3eb77ffc63dcc3be", "name": "Node manifest has dependencies but no lockfile: packages/stage-ui/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/stage-ui/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5c14a17118b17624", "name": "Node manifest has dependencies but no lockfile: packages/tailwindcss-color-modifiers/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/tailwindcss-color-modifiers/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1ebbfde23d1ebf7e", "name": "Node manifest has dependencies but no lockfile: packages/agent-core/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/agent-core/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "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 181 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 202 placeholder/mock markers across 73 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-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-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "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-4e75307e250a537d", "name": "Agent authority lacks a verifier contract: apps/browser/bundled/skills/implement/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/skills/implement/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-26465da110c7fe17", "name": "Agent authority lacks a verifier contract: apps/browser/bundled/skills/debug/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/skills/debug/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-c3f90c78678229aa", "name": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/github/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/github/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-1126ad1c35d4c1c3", "name": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/javascript-sandbox/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/javascript-sandbox/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-6209a2397e0fd715", "name": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/mini-apps/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/mini-apps/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-f0ae836041d7ee82", "name": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/supabase/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/supabase/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-a9437298fbfb6e4a", "name": "Agent instruction/config may expose a secret: apps/browser/bundled/plugins/posthog/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: apps/browser/bundled/plugins/posthog/SKILL.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-d2595bd8114325a5", "name": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/posthog/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/posthog/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-2fb6ea47e23f68a2", "name": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/figma/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/figma/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-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f6fa3ed22b89a532", "name": "Commented-code block (5 lines) in apps/update-server/src/releases.ts:266", "shortDescription": {"text": "Commented-code block (5 lines) in apps/update-server/src/releases.ts:266"}, "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-312435722144ef1d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/update-server/src/github.ts:49", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/update-server/src/github.ts:49"}, "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-c55c390906d8c066", "name": "Commented-code block (8 lines) in apps/update-server/src/routes.ts:153", "shortDescription": {"text": "Commented-code block (8 lines) in apps/update-server/src/routes.ts:153"}, "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-06c5c708147bea36", "name": "Commented-code block (7 lines) in apps/website/src/components/posthog-provider.tsx:35", "shortDescription": {"text": "Commented-code block (7 lines) in apps/website/src/components/posthog-provider.tsx:35"}, "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-4976b89dababc029", "name": "Commented-code block (5 lines) in apps/website/src/lib/auth-client.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/website/src/lib/auth-client.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-db6f24cb2e3cb385", "name": "Commented-code block (6 lines) in apps/stagewise-cli/src/cli-chat-agent.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in apps/stagewise-cli/src/cli-chat-agent.ts:11"}, "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-5515070d218acb42", "name": "Commented-code block (6 lines) in apps/browser/vite.backend.config.ts:26", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/vite.backend.config.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-1378a4c6f027e9cb", "name": "Commented-code block (6 lines) in apps/browser/vite.ui.config.ts:46", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/vite.ui.config.ts:46"}, "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-96299f1a5eca4f5a", "name": "Commented-code block (8 lines) in apps/browser/src/web-content-preload/stealth.ts:170", "shortDescription": {"text": "Commented-code block (8 lines) in apps/browser/src/web-content-preload/stealth.ts:170"}, "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-7e403b8e81eb4523", "name": "Commented-code block (5 lines) in apps/browser/src/shared/available-models.ts:1105", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/shared/available-models.ts:1105"}, "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-842029dae870437c", "name": "Commented-code block (5 lines) in apps/browser/src/shared/chromium-errors/codes.ts:396", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/shared/chromium-errors/codes.ts:396"}, "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-e0efa18620f72a5b", "name": "Commented-code block (5 lines) in apps/browser/src/shared/utils/attachment-filename.test.ts:62", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/shared/utils/attachment-filename.test.ts:62"}, "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-4f4ca66c4bcb15de", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/ui/utils.tsx:384", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/ui/utils.tsx:384"}, "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-53b98cfc562204e8", "name": "Commented-code block (9 lines) in apps/browser/src/ui/screens/index.tsx:11", "shortDescription": {"text": "Commented-code block (9 lines) in apps/browser/src/ui/screens/index.tsx:11"}, "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-39b024a4227deff5", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/settings/sections/custom-providers-section.tsx:588", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/settings/sections/custom-providers-section.tsx:588"}, "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-27bc23359c6b46d4", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/settings/sections/models-providers-section.tsx:505", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/settings/sections/models-providers-section.tsx:505"}, "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-c8c703ca0275c7b3", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/file-tree/file-preview-tab-content.tsx:453", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/file-tree/file-preview-tab-content.tsx:453"}, "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-5f0e7cc5638fecae", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/command-center/command-center.tsx:284", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/command-center/command-center.tsx:284"}, "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-cfedb2438db296da", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/command-center/sources/use-file-command-items.tsx:59", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/command-center/sources/use-file-command-items.tsx:59"}, "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-77f26937e1b7d3d7", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/chat-history.tsx:53", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/chat-history.tsx:53"}, "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-ef1943e2613fc36e", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-user.tsx:274", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-user.tsx:274"}, "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-c08080ffbf30c454", "name": "Commented-code block (9 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/chat-input.tsx:558", "shortDescription": {"text": "Commented-code block (9 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/chat-input.tsx:558"}, "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-9148a369116ff709", "name": "Commented-code block (9 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/panel-footer.tsx:724", "shortDescription": {"text": "Commented-code block (9 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/panel-footer.tsx:724"}, "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-c8e0b86e6b4bb217", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/workspace-select.tsx:256", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/workspace-select.tsx:256"}, "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-6cb6553859969d33", "name": "Commented-code block (9 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/exe", "shortDescription": {"text": "Commented-code block (9 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/execute-shell-command.tsx:167"}, "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-f598721d13ccdfac", "name": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/attachments/ind", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/attachments/index.ts:78"}, "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-0e57d680134f0b44", "name": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/attachments/nod", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/attachments/nodes/attachment-view.tsx:37"}, "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-fd9ffde6f4b020e6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/att", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/attachments/nodes/element-attachment-view.tsx:568"}, "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-71c1f58a502f17e5", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/index.", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/index.tsx:121"}, "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-867a7d53b7757e2a", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/content/index.tsx:336", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/content/index.tsx:336"}, "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-28ccc9623db8eaea", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/_lib/agent-list-model.ts:159", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/_lib/agent-list-model.ts:159"}, "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-a8acc7362ccada95", "name": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/_components/shared-agent-context-menu.tsx:129", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/_components/shared-agent-context-menu.tsx:129"}, "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-3611a93d7c29b8c2", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/_components/global-hotkey-bindings.tsx:91", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/_components/global-hotkey-bindings.tsx:91"}, "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-0d6990ef9d41d1be", "name": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/_components/agent-preview-panel.tsx:95", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/_components/agent-preview-panel.tsx:95"}, "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-ac0e2fb7e4941d22", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/ui/screens/main/_components/agent-preview-panel.tsx:284", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/ui/screens/main/_components/agent-preview-panel.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-0464bc7c797aadfc", "name": "Commented-code block (8 lines) in apps/browser/src/ui/screens/main/_components/delete-confirm-popover.tsx:77", "shortDescription": {"text": "Commented-code block (8 lines) in apps/browser/src/ui/screens/main/_components/delete-confirm-popover.tsx:77"}, "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-d756cb94d8ae0971", "name": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/sidebar/agents-list/index.tsx:981", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/sidebar/agents-list/index.tsx:981"}, "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-2c3d8908255bd476", "name": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/sidebar/agents-list/_components/agent-card-with-previ", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/sidebar/agents-list/_components/agent-card-with-preview.tsx:56"}, "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-a903a3b155fe3cd8", "name": "Commented-code block (7 lines) in apps/browser/src/ui/screens/main/sidebar/agents-list/_components/agent-card.tsx:301", "shortDescription": {"text": "Commented-code block (7 lines) in apps/browser/src/ui/screens/main/sidebar/agents-list/_components/agent-card.tsx:301"}, "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-2bf089053714acd1", "name": "Commented-code block (5 lines) in apps/browser/src/ui/components/web-contents-bounds-syncer.tsx:70", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/components/web-contents-bounds-syncer.tsx:70"}, "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-ed194efc5dc6ec67", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/ui/components/attachment-renderers/swdomelement/badge.tsx", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/ui/components/attachment-renderers/swdomelement/badge.tsx:256"}, "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-b98624d4dd0dbac8", "name": "Commented-code block (7 lines) in apps/browser/src/ui/hooks/use-is-container-scrollable.tsx:95", "shortDescription": {"text": "Commented-code block (7 lines) in apps/browser/src/ui/hooks/use-is-container-scrollable.tsx:95"}, "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-53183bde6fdc1364", "name": "Commented-code block (7 lines) in apps/browser/src/backend/index.ts:9", "shortDescription": {"text": "Commented-code block (7 lines) in apps/browser/src/backend/index.ts:9"}, "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-915d4181ac5e0b83", "name": "Commented-code block (6 lines) in apps/browser/src/backend/main.ts:112", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/main.ts:112"}, "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-94b74aa515362575", "name": "Commented-code block (5 lines) in apps/browser/src/backend/utils/dom-code-to-electron-key-code.ts:61", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/utils/dom-code-to-electron-key-code.ts:61"}, "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-416643a55f457183", "name": "Commented-code block (5 lines) in apps/browser/src/backend/utils/port-utils.ts:355", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/utils/port-utils.ts:355"}, "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-d26f76b8e94b42ff", "name": "Commented-code block (5 lines) in apps/browser/src/backend/utils/validate-api-keys.ts:46", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/utils/validate-api-keys.ts:46"}, "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-6d3868b7c7c0e030", "name": "Commented-code block (6 lines) in apps/browser/src/backend/agents/stagewise-provider.ts:135", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/agents/stagewise-provider.ts:135"}, "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-bc626b2820fef6a9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/agents/stagewise-provider.ts:19", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/agents/stagewise-provider.ts:19"}, "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-22b475e9cb35a322", "name": "Commented-code block (6 lines) in apps/browser/src/backend/agents/chat/chat.ts:13", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/agents/chat/chat.ts:13"}, "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-b8482e347f50f5af", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/services/app-protocol.ts:193", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/services/app-protocol.ts:193"}, "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-eb3c0a65ff6b71bc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/services/pages.ts:181", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/services/pages.ts:181"}, "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-3d665f00e6166bc0", "name": "Commented-code block (8 lines) in apps/browser/src/backend/services/window-layout/index.ts:1464", "shortDescription": {"text": "Commented-code block (8 lines) in apps/browser/src/backend/services/window-layout/index.ts:1464"}, "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-95c9870867a9ba95", "name": "Commented-code block (6 lines) in apps/browser/src/backend/services/window-layout/ui-controller.ts:94", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/services/window-layout/ui-controller.ts:94"}, "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-d19bfa2e6fd30ba2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/services/window-layout/ui-controller.ts:339", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/services/window-layout/ui-controller.ts:339"}, "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-dc5591f71808ab4d", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/window-layout/browsing-tab-controller.ts:1397", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/window-layout/browsing-tab-controller.ts:1397"}, "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-beeab7893d35f50b", "name": "Commented-code block (6 lines) in apps/browser/src/backend/services/window-layout/selected-element-tracker/index.ts:1296", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/services/window-layout/selected-element-tracker/index.ts:1296"}, "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-570e01a9d0ad8226", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/window-layout/tab-error-handler/chromium-error-codes", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/window-layout/tab-error-handler/chromium-error-codes.ts:396"}, "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-e7218692831867b1", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/sandbox/index.ts:347", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/sandbox/index.ts:347"}, "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-049eab1dc7be1c67", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/services/sandbox/sandbox-worker.ts:166", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/services/sandbox/sandbox-worker.ts:166"}, "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-8743160b18e2b1e5", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/terminal/index.ts:573", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/terminal/index.ts:573"}, "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-8a320927bd731a26", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/favicon/schema.ts:17", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/favicon/schema.ts: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-98755a44067b72dc", "name": "Commented-code block (6 lines) in apps/browser/src/backend/services/agent-core-bridge/host.ts:123", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/services/agent-core-bridge/host.ts:123"}, "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-92c06a737aec6778", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/agent-core-bridge/host-telemetry.ts:30", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/agent-core-bridge/host-telemetry.ts:30"}, "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-1f953d022f03fc73", "name": "Commented-code block (6 lines) in apps/browser/src/backend/services/agent-core-bridge/index.test.ts:1098", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/services/agent-core-bridge/index.test.ts:1098"}, "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-4dcc533037e530f8", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/agent-core-bridge/index.ts:160", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/agent-core-bridge/index.ts:160"}, "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-3829e99da2f65852", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/index.ts:643", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/index.ts:643"}, "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-08b7540172ad1050", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/mount-manager/index.ts:85", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/mount-manager/index.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-5b403d28bb6d5d22", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/mount-manager/git-worktree-watcher.", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/mount-manager/git-worktree-watcher.test.ts:5"}, "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-d699f22db22ad9d5", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/lsp/index.ts:104", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/lsp/index.ts:104"}, "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-34ab39cd1b97ff74", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/lsp/client.ts:135", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/lsp/client.ts:135"}, "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-5ef162d618985345", "name": "Commented-code block (6 lines) in apps/browser/src/backend/services/toolbox/services/lsp/servers/rust-analyzer.test.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/services/toolbox/services/lsp/servers/rust-analyzer.test.ts:5"}, "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-4e225409d0094d04", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/lsp/servers/rust-analyzer.ts:32", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/lsp/servers/rust-analyzer.ts:32"}, "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-3e03a72ffa1b9f8a", "name": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/tools/user-interaction/ask-user-questions.ts", "shortDescription": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/tools/user-interaction/ask-user-questions.ts:186"}, "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-a2e0f9954a96f8c1", "name": "Commented-code block (9 lines) in apps/browser/src/backend/services/toolbox/tools/file-modification/get-linting-diagnost", "shortDescription": {"text": "Commented-code block (9 lines) in apps/browser/src/backend/services/toolbox/tools/file-modification/get-linting-diagnostics.ts: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-a94615d35030e145", "name": "Commented-code block (6 lines) in packages/agent-shell/src/tools/execute-shell-command.ts:335", "shortDescription": {"text": "Commented-code block (6 lines) in packages/agent-shell/src/tools/execute-shell-command.ts:335"}, "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-2f5b15c649011d1b", "name": "Commented-code block (5 lines) in packages/agent-shell/src/engine/shell-service.ts:466", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agent-shell/src/engine/shell-service.ts:466"}, "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-3cd0b5d2f69c35c7", "name": "Commented-code block (13 lines) in packages/agent-shell/src/engine/osc-parser.ts:192", "shortDescription": {"text": "Commented-code block (13 lines) in packages/agent-shell/src/engine/osc-parser.ts:192"}, "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-c072249714b134e2", "name": "Commented-code block (6 lines) in packages/agent-shell/src/engine/session-manager.test.ts:306", "shortDescription": {"text": "Commented-code block (6 lines) in packages/agent-shell/src/engine/session-manager.test.ts:306"}, "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-57e4f3b8797cc736", "name": "Commented-code block (5 lines) in packages/agent-shell/src/engine/session-logger.ts:271", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agent-shell/src/engine/session-logger.ts:271"}, "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-b6a5c9431910aec8", "name": "Commented-code block (7 lines) in packages/agent-shell/src/engine/sanitize-env.ts:117", "shortDescription": {"text": "Commented-code block (7 lines) in packages/agent-shell/src/engine/sanitize-env.ts:117"}, "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-bc2cc062f609d7d6", "name": "Commented-code block (8 lines) in packages/agent-shell/src/engine/osc-parser.test.ts:223", "shortDescription": {"text": "Commented-code block (8 lines) in packages/agent-shell/src/engine/osc-parser.test.ts:223"}, "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-614e2e0270836061", "name": "Commented-code block (8 lines) in packages/agent-shell/src/engine/session-manager.ts:466", "shortDescription": {"text": "Commented-code block (8 lines) in packages/agent-shell/src/engine/session-manager.ts:466"}, "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-8264f08651f551ea", "name": "Commented-code block (7 lines) in packages/agent-shell/src/engine/shell-env/resolve-shell-env.ts:78", "shortDescription": {"text": "Commented-code block (7 lines) in packages/agent-shell/src/engine/shell-env/resolve-shell-env.ts:78"}, "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-ca7662ddce00dc05", "name": "Commented-code block (6 lines) in packages/stage-ui/src/code-block/generate-code-block-theme-json.ts:481", "shortDescription": {"text": "Commented-code block (6 lines) in packages/stage-ui/src/code-block/generate-code-block-theme-json.ts:481"}, "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-6e28f4d2b9eba1f2", "name": "Commented-code block (6 lines) in packages/stage-ui/src/components/sortable-tabs.tsx:168", "shortDescription": {"text": "Commented-code block (6 lines) in packages/stage-ui/src/components/sortable-tabs.tsx:168"}, "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-5c609d11735c4083", "name": "Commented-code block (9 lines) in packages/tailwindcss-color-modifiers/src/index.ts:135", "shortDescription": {"text": "Commented-code block (9 lines) in packages/tailwindcss-color-modifiers/src/index.ts:135"}, "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-196275d104274b14", "name": "Commented-code block (5 lines) in packages/agent-core/src/workspace/load-gitignore.ts:225", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agent-core/src/workspace/load-gitignore.ts:225"}, "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-1a7f1901511a1041", "name": "Commented-code block (5 lines) in packages/agent-core/src/agents/base-agent.ts:1724", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agent-core/src/agents/base-agent.ts:1724"}, "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-c15826dbf084371e", "name": "Legacy-named symbol `canReplayLegacy` in packages/agent-core/src/agents/shared/message-conversion.ts:1018", "shortDescription": {"text": "Legacy-named symbol `canReplayLegacy` in packages/agent-core/src/agents/shared/message-conversion.ts:1018"}, "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-5b1bf589df7ab745", "name": "Commented-code block (5 lines) in packages/agent-core/src/agents/shared/message-conversion.ts:511", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agent-core/src/agents/shared/message-conversion.ts:511"}, "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-1799ba4c38014910", "name": "Legacy-named symbol `cachedOld` in packages/agent-core/src/file-read-transformer/index.ts:600", "shortDescription": {"text": "Legacy-named symbol `cachedOld` in packages/agent-core/src/file-read-transformer/index.ts:600"}, "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-1f254ba64159f4b4", "name": "Commented-code block (5 lines) in packages/agent-core/src/file-read-transformer/index.ts:403", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agent-core/src/file-read-transformer/index.ts:403"}, "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-11902e311f4c9cfa", "name": "Commented-code block (7 lines) in packages/agent-core/src/file-read-transformer/populate-path-references.ts:56", "shortDescription": {"text": "Commented-code block (7 lines) in packages/agent-core/src/file-read-transformer/populate-path-references.ts:56"}, "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-4fddb4f4f70e0295", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/agent-core/src/file-read-transformer/ast/parser.ts:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/agent-core/src/file-read-transformer/ast/parser.ts:5"}, "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-50d0507f0219bb93", "name": "Commented-code block (8 lines) in packages/agent-core/src/file-read-transformer/transformers/source-code.test.ts:141", "shortDescription": {"text": "Commented-code block (8 lines) in packages/agent-core/src/file-read-transformer/transformers/source-code.test.ts:141"}, "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-3b159287f21ad005", "name": "Commented-code block (7 lines) in packages/agent-core/src/services/mount-manager/mount-registry.test.ts:357", "shortDescription": {"text": "Commented-code block (7 lines) in packages/agent-core/src/services/mount-manager/mount-registry.test.ts:357"}, "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-b19040109756582b", "name": "Commented-code block (5 lines) in packages/agent-core/src/services/agent-manager/agent-manager.startup-policy.test.ts:21", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agent-core/src/services/agent-manager/agent-manager.startup-policy.test.ts:218"}, "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-e9a837658b1a4b72", "name": "Commented-code block (8 lines) in packages/agent-core/src/services/agent-manager/agent-manager.ts:327", "shortDescription": {"text": "Commented-code block (8 lines) in packages/agent-core/src/services/agent-manager/agent-manager.ts:327"}, "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-c8ac461d28cca80f", "name": "Commented-code block (7 lines) in packages/agent-core/src/services/agent-persistence/db.ts:190", "shortDescription": {"text": "Commented-code block (7 lines) in packages/agent-core/src/services/agent-persistence/db.ts:190"}, "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-dbcaed28a3db8891", "name": "Commented-code block (5 lines) in packages/agent-core/src/services/diff-history/index.ts:360", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agent-core/src/services/diff-history/index.ts:360"}, "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-bc45d4a07b9cdde8", "name": "Commented-code block (6 lines) in packages/agent-core/src/services/diff-history/utils/diff.ts:558", "shortDescription": {"text": "Commented-code block (6 lines) in packages/agent-core/src/services/diff-history/utils/diff.ts:558"}, "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-176fb090363375c0", "name": "Commented-code block (8 lines) in packages/agent-core/src/services/diff-history/utils/db.test.ts:357", "shortDescription": {"text": "Commented-code block (8 lines) in packages/agent-core/src/services/diff-history/utils/db.test.ts:357"}, "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-92fc609eedc89363", "name": "Commented-code block (5 lines) in packages/agent-core/src/services/toolbox/universal-tools.test.ts:243", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agent-core/src/services/toolbox/universal-tools.test.ts:243"}, "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-946a120401bb79ab", "name": "Commented-code block (5 lines) in packages/agent-core/src/services/toolbox/universal-tools.ts:484", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agent-core/src/services/toolbox/universal-tools.ts:484"}, "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-e3244f1120669abf", "name": "Commented-code block (5 lines) in packages/agent-core/src/services/processed-image-cache/index.ts:304", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agent-core/src/services/processed-image-cache/index.ts:304"}, "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-f939ba8adf5bfcca", "name": "Commented-code block (6 lines) in packages/agent-core/src/plans/parsing.ts:27", "shortDescription": {"text": "Commented-code block (6 lines) in packages/agent-core/src/plans/parsing.ts: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-226522e03cfab62d", "name": "45 env vars used in code but missing from .env.example", "shortDescription": {"text": "45 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ANTHROPIC_API_KEY`, `APPDATA`, `APP_GITHUB_ORG`, `APP_GITHUB_REPO`, `APP_NAME`, `APP_VERSION_OVERRIDE`, `AWS_DEFAULT_REGION`, `AWS_REGION` + 37 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2e59f6518d3652e6", "name": "Dangling fetch: GET https://waitlister.me/api/v1/waitlist/${waitlistKey}/subscribers?limit=1 (apps/website/src/app/api/w", "shortDescription": {"text": "Dangling fetch: GET https://waitlister.me/api/v1/waitlist/${waitlistKey}/subscribers?limit=1 (apps/website/src/app/api/waitlist/count/route.ts:17)"}, "fullDescription": {"text": "`apps/website/src/app/api/waitlist/count/route.ts:17` calls `GET https://waitlister.me/api/v1/waitlist/${waitlistKey}/subscribers?limit=1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/waitlister.me/api/v1/waitlist/<p>/subscribers`\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-e68e3f64a65cb0ac", "name": "Dangling fetch: POST /auth/callback (apps/browser/src/backend/services/auth/dev-loopback-auth.ts:55)", "shortDescription": {"text": "Dangling fetch: POST /auth/callback (apps/browser/src/backend/services/auth/dev-loopback-auth.ts:55)"}, "fullDescription": {"text": "`apps/browser/src/backend/services/auth/dev-loopback-auth.ts:55` calls `POST /auth/callback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/callback`\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-f02a079c69b52f2d", "name": "Unused endpoint: USE /", "shortDescription": {"text": "Unused endpoint: USE /"}, "fullDescription": {"text": "`apps/update-server/src/index.ts` declares `USE /` 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-7258b7e891747aed", "name": "Unused endpoint: GET /update/:appName/:channel/macos/:arch/:version", "shortDescription": {"text": "Unused endpoint: GET /update/:appName/:channel/macos/:arch/:version"}, "fullDescription": {"text": "`apps/update-server/src/routes.ts` declares `GET /update/:appName/:channel/macos/:arch/:version` 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-3737d1ea86526bb8", "name": "Unused endpoint: GET /update/:appName/:channel/win/:arch/:version/RELEASES", "shortDescription": {"text": "Unused endpoint: GET /update/:appName/:channel/win/:arch/:version/RELEASES"}, "fullDescription": {"text": "`apps/update-server/src/routes.ts` declares `GET /update/:appName/:channel/win/:arch/:version/RELEASES` 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-ebed982d84e2b6e3", "name": "Unused endpoint: GET /update/:appName/:channel/win/:arch/nupkg/:filename", "shortDescription": {"text": "Unused endpoint: GET /update/:appName/:channel/win/:arch/nupkg/:filename"}, "fullDescription": {"text": "`apps/update-server/src/routes.ts` declares `GET /update/:appName/:channel/win/:arch/nupkg/:filename` 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-ad9db70d1111bec9", "name": "Unused endpoint: GET /download/:appName/:channel/macos/:arch", "shortDescription": {"text": "Unused endpoint: GET /download/:appName/:channel/macos/:arch"}, "fullDescription": {"text": "`apps/update-server/src/routes.ts` declares `GET /download/:appName/:channel/macos/:arch` 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-446a9ae09642e7bc", "name": "Unused endpoint: GET /download/:appName/:channel/win/:arch", "shortDescription": {"text": "Unused endpoint: GET /download/:appName/:channel/win/:arch"}, "fullDescription": {"text": "`apps/update-server/src/routes.ts` declares `GET /download/:appName/:channel/win/:arch` 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-861887404bee4721", "name": "Unused endpoint: GET /download/:appName/:channel/linux/:format/:arch", "shortDescription": {"text": "Unused endpoint: GET /download/:appName/:channel/linux/:format/:arch"}, "fullDescription": {"text": "`apps/update-server/src/routes.ts` declares `GET /download/:appName/:channel/linux/:format/:arch` 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/20241"}, "properties": {"repository": "stagewise-io/stagewise", "repoUrl": "https://github.com/stagewise-io/stagewise", "branch": "main"}, "results": [{"ruleId": "scanner-06e441a64fe8e901", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/update-server/src/github.ts:94"}, "properties": {"repobilityId": "98b06fe967ef7221", "scanner": "scanner-primary", "fingerprint": "06e441a64fe8e901", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8ca17c349dffd572", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/update-server/src/index.ts:26"}, "properties": {"repobilityId": "4cabf133476cb898", "scanner": "scanner-primary", "fingerprint": "8ca17c349dffd572", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-74a5b3a31580deb9", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/website/src/app/layout.tsx:44"}, "properties": {"repobilityId": "9d0af66548d67823", "scanner": "scanner-primary", "fingerprint": "74a5b3a31580deb9", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0a1c79c222447817", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/deprecated-cli/src/index.ts:8"}, "properties": {"repobilityId": "fb2928d63ce96719", "scanner": "scanner-primary", "fingerprint": "0a1c79c222447817", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bbeaf9cc1851044d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/scripts/bundle-eslint-server.ts:46"}, "properties": {"repobilityId": "133ec1fa17c4ae69", "scanner": "scanner-primary", "fingerprint": "bbeaf9cc1851044d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0efc621978a6ce9f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/scripts/clear-vite-cache.ts:53"}, "properties": {"repobilityId": "ce3a7aa2fa1869e9", "scanner": "scanner-primary", "fingerprint": "0efc621978a6ce9f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-05d778f1ef54b55b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/scripts/clean-data.ts:24"}, "properties": {"repobilityId": "3631d5397196b8a0", "scanner": "scanner-primary", "fingerprint": "05d778f1ef54b55b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73be755f82156cc5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/etc/windows/windowsSign.ts:29"}, "properties": {"repobilityId": "b36fd73f826b33d5", "scanner": "scanner-primary", "fingerprint": "73be755f82156cc5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-40a82366b03bba2f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/etc/forge-plugins/squirrel-installer-name-fix.ts:60"}, "properties": {"repobilityId": "bfa3be5ffc077be4", "scanner": "scanner-primary", "fingerprint": "40a82366b03bba2f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e9d486a073243898", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/vite-plugins/license-plugin.ts:233"}, "properties": {"repobilityId": "e404c43cadaebbd2", "scanner": "scanner-primary", "fingerprint": "e9d486a073243898", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3023d99184b3fc2c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/ui-preload/index.ts:88"}, "properties": {"repobilityId": "3946d33edc634871", "scanner": "scanner-primary", "fingerprint": "3023d99184b3fc2c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e0c936997681a152", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/shared/chromium-errors/codes.ts:1014"}, "properties": {"repobilityId": "7389b62405d587a3", "scanner": "scanner-primary", "fingerprint": "e0c936997681a152", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-410692a92252ee06", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sidebar.tsx:80"}, "properties": {"repobilityId": "13137ba8370ab017", "scanner": "scanner-primary", "fingerprint": "410692a92252ee06", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-360b2d3aed074631", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/agent-settings.worktree-setup.tsx:579"}, "properties": {"repobilityId": "071f4fb292bdd036", "scanner": "scanner-primary", "fingerprint": "360b2d3aed074631", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cc900327ca567559", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/screens/settings/sections/plugins-section.tsx:43"}, "properties": {"repobilityId": "d021792862b82f9a", "scanner": "scanner-primary", "fingerprint": "cc900327ca567559", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-92bf6090db11f8d0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/custom-providers-section.tsx:1107"}, "properties": {"repobilityId": "35fb304674021f20", "scanner": "scanner-primary", "fingerprint": "92bf6090db11f8d0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-aadeda0c53722163", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/history-section.tsx:329"}, "properties": {"repobilityId": "ad4c9007961c959e", "scanner": "scanner-primary", "fingerprint": "aadeda0c53722163", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1d7b1384bc5a85cc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/personalization-settings-section.tsx:250"}, "properties": {"repobilityId": "d622cb5c31b2eb6b", "scanner": "scanner-primary", "fingerprint": "1d7b1384bc5a85cc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1830412d670f896a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/models-providers-section.tsx:1076"}, "properties": {"repobilityId": "19cfa410aa8fb5a9", "scanner": "scanner-primary", "fingerprint": "1830412d670f896a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b9434208895e6c1f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/sections/about-section.tsx:366"}, "properties": {"repobilityId": "548185e59c907c61", "scanner": "scanner-primary", "fingerprint": "b9434208895e6c1f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c55a50919833435d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/settings/_components/settings-scroll-tabs.tsx:73"}, "properties": {"repobilityId": "aac516e378f8b778", "scanner": "scanner-primary", "fingerprint": "c55a50919833435d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a55e47e0d85b9290", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/onboarding/steps/02-auth.tsx:881"}, "properties": {"repobilityId": "7726958d685e3068", "scanner": "scanner-primary", "fingerprint": "a55e47e0d85b9290", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6b118e7665167d00", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/file-tree/file-tree-node.tsx:152"}, "properties": {"repobilityId": "a33aaa64f4b0c9fb", "scanner": "scanner-primary", "fingerprint": "6b118e7665167d00", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-856a5c6ae3f38fd2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/file-tree/file-tree-workspace-view.tsx:1005"}, "properties": {"repobilityId": "8e072d8dec0b0af5", "scanner": "scanner-primary", "fingerprint": "856a5c6ae3f38fd2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d51bacef103b6816", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/file-tree/file-tree-sidebar.tsx:149"}, "properties": {"repobilityId": "8d0d2aee03b0ca8e", "scanner": "scanner-primary", "fingerprint": "d51bacef103b6816", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9af9d9878c776dc9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/file-tree/file-preview-tab-content.tsx:1062"}, "properties": {"repobilityId": "ec196047a5a586dd", "scanner": "scanner-primary", "fingerprint": "9af9d9878c776dc9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d349397e2f0bf4c8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/command-center/_components/command-center-footer.tsx:54"}, "properties": {"repobilityId": "4019c01f0c554a66", "scanner": "scanner-primary", "fingerprint": "d349397e2f0bf4c8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fc41b90cdf1ff2b4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/command-center/_components/command-center-row.tsx:98"}, "properties": {"repobilityId": "3b399b84cac5bcd9", "scanner": "scanner-primary", "fingerprint": "fc41b90cdf1ff2b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d599c79bfbb1de15", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/command-center/_components/command-center-file-filter.tsx:84"}, "properties": {"repobilityId": "fe970f47949ca3e9", "scanner": "scanner-primary", "fingerprint": "d599c79bfbb1de15", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fbbad7b3eb741eda", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/workspace-setup-status.tsx:151"}, "properties": {"repobilityId": "569e396175185ab5", "scanner": "scanner-primary", "fingerprint": "fbbad7b3eb741eda", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1e88b98d7b703cbc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-user-plan-action.tsx:89"}, "properties": {"repobilityId": "5045422ae2b7e349", "scanner": "scanner-primary", "fingerprint": "1e88b98d7b703cbc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e650bfe583516ce3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/tool-approval-select.tsx:179"}, "properties": {"repobilityId": "27504face5b4a1ca", "scanner": "scanner-primary", "fingerprint": "e650bfe583516ce3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ab77904982b946df", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/model-select.tsx:504"}, "properties": {"repobilityId": "7e0d159a6eb4a518", "scanner": "scanner-primary", "fingerprint": "ab77904982b946df", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d0d5abfffe76097e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/workspace-select.tsx:438"}, "properties": {"repobilityId": "928d1650cbe627ff", "scanner": "scanner-primary", "fingerprint": "d0d5abfffe76097e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2f99f5e0a30e5649", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/empty-chat-suggestions.tsx:110"}, "properties": {"repobilityId": "e5cfe2b0283ba2d0", "scanner": "scanner-primary", "fingerprint": "2f99f5e0a30e5649", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-499c007639200ac4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/thinking.tsx:59"}, "properties": {"repobilityId": "9d8b8a379cfd9c91", "scanner": "scanner-primary", "fingerprint": "499c007639200ac4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-03ef2003da2254fa", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/list-library-docs.tsx:21"}, "properties": {"repobilityId": "e99d98d8cf10cac8", "scanner": "scanner-primary", "fingerprint": "03ef2003da2254fa", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fe6d9b917db679ed", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/update-workspace-md.tsx:26"}, "properties": {"repobilityId": "f34a8ceec38cb300", "scanner": "scanner-primary", "fingerprint": "fe6d9b917db679ed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f728d0839b85e0e3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/execute-sandbox-js.tsx:210"}, "properties": {"repobilityId": "37fd14b737abd400", "scanner": "scanner-primary", "fingerprint": "f728d0839b85e0e3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-44f1ccb682952bb9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/grep-search.tsx:20"}, "properties": {"repobilityId": "9a9ae81cb0e65dd9", "scanner": "scanner-primary", "fingerprint": "44f1ccb682952bb9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3e7d73d11ef72e07", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/ls.tsx:29"}, "properties": {"repobilityId": "4e2a1f5d35a84a5f", "scanner": "scanner-primary", "fingerprint": "3e7d73d11ef72e07", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-84298ebb4d8e4303", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/read-console-logs.tsx:151"}, "properties": {"repobilityId": "a327f7e565011d13", "scanner": "scanner-primary", "fingerprint": "84298ebb4d8e4303", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1a810092ab108899", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/execute-shell-command.tsx:491"}, "properties": {"repobilityId": "173b051ab1417236", "scanner": "scanner-primary", "fingerprint": "1a810092ab108899", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e42299a4aa3e4275", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/mkdir.tsx:31"}, "properties": {"repobilityId": "648ba3a253967819", "scanner": "scanner-primary", "fingerprint": "e42299a4aa3e4275", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-db3139c38acb25dc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/copy.tsx:75"}, "properties": {"repobilityId": "1f6fdf1d71efeb8d", "scanner": "scanner-primary", "fingerprint": "db3139c38acb25dc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-772cdff9bf54902e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/glob.tsx:21"}, "properties": {"repobilityId": "5d6713b27205f2ab", "scanner": "scanner-primary", "fingerprint": "772cdff9bf54902e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6c8df80f122f7b59", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/delete.tsx:109"}, "properties": {"repobilityId": "4acd710fcf12e4bd", "scanner": "scanner-primary", "fingerprint": "6c8df80f122f7b59", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-509ba43893cf61ff", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/get-linting-diagnostics.tsx:62"}, "properties": {"repobilityId": "4eb2afb65514893e", "scanner": "scanner-primary", "fingerprint": "509ba43893cf61ff", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6a10e27bda036dea", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/ask-user-questions.tsx:83"}, "properties": {"repobilityId": "41240fc02ffc5cd8", "scanner": "scanner-primary", "fingerprint": "6a10e27bda036dea", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-41dbdf365d89ab76", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/read.tsx:103"}, "properties": {"repobilityId": "fd39acad130f5e2b", "scanner": "scanner-primary", "fingerprint": "41dbdf365d89ab76", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-979170bc8e1b75c2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/read.tsx:114"}, "properties": {"repobilityId": "361ee073c249175b", "scanner": "scanner-primary", "fingerprint": "979170bc8e1b75c2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b630001189f439a1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/search-in-library-docs.tsx:21"}, "properties": {"repobilityId": "f298adf429c0e3bb", "scanner": "scanner-primary", "fingerprint": "b630001189f439a1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f55a7389b5a8c928", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/shared/tool-part-ui-not-collapsible.tsx:40"}, "properties": {"repobilityId": "9ace0157b9de3f7a", "scanner": "scanner-primary", "fingerprint": "f55a7389b5a8c928", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6ff6a266f6ecf8be", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/write/create-log.tsx:22"}, "properties": {"repobilityId": "0ddef3d9eb1796c8", "scanner": "scanner-primary", "fingerprint": "6ff6a266f6ecf8be", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d950cd076f6ef099", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/write/create-plan.tsx:66"}, "properties": {"repobilityId": "8b5bb6203ea22a91", "scanner": "scanner-primary", "fingerprint": "d950cd076f6ef099", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-af6424b45a6d26ec", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/write/generic-write.tsx:255"}, "properties": {"repobilityId": "4d8e3e644d898755", "scanner": "scanner-primary", "fingerprint": "af6424b45a6d26ec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3c7f7ecf262be3bf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/multi-edit/plan-checkoff.tsx:69"}, "properties": {"repobilityId": "f07b0b0668c1ac4a", "scanner": "scanner-primary", "fingerprint": "3c7f7ecf262be3bf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-24c30360caad16c6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/multi-edit/log-edit.tsx:22"}, "properties": {"repobilityId": "95c8a56b27c5c0ab", "scanner": "scanner-primary", "fingerprint": "24c30360caad16c6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f8e54e2b549cfd18", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/multi-edit/generic-multi-edit.tsx:263"}, "properties": {"repobilityId": "389cc51e7ac707c3", "scanner": "scanner-primary", "fingerprint": "f8e54e2b549cfd18", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5e4d4563cdd32ff1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/mentions/suggestion-popup.tsx:182"}, "properties": {"repobilityId": "f358d6eafe336edb", "scanner": "scanner-primary", "fingerprint": "5e4d4563cdd32ff1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ac953715cb4eec34", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/mentions/file-path-tree.tsx:45"}, "properties": {"repobilityId": "3e9d74d3be185c5c", "scanner": "scanner-primary", "fingerprint": "ac953715cb4eec34", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3ff348eb116437de", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/mentions/workspace-preview-summary.tsx:22"}, "properties": {"repobilityId": "2acb4558029f3e9d", "scanner": "scanner-primary", "fingerprint": "3ff348eb116437de", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6b2a385ff0ea0ace", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/shared/inline-badge.tsx:154"}, "properties": {"repobilityId": "abeb5dd9c3ba3c56", "scanner": "scanner-primary", "fingerprint": "6b2a385ff0ea0ace", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7a42d4980475483f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/slash/suggestion-popup.tsx:99"}, "properties": {"repobilityId": "581b160b498616d5", "scanner": "scanner-primary", "fingerprint": "7a42d4980475483f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ffa3e98fd90de1b3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/workspace-md-section.tsx:152"}, "properties": {"repobilityId": "17541a55967fb404", "scanner": "scanner-primary", "fingerprint": "ffa3e98fd90de1b3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b80cdea82855950a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/log-channel-section.tsx:92"}, "properties": {"repobilityId": "2404e4208705698c", "scanner": "scanner-primary", "fingerprint": "b80cdea82855950a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-57dacf390f2ff3fe", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/plan-section.tsx:134"}, "properties": {"repobilityId": "e1465bce8d674af0", "scanner": "scanner-primary", "fingerprint": "57dacf390f2ff3fe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2e4f06eb40500557", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/user-question-section.tsx:710"}, "properties": {"repobilityId": "55e034a994564d4a", "scanner": "scanner-primary", "fingerprint": "2e4f06eb40500557", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d6eb72b69048b568", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/file-diff-section.tsx:154"}, "properties": {"repobilityId": "5c7f0927e7a7938d", "scanner": "scanner-primary", "fingerprint": "d6eb72b69048b568", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-75c066f547194a1d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/stories/workspace-md-section.stories.tsx:45"}, "properties": {"repobilityId": "e0be3cfb74269d73", "scanner": "scanner-primary", "fingerprint": "75c066f547194a1d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d5171962753b76de", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/content/_components/omnibox/index.tsx:348"}, "properties": {"repobilityId": "c62dcac069766613", "scanner": "scanner-primary", "fingerprint": "d5171962753b76de", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fb3b3d389dd5d95a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/ui/screens/main/content/_components/omnibox/index.tsx:244"}, "properties": {"repobilityId": "7a6a45bac070eb5a", "scanner": "scanner-primary", "fingerprint": "fb3b3d389dd5d95a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-dd83e1e8eadbc46b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/content/_components/omnibox/utils.tsx:266"}, "properties": {"repobilityId": "35b97d41501c515b", "scanner": "scanner-primary", "fingerprint": "dd83e1e8eadbc46b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f16fe3bab9b16013", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/content/_components/control-buttons/search-bar.tsx:217"}, "properties": {"repobilityId": "3675ec23498a66ec", "scanner": "scanner-primary", "fingerprint": "f16fe3bab9b16013", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-44f15518633aff06", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/ui/screens/main/_components/global-hotkey-bindings.tsx:321"}, "properties": {"repobilityId": "78de00787a35ffbb", "scanner": "scanner-primary", "fingerprint": "44f15518633aff06", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-25087e22f66df711", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/_components/agent-preview-panel.tsx:422"}, "properties": {"repobilityId": "4f92b023863d9840", "scanner": "scanner-primary", "fingerprint": "25087e22f66df711", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4982f4e3ec968c37", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/_components/sidebar-titlebar-row.tsx:105"}, "properties": {"repobilityId": "fe365abf0b702a7e", "scanner": "scanner-primary", "fingerprint": "4982f4e3ec968c37", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8b523f16cbcffc35", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/_components/sidebar-auth-footer.tsx:85"}, "properties": {"repobilityId": "912bb2407f13b7f3", "scanner": "scanner-primary", "fingerprint": "8b523f16cbcffc35", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5168537e72623c62", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/sidebar/worktree-cleanup-badge.tsx:91"}, "properties": {"repobilityId": "35a321ccd8384bf4", "scanner": "scanner-primary", "fingerprint": "5168537e72623c62", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a022d3d927b5a3f1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/sidebar/agents-list/index.tsx:553"}, "properties": {"repobilityId": "8a1b61fcf9870f8f", "scanner": "scanner-primary", "fingerprint": "a022d3d927b5a3f1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-36f1e0cd41621ffe", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/screens/main/sidebar/agents-list/_components/agent-card.tsx:236"}, "properties": {"repobilityId": "9c97b157213dfa05", "scanner": "scanner-primary", "fingerprint": "36f1e0cd41621ffe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c490ab1a9fd02940", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/ui/utils/theme-color-sync.ts:99"}, "properties": {"repobilityId": "4ad9eee65c0c0d03", "scanner": "scanner-primary", "fingerprint": "c490ab1a9fd02940", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-92343587e015941b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/model-thinking-panel.tsx:48"}, "properties": {"repobilityId": "9df2e8f9686926a9", "scanner": "scanner-primary", "fingerprint": "92343587e015941b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c012e313790ea03e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/components/file-icon.tsx:34"}, "properties": {"repobilityId": "306a7eef11a3ee73", "scanner": "scanner-primary", "fingerprint": "c012e313790ea03e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-27de327457728467", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/components/ui/streaming-code-block.tsx:175"}, "properties": {"repobilityId": "f796a5d87d8f5aba", "scanner": "scanner-primary", "fingerprint": "27de327457728467", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6416efed71017839", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/components/ui/mermaid.tsx:147"}, "properties": {"repobilityId": "cee473cb618b3a60", "scanner": "scanner-primary", "fingerprint": "6416efed71017839", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5a37a7189d1a3050", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/browser/src/ui/components/ui/code-block.tsx:280"}, "properties": {"repobilityId": "bc1f85042109bfae", "scanner": "scanner-primary", "fingerprint": "5a37a7189d1a3050", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7ac7ae7ef8622a5f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/ui/components/ui/CodeTheme.stories.tsx:136"}, "properties": {"repobilityId": "43d8753b742f85e8", "scanner": "scanner-primary", "fingerprint": "7ac7ae7ef8622a5f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4295900b35ffbd94", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/attachment-renderers/shared/expanded-shell.tsx:27"}, "properties": {"repobilityId": "f63c692a77069b2d", "scanner": "scanner-primary", "fingerprint": "4295900b35ffbd94", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dbc2d99ec2dd53dd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/file-preview/previews/fallback.tsx:14"}, "properties": {"repobilityId": "4190874f28a8befc", "scanner": "scanner-primary", "fingerprint": "dbc2d99ec2dd53dd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fbc219a841880d8a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/file-preview/previews/font.tsx:95"}, "properties": {"repobilityId": "f28be04d59cb7fd9", "scanner": "scanner-primary", "fingerprint": "fbc219a841880d8a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f2dea277578a6bce", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/ui/components/file-preview/previews/audio.tsx:15"}, "properties": {"repobilityId": "1af695d28bf74412", "scanner": "scanner-primary", "fingerprint": "f2dea277578a6bce", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-36843e767cb671ea", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/pages/routes/home.tsx:183"}, "properties": {"repobilityId": "32bc730c17ba72c1", "scanner": "scanner-primary", "fingerprint": "36843e767cb671ea", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d331ef5efd2d53eb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/browser/src/pages/routes/diff-review/$agentInstanceId.tsx:104"}, "properties": {"repobilityId": "8d1d24413a1409b2", "scanner": "scanner-primary", "fingerprint": "d331ef5efd2d53eb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-950bc2aeab430c39", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/index.ts:139"}, "properties": {"repobilityId": "535a647ca9632388", "scanner": "scanner-primary", "fingerprint": "950bc2aeab430c39", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-40446ca18790c83d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/agents/shared/prompts/utils/workspace-info/get-package-manager.ts:35"}, "properties": {"repobilityId": "aa18c4d27eb1ed7c", "scanner": "scanner-primary", "fingerprint": "40446ca18790c83d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-af2f508de6aa19a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/agents/shared/prompts/utils/workspace-info/get-project-root.ts:23"}, "properties": {"repobilityId": "b60622818f39ed16", "scanner": "scanner-primary", "fingerprint": "af2f508de6aa19a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-07b867ffc5ac8415", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/backend/services/file-picker.ts:65"}, "properties": {"repobilityId": "46fad8fa47b40773", "scanner": "scanner-primary", "fingerprint": "07b867ffc5ac8415", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-eda7281b76d21554", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/backend/services/window-layout/ui-controller.ts:927"}, "properties": {"repobilityId": "8e46baca2367fef1", "scanner": "scanner-primary", "fingerprint": "eda7281b76d21554", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ef81d481ccb21c55", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/backend/services/window-layout/browsing-tab-controller.ts:812"}, "properties": {"repobilityId": "aaac7dc87ac8822a", "scanner": "scanner-primary", "fingerprint": "ef81d481ccb21c55", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-9b7445b3ba26bd45", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/services/window-layout/browsing-tab-controller.ts:2499"}, "properties": {"repobilityId": "897327b5069a85e2", "scanner": "scanner-primary", "fingerprint": "9b7445b3ba26bd45", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-38aa06b59ffb309d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/browser/src/backend/services/window-layout/tab-error-handler/chromium-error-codes.ts:1014"}, "properties": {"repobilityId": "7c9a14e914c8b474", "scanner": "scanner-primary", "fingerprint": "38aa06b59ffb309d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-bee0692e0338f8a4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/browser/src/backend/services/toolbox/tools/browser/read-console-logs.ts:33"}, "properties": {"repobilityId": "b593e33463cf90b8", "scanner": "scanner-primary", "fingerprint": "bee0692e0338f8a4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-97e79536299b8190", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/release/nightly-version.ts:122"}, "properties": {"repobilityId": "33979da6db1673fe", "scanner": "scanner-primary", "fingerprint": "97e79536299b8190", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-07d86374a5859ddd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/release/index.ts:58"}, "properties": {"repobilityId": "c1b7371766f34d50", "scanner": "scanner-primary", "fingerprint": "07d86374a5859ddd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e8a6edf44acfa8e6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/experiments/extract-compression-test-data.ts:149"}, "properties": {"repobilityId": "f7547522d8a1613e", "scanner": "scanner-primary", "fingerprint": "e8a6edf44acfa8e6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-54aafa079beff87d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent/runtime-node/build.ts:30"}, "properties": {"repobilityId": "5d913995c3ae6241", "scanner": "scanner-primary", "fingerprint": "54aafa079beff87d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d82385182415250c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent/runtime-node/src/__tests__/glob-ripgrep.test.ts:21"}, "properties": {"repobilityId": "c00279871f190f9c", "scanner": "scanner-primary", "fingerprint": "d82385182415250c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-afa46f1a2787eba9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent/runtime-node/src/__tests__/grep-ripgrep.test.ts:21"}, "properties": {"repobilityId": "0e8e81a287d8dbfc", "scanner": "scanner-primary", "fingerprint": "afa46f1a2787eba9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-309dd2d48b661fff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent/runtime-node/src/__tests__/utils/test-fixtures.ts:132"}, "properties": {"repobilityId": "806a524176241720", "scanner": "scanner-primary", "fingerprint": "309dd2d48b661fff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-671b25536dfa99f7", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 agent/runtime-node/src/glob/glob-ripgrep.ts:99"}, "properties": {"repobilityId": "68840d5cd601bc30", "scanner": "scanner-primary", "fingerprint": "671b25536dfa99f7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-9dcf682f8fad0820", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/agent-shell/build.js:14"}, "properties": {"repobilityId": "90c034c4610ab7ad", "scanner": "scanner-primary", "fingerprint": "9dcf682f8fad0820", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-636eff3f7aedaaeb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/karton/build.js:40"}, "properties": {"repobilityId": "bcfd1c42c8c5939e", "scanner": "scanner-primary", "fingerprint": "636eff3f7aedaaeb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3b4d3b55a65384ab", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/karton/test/client/karton-client.test.ts:44"}, "properties": {"repobilityId": "0f56f3b5f0df8aef", "scanner": "scanner-primary", "fingerprint": "3b4d3b55a65384ab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-541eb5d15e1f803a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/karton/test/server/karton-server-lazy-registration.test.ts:82"}, "properties": {"repobilityId": "5e78b53c5f2b38c1", "scanner": "scanner-primary", "fingerprint": "541eb5d15e1f803a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-17b3b58fe3f9f28a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/karton/src/server/karton-server.ts:254"}, "properties": {"repobilityId": "2266b56f2edd903f", "scanner": "scanner-primary", "fingerprint": "17b3b58fe3f9f28a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4d9d7021ad8c1669", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/stage-ui/src/generate-theme-colors.ts:377"}, "properties": {"repobilityId": "b3e8d2b3d82a1d96", "scanner": "scanner-primary", "fingerprint": "4d9d7021ad8c1669", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ce44d6992772da05", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/stage-ui/src/code-block/extract-vars-from-example-theme.ts:622"}, "properties": {"repobilityId": "d3903c33331b58c1", "scanner": "scanner-primary", "fingerprint": "ce44d6992772da05", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-428bc7428438b2e8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/stage-ui/src/code-block/generate-code-block-theme-json.ts:910"}, "properties": {"repobilityId": "a2e4626cd06d6aa7", "scanner": "scanner-primary", "fingerprint": "428bc7428438b2e8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1950002c45ebb576", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/stage-ui/src/components/select.tsx:481"}, "properties": {"repobilityId": "d0907fa25ec1f19b", "scanner": "scanner-primary", "fingerprint": "1950002c45ebb576", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-657dd7da78dee253", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/stage-ui/src/components/searchable-select.tsx:364"}, "properties": {"repobilityId": "07665e06c7800695", "scanner": "scanner-primary", "fingerprint": "657dd7da78dee253", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-41b7c05b353f9b99", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/agent-core/build.js:14"}, "properties": {"repobilityId": "48d6bfe4d1c62d9f", "scanner": "scanner-primary", "fingerprint": "41b7c05b353f9b99", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-06089a9b91a86e18", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/agent-core/src/agents/base-agent.ts:938"}, "properties": {"repobilityId": "9c40aa32958d1ce8", "scanner": "scanner-primary", "fingerprint": "06089a9b91a86e18", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b29a36548d50df3e", "level": "warning", "message": {"text": "Dockerfile runs as root: apps/update-server/Dockerfile"}, "properties": {"repobilityId": "454968fc12b50a7c", "scanner": "scanner-primary", "fingerprint": "b29a36548d50df3e", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-e0c1b6417a889249", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-alpine"}, "properties": {"repobilityId": "6778866b3daf9f42", "scanner": "scanner-primary", "fingerprint": "e0c1b6417a889249", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/update-server/Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-e0c1b6417a889249", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-alpine"}, "properties": {"repobilityId": "aed0c73173474f38", "scanner": "scanner-primary", "fingerprint": "e0c1b6417a889249", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/update-server/Dockerfile"}, "region": {"startLine": 15}}}]}, {"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-ed37e0b42fd1850f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/website/src/app/layout.tsx:44"}, "properties": {"repobilityId": "e00b07cb580a31c5", "scanner": "scanner-primary", "fingerprint": "ed37e0b42fd1850f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/website/src/app/layout.tsx"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-6924459c0a11923b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/scripts/bundle-eslint-server.ts:19"}, "properties": {"repobilityId": "428f76cffb80cc89", "scanner": "scanner-primary", "fingerprint": "6924459c0a11923b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/scripts/bundle-eslint-server.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-2bb49d4e341f1ecd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/scripts/clear-vite-cache.ts:4"}, "properties": {"repobilityId": "e6a13afcded19ed9", "scanner": "scanner-primary", "fingerprint": "2bb49d4e341f1ecd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/scripts/clear-vite-cache.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-b73174391b5791ae", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in apps/browser/bundled/skills/debug/SKILL.md:113"}, "properties": {"repobilityId": "28ca810bc24546c7", "scanner": "scanner-primary", "fingerprint": "b73174391b5791ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/bundled/skills/debug/SKILL.md"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-de937abdd24076ab", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in apps/browser/bundled/plugins/figma/apps/figma-app/index.html:61"}, "properties": {"repobilityId": "1264a268e9a37f52", "scanner": "scanner-primary", "fingerprint": "de937abdd24076ab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/bundled/plugins/figma/apps/figma-app/index.html"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-07ca3761270219dc", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/screens/settings/sections/plugins-section.tsx:43"}, "properties": {"repobilityId": "f7574705aa4922c0", "scanner": "scanner-primary", "fingerprint": "07ca3761270219dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/ui/screens/settings/sections/plugins-section.tsx"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-82fe0b8db1f12df5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/read.tsx:114"}, "properties": {"repobilityId": "d3eb23c9e92bbd4f", "scanner": "scanner-primary", "fingerprint": "82fe0b8db1f12df5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/read.tsx"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-c6343fd7fd48ea38", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/components/file-icon.tsx:34"}, "properties": {"repobilityId": "cf3b059da8513736", "scanner": "scanner-primary", "fingerprint": "c6343fd7fd48ea38", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/ui/components/file-icon.tsx"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-d860fc3f654fc773", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/components/ui/streaming-code-block.tsx:175"}, "properties": {"repobilityId": "432bf8a070993ba3", "scanner": "scanner-primary", "fingerprint": "d860fc3f654fc773", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/ui/components/ui/streaming-code-block.tsx"}, "region": {"startLine": 175}}}]}, {"ruleId": "scanner-5594b5977da5444b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/components/ui/mermaid.tsx:147"}, "properties": {"repobilityId": "367d693e1694ef31", "scanner": "scanner-primary", "fingerprint": "5594b5977da5444b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/ui/components/ui/mermaid.tsx"}, "region": {"startLine": 147}}}]}, {"ruleId": "scanner-29b8f998ce703070", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/browser/src/ui/components/ui/code-block.tsx:280"}, "properties": {"repobilityId": "ef8a8f59f54d0609", "scanner": "scanner-primary", "fingerprint": "29b8f998ce703070", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/ui/components/ui/code-block.tsx"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-ef0ca982578b4240", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/utils/command-executor.ts:1"}, "properties": {"repobilityId": "de1e8bc47353d770", "scanner": "scanner-primary", "fingerprint": "ef0ca982578b4240", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/utils/command-executor.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4b582013ba01e339", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/utils/port-utils.ts:2"}, "properties": {"repobilityId": "ff70a59353353150", "scanner": "scanner-primary", "fingerprint": "4b582013ba01e339", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/utils/port-utils.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-9fb0473602897214", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/agents/shared/prompts/utils/workspace-info/index.ts:2"}, "properties": {"repobilityId": "073567d7c939ae12", "scanner": "scanner-primary", "fingerprint": "9fb0473602897214", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/agents/shared/prompts/utils/workspace-info/index.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-536430688b72851d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/macos-closed-lid-sleep.ts:1"}, "properties": {"repobilityId": "cb369dae96d5fc22", "scanner": "scanner-primary", "fingerprint": "536430688b72851d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/macos-closed-lid-sleep.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-201c58be20f5b6d8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/file-tree/index.ts:3"}, "properties": {"repobilityId": "6563268d07ec3e41", "scanner": "scanner-primary", "fingerprint": "201c58be20f5b6d8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/file-tree/index.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-0cce1db1adf3a4af", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/git/index.ts:1"}, "properties": {"repobilityId": "a238e79de007e149", "scanner": "scanner-primary", "fingerprint": "0cce1db1adf3a4af", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/git/index.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d963e54ffb5d9d8c", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in apps/browser/src/backend/services/log-ingest/index.ts:18"}, "properties": {"repobilityId": "9caca1245fbc6b58", "scanner": "scanner-primary", "fingerprint": "d963e54ffb5d9d8c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/log-ingest/index.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-eef1fed77db9c837", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/terminal/index.ts:3"}, "properties": {"repobilityId": "8daee6ecfd7de8a6", "scanner": "scanner-primary", "fingerprint": "eef1fed77db9c837", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/terminal/index.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-7ab0b6c3dd0356f2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/mount-manager/worktree-setup-runner.ts:5"}, "properties": {"repobilityId": "39ce76e29b60536c", "scanner": "scanner-primary", "fingerprint": "7ab0b6c3dd0356f2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/toolbox/services/mount-manager/worktree-setup-runner.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-27c98ae3ce92ff95", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/client.ts:6"}, "properties": {"repobilityId": "4ac5767b439ad156", "scanner": "scanner-primary", "fingerprint": "27c98ae3ce92ff95", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/toolbox/services/lsp/client.ts"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-b92c063918cc5279", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/types.ts:1"}, "properties": {"repobilityId": "d92fd338deac1561", "scanner": "scanner-primary", "fingerprint": "b92c063918cc5279", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/toolbox/services/lsp/types.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb9c9e51ca467f46", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/biome.ts:1"}, "properties": {"repobilityId": "8b0593fb13092e22", "scanner": "scanner-primary", "fingerprint": "eb9c9e51ca467f46", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/toolbox/services/lsp/servers/biome.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bd4e0d18d61ef780", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/eslint.ts:1"}, "properties": {"repobilityId": "1f47f8eebc783193", "scanner": "scanner-primary", "fingerprint": "bd4e0d18d61ef780", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/toolbox/services/lsp/servers/eslint.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6ca5f46278da8521", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/typescript.ts:1"}, "properties": {"repobilityId": "196284bd2a3d2b96", "scanner": "scanner-primary", "fingerprint": "6ca5f46278da8521", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/toolbox/services/lsp/servers/typescript.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a323ca703d9b8287", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/utils/binary-finder.ts:1"}, "properties": {"repobilityId": "4aed4f9edddfb1bf", "scanner": "scanner-primary", "fingerprint": "a323ca703d9b8287", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/toolbox/services/lsp/servers/utils/binary-finder.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3a19650f37024aa2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/toolbox/services/lsp/servers/utils/spawn-helpers.ts:1"}, "properties": {"repobilityId": "42b6a8c9fd46d5f9", "scanner": "scanner-primary", "fingerprint": "3a19650f37024aa2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/toolbox/services/lsp/servers/utils/spawn-helpers.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8a9f10ae31c8f514", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/browser/src/backend/services/telemetry/process-snapshot.ts:1"}, "properties": {"repobilityId": "071528c3c10418f9", "scanner": "scanner-primary", "fingerprint": "8a9f10ae31c8f514", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/src/backend/services/telemetry/process-snapshot.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9153b85e13e4142a", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in scripts/release/git-utils.ts:16"}, "properties": {"repobilityId": "60b29baa195de566", "scanner": "scanner-primary", "fingerprint": "9153b85e13e4142a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/release/git-utils.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-0a3ef0e660afc7a7", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/release/git-utils.ts:5"}, "properties": {"repobilityId": "52c4f39f86f0a280", "scanner": "scanner-primary", "fingerprint": "0a3ef0e660afc7a7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/release/git-utils.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-a2054f0c95229214", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in scripts/release/nightly-version.ts:64"}, "properties": {"repobilityId": "8b7f0417976e3e4e", "scanner": "scanner-primary", "fingerprint": "a2054f0c95229214", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/release/nightly-version.ts"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-413c758533392a3e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/release/nightly-version.ts:4"}, "properties": {"repobilityId": "bee9afe9fd3488ba", "scanner": "scanner-primary", "fingerprint": "413c758533392a3e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/release/nightly-version.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-b849f6dbd54894cf", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/experiments/extract-compression-test-data.ts:28"}, "properties": {"repobilityId": "60f42f204334db88", "scanner": "scanner-primary", "fingerprint": "b849f6dbd54894cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/experiments/extract-compression-test-data.ts"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-033d7928513ef451", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in agent/runtime-node/src/__tests__/file-operations.test.ts:412"}, "properties": {"repobilityId": "00a6d0b463914e27", "scanner": "scanner-primary", "fingerprint": "033d7928513ef451", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/runtime-node/src/__tests__/file-operations.test.ts"}, "region": {"startLine": 412}}}]}, {"ruleId": "scanner-548235abfc1da899", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in agent/runtime-node/src/__tests__/shared/grep-test-suite.ts:313"}, "properties": {"repobilityId": "3142eba6793a616a", "scanner": "scanner-primary", "fingerprint": "548235abfc1da899", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/runtime-node/src/__tests__/shared/grep-test-suite.ts"}, "region": {"startLine": 313}}}]}, {"ruleId": "scanner-f481b945ca465352", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in agent/runtime-node/src/grep/grep-ripgrep.ts:1"}, "properties": {"repobilityId": "75b60ecd8f787333", "scanner": "scanner-primary", "fingerprint": "f481b945ca465352", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/runtime-node/src/grep/grep-ripgrep.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e15aedf441f1e88b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in agent/runtime-node/src/glob/glob-ripgrep.ts:7"}, "properties": {"repobilityId": "a3cbe37f0f744e6b", "scanner": "scanner-primary", "fingerprint": "e15aedf441f1e88b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/runtime-node/src/glob/glob-ripgrep.ts"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-cf1d8754ded77164", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in agent/runtime-node/src/vscode-ripgrep/download.ts:8"}, "properties": {"repobilityId": "12279d14efd0a683", "scanner": "scanner-primary", "fingerprint": "cf1d8754ded77164", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/runtime-node/src/vscode-ripgrep/download.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-526646ce12869739", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/agent-shell/build.js:4"}, "properties": {"repobilityId": "31b5c5987503512a", "scanner": "scanner-primary", "fingerprint": "526646ce12869739", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/agent-shell/build.js"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-e74ac029a13f1f79", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/agent-shell/src/engine/session-manager.ts:2"}, "properties": {"repobilityId": "a32de0016c5a8a57", "scanner": "scanner-primary", "fingerprint": "e74ac029a13f1f79", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/agent-shell/src/engine/session-manager.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-92591476f70130fb", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/agent-shell/src/engine/shell-env/detect-shell.ts:1"}, "properties": {"repobilityId": "5a2884ca00ae7963", "scanner": "scanner-primary", "fingerprint": "92591476f70130fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/agent-shell/src/engine/shell-env/detect-shell.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5dfc5d9782bccf13", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/agent-shell/src/engine/shell-env/resolve-shell-env.ts:1"}, "properties": {"repobilityId": "49d9df06292339ab", "scanner": "scanner-primary", "fingerprint": "5dfc5d9782bccf13", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/agent-shell/src/engine/shell-env/resolve-shell-env.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a17a1caca5c14f3c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/karton/build.js:7"}, "properties": {"repobilityId": "96fd217e51420764", "scanner": "scanner-primary", "fingerprint": "a17a1caca5c14f3c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/karton/build.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-8ccf8394e6f963df", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/agent-core/build.js:4"}, "properties": {"repobilityId": "48b9720f5a4e8821", "scanner": "scanner-primary", "fingerprint": "8ccf8394e6f963df", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/agent-core/build.js"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-f96b7fc179778eae", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/agent-core/src/file-read-transformer/transformers/disk-image.ts:15"}, "properties": {"repobilityId": "008079c17c021184", "scanner": "scanner-primary", "fingerprint": "f96b7fc179778eae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/agent-core/src/file-read-transformer/transformers/disk-image.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-347145f029bd508f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/agent-core/src/services/mount-manager/workspace-info/git.ts:1"}, "properties": {"repobilityId": "3d1595ed5f515488", "scanner": "scanner-primary", "fingerprint": "347145f029bd508f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/agent-core/src/services/mount-manager/workspace-info/git.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5ea4682287727c57", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "38103523976f47cc", "scanner": "scanner-primary", "fingerprint": "5ea4682287727c57", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/prepare-release.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-5ea4682287727c57", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9a1658cdfa6f6c09", "scanner": "scanner-primary", "fingerprint": "5ea4682287727c57", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/prepare-release.yml"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-5ea4682287727c57", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "13e6cc19eaa11bf6", "scanner": "scanner-primary", "fingerprint": "5ea4682287727c57", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/prepare-release.yml"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-616dcaccfccca14b", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "8e07cbb297b13f25", "scanner": "scanner-primary", "fingerprint": "616dcaccfccca14b", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/prepare-release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-49b75608eb4cfcc0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d6892594f8ad6941", "scanner": "scanner-primary", "fingerprint": "49b75608eb4cfcc0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/_release-karton.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-b753e419cd0f8b83", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "ae1e88afe5b1d79b", "scanner": "scanner-primary", "fingerprint": "b753e419cd0f8b83", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/_release-karton.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0b23931a3e13c9b1", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "18ee3bf6b95611bb", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "29ca379e5e866663", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0b23931a3e13c9b1", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "18ee3bf6b95611bb", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "29ca379e5e866663", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3e53cd7d513869ec", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0b23931a3e13c9b1", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "18ee3bf6b95611bb", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "29ca379e5e866663", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "18ea7e3acd8db4cc", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0b23931a3e13c9b1", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "18ee3bf6b95611bb", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 151}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "29ca379e5e866663", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0b23931a3e13c9b1", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 212}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "18ee3bf6b95611bb", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 215}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "29ca379e5e866663", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 220}}}]}, {"ruleId": "scanner-e2f360a5a0d2acd2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0e368ffbe4f43638", "scanner": "scanner-primary", "fingerprint": "e2f360a5a0d2acd2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/monorepo-ci.yml"}, "region": {"startLine": 272}}}]}, {"ruleId": "scanner-432eba8849c1c9cc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e061ec649811de1a", "scanner": "scanner-primary", "fingerprint": "432eba8849c1c9cc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/_release-browser.yml"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-432eba8849c1c9cc", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4f4271bbe5325221", "scanner": "scanner-primary", "fingerprint": "432eba8849c1c9cc", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/_release-browser.yml"}, "region": {"startLine": 195}}}]}, {"ruleId": "scanner-8ef3aa41758a997c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "7b41122a1c3248ae", "scanner": "scanner-primary", "fingerprint": "8ef3aa41758a997c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/_release-browser.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5bc4cf5aa717df4c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f66730990c41b8df", "scanner": "scanner-primary", "fingerprint": "5bc4cf5aa717df4c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/auto-release.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-fc1c6dcb00af79ac", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "e06242eaaa2adbf9", "scanner": "scanner-primary", "fingerprint": "fc1c6dcb00af79ac", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/auto-release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-51ffe7b4f95d0c64", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "4f5555738a1681bd", "scanner": "scanner-primary", "fingerprint": "51ffe7b4f95d0c64", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/nightly-release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f5c6e806454f7092", "level": "warning", "message": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "properties": {"repobilityId": "edeab51902066991", "scanner": "scanner-primary", "fingerprint": "f5c6e806454f7092", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4ac72d95d6c1e301", "level": "note", "message": {"text": "Very large file: apps/browser/src/shared/karton-contracts/ui/index.ts (2102 lines)"}, "properties": {"repobilityId": "d4966782bfca2c45", "scanner": "scanner-primary", "fingerprint": "4ac72d95d6c1e301", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-77e5e55a830f65ce", "level": "note", "message": {"text": "Very large file: apps/browser/src/ui/screens/settings/sections/models-providers-section.tsx (1689 lines)"}, "properties": {"repobilityId": "39099c20a4064360", "scanner": "scanner-primary", "fingerprint": "77e5e55a830f65ce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7c08c80030b16677", "level": "note", "message": {"text": "Very large file: apps/browser/src/ui/screens/main/file-tree/file-preview-tab-content.tsx (2780 lines)"}, "properties": {"repobilityId": "230042f383af00cb", "scanner": "scanner-primary", "fingerprint": "7c08c80030b16677", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3899963cb57a60cc", "level": "note", "message": {"text": "Very large file: apps/browser/src/ui/screens/main/agent-chat/chat/_components/chat-history.tsx (1346 lines)"}, "properties": {"repobilityId": "b12abeaee793d092", "scanner": "scanner-primary", "fingerprint": "3899963cb57a60cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-14b764ae2f8a613e", "level": "note", "message": {"text": "Very large file: apps/browser/src/ui/screens/main/agent-chat/chat/_components/panel-footer.tsx (1782 lines)"}, "properties": {"repobilityId": "2a746852d78e0357", "scanner": "scanner-primary", "fingerprint": "14b764ae2f8a613e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3e20d3952435c590", "level": "note", "message": {"text": "Very large file: apps/browser/src/ui/screens/main/agent-chat/chat/_components/workspace-select.tsx (3950 lines)"}, "properties": {"repobilityId": "044f472d93eafdcb", "scanner": "scanner-primary", "fingerprint": "3e20d3952435c590", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-02e4c1344bb3528a", "level": "note", "message": {"text": "Very large file: apps/browser/src/ui/screens/main/sidebar/agents-list/index.tsx (2645 lines)"}, "properties": {"repobilityId": "f58e27b26965752b", "scanner": "scanner-primary", "fingerprint": "02e4c1344bb3528a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fe02dba2413e2438", "level": "note", "message": {"text": "Very large file: apps/browser/src/backend/services/file-tree/index.ts (1895 lines)"}, "properties": {"repobilityId": "7da956dfd17e0ecb", "scanner": "scanner-primary", "fingerprint": "fe02dba2413e2438", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-15f0d3009229bb91", "level": "note", "message": {"text": "Very large file: apps/browser/src/backend/services/window-layout/index.ts (3318 lines)"}, "properties": {"repobilityId": "713c47a726f1da8e", "scanner": "scanner-primary", "fingerprint": "15f0d3009229bb91", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-59448965d502e5c8", "level": "note", "message": {"text": "Very large file: apps/browser/src/backend/services/window-layout/browsing-tab-controller.ts (3041 lines)"}, "properties": {"repobilityId": "b7ed70b573ac3d89", "scanner": "scanner-primary", "fingerprint": "59448965d502e5c8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d90bd56c00e931c1", "level": "note", "message": {"text": "Very large file: apps/browser/src/backend/services/toolbox/index.ts (1824 lines)"}, "properties": {"repobilityId": "150c589405569a23", "scanner": "scanner-primary", "fingerprint": "d90bd56c00e931c1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-243504b5c55b7b45", "level": "note", "message": {"text": "Very large file: apps/browser/src/backend/services/toolbox/services/mount-manager/index.ts (1681 lines)"}, "properties": {"repobilityId": "3a106e4c17d8d6ac", "scanner": "scanner-primary", "fingerprint": "243504b5c55b7b45", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-20126d562407989d", "level": "note", "message": {"text": "Very large file: packages/agent-core/src/agents/base-agent.ts (3375 lines)"}, "properties": {"repobilityId": "6f8ab4e5da2158f9", "scanner": "scanner-primary", "fingerprint": "20126d562407989d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d3c094692b556bae", "level": "note", "message": {"text": "Very large file: packages/agent-core/src/agents/shared/message-conversion.ts (1415 lines)"}, "properties": {"repobilityId": "ec39e0b3d5bf682d", "scanner": "scanner-primary", "fingerprint": "d3c094692b556bae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-82ce25ea89b0df66", "level": "note", "message": {"text": "Very large file: packages/agent-core/src/services/agent-manager/agent-manager.ts (1724 lines)"}, "properties": {"repobilityId": "a6f3a450c53b7b21", "scanner": "scanner-primary", "fingerprint": "82ce25ea89b0df66", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4ee7c0d8f5c15810", "level": "note", "message": {"text": "Very large file: packages/agent-core/src/services/diff-history/index.ts (1823 lines)"}, "properties": {"repobilityId": "1c0348605926435a", "scanner": "scanner-primary", "fingerprint": "4ee7c0d8f5c15810", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7d5d988c330df784", "level": "note", "message": {"text": "Very large file: packages/agent-core/src/services/diff-history/utils/db.test.ts (2181 lines)"}, "properties": {"repobilityId": "2d048dd1ab9dc176", "scanner": "scanner-primary", "fingerprint": "7d5d988c330df784", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8c1ec379a95b3b15", "level": "note", "message": {"text": "Very large file: packages/agent-core/src/services/diff-history/utils/diff.test.ts (1974 lines)"}, "properties": {"repobilityId": "237c4b02e155a3f8", "scanner": "scanner-primary", "fingerprint": "8c1ec379a95b3b15", "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-2a3c3892bcd596b5", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/website/package.json"}, "properties": {"repobilityId": "61e5eefadfa8c0a3", "scanner": "scanner-primary", "fingerprint": "2a3c3892bcd596b5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/website/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b149c550289ea76e", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/stagewise-cli/package.json"}, "properties": {"repobilityId": "4e348f53eb4677d7", "scanner": "scanner-primary", "fingerprint": "b149c550289ea76e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/stagewise-cli/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9d28c09d4692c8c5", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/deprecated-cli/package.json"}, "properties": {"repobilityId": "ffeade3f2d11b1a5", "scanner": "scanner-primary", "fingerprint": "9d28c09d4692c8c5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/deprecated-cli/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d856982b111d248c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/browser/package.json"}, "properties": {"repobilityId": "c64cb3be582352ac", "scanner": "scanner-primary", "fingerprint": "d856982b111d248c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6fb57c931d218c3d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: agent/runtime-node/package.json"}, "properties": {"repobilityId": "120f5e304db47e50", "scanner": "scanner-primary", "fingerprint": "6fb57c931d218c3d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/runtime-node/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-40d2fc5e5ebbea05", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/agent-shell/package.json"}, "properties": {"repobilityId": "f1c597846aac9f5f", "scanner": "scanner-primary", "fingerprint": "40d2fc5e5ebbea05", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/agent-shell/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3eb77ffc63dcc3be", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/stage-ui/package.json"}, "properties": {"repobilityId": "17ccdcf39d863460", "scanner": "scanner-primary", "fingerprint": "3eb77ffc63dcc3be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/stage-ui/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5c14a17118b17624", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/tailwindcss-color-modifiers/package.json"}, "properties": {"repobilityId": "80328b185b329b5e", "scanner": "scanner-primary", "fingerprint": "5c14a17118b17624", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tailwindcss-color-modifiers/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1ebbfde23d1ebf7e", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/agent-core/package.json"}, "properties": {"repobilityId": "f175b4cb509f02e2", "scanner": "scanner-primary", "fingerprint": "1ebbfde23d1ebf7e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/agent-core/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b321a75dd8f74a77", "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": "e07e3818140ad2ee", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "c3f12cbb598eb879", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "3ab550d03b3aaeb0", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "43ad5351929cc2b4", "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": "8fc0ccb747a702f1", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-4e75307e250a537d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/skills/implement/SKILL.md"}, "properties": {"repobilityId": "68476a88b3eec774", "scanner": "scanner-primary", "fingerprint": "4e75307e250a537d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/bundled/skills/implement/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-26465da110c7fe17", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/skills/debug/SKILL.md"}, "properties": {"repobilityId": "41fc00e057061b63", "scanner": "scanner-primary", "fingerprint": "26465da110c7fe17", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/bundled/skills/debug/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c3f90c78678229aa", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/github/SKILL.md"}, "properties": {"repobilityId": "cd3eed54037dab2d", "scanner": "scanner-primary", "fingerprint": "c3f90c78678229aa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/bundled/plugins/github/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1126ad1c35d4c1c3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/javascript-sandbox/SKILL.md"}, "properties": {"repobilityId": "f7740365b68fffcb", "scanner": "scanner-primary", "fingerprint": "1126ad1c35d4c1c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/bundled/plugins/javascript-sandbox/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6209a2397e0fd715", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/mini-apps/SKILL.md"}, "properties": {"repobilityId": "99ce1a0c3af56f85", "scanner": "scanner-primary", "fingerprint": "6209a2397e0fd715", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/bundled/plugins/mini-apps/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f0ae836041d7ee82", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/supabase/SKILL.md"}, "properties": {"repobilityId": "bfb8ae4fb2d08b90", "scanner": "scanner-primary", "fingerprint": "f0ae836041d7ee82", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/bundled/plugins/supabase/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a9437298fbfb6e4a", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: apps/browser/bundled/plugins/posthog/SKILL.md"}, "properties": {"repobilityId": "6272fea11f9d9875", "scanner": "scanner-primary", "fingerprint": "a9437298fbfb6e4a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/bundled/plugins/posthog/SKILL.md"}, "region": {"startLine": 411}}}]}, {"ruleId": "scanner-d2595bd8114325a5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/posthog/SKILL.md"}, "properties": {"repobilityId": "7c0ca4ecab1103b9", "scanner": "scanner-primary", "fingerprint": "d2595bd8114325a5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/bundled/plugins/posthog/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2fb6ea47e23f68a2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: apps/browser/bundled/plugins/figma/SKILL.md"}, "properties": {"repobilityId": "24715ef4cd5f5c4e", "scanner": "scanner-primary", "fingerprint": "2fb6ea47e23f68a2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/browser/bundled/plugins/figma/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-f6fa3ed22b89a532", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/update-server/src/releases.ts:266"}, "properties": {"repobilityId": "3ea69de2a8e38173", "scanner": "scanner-primary", "fingerprint": "f6fa3ed22b89a532", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-312435722144ef1d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/update-server/src/github.ts:49"}, "properties": {"repobilityId": "989f34802294047e", "scanner": "scanner-primary", "fingerprint": "312435722144ef1d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c55c390906d8c066", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/update-server/src/routes.ts:153"}, "properties": {"repobilityId": "d240d5c5183c7a81", "scanner": "scanner-primary", "fingerprint": "c55c390906d8c066", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06c5c708147bea36", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/website/src/components/posthog-provider.tsx:35"}, "properties": {"repobilityId": "d1a64e6bc0f6d991", "scanner": "scanner-primary", "fingerprint": "06c5c708147bea36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4976b89dababc029", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/website/src/lib/auth-client.ts:3"}, "properties": {"repobilityId": "cd4ccc921792d2a2", "scanner": "scanner-primary", "fingerprint": "4976b89dababc029", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db6f24cb2e3cb385", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/stagewise-cli/src/cli-chat-agent.ts:11"}, "properties": {"repobilityId": "6fb6e8535bf5cf7c", "scanner": "scanner-primary", "fingerprint": "db6f24cb2e3cb385", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5515070d218acb42", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/vite.backend.config.ts:26"}, "properties": {"repobilityId": "c6e5d8b010a0f0ff", "scanner": "scanner-primary", "fingerprint": "5515070d218acb42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1378a4c6f027e9cb", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/vite.ui.config.ts:46"}, "properties": {"repobilityId": "c1a8508de08ad78f", "scanner": "scanner-primary", "fingerprint": "1378a4c6f027e9cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96299f1a5eca4f5a", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/browser/src/web-content-preload/stealth.ts:170"}, "properties": {"repobilityId": "64d605f93a75a67c", "scanner": "scanner-primary", "fingerprint": "96299f1a5eca4f5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e403b8e81eb4523", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/shared/available-models.ts:1105"}, "properties": {"repobilityId": "1204cc141d2aa9ec", "scanner": "scanner-primary", "fingerprint": "7e403b8e81eb4523", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-842029dae870437c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/shared/chromium-errors/codes.ts:396"}, "properties": {"repobilityId": "913a6c82313b5150", "scanner": "scanner-primary", "fingerprint": "842029dae870437c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0efa18620f72a5b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/shared/utils/attachment-filename.test.ts:62"}, "properties": {"repobilityId": "3a31ee85a5c5d8ce", "scanner": "scanner-primary", "fingerprint": "e0efa18620f72a5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f4ca66c4bcb15de", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/ui/utils.tsx:384"}, "properties": {"repobilityId": "5d4ac03601e8e24e", "scanner": "scanner-primary", "fingerprint": "4f4ca66c4bcb15de", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-53b98cfc562204e8", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/browser/src/ui/screens/index.tsx:11"}, "properties": {"repobilityId": "7350e35472dd119b", "scanner": "scanner-primary", "fingerprint": "53b98cfc562204e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39b024a4227deff5", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/settings/sections/custom-providers-section.tsx:588"}, "properties": {"repobilityId": "e91d123d424d5786", "scanner": "scanner-primary", "fingerprint": "39b024a4227deff5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27bc23359c6b46d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/settings/sections/models-providers-section.tsx:505"}, "properties": {"repobilityId": "c9a057a5a7ffda3b", "scanner": "scanner-primary", "fingerprint": "27bc23359c6b46d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8c703ca0275c7b3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/file-tree/file-preview-tab-content.tsx:453"}, "properties": {"repobilityId": "c746503c70c6704f", "scanner": "scanner-primary", "fingerprint": "c8c703ca0275c7b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f0e7cc5638fecae", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/command-center/command-center.tsx:284"}, "properties": {"repobilityId": "95d720c32c08d23b", "scanner": "scanner-primary", "fingerprint": "5f0e7cc5638fecae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfedb2438db296da", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/command-center/sources/use-file-command-items.tsx:59"}, "properties": {"repobilityId": "c5d349f68c41a853", "scanner": "scanner-primary", "fingerprint": "cfedb2438db296da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77f26937e1b7d3d7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/chat-history.tsx:53"}, "properties": {"repobilityId": "c282dcde004d7b0d", "scanner": "scanner-primary", "fingerprint": "77f26937e1b7d3d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef1943e2613fc36e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-user.tsx:274"}, "properties": {"repobilityId": "6d31770d34101f1d", "scanner": "scanner-primary", "fingerprint": "ef1943e2613fc36e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c08080ffbf30c454", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/chat-input.tsx:558"}, "properties": {"repobilityId": "b4f2337a305ce92f", "scanner": "scanner-primary", "fingerprint": "c08080ffbf30c454", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9148a369116ff709", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/panel-footer.tsx:724"}, "properties": {"repobilityId": "5ff26636af3605c0", "scanner": "scanner-primary", "fingerprint": "9148a369116ff709", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8e0b86e6b4bb217", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/workspace-select.tsx:256"}, "properties": {"repobilityId": "28d15ca361322290", "scanner": "scanner-primary", "fingerprint": "c8e0b86e6b4bb217", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6cb6553859969d33", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/message-part-ui/tools/execute-shell-command.tsx:167"}, "properties": {"repobilityId": "db874e792c7c0cf1", "scanner": "scanner-primary", "fingerprint": "6cb6553859969d33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f598721d13ccdfac", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/attachments/index.ts:78"}, "properties": {"repobilityId": "79216ae889bd4b11", "scanner": "scanner-primary", "fingerprint": "f598721d13ccdfac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e57d680134f0b44", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/attachments/nodes/attachment-view.tsx:37"}, "properties": {"repobilityId": "184d042d83e2aae5", "scanner": "scanner-primary", "fingerprint": "0e57d680134f0b44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd9ffde6f4b020e6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/ui/screens/main/agent-chat/chat/_components/rich-text/attachments/nodes/element-attachment-view.tsx:568"}, "properties": {"repobilityId": "a8c35cc6318598b1", "scanner": "scanner-primary", "fingerprint": "fd9ffde6f4b020e6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-71c1f58a502f17e5", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/agent-chat/chat/_components/footer-status-card/index.tsx:121"}, "properties": {"repobilityId": "5e6f7c4105187857", "scanner": "scanner-primary", "fingerprint": "71c1f58a502f17e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-867a7d53b7757e2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/content/index.tsx:336"}, "properties": {"repobilityId": "cd58749cf82ce052", "scanner": "scanner-primary", "fingerprint": "867a7d53b7757e2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28ccc9623db8eaea", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/_lib/agent-list-model.ts:159"}, "properties": {"repobilityId": "ae238f6e4e9a8433", "scanner": "scanner-primary", "fingerprint": "28ccc9623db8eaea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8acc7362ccada95", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/_components/shared-agent-context-menu.tsx:129"}, "properties": {"repobilityId": "c559d7d99e1f65b8", "scanner": "scanner-primary", "fingerprint": "a8acc7362ccada95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3611a93d7c29b8c2", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/_components/global-hotkey-bindings.tsx:91"}, "properties": {"repobilityId": "091285cba9111bcc", "scanner": "scanner-primary", "fingerprint": "3611a93d7c29b8c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d6990ef9d41d1be", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/screens/main/_components/agent-preview-panel.tsx:95"}, "properties": {"repobilityId": "4e197d4d126e71a3", "scanner": "scanner-primary", "fingerprint": "0d6990ef9d41d1be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac0e2fb7e4941d22", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/ui/screens/main/_components/agent-preview-panel.tsx:284"}, "properties": {"repobilityId": "3ff24eb1cada7352", "scanner": "scanner-primary", "fingerprint": "ac0e2fb7e4941d22", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0464bc7c797aadfc", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/browser/src/ui/screens/main/_components/delete-confirm-popover.tsx:77"}, "properties": {"repobilityId": "b6948571616aaed3", "scanner": "scanner-primary", "fingerprint": "0464bc7c797aadfc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d756cb94d8ae0971", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/sidebar/agents-list/index.tsx:981"}, "properties": {"repobilityId": "5ceed722b378a950", "scanner": "scanner-primary", "fingerprint": "d756cb94d8ae0971", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c3d8908255bd476", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/ui/screens/main/sidebar/agents-list/_components/agent-card-with-preview.tsx:56"}, "properties": {"repobilityId": "866d072ae4f07eb3", "scanner": "scanner-primary", "fingerprint": "2c3d8908255bd476", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a903a3b155fe3cd8", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/browser/src/ui/screens/main/sidebar/agents-list/_components/agent-card.tsx:301"}, "properties": {"repobilityId": "68cba392f304b70a", "scanner": "scanner-primary", "fingerprint": "a903a3b155fe3cd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bf089053714acd1", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/ui/components/web-contents-bounds-syncer.tsx:70"}, "properties": {"repobilityId": "f2d9e3a4d2a732b2", "scanner": "scanner-primary", "fingerprint": "2bf089053714acd1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed194efc5dc6ec67", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/ui/components/attachment-renderers/swdomelement/badge.tsx:256"}, "properties": {"repobilityId": "78ee35a3cd099330", "scanner": "scanner-primary", "fingerprint": "ed194efc5dc6ec67", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b98624d4dd0dbac8", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/browser/src/ui/hooks/use-is-container-scrollable.tsx:95"}, "properties": {"repobilityId": "0173ac8a191c7303", "scanner": "scanner-primary", "fingerprint": "b98624d4dd0dbac8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53183bde6fdc1364", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/browser/src/backend/index.ts:9"}, "properties": {"repobilityId": "4fdb146b02e883b1", "scanner": "scanner-primary", "fingerprint": "53183bde6fdc1364", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-915d4181ac5e0b83", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/main.ts:112"}, "properties": {"repobilityId": "f4e2a69dd23ce5cf", "scanner": "scanner-primary", "fingerprint": "915d4181ac5e0b83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94b74aa515362575", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/utils/dom-code-to-electron-key-code.ts:61"}, "properties": {"repobilityId": "4927c1528b9c7ea2", "scanner": "scanner-primary", "fingerprint": "94b74aa515362575", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-416643a55f457183", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/utils/port-utils.ts:355"}, "properties": {"repobilityId": "e342a99bb7f4ee71", "scanner": "scanner-primary", "fingerprint": "416643a55f457183", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d26f76b8e94b42ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/utils/validate-api-keys.ts:46"}, "properties": {"repobilityId": "082f8594a845b0fa", "scanner": "scanner-primary", "fingerprint": "d26f76b8e94b42ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d3868b7c7c0e030", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/agents/stagewise-provider.ts:135"}, "properties": {"repobilityId": "f787fed4d20f5212", "scanner": "scanner-primary", "fingerprint": "6d3868b7c7c0e030", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc626b2820fef6a9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/agents/stagewise-provider.ts:19"}, "properties": {"repobilityId": "192029df7c4ea748", "scanner": "scanner-primary", "fingerprint": "bc626b2820fef6a9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-22b475e9cb35a322", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/agents/chat/chat.ts:13"}, "properties": {"repobilityId": "9f3ccedc1a998687", "scanner": "scanner-primary", "fingerprint": "22b475e9cb35a322", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8482e347f50f5af", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/services/app-protocol.ts:193"}, "properties": {"repobilityId": "26b5297819c284d0", "scanner": "scanner-primary", "fingerprint": "b8482e347f50f5af", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eb3c0a65ff6b71bc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/services/pages.ts:181"}, "properties": {"repobilityId": "c90413ea278027c5", "scanner": "scanner-primary", "fingerprint": "eb3c0a65ff6b71bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3d665f00e6166bc0", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/browser/src/backend/services/window-layout/index.ts:1464"}, "properties": {"repobilityId": "c998b24430e9af3b", "scanner": "scanner-primary", "fingerprint": "3d665f00e6166bc0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95c9870867a9ba95", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/services/window-layout/ui-controller.ts:94"}, "properties": {"repobilityId": "6a29b3811ff2b174", "scanner": "scanner-primary", "fingerprint": "95c9870867a9ba95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d19bfa2e6fd30ba2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/services/window-layout/ui-controller.ts:339"}, "properties": {"repobilityId": "27a570c04e44d0e1", "scanner": "scanner-primary", "fingerprint": "d19bfa2e6fd30ba2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dc5591f71808ab4d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/window-layout/browsing-tab-controller.ts:1397"}, "properties": {"repobilityId": "73a7a4444259d9e5", "scanner": "scanner-primary", "fingerprint": "dc5591f71808ab4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-beeab7893d35f50b", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/services/window-layout/selected-element-tracker/index.ts:1296"}, "properties": {"repobilityId": "4a1ef75d5e04f366", "scanner": "scanner-primary", "fingerprint": "beeab7893d35f50b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-570e01a9d0ad8226", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/window-layout/tab-error-handler/chromium-error-codes.ts:396"}, "properties": {"repobilityId": "c105a9f8f4f47214", "scanner": "scanner-primary", "fingerprint": "570e01a9d0ad8226", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7218692831867b1", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/sandbox/index.ts:347"}, "properties": {"repobilityId": "32f72392a6425fb1", "scanner": "scanner-primary", "fingerprint": "e7218692831867b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-049eab1dc7be1c67", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/browser/src/backend/services/sandbox/sandbox-worker.ts:166"}, "properties": {"repobilityId": "3560b0251286a0d8", "scanner": "scanner-primary", "fingerprint": "049eab1dc7be1c67", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8743160b18e2b1e5", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/terminal/index.ts:573"}, "properties": {"repobilityId": "5fbaa7a900f3a18a", "scanner": "scanner-primary", "fingerprint": "8743160b18e2b1e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a320927bd731a26", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/favicon/schema.ts:17"}, "properties": {"repobilityId": "d9004cff985ce171", "scanner": "scanner-primary", "fingerprint": "8a320927bd731a26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98755a44067b72dc", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/services/agent-core-bridge/host.ts:123"}, "properties": {"repobilityId": "ab813a92904c7816", "scanner": "scanner-primary", "fingerprint": "98755a44067b72dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92c06a737aec6778", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/agent-core-bridge/host-telemetry.ts:30"}, "properties": {"repobilityId": "9ddf92a98f167eb0", "scanner": "scanner-primary", "fingerprint": "92c06a737aec6778", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f953d022f03fc73", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/services/agent-core-bridge/index.test.ts:1098"}, "properties": {"repobilityId": "2a045960f5be3d13", "scanner": "scanner-primary", "fingerprint": "1f953d022f03fc73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dcc533037e530f8", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/agent-core-bridge/index.ts:160"}, "properties": {"repobilityId": "6d6e7130090e7925", "scanner": "scanner-primary", "fingerprint": "4dcc533037e530f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3829e99da2f65852", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/index.ts:643"}, "properties": {"repobilityId": "78eb72c08217bed5", "scanner": "scanner-primary", "fingerprint": "3829e99da2f65852", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08b7540172ad1050", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/mount-manager/index.ts:85"}, "properties": {"repobilityId": "fcfcb7ca54db90e9", "scanner": "scanner-primary", "fingerprint": "08b7540172ad1050", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b403d28bb6d5d22", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/mount-manager/git-worktree-watcher.test.ts:5"}, "properties": {"repobilityId": "4e7a6465bdd87120", "scanner": "scanner-primary", "fingerprint": "5b403d28bb6d5d22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d699f22db22ad9d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/lsp/index.ts:104"}, "properties": {"repobilityId": "e8bb40f248d70bce", "scanner": "scanner-primary", "fingerprint": "d699f22db22ad9d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34ab39cd1b97ff74", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/lsp/client.ts:135"}, "properties": {"repobilityId": "ee9116b39cbbc875", "scanner": "scanner-primary", "fingerprint": "34ab39cd1b97ff74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ef162d618985345", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/browser/src/backend/services/toolbox/services/lsp/servers/rust-analyzer.test.ts:5"}, "properties": {"repobilityId": "55160d0ccb406b94", "scanner": "scanner-primary", "fingerprint": "5ef162d618985345", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e225409d0094d04", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/services/lsp/servers/rust-analyzer.ts:32"}, "properties": {"repobilityId": "176fcc7f651189c1", "scanner": "scanner-primary", "fingerprint": "4e225409d0094d04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e03a72ffa1b9f8a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/browser/src/backend/services/toolbox/tools/user-interaction/ask-user-questions.ts:186"}, "properties": {"repobilityId": "ff74ea0bfa43a460", "scanner": "scanner-primary", "fingerprint": "3e03a72ffa1b9f8a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2e0f9954a96f8c1", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/browser/src/backend/services/toolbox/tools/file-modification/get-linting-diagnostics.ts:28"}, "properties": {"repobilityId": "d9dbbe74c05e466f", "scanner": "scanner-primary", "fingerprint": "a2e0f9954a96f8c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a94615d35030e145", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/agent-shell/src/tools/execute-shell-command.ts:335"}, "properties": {"repobilityId": "755f16751e382818", "scanner": "scanner-primary", "fingerprint": "a94615d35030e145", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f5b15c649011d1b", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agent-shell/src/engine/shell-service.ts:466"}, "properties": {"repobilityId": "bf74e81f32d170e2", "scanner": "scanner-primary", "fingerprint": "2f5b15c649011d1b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3cd0b5d2f69c35c7", "level": "none", "message": {"text": "Commented-code block (13 lines) in packages/agent-shell/src/engine/osc-parser.ts:192"}, "properties": {"repobilityId": "15ebba410bd1f500", "scanner": "scanner-primary", "fingerprint": "3cd0b5d2f69c35c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c072249714b134e2", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/agent-shell/src/engine/session-manager.test.ts:306"}, "properties": {"repobilityId": "2934acda193c752f", "scanner": "scanner-primary", "fingerprint": "c072249714b134e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57e4f3b8797cc736", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agent-shell/src/engine/session-logger.ts:271"}, "properties": {"repobilityId": "c026470663bf2b58", "scanner": "scanner-primary", "fingerprint": "57e4f3b8797cc736", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6a5c9431910aec8", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/agent-shell/src/engine/sanitize-env.ts:117"}, "properties": {"repobilityId": "233f4b276fe4a529", "scanner": "scanner-primary", "fingerprint": "b6a5c9431910aec8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc2cc062f609d7d6", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/agent-shell/src/engine/osc-parser.test.ts:223"}, "properties": {"repobilityId": "1308e6c4bf955f4c", "scanner": "scanner-primary", "fingerprint": "bc2cc062f609d7d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-614e2e0270836061", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/agent-shell/src/engine/session-manager.ts:466"}, "properties": {"repobilityId": "f3a1de578c830a46", "scanner": "scanner-primary", "fingerprint": "614e2e0270836061", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8264f08651f551ea", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/agent-shell/src/engine/shell-env/resolve-shell-env.ts:78"}, "properties": {"repobilityId": "63919f07759d6068", "scanner": "scanner-primary", "fingerprint": "8264f08651f551ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca7662ddce00dc05", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/stage-ui/src/code-block/generate-code-block-theme-json.ts:481"}, "properties": {"repobilityId": "03b003e10f317288", "scanner": "scanner-primary", "fingerprint": "ca7662ddce00dc05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e28f4d2b9eba1f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/stage-ui/src/components/sortable-tabs.tsx:168"}, "properties": {"repobilityId": "5fd11fefaf479b78", "scanner": "scanner-primary", "fingerprint": "6e28f4d2b9eba1f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c609d11735c4083", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/tailwindcss-color-modifiers/src/index.ts:135"}, "properties": {"repobilityId": "da9b5ac4b30e7b08", "scanner": "scanner-primary", "fingerprint": "5c609d11735c4083", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-196275d104274b14", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agent-core/src/workspace/load-gitignore.ts:225"}, "properties": {"repobilityId": "18df858f85cfc729", "scanner": "scanner-primary", "fingerprint": "196275d104274b14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a7f1901511a1041", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agent-core/src/agents/base-agent.ts:1724"}, "properties": {"repobilityId": "5e87edcd8d4f6cbf", "scanner": "scanner-primary", "fingerprint": "1a7f1901511a1041", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c15826dbf084371e", "level": "note", "message": {"text": "Legacy-named symbol `canReplayLegacy` in packages/agent-core/src/agents/shared/message-conversion.ts:1018"}, "properties": {"repobilityId": "15b048922b0dd18e", "scanner": "scanner-primary", "fingerprint": "c15826dbf084371e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5b1bf589df7ab745", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agent-core/src/agents/shared/message-conversion.ts:511"}, "properties": {"repobilityId": "c52b90b9476d6bee", "scanner": "scanner-primary", "fingerprint": "5b1bf589df7ab745", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1799ba4c38014910", "level": "note", "message": {"text": "Legacy-named symbol `cachedOld` in packages/agent-core/src/file-read-transformer/index.ts:600"}, "properties": {"repobilityId": "a921a01e63ba7992", "scanner": "scanner-primary", "fingerprint": "1799ba4c38014910", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1f254ba64159f4b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agent-core/src/file-read-transformer/index.ts:403"}, "properties": {"repobilityId": "aaa50187c2fc97d9", "scanner": "scanner-primary", "fingerprint": "1f254ba64159f4b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11902e311f4c9cfa", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/agent-core/src/file-read-transformer/populate-path-references.ts:56"}, "properties": {"repobilityId": "1c4ca1992ef18396", "scanner": "scanner-primary", "fingerprint": "11902e311f4c9cfa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fddb4f4f70e0295", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/agent-core/src/file-read-transformer/ast/parser.ts:5"}, "properties": {"repobilityId": "229b120fe0405f24", "scanner": "scanner-primary", "fingerprint": "4fddb4f4f70e0295", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-50d0507f0219bb93", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/agent-core/src/file-read-transformer/transformers/source-code.test.ts:141"}, "properties": {"repobilityId": "9218f2a1d758e93b", "scanner": "scanner-primary", "fingerprint": "50d0507f0219bb93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b159287f21ad005", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/agent-core/src/services/mount-manager/mount-registry.test.ts:357"}, "properties": {"repobilityId": "878bb4ab87b7a73c", "scanner": "scanner-primary", "fingerprint": "3b159287f21ad005", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b19040109756582b", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agent-core/src/services/agent-manager/agent-manager.startup-policy.test.ts:218"}, "properties": {"repobilityId": "e94432cdc4b999b4", "scanner": "scanner-primary", "fingerprint": "b19040109756582b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9a837658b1a4b72", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/agent-core/src/services/agent-manager/agent-manager.ts:327"}, "properties": {"repobilityId": "0a3ba7813b8a05b4", "scanner": "scanner-primary", "fingerprint": "e9a837658b1a4b72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8ac461d28cca80f", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/agent-core/src/services/agent-persistence/db.ts:190"}, "properties": {"repobilityId": "d2e6f242bb4f2020", "scanner": "scanner-primary", "fingerprint": "c8ac461d28cca80f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dbcaed28a3db8891", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agent-core/src/services/diff-history/index.ts:360"}, "properties": {"repobilityId": "bab5e0ae14bacaca", "scanner": "scanner-primary", "fingerprint": "dbcaed28a3db8891", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc45d4a07b9cdde8", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/agent-core/src/services/diff-history/utils/diff.ts:558"}, "properties": {"repobilityId": "9007c2f22ae94288", "scanner": "scanner-primary", "fingerprint": "bc45d4a07b9cdde8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-176fb090363375c0", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/agent-core/src/services/diff-history/utils/db.test.ts:357"}, "properties": {"repobilityId": "f145d94ea7551ac8", "scanner": "scanner-primary", "fingerprint": "176fb090363375c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92fc609eedc89363", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agent-core/src/services/toolbox/universal-tools.test.ts:243"}, "properties": {"repobilityId": "1d35cd13f49c43a7", "scanner": "scanner-primary", "fingerprint": "92fc609eedc89363", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-946a120401bb79ab", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agent-core/src/services/toolbox/universal-tools.ts:484"}, "properties": {"repobilityId": "a590734cc43e9fbe", "scanner": "scanner-primary", "fingerprint": "946a120401bb79ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3244f1120669abf", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agent-core/src/services/processed-image-cache/index.ts:304"}, "properties": {"repobilityId": "9971a6771e7564c7", "scanner": "scanner-primary", "fingerprint": "e3244f1120669abf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f939ba8adf5bfcca", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/agent-core/src/plans/parsing.ts:27"}, "properties": {"repobilityId": "c0d5101726a8f7d5", "scanner": "scanner-primary", "fingerprint": "f939ba8adf5bfcca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-226522e03cfab62d", "level": "note", "message": {"text": "45 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "147ecc9c5b87abb5", "scanner": "scanner-primary", "fingerprint": "226522e03cfab62d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2e59f6518d3652e6", "level": "error", "message": {"text": "Dangling fetch: GET https://waitlister.me/api/v1/waitlist/${waitlistKey}/subscribers?limit=1 (apps/website/src/app/api/waitlist/count/route.ts:17)"}, "properties": {"repobilityId": "240686df7d95141e", "scanner": "scanner-primary", "fingerprint": "2e59f6518d3652e6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e68e3f64a65cb0ac", "level": "error", "message": {"text": "Dangling fetch: POST /auth/callback (apps/browser/src/backend/services/auth/dev-loopback-auth.ts:55)"}, "properties": {"repobilityId": "a8cd92e2d493283b", "scanner": "scanner-primary", "fingerprint": "e68e3f64a65cb0ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f02a079c69b52f2d", "level": "note", "message": {"text": "Unused endpoint: USE /"}, "properties": {"repobilityId": "7597a121335d4c31", "scanner": "scanner-primary", "fingerprint": "f02a079c69b52f2d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7258b7e891747aed", "level": "note", "message": {"text": "Unused endpoint: GET /update/:appName/:channel/macos/:arch/:version"}, "properties": {"repobilityId": "fbb1fca6f77d19cf", "scanner": "scanner-primary", "fingerprint": "7258b7e891747aed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3737d1ea86526bb8", "level": "note", "message": {"text": "Unused endpoint: GET /update/:appName/:channel/win/:arch/:version/RELEASES"}, "properties": {"repobilityId": "7ebe8b9709df0c83", "scanner": "scanner-primary", "fingerprint": "3737d1ea86526bb8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ebed982d84e2b6e3", "level": "note", "message": {"text": "Unused endpoint: GET /update/:appName/:channel/win/:arch/nupkg/:filename"}, "properties": {"repobilityId": "8d3f6c6d477dd815", "scanner": "scanner-primary", "fingerprint": "ebed982d84e2b6e3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ad9db70d1111bec9", "level": "note", "message": {"text": "Unused endpoint: GET /download/:appName/:channel/macos/:arch"}, "properties": {"repobilityId": "5d7e3e9ff3750ccd", "scanner": "scanner-primary", "fingerprint": "ad9db70d1111bec9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-446a9ae09642e7bc", "level": "note", "message": {"text": "Unused endpoint: GET /download/:appName/:channel/win/:arch"}, "properties": {"repobilityId": "8fb0842b17969036", "scanner": "scanner-primary", "fingerprint": "446a9ae09642e7bc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-861887404bee4721", "level": "note", "message": {"text": "Unused endpoint: GET /download/:appName/:channel/linux/:format/:arch"}, "properties": {"repobilityId": "b92d38a7380f003c", "scanner": "scanner-primary", "fingerprint": "861887404bee4721", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}