{"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-135153e9784bbef8", "name": "Stray `console.log` in TS/JS \u2014 fixtures/deploy/node/server.js:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 fixtures/deploy/node/server.js:11"}, "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-66ff4e6f0468b149", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/keyboard-layout-indicator.tsx:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/keyboard-layout-indicator.tsx:43"}, "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-e06410a4899d2758", "name": "TODO/FIXME marker in shipping code \u2014 apps/email/client/components/mail/note-panel.tsx:359", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/email/client/components/mail/note-panel.tsx:359"}, "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-5a972ff56ed4fad8", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/mail/render-labels.tsx:54", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/mail/render-labels.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-337b384f1ec287c4", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/mail/mail-display.tsx:1674", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/mail/mail-display.tsx:1674"}, "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-c5e161371fc79036", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/mail/mail-display.tsx:418", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/mail/mail-display.tsx:418"}, "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-3e79bd43c33ecfd8", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/mail/thread-display.tsx:212", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/mail/thread-display.tsx:212"}, "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-c6dd2923fcf81a67", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/mail/mail.tsx:449", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/mail/mail.tsx:449"}, "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-1aca1523af2a7673", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/mail/mail.tsx:347", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/mail/mail.tsx:347"}, "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-ce0461c8f4989b27", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/mail/mail-skeleton.tsx:144", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/mail/mail-skeleton.tsx:144"}, "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-9a0982c2fa02310f", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/mail/mail-list.tsx:784", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/mail/mail-list.tsx:784"}, "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-fbaa761b98b42f31", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/email/client/components/ui/bimi-avatar.tsx:69", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/email/client/components/ui/bimi-avatar.tsx:69"}, "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-3f1091425cdb8bcb", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/ui/recipient-autosuggest.tsx:297", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/ui/recipient-autosuggest.tsx:297"}, "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-0db8f79e6f639b34", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/ui/nav-main.tsx:264", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/ui/nav-main.tsx:264"}, "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-1a8678df906e29b1", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/email/client/components/ui/chart.tsx:73", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/email/client/components/ui/chart.tsx:73"}, "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-b2df52f7391f056d", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/ui/nav-user.tsx:451", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/ui/nav-user.tsx:451"}, "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-22320effc47f6ed4", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/create/email-composer.tsx:896", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/create/email-composer.tsx:896"}, "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-9fc8788e099d2dc9", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/create/email-composer.tsx:540", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/create/email-composer.tsx:540"}, "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-46b9df86ddc2a9fe", "name": "TODO/FIXME marker in shipping code \u2014 apps/email/client/components/create/extensions.ts:23", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/email/client/components/create/extensions.ts:23"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d011cb84b793465", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/create/template-button.tsx:236", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/create/template-button.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-2d98c8689c80713b", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/create/editor.colors.tsx:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/create/editor.colors.tsx:104"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-341fb1d2f03d2f49", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/magicui/file-tree.tsx:380", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/magicui/file-tree.tsx:380"}, "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-bd747b3478ea6f34", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/context/command-palette-context.tsx:98", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/context/command-palette-context.tsx:988"}, "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-d9adfaee1dfa5a93", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/app/mailto-handler.ts:88", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/app/mailto-handler.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-9687ecc4e5e513eb", "name": "TODO/FIXME marker in shipping code \u2014 apps/email/client/app/(routes)/settings/security/page.tsx:38", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/email/client/app/(routes)/settings/security/page.tsx:38"}, "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-523a9328d7d69e0a", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/app/(routes)/settings/security/page.tsx:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/app/(routes)/settings/security/page.tsx: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-69dfcfb8ea8905a7", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/app/(routes)/settings/general/page.tsx:68", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/app/(routes)/settings/general/page.tsx:68"}, "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-d6224a1e8ac73e5e", "name": "TODO/FIXME marker in shipping code \u2014 apps/email/client/app/(routes)/settings/shortcuts/page.tsx:12", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/email/client/app/(routes)/settings/shortcuts/page.tsx:12"}, "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-e16ffd1bf5906906", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/email/client/lib/email-utils.client.tsx:196", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/email/client/lib/email-utils.client.tsx:196"}, "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-5b92be767240d7fe", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/email/client/lib/sanitize-tip-tap-html.tsx:17", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/email/client/lib/sanitize-tip-tap-html.tsx:17"}, "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-a7d895ac50cc0f83", "name": "TODO/FIXME marker in shipping code \u2014 apps/email/client/lib/hotkeys/use-hotkey-utils.ts:1", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/email/client/lib/hotkeys/use-hotkey-utils.ts:1"}, "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-afa87ab74a6c54a3", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/lib/hotkeys/use-hotkey-utils.ts:306", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/lib/hotkeys/use-hotkey-utils.ts:306"}, "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-32c9136678343327", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/hooks/use-optimistic-actions.ts:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/hooks/use-optimistic-actions.ts:124"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e37905f4b16c88a", "name": "Stray `console.log` in TS/JS \u2014 apps/email/client/hooks/use-compose-editor.ts:177", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/hooks/use-compose-editor.ts:177"}, "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-2e816a6dc9bbcab2", "name": "Stray `console.log` in TS/JS \u2014 apps/email/scripts/build-release.ts:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/scripts/build-release.ts:55"}, "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-0b5db15ffa2454ca", "name": "Stray `console.log` in TS/JS \u2014 apps/email/scripts/resolve-catalog-refs.ts:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/scripts/resolve-catalog-refs.ts:97"}, "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-4b848a28015ff7c3", "name": "Stray `console.log` in TS/JS \u2014 apps/email/scripts/slim-engine.ts:260", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/scripts/slim-engine.ts:260"}, "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-51000df23e3d4773", "name": "Stray `console.log` in TS/JS \u2014 apps/email/server/scripts/fetch-thread-debug.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/server/scripts/fetch-thread-debug.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-fafc147eb9fb5153", "name": "Stray `console.log` in TS/JS \u2014 apps/email/server/src/main.ts:164", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/server/src/main.ts:164"}, "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-d6be963a34b56511", "name": "Stray `console.log` in TS/JS \u2014 apps/email/server/src/lib/branding.ts:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/server/src/lib/branding.ts:65"}, "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-2168399b8492a8f8", "name": "Stray `console.log` in TS/JS \u2014 apps/email/server/src/lib/imap.ts:75", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/server/src/lib/imap.ts:75"}, "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-53c4c8205aa86253", "name": "Stray `console.log` in TS/JS \u2014 apps/email/server/src/lib/imap-driver.ts:472", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/server/src/lib/imap-driver.ts:472"}, "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-cab0ae6b1a92c4f1", "name": "TODO/FIXME marker in shipping code \u2014 apps/api/test/modules/github/github.webhook.test.ts:77", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/api/test/modules/github/github.webhook.test.ts:77"}, "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-cbdf13e7805682cb", "name": "Stray `console.log` in TS/JS \u2014 apps/api/scripts/build-release.ts:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/scripts/build-release.ts:81"}, "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-72a088ad86c9bee9", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/index.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/index.ts:27"}, "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-855996ccf54be138", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/app.ts:255", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/app.ts:255"}, "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-34650a6711939501", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/config/env.ts:329", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/config/env.ts:329"}, "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-16f3cb001a5d1a31", "name": "TODO/FIXME marker in shipping code \u2014 apps/api/src/middleware/better-auth-shield.ts:70", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/api/src/middleware/better-auth-shield.ts:70"}, "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-3a7fa4f2da300c5d", "name": "TODO/FIXME marker in shipping code \u2014 apps/api/src/middleware/active-organization.ts:52", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/api/src/middleware/active-organization.ts:52"}, "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-589cc8d0bcab88bd", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/cloud-auth-proxy.ts:348", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/cloud-auth-proxy.ts:348"}, "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-b6c292af79a7a98f", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/ssh-tunnel.ts:147", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/ssh-tunnel.ts:147"}, "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-67d98e00f73ba1ec", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/ssh-tunnel-manager.ts:142", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/ssh-tunnel-manager.ts:142"}, "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-a33fbc0d83ef3e7a", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/system-debug.ts:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/system-debug.ts:5"}, "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-3cf5211d946ed730", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/route-scanner.ts:188", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/route-scanner.ts:188"}, "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-92c30fb6368b7a5c", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/openship-cloud.ts:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/openship-cloud.ts:104"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e65741bec277cb60", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/startup/self-deploy.ts:284", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/startup/self-deploy.ts:284"}, "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-2b5dbc74239abf45", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/startup/self-edge.ts:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/startup/self-edge.ts:63"}, "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-21dc66606e43e6a9", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/cloud/transport.ts:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/cloud/transport.ts:61"}, "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-a9aca0e14475311d", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/git-forwarding/relay.ts:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/git-forwarding/relay.ts:66"}, "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-f116759bdca495af", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/github.service.ts:1080", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/github.service.ts:1080"}, "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-bc67217bcbfd724e", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/webhook-event-prune-schedule.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/webhook-event-prune-schedule.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-b5c4de7b1fc7c6b0", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/webhook-installation.ts:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/webhook-installation.ts:32"}, "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-2a0edc6cc08df1da", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/webhook-push.ts:172", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/webhook-push.ts:172"}, "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-56f92c8f4d4f809c", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/github.auth.ts:620", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/github.auth.ts:620"}, "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-f8977d3364dcae7a", "name": "TODO/FIXME marker in shipping code \u2014 apps/api/src/modules/projects/transfer.service.ts:339", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/api/src/modules/projects/transfer.service.ts:339"}, "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-9752c01cc51b8720", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/service-terminal/service-terminal.routes.ts:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/service-terminal/service-terminal.routes.ts:57"}, "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-ed7a717caf56e99c", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/migration/migration.orchestrator.ts:229", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/migration/migration.orchestrator.ts:229"}, "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-28dd6e7d36fa5689", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/cloud/cloud-github.service.ts:255", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/cloud/cloud-github.service.ts:255"}, "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-1f22dee99c546bf1", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/cloud/cloud-saas.controller.ts:876", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/cloud/cloud-saas.controller.ts:876"}, "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-726220dd855289c9", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/audit/audit-prune-schedule.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/audit/audit-prune-schedule.ts:22"}, "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-4778eb165f692df0", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/billing/billing.webhooks.ts:436", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/billing/billing.webhooks.ts:436"}, "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-ff5255cdf6c3d315", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/billing/billing-anniversary.cron.ts:195", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/billing/billing-anniversary.cron.ts:195"}, "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-2fc1eefe7d06d36a", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/deployments/build.service.ts:441", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/deployments/build.service.ts:441"}, "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-64fd5fcf1df15bfe", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/terminal/terminal.routes.ts:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/terminal/terminal.routes.ts:54"}, "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-051dc0eedd3b8900", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/permissions/pending-grant-prune-schedule.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/permissions/pending-grant-prune-schedule.ts:27"}, "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-8503d899860f5595", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/services/service.service.ts:725", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/services/service.service.ts:725"}, "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-4aaf6b47792ed6af", "name": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/utils/upload.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/utils/upload.js:12"}, "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-5ff00bf9dd7ff45a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/sidebar.tsx:282", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/sidebar.tsx:282"}, "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-9206ce7c36fadb18", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/account-switcher.tsx:154", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/account-switcher.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-22b80287c905e621", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/dashboard/src/components/theme-provider.tsx:126", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/dashboard/src/components/theme-provider.tsx:126"}, "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-c17121bddaea7a1b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/resource-not-found.tsx:115", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/resource-not-found.tsx:115"}, "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-74f4cb8f95b9a856", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/routing/RoutingSettingsCard.tsx:504", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/routing/RoutingSettingsCard.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-11a071d8f22fd363", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/routing/PublicEndpointsCard.tsx:215", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/routing/PublicEndpointsCard.tsx:215"}, "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-3b3227f038424c78", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/routing/DomainSwitcher.tsx:51", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/routing/DomainSwitcher.tsx:51"}, "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-fbc36f0dfdab3b7f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/shared/ServerSelector.tsx:161", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/shared/ServerSelector.tsx:161"}, "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-3f2825e74a834948", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/ui/DropdownMenu.tsx:134", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/ui/DropdownMenu.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-274da0afb733b8e1", "name": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/components/ui/FileIcon.jsx:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/components/ui/FileIcon.jsx:11"}, "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-27289dc8c5f9ef47", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/ui/CustomSelect.tsx:189", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/ui/CustomSelect.tsx:189"}, "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-b45e781bc9bce974", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/updates/UpdateCenter.tsx:86", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/updates/UpdateCenter.tsx:86"}, "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-3db38d749711e56d", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/migration/ServerMigrationWizard.tsx:5", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/migration/ServerMigrationWizard.tsx:536"}, "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-97488dad1ab95bf5", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/backup/PolicyEditor.tsx:350", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/backup/PolicyEditor.tsx:350"}, "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-03386b153cfb7064", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/permissions/ResourcePicker.tsx:405", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/permissions/ResourcePicker.tsx:405"}, "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-505ba8c2a1cc1d25", "name": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/components/import-project/BuildTerminal.tsx:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/components/import-project/BuildTerminal.tsx:46"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8ed610ca9636b4e5", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/MonorepoApps.tsx:188", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/MonorepoApps.tsx:188"}, "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-94840a9e1f241d1c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/ComposeServices.tsx:40", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/ComposeServices.tsx:400"}, "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-c7718a7165efe706", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/PromptDetails.tsx:72", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/PromptDetails.tsx:72"}, "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-8a74204278f1f230", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/DeploymentProcessing.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/DeploymentProcessing.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-68288068fee76cc1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/compose/ComposeDeploym", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/compose/ComposeDeploymentProcessing.tsx:736"}, "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-c1a0d20e095a3022", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/compose/ServiceRow.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/compose/ServiceRow.tsx:56"}, "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-5eadd4e666a39255", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/jobs/JobForm.tsx:356", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/jobs/JobForm.tsx:356"}, "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-daaed7cbe1bd5f73", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/overview/UpdatesBlock.tsx:88", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/overview/UpdatesBlock.tsx:88"}, "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-186b1291e21ef776", "name": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/components/overview/ActivityChart.tsx:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/components/overview/ActivityChart.tsx:57"}, "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-a46e948a20034367", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/dashboard/src/app/layout.tsx:96", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/dashboard/src/app/layout.tsx:96"}, "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-e6f8e41f5dcdcd7c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/DashboardHomeClient.tsx:354", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/DashboardHomeClient.tsx:354"}, "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-2ae418056c360a31", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/McpConnecti", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/McpConnection.tsx:37"}, "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-e816699d879c70eb", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/InstanceInf", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/InstanceInfo.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-91ac023417901ddd", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/Notificatio", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/NotificationsTab.tsx:184"}, "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-658ca2a42aa341ac", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/AuditTab.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/AuditTab.tsx:425"}, "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-ea0b87acbe5a7ae2", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/CloudConnec", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/CloudConnection.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-125799207d979464", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/PersonalAcc", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/PersonalAccessTokens.tsx:176"}, "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-a74cc5a79c4c7fe6", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/TeamTab.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/TeamTab.tsx:476"}, "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-145e06fbf2adff3e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/GitHubConne", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/GitHubConnection.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-60db43b524823846", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/DeployDefau", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/DeployDefaults.tsx:167"}, "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-2b17474f89176db5", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/WorkspaceMa", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/WorkspaceManageModal.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-d7d3e1505385998a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/SettingsSid", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/SettingsSidebar.tsx:90"}, "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-d9001d2c17c18521", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/library/components/LibrarySideba", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/library/components/LibrarySidebar.tsx:284"}, "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-d6270755a2e88a16", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/library/components/LocalProjects", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/library/components/LocalProjects.tsx:153"}, "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-5c7fb1b2f1667358", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/library/components/RepositoryLis", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/library/components/RepositoryList.tsx:300"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6bea3490697355c9", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/library/components/FolderUpload.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/library/components/FolderUpload.tsx:196"}, "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-43b0ddb5a366bb4e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/components/ProjectCard.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/components/ProjectCard.tsx:102"}, "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-69146810ee34f829", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/components/ProjectFilte", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/components/ProjectFilters.tsx:142"}, "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-a2f69027ddf0bb13", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/Service", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/ServicesTab.tsx:541"}, "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-f0c914a28a755a79", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/GitSett", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/GitSettings.tsx:372"}, "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-96e3a488e1362170", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/Project", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/ProjectSidebar.tsx:97"}, "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-b2e1f2a917e920cf", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainS", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainSettings.tsx:1789"}, "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-c2239219a8e319e8", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/GitInfo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/GitInfo.tsx:102"}, "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-9bebd8ee642b6463", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/Advance", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/AdvancedSettings.tsx:284"}, "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-de7a1d026c2cf8ee", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/Overvie", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/OverviewTab.tsx:171"}, "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-c648aa5836aa6e7e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/RouteRu", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/RouteRules.tsx:240"}, "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-fd9b0c7a5707b9cd", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/Deletio", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/DeletionModal.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-863180014ca3f50c", "name": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/logs/TerminalLogs.tsx:433", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/logs/TerminalLogs.tsx:433"}, "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-dc267f5407db5b42", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/logs/Se", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/logs/ServerLogs.tsx:350"}, "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-64e06292b0da4e9a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/service", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/services/ServiceDetailPanel.tsx:465"}, "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-4107fda32e172af7", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/service", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/services/AddServiceModal.tsx:483"}, "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-6fc93e1eb0b8e8a5", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/general", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/TopPaths.tsx:43"}, "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-a1071a98bf71ad22", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/general", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/ProductionUrl.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-0326068fbb52213b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/general", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/TrafficChart.tsx:46"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d897bb22272eb89d", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/[[...slug]]/page.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/[[...slug]]/page.tsx:295"}, "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-31328f3ebac10a25", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/apps/page.tsx:185", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/apps/page.tsx:185"}, "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-24cc8674a8728d87", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/mail-server-l", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/mail-server-list.tsx:65"}, "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-7adc48a06ef7b5dd", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/mail-sidebar.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/mail-sidebar.tsx:223"}, "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-7784ab758babcf4c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/health-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/health-tab.tsx:347"}, "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-b810a957b510fa4c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/domains", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/domains-tab.tsx:246"}, "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-ad438d8c8422f52c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/overvie", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/overview-tab.tsx:275"}, "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-5bc7c4b1744ef006", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/mailbox", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/mailboxes-tab.tsx:189"}, "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-50792cf540bcfdd6", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/advance", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/advanced-tab.tsx:328"}, "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-837115e68b417eb9", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/_shared", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/_shared/section-card.tsx:57"}, "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-2af0a379e38d8c50", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/billing/_components/BillingHeade", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/billing/_components/BillingHeader.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-b7b04ac949e2d58a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/mail/page.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/mail/page.tsx:302"}, "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-e9954a903a8e6771", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/compo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/DnsConfiguration.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-b692a58c965165e7", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/compo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/DeployTargetStep.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-04a9b71eea734eb1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/compo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/BuildSummary.tsx:87"}, "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-b3221ff32f0c3d14", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/compo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/SkeletonLoader.tsx:96"}, "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-4f62e91d7811bc1f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/compo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/Sidebar.tsx:135"}, "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-b96830fba3bb22d1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/compo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/AddServerModal.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-558bf95b221a98c7", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/deployments/components/ProjectFi", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/deployments/components/ProjectFilter.tsx:46"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7746518563a93f5", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/deployments/components/CommitDet", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/deployments/components/CommitDetailsModal.tsx:130"}, "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-9a7617b31ebe3464", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/deployments/components/Deploymen", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/deployments/components/DeploymentCard.tsx:147"}, "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-6462165fc597d4b8", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/backups/page.tsx:204", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/backups/page.tsx:204"}, "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-89ac991cf2a22ac2", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/backups/[id]/page.tsx:136", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/backups/[id]/page.tsx:136"}, "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-daef61f24b96cbe7", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/backups/_components/CreateDestin", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/backups/_components/CreateDestinationModal.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-1f597e6ca0374cda", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/page.tsx:251", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/page.tsx:251"}, "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-c18246e585a94890", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/page.tsx:596", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/page.tsx:596"}, "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-837af72fd2d44bd7", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/c", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/components-tab.tsx:455"}, "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-b7f3e84e9a8b82d2", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/o", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/overview-tab.tsx:223"}, "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-a923be90e1c0995b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/p", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/port-forwarding-card.tsx:220"}, "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-a3390e04f1dc7abb", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/terminal-tab.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-628b41196779b4ce", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/jobs/page.tsx:475", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/jobs/page.tsx:475"}, "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-0ecc68bd284d2c2a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/jobs/[key]/page.tsx:119", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/jobs/[key]/page.tsx:119"}, "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-53781d916ed1ab3c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/jobs/[key]/edit/page.tsx:50", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/jobs/[key]/edit/page.tsx:50"}, "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-f568f45736246024", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(auth)/select-organization/page.tsx:281", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(auth)/select-organization/page.tsx:281"}, "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-831e6848749a541c", "name": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/lib/sseClient.ts:105", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/lib/sseClient.ts:105"}, "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-8cde088868abf41d", "name": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/hooks/useBuildConnection.ts:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/hooks/useBuildConnection.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-6b3a90e4d2bd3340", "name": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/hooks/useSSEConnection.ts:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/hooks/useSSEConnection.ts:56"}, "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-13776521cfa7f046", "name": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/login.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/login.ts:25"}, "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-1d9cd0039fddc176", "name": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/open.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/open.ts:25"}, "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-ac1670b54278714b", "name": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/stop.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/stop.ts:12"}, "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-60dbcf858485938e", "name": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/logout.ts:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/logout.ts:11"}, "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-3fe52486d93985a8", "name": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/up.ts:140", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/up.ts:140"}, "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-a1b1a1525f45ccff", "name": "Stray `console.log` in TS/JS \u2014 apps/cli/src/lib/from-source.ts:116", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/lib/from-source.ts:116"}, "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-6d49f9a4b9e00819", "name": "Stray `console.log` in TS/JS \u2014 apps/desktop/src/main/services.ts:184", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/desktop/src/main/services.ts:184"}, "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-fb80b73e9438c8b0", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/page.tsx:61", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/page.tsx:61"}, "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-c2b345cff301811d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/layout.tsx:177", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/layout.tsx:177"}, "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-5570efba6b997fcf", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/resources/page.tsx:127", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/resources/page.tsx:127"}, "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-b5337c5d367b135b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/resources/[...slug]/page.tsx:145", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/resources/[...slug]/page.tsx:145"}, "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-e4850e51d47fc268", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/(site)/download/page.tsx:363", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/(site)/download/page.tsx:363"}, "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-e7d08320de70375e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/download/layout.tsx:75", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/download/layout.tsx:75"}, "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-a76abb744b20313d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/(marketing)/mail/page.tsx:71", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/(marketing)/mail/page.tsx:71"}, "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-842877b15f3583ac", "name": "Stray `console.log` in TS/JS \u2014 apps/web/src/app/(site)/(marketing)/mail/setup-guide/nodemailer/page.tsx:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/web/src/app/(site)/(marketing)/mail/setup-guide/nodemailer/page.tsx:74"}, "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-86e097aef3842a07", "name": "\"active\" state uses light bg in a dark theme \u2014 apps/web/src/app/(site)/(marketing)/mail/_components/ui/tabs.tsx:52", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 apps/web/src/app/(site)/(marketing)/mail/_components/ui/tabs.tsx:52"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8904755f3e0f1110", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/(marketing)/pricing/layout.tsx:115", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/(marketing)/pricing/layout.tsx:115"}, "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-8d01f80e6a714367", "name": "Stray `console.log` in TS/JS \u2014 scripts/release.ts:473", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/release.ts:473"}, "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-381bf5446aae045e", "name": "Stray `console.log` in TS/JS \u2014 packages/adapters/test/archive-also-include.test.ts:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/adapters/test/archive-also-include.test.ts:57"}, "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-1613ba7501d091c3", "name": "Stray `console.log` in TS/JS \u2014 packages/adapters/scripts/embed-lua.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/adapters/scripts/embed-lua.ts:59"}, "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-01093415e9c5cbef", "name": "Stray `console.log` in TS/JS \u2014 packages/adapters/scripts/embed-catalog.ts:110", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/adapters/scripts/embed-catalog.ts:110"}, "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-fd10011c258a366e", "name": "Stray `console.log` in TS/JS \u2014 packages/adapters/src/runtime/cloud.ts:1747", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/adapters/src/runtime/cloud.ts:1747"}, "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-c6d16a214b54a035", "name": "Stray `console.log` in TS/JS \u2014 packages/adapters/src/system/debug.ts:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/adapters/src/system/debug.ts:13"}, "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-1600b880d7e75bbe", "name": "TODO/FIXME marker in shipping code \u2014 packages/adapters/src/infra/cloud.ts:22", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/adapters/src/infra/cloud.ts:22"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-996247091e6515c9", "name": "Stray `console.log` in TS/JS \u2014 packages/db/scripts/heal-pglite-resetwal.ts:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/scripts/heal-pglite-resetwal.ts:90"}, "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-9c7e1c0d99f70f06", "name": "Stray `console.log` in TS/JS \u2014 packages/db/scripts/heal-pglite.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/scripts/heal-pglite.ts:59"}, "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-dd18e6670ba38315", "name": "Stray `console.log` in TS/JS \u2014 packages/db/scripts/heal-orphan-tables.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/scripts/heal-orphan-tables.ts: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-89e0b33b6918cae6", "name": "Stray `console.log` in TS/JS \u2014 packages/db/src/pglite-lock.ts:311", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/src/pglite-lock.ts:311"}, "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-5635af85ca81254b", "name": "react dangerouslysetinnerhtml \u2014 apps/email/client/lib/email-utils.client.tsx:196", "shortDescription": {"text": "react dangerouslysetinnerhtml \u2014 apps/email/client/lib/email-utils.client.tsx:196"}, "fullDescription": {"text": "Detection of dangerouslySetInnerHTML from non-constant definition. This can inadvertently expose users to cross-site scripting (XSS) attacks if this comes from user-provided input. If you have to use dangerouslySetInnerHTML, consider using a sanitization library such as DOMPurify to sanitize your HTML.\n\nRule: typescript.react.security.audit.react-dangerouslysetinnerhtml.react-dangerouslysetinnerhtml\nSeverity: WARNING\nOWASP: A07:2017 - Cross-Site Scripting (XSS), A03:2021 - Injection, A05:2025 - Injection\nCWE: CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')\nCategory: security"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0467acacfd5929a7", "name": "use tls \u2014 fixtures/deploy/go/main.go:17", "shortDescription": {"text": "use tls \u2014 fixtures/deploy/go/main.go:17"}, "fullDescription": {"text": "Found an HTTP server without TLS. Use 'http.ListenAndServeTLS' instead. See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information.\n\nRule: go.lang.security.audit.net.use-tls.use-tls\nSeverity: WARNING\nOWASP: A03:2017 - Sensitive Data Exposure, A02:2021 - Cryptographic Failures, A04:2025 - Cryptographic Failures\nCWE: CWE-319: Cleartext Transmission of Sensitive Information\nCategory: security"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e637c415447867e4", "name": "Run SkillSpector's LLM-backed analysis in your own pipeline", "shortDescription": {"text": "Run SkillSpector's LLM-backed analysis in your own pipeline"}, "fullDescription": {"text": "Repobility ran SkillSpector's static rules server-side. The deeper LLM-backed analyzers \u2014 tool-poisoning (TP*), semantic security discovery (SSD*), developer-intent mismatch (SDI*) \u2014 are meant to run on YOUR machine with YOUR model; repobility never sends your code to an LLM. Recipe:\n\n# 1. Install SkillSpector in your own isolated env\npipx install \"skillspector @ git+https://github.com/NVIDIA/SkillSpector.git\"\n\n# 2. Point it at YOUR LLM pipeline (pick one) - your code stays on your machine\nexport SKILLSPECTOR_PROVIDER=anthropic && export ANTHROPIC_API_KEY=sk-ant-...\n# export SKILLSPECTOR_PROVIDER=openai   && export OPENAI_API_KEY=sk-...\n# export SKILLSPECTOR_PROVIDER=openai OPENAI_API_KEY=ollama OPENAI_BASE_URL=http://localhost:11434/v1 SKILLSPECTOR_MODEL=llama3.1:8b\n# export SKILLSPECTOR_PROVIDER=nv_build && export NVIDIA_INFERENCE_KEY=nvapi-...\n\n# 3. Run the LLM-backed scan per skill (omit --no-llm to enable the LLM analyzers)\nskillspector scan .claude/skills/openship-config --format"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9413fc5f7b02b82d", "name": "Privileged port 993 in use", "shortDescription": {"text": "Privileged port 993 in use"}, "fullDescription": {"text": "Port 993 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db93c12eec01b288", "name": "Privileged port 3 in use", "shortDescription": {"text": "Privileged port 3 in use"}, "fullDescription": {"text": "Port 3 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a7b5e4db36f3f775", "name": "Privileged port 1 in use", "shortDescription": {"text": "Privileged port 1 in use"}, "fullDescription": {"text": "Port 1 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0efd7cedfd0f4534", "name": "Privileged port 587 in use", "shortDescription": {"text": "Privileged port 587 in use"}, "fullDescription": {"text": "Port 587 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7e9c1981e880145c", "name": "Privileged port 465 in use", "shortDescription": {"text": "Privileged port 465 in use"}, "fullDescription": {"text": "Port 465 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0f384cd08e6de3f7", "name": "Privileged port 127 in use", "shortDescription": {"text": "Privileged port 127 in use"}, "fullDescription": {"text": "Port 127 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9980d9104825b19", "name": "Dockerfile runs as root: apps/api/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: apps/api/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-a3f3767117cc7dc9", "name": "Docker base image is tag-pinned but not digest-pinned: oven/bun:1.3.10", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: oven/bun:1.3.10"}, "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-d9ba81fe682ac8c5", "name": "Docker base image uses a mutable or implicit tag: oven/bun:latest", "shortDescription": {"text": "Docker base image uses a mutable or implicit tag: oven/bun:latest"}, "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": "medium", "confidence": 1.0}}, {"id": "scanner-427dcc5a6d0f69bc", "name": "Dockerfile runs as root: apps/dashboard/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: apps/dashboard/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-1eebee2efe7799f5", "name": "Docker base image uses a mutable or implicit tag: oven/bun:latest", "shortDescription": {"text": "Docker base image uses a mutable or implicit tag: oven/bun:latest"}, "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": "medium", "confidence": 1.0}}, {"id": "scanner-382f55b4d1922ff6", "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-7673561931a5dd33", "name": "Dockerfile runs as root: apps/web/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: apps/web/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-987dabda13273c1d", "name": "Docker base image uses a mutable or implicit tag: oven/bun:latest", "shortDescription": {"text": "Docker base image uses a mutable or implicit tag: oven/bun:latest"}, "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": "medium", "confidence": 1.0}}, {"id": "scanner-744c132692cc6e12", "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-2591daadb7e8940e", "name": "Runtime dotenv file present in repo: apps/email/client/.env.development", "shortDescription": {"text": "Runtime dotenv file present in repo: apps/email/client/.env.development"}, "fullDescription": {"text": "`apps/email/client/.env.development` looks like a runtime dotenv file. No high-confidence secret value was matched, but runtime dotenv files often drift into live credentials. Move real values to a secret manager and keep only `.env.example` style templates in source control."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-374438c5b4b4acda", "name": "Runtime dotenv file present in repo: apps/api/.env.migtest", "shortDescription": {"text": "Runtime dotenv file present in repo: apps/api/.env.migtest"}, "fullDescription": {"text": "`apps/api/.env.migtest` looks like a runtime dotenv file. No high-confidence secret value was matched, but runtime dotenv files often drift into live credentials. Move real values to a secret manager and keep only `.env.example` style templates in source control."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-99bb3b3484119219", "name": "Insecure pattern 'dangerous_innerhtml' in apps/email/client/components/ui/chart.tsx:73", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/email/client/components/ui/chart.tsx:73"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-8d765f41e4e8dcf1", "name": "Insecure pattern 'dangerous_innerhtml' in apps/email/client/lib/email-utils.client.tsx:196", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/email/client/lib/email-utils.client.tsx:196"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-c499c83bcd554d33", "name": "Insecure pattern 'domparser_html_parse' in apps/email/client/lib/email-utils.client.tsx:108", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in apps/email/client/lib/email-utils.client.tsx:108"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-afc8a129466363d1", "name": "Insecure pattern 'dangerous_innerhtml' in apps/email/client/lib/sanitize-tip-tap-html.tsx:17", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/email/client/lib/sanitize-tip-tap-html.tsx:17"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-b9d198a01c9c6a11", "name": "Insecure pattern 'node_child_process' in apps/email/scripts/build-release.ts:36", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/email/scripts/build-release.ts:36"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 0.9}}, {"id": "scanner-88e222fabc9a6bec", "name": "Possible secret in apps/email/engine/tools/create_mail_user_OpenLDAP.sh", "shortDescription": {"text": "Possible secret in apps/email/engine/tools/create_mail_user_OpenLDAP.sh"}, "fullDescription": {"text": "Detected 1 occurrence(s) matching password_literal. Rotate real credentials and move them to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.58}}, {"id": "scanner-91a61c4f5eed90c3", "name": "Insecure pattern 'node_child_process' in apps/api/scripts/build-release.ts:51", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/api/scripts/build-release.ts:51"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 0.9}}, {"id": "scanner-a638017c194a282d", "name": "Insecure pattern 'private_key_in_repo' in apps/dashboard/src/i18n/locales/fr/projectSettings.json:672", "shortDescription": {"text": "Insecure pattern 'private_key_in_repo' in apps/dashboard/src/i18n/locales/fr/projectSettings.json:672"}, "fullDescription": {"text": "Found a known-risky pattern (private_key_in_repo). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-1201f560ca51158a", "name": "Insecure pattern 'private_key_in_repo' in apps/dashboard/src/i18n/locales/en/projectSettings.json:739", "shortDescription": {"text": "Insecure pattern 'private_key_in_repo' in apps/dashboard/src/i18n/locales/en/projectSettings.json:739"}, "fullDescription": {"text": "Found a known-risky pattern (private_key_in_repo). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-ef1e748105670d00", "name": "Insecure pattern 'private_key_in_repo' in apps/dashboard/src/i18n/locales/tr/projectSettings.json:739", "shortDescription": {"text": "Insecure pattern 'private_key_in_repo' in apps/dashboard/src/i18n/locales/tr/projectSettings.json:739"}, "fullDescription": {"text": "Found a known-risky pattern (private_key_in_repo). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-a9f11e1491a79b1d", "name": "Insecure pattern 'dangerous_innerhtml' in apps/dashboard/src/components/theme-provider.tsx:126", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/dashboard/src/components/theme-provider.tsx:126"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-31652bd8f86f9315", "name": "Insecure pattern 'dangerous_innerhtml' in apps/dashboard/src/app/layout.tsx:96", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/dashboard/src/app/layout.tsx:96"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-dce306fda5648779", "name": "Possible secret in apps/dashboard/src/lib/api/endpoints.ts", "shortDescription": {"text": "Possible secret in apps/dashboard/src/lib/api/endpoints.ts"}, "fullDescription": {"text": "Detected 1 occurrence(s) matching password_literal. Rotate real credentials and move them to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.58}}, {"id": "scanner-6a20b68054c9b050", "name": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/page.tsx:61", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/page.tsx:61"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-1194337b718eef78", "name": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/layout.tsx:177", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/layout.tsx:177"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-7fb9a7fea93be608", "name": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/resources/page.tsx:127", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/resources/page.tsx:127"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-5c7ca4a7fd46ecc0", "name": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/resources/[...slug]/page.tsx:145", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/resources/[...slug]/page.tsx:145"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-de0673962e87b374", "name": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/download/layout.tsx:75", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/download/layout.tsx:75"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-ff3dcea1ec46af0f", "name": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/(marketing)/mail/page.tsx:71", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/(marketing)/mail/page.tsx:71"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-140b747107521d22", "name": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/(marketing)/pricing/layout.tsx:115", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/(marketing)/pricing/layout.tsx:115"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-025909b3afd4932c", "name": "Insecure pattern 'exec_used' in packages/adapters/src/types.ts:484", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/types.ts:484"}, "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-e6bf696d61b41a27", "name": "Insecure pattern 'exec_used' in packages/adapters/src/runtime/build-pipeline.ts:116", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/runtime/build-pipeline.ts:116"}, "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-579f65da0b2efc2e", "name": "Insecure pattern 'exec_used' in packages/adapters/src/system/system-ssh-executor.ts:218", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/system/system-ssh-executor.ts:218"}, "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-3bb5618804fda51c", "name": "Insecure pattern 'exec_used' in packages/adapters/src/system/local-executor.ts:25", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/system/local-executor.ts:25"}, "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-b3f78a7152fcb011", "name": "Insecure pattern 'node_child_process' in packages/adapters/src/system/local-executor.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/adapters/src/system/local-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": "high", "confidence": 0.9}}, {"id": "scanner-c5aef652f78f4ba5", "name": "Insecure pattern 'exec_used' in packages/adapters/src/system/ssh-executor.ts:200", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/system/ssh-executor.ts:200"}, "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-14f8c589141736fa", "name": "Insecure pattern 'exec_used' in packages/adapters/src/system/remote-transfer.ts:81", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/system/remote-transfer.ts:81"}, "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-c433a74a2d73dbf5", "name": "Insecure pattern 'exec_used' in packages/adapters/src/system/port-listen.ts:20", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/system/port-listen.ts:20"}, "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-27924aa79fa4a517", "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@v7 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46c644c6227e4d4a", "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@v7 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "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-cb639d9a10a47b23", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-68e3272269d57ab6", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-36982c0452c82c8b", "name": "Very large file: apps/email/client/components/mail/mail-display.tsx (1738 lines)", "shortDescription": {"text": "Very large file: apps/email/client/components/mail/mail-display.tsx (1738 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-e15765eeb077c3c3", "name": "Very large file: apps/email/client/components/icons/icons.tsx (1783 lines)", "shortDescription": {"text": "Very large file: apps/email/client/components/icons/icons.tsx (1783 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-5dbabeb55e1ab8f1", "name": "Very large file: apps/email/client/components/context/command-palette-context.tsx (1905 lines)", "shortDescription": {"text": "Very large file: apps/email/client/components/context/command-palette-context.tsx (1905 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-c6daef9e510aa128", "name": "Very large file: apps/api/src/modules/mail/mail.controller.ts (1424 lines)", "shortDescription": {"text": "Very large file: apps/api/src/modules/mail/mail.controller.ts (1424 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-26391432e83208bf", "name": "Very large file: apps/api/src/modules/github/github.auth.ts (1248 lines)", "shortDescription": {"text": "Very large file: apps/api/src/modules/github/github.auth.ts (1248 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-3570510467eb6c84", "name": "Very large file: apps/api/src/modules/projects/project.controller.ts (2109 lines)", "shortDescription": {"text": "Very large file: apps/api/src/modules/projects/project.controller.ts (2109 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-27961b1da0275932", "name": "Very large file: apps/api/src/modules/projects/project-crud.service.ts (1362 lines)", "shortDescription": {"text": "Very large file: apps/api/src/modules/projects/project-crud.service.ts (1362 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-26fc335668c85c06", "name": "Very large file: apps/api/src/modules/deployments/preflight.ts (1385 lines)", "shortDescription": {"text": "Very large file: apps/api/src/modules/deployments/preflight.ts (1385 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-3fde4926bebce41b", "name": "Very large file: apps/api/src/modules/deployments/build-pipeline.ts (1399 lines)", "shortDescription": {"text": "Very large file: apps/api/src/modules/deployments/build-pipeline.ts (1399 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-7a3d691980ba4979", "name": "Very large file: apps/api/src/modules/deployments/build.service.ts (1615 lines)", "shortDescription": {"text": "Very large file: apps/api/src/modules/deployments/build.service.ts (1615 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-7238e11869066c27", "name": "Very large file: apps/api/src/modules/deployments/compose/deploy.service.ts (1304 lines)", "shortDescription": {"text": "Very large file: apps/api/src/modules/deployments/compose/deploy.service.ts (1304 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-52fb656fc2b240fc", "name": "Very large file: apps/dashboard/src/components/migration/ServerMigrationWizard.tsx (1630 lines)", "shortDescription": {"text": "Very large file: apps/dashboard/src/components/migration/ServerMigrationWizard.tsx (1630 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-e8c26fb31aeded66", "name": "Very large file: apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainSettings.tsx (2261 lines)", "shortDescription": {"text": "Very large file: apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainSettings.tsx (2261 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-29c6e7897d8f587d", "name": "Very large file: apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/DeployTargetStep.tsx (1635 lin", "shortDescription": {"text": "Very large file: apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/DeployTargetStep.tsx (1635 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-47d50249f55916c5", "name": "Very large file: apps/dashboard/src/context/deployment/useDeploymentBuild.tsx (1389 lines)", "shortDescription": {"text": "Very large file: apps/dashboard/src/context/deployment/useDeploymentBuild.tsx (1389 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-442b561318cce599", "name": "Very large file: apps/web/src/app/(site)/(marketing)/mail/_components/icons.tsx (1783 lines)", "shortDescription": {"text": "Very large file: apps/web/src/app/(site)/(marketing)/mail/_components/icons.tsx (1783 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-bb1534c226295148", "name": "Very large file: apps/web/src/app/(site)/(marketing)/mail/_components/home/HomeContent.tsx (1767 lines)", "shortDescription": {"text": "Very large file: apps/web/src/app/(site)/(marketing)/mail/_components/home/HomeContent.tsx (1767 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-b41dd47497226c8f", "name": "Very large file: packages/adapters/src/runtime/cloud.ts (2671 lines)", "shortDescription": {"text": "Very large file: packages/adapters/src/runtime/cloud.ts (2671 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-b293fd814939b468", "name": "Very large file: packages/adapters/src/runtime/docker.ts (2582 lines)", "shortDescription": {"text": "Very large file: packages/adapters/src/runtime/docker.ts (2582 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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "128 test file(s) for 1552 source file(s) (ratio 0.08). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-36a70142ea707354", "name": "Node manifest has dependencies but no lockfile: apps/api/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/api/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": "dependencies", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ce95561e3bc6bc0f", "name": "Node manifest has dependencies but no lockfile: apps/dashboard/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/dashboard/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": "dependencies", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e81ae8bba620e602", "name": "Node manifest has dependencies but no lockfile: apps/cli/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/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": "dependencies", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c43207efe218f8c2", "name": "Node manifest has dependencies but no lockfile: apps/desktop/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/desktop/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": "dependencies", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f73c8ff17174db57", "name": "Node manifest has dependencies but no lockfile: apps/web/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/web/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": "dependencies", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49a441b3d53d4153", "name": "Node manifest has dependencies but no lockfile: packages/adapters/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/adapters/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": "dependencies", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6472718547d75a00", "name": "Node manifest has dependencies but no lockfile: packages/ui/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/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": "dependencies", "severity": "low", "confidence": 1.0}}, {"id": "scanner-788c79428ee5c6f4", "name": "Node manifest has dependencies but no lockfile: packages/db-email/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/db-email/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": "dependencies", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9f9a2b489d284802", "name": "Node manifest has dependencies but no lockfile: packages/onboarding/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/onboarding/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": "dependencies", "severity": "low", "confidence": 1.0}}, {"id": "scanner-18fab9ce1ae3dc0d", "name": "Node manifest has dependencies but no lockfile: packages/db/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/db/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": "dependencies", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1ada30b496643aab", "name": "Node manifest has dependencies but no lockfile: packages/core/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/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": "dependencies", "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 309 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 428 placeholder/mock markers across 130 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-a0dd59dcb19aa862", "name": "Commented-code block (6 lines) in apps/email/client/config/shortcuts.ts:84", "shortDescription": {"text": "Commented-code block (6 lines) in apps/email/client/config/shortcuts.ts:84"}, "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-c599088f88abc2c1", "name": "Commented-code block (5 lines) in apps/email/client/config/navigation.ts:125", "shortDescription": {"text": "Commented-code block (5 lines) in apps/email/client/config/navigation.ts:125"}, "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-71dfc041489f5b86", "name": "Commented-code block (6 lines) in apps/email/client/components/mail/mail-display.tsx:668", "shortDescription": {"text": "Commented-code block (6 lines) in apps/email/client/components/mail/mail-display.tsx:668"}, "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-df3a79dc2f275e8d", "name": "Commented-code block (8 lines) in apps/email/client/components/mail/thread-display.tsx:190", "shortDescription": {"text": "Commented-code block (8 lines) in apps/email/client/components/mail/thread-display.tsx: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-48e29202d945d3a4", "name": "Commented-code block (26 lines) in apps/email/client/components/mail/mail.tsx:36", "shortDescription": {"text": "Commented-code block (26 lines) in apps/email/client/components/mail/mail.tsx:36"}, "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-43f5e58c16a1f5a9", "name": "Commented-code block (6 lines) in apps/email/client/components/mail/mail-list.tsx:233", "shortDescription": {"text": "Commented-code block (6 lines) in apps/email/client/components/mail/mail-list.tsx:233"}, "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-e67eacdfbb86e625", "name": "Commented-code block (6 lines) in apps/email/client/components/mail/mail-content.tsx:106", "shortDescription": {"text": "Commented-code block (6 lines) in apps/email/client/components/mail/mail-content.tsx:106"}, "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-a72e222716544636", "name": "Commented-code block (10 lines) in apps/email/client/components/ui/app-sidebar.tsx:67", "shortDescription": {"text": "Commented-code block (10 lines) in apps/email/client/components/ui/app-sidebar.tsx:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3d38fd6bff583a4", "name": "Commented-code block (5 lines) in apps/email/client/components/ui/nav-user.tsx:90", "shortDescription": {"text": "Commented-code block (5 lines) in apps/email/client/components/ui/nav-user.tsx:90"}, "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-7067393d1d1b5418", "name": "Commented-code block (5 lines) in apps/email/client/components/create/editor.tsx:17", "shortDescription": {"text": "Commented-code block (5 lines) in apps/email/client/components/create/editor.tsx:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67e31718d37e7c3a", "name": "Commented-code block (8 lines) in apps/email/client/components/create/create-email.tsx:175", "shortDescription": {"text": "Commented-code block (8 lines) in apps/email/client/components/create/create-email.tsx:175"}, "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-0654783dd117a74e", "name": "Commented-code block (8 lines) in apps/email/client/components/context/command-palette-context.tsx:684", "shortDescription": {"text": "Commented-code block (8 lines) in apps/email/client/components/context/command-palette-context.tsx:684"}, "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-40b6c989cecacce6", "name": "Commented-code block (5 lines) in apps/email/client/providers/query-provider.tsx:130", "shortDescription": {"text": "Commented-code block (5 lines) in apps/email/client/providers/query-provider.tsx:130"}, "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-d393c84b3d5aedf4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/providers/query-provider.tsx:99", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/providers/query-provider.tsx:99"}, "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-07350fec15f0d538", "name": "Commented-code block (6 lines) in apps/email/client/app/root.tsx:107", "shortDescription": {"text": "Commented-code block (6 lines) in apps/email/client/app/root.tsx:107"}, "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-f15e2867b5ac0b7c", "name": "Commented-code block (11 lines) in apps/email/client/app/(routes)/settings/shortcuts/page.tsx:22", "shortDescription": {"text": "Commented-code block (11 lines) in apps/email/client/app/(routes)/settings/shortcuts/page.tsx:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2fd86b0b8a89c8c3", "name": "Commented-code block (16 lines) in apps/email/client/app/(routes)/mail/create/page.tsx:31", "shortDescription": {"text": "Commented-code block (16 lines) in apps/email/client/app/(routes)/mail/create/page.tsx:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d90d9c1a026ec0a9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/lib/email-utils.client.tsx:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/lib/email-utils.client.tsx:26"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4f42ed1e040808da", "name": "Commented-code block (5 lines) in apps/email/client/lib/auth-client.ts:165", "shortDescription": {"text": "Commented-code block (5 lines) in apps/email/client/lib/auth-client.ts:165"}, "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-03afcba03bbb1b4d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/lib/auth-client.ts:98", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/lib/auth-client.ts:98"}, "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-cd3b90cef3190d0f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/lib/trpc.ts:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/lib/trpc.ts:15"}, "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-bd528a48541cc82c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/lib/server-tool.ts:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/lib/server-tool.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-761b1619d3a018fe", "name": "Commented-code block (9 lines) in apps/email/client/lib/hotkeys/use-hotkey-utils.ts:23", "shortDescription": {"text": "Commented-code block (9 lines) in apps/email/client/lib/hotkeys/use-hotkey-utils.ts:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74fbd03b387f2ccf", "name": "Commented-code block (5 lines) in apps/email/client/lib/hotkeys/mail-list-hotkeys.tsx:43", "shortDescription": {"text": "Commented-code block (5 lines) in apps/email/client/lib/hotkeys/mail-list-hotkeys.tsx:43"}, "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-c23c0af2db0abe07", "name": "Commented-code block (5 lines) in apps/email/client/hooks/use-email-aliases.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in apps/email/client/hooks/use-email-aliases.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-e53465d9d44522c2", "name": "Commented-code block (6 lines) in apps/email/client/hooks/use-labels.ts:15", "shortDescription": {"text": "Commented-code block (6 lines) in apps/email/client/hooks/use-labels.ts:15"}, "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-e7d72cf58ccd3549", "name": "Commented-code block (5 lines) in apps/email/client/hooks/use-threads.ts:33", "shortDescription": {"text": "Commented-code block (5 lines) in apps/email/client/hooks/use-threads.ts:33"}, "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-1a21a3663b0da8f5", "name": "Commented-code block (7 lines) in apps/email/client/hooks/use-optimistic-actions.ts:77", "shortDescription": {"text": "Commented-code block (7 lines) in apps/email/client/hooks/use-optimistic-actions.ts: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-847f3b9066a7ddcb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/hooks/use-optimistic-actions.ts:118", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/hooks/use-optimistic-actions.ts:118"}, "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-ccddb292ebed5d88", "name": "Commented-code block (6 lines) in apps/email/client/hooks/use-compose-editor.ts:226", "shortDescription": {"text": "Commented-code block (6 lines) in apps/email/client/hooks/use-compose-editor.ts:226"}, "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-0416e72cc416a6f3", "name": "Commented-code block (5 lines) in apps/email/scripts/slim-engine.ts:138", "shortDescription": {"text": "Commented-code block (5 lines) in apps/email/scripts/slim-engine.ts:138"}, "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-21aceb48e5199a67", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/scripts/slim-engine.ts:140", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/scripts/slim-engine.ts:140"}, "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-e990397ac3060ab1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/server/scripts/fetch-thread-debug.ts:77", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/server/scripts/fetch-thread-debug.ts:77"}, "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-fcb340939c4bee72", "name": "Commented-code block (5 lines) in apps/email/server/src/main.ts:42", "shortDescription": {"text": "Commented-code block (5 lines) in apps/email/server/src/main.ts:42"}, "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-cf7a097a703acd6f", "name": "Commented-code block (6 lines) in apps/email/server/src/lib/imap.ts:150", "shortDescription": {"text": "Commented-code block (6 lines) in apps/email/server/src/lib/imap.ts:150"}, "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-b9f3a08f5f3e6c71", "name": "Commented-code block (6 lines) in apps/email/server/src/lib/imap-driver.ts:118", "shortDescription": {"text": "Commented-code block (6 lines) in apps/email/server/src/lib/imap-driver.ts:118"}, "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-badee4ece417c983", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/server/src/lib/imap-driver.ts:421", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/server/src/lib/imap-driver.ts:421"}, "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-b32db49efd7d469c", "name": "Commented-code block (7 lines) in apps/email/server/src/trpc/routes/labels.ts:45", "shortDescription": {"text": "Commented-code block (7 lines) in apps/email/server/src/trpc/routes/labels.ts:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dca6e7b104cf960c", "name": "Commented-code block (5 lines) in apps/email/server/src/trpc/routes/drafts.ts:88", "shortDescription": {"text": "Commented-code block (5 lines) in apps/email/server/src/trpc/routes/drafts.ts:88"}, "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-23fce509d5875e6f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/server/src/trpc/routes/drafts.ts:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/server/src/trpc/routes/drafts.ts:54"}, "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-2e70879205950ca9", "name": "Commented-code block (5 lines) in apps/email/server/src/routes/auth.ts:71", "shortDescription": {"text": "Commented-code block (5 lines) in apps/email/server/src/routes/auth.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20d8de67e1f57e38", "name": "Legacy-named symbol `is_copy` in apps/email/engine/tools/ldap_move_members_to_another_group.py:66", "shortDescription": {"text": "Legacy-named symbol `is_copy` in apps/email/engine/tools/ldap_move_members_to_another_group.py:66"}, "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-4ed816a7dd4818a6", "name": "Commented-code block (6 lines) in apps/email/engine/update/1.4.1/update-ldap.py:2", "shortDescription": {"text": "Commented-code block (6 lines) in apps/email/engine/update/1.4.1/update-ldap.py:2"}, "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-7eca274088dda492", "name": "Commented-code block (5 lines) in apps/api/vitest.config.ts:18", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/vitest.config.ts:18"}, "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-57a1a776da5a2142", "name": "Commented-code block (5 lines) in apps/api/test/lib/public-url.test.ts:60", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/test/lib/public-url.test.ts:60"}, "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-5d5bf332cebdf29e", "name": "Commented-code block (7 lines) in apps/api/test/lib/cloud/project-router.test.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/test/lib/cloud/project-router.test.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-dbf44dad88541641", "name": "Commented-code block (7 lines) in apps/api/test/modules/health-env-authmode.test.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/test/modules/health-env-authmode.test.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-737b1bee36686ff7", "name": "Commented-code block (5 lines) in apps/api/test/modules/mail/_setup-env.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/test/modules/mail/_setup-env.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4137b440d0250c92", "name": "Commented-code block (11 lines) in apps/api/test/modules/github/github.webhook.test.ts:77", "shortDescription": {"text": "Commented-code block (11 lines) in apps/api/test/modules/github/github.webhook.test.ts: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-72309c52623a06dc", "name": "Commented-code block (6 lines) in apps/api/scripts/build-release.ts:421", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/scripts/build-release.ts:421"}, "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-d14cbe2eb77cc518", "name": "Commented-code block (5 lines) in apps/api/src/index.ts:28", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/index.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-e55f526770f719a0", "name": "Commented-code block (5 lines) in apps/api/src/app.ts:83", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/app.ts:83"}, "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-e7961fc9028ca33f", "name": "Commented-code block (7 lines) in apps/api/src/config/env.ts:379", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/config/env.ts:379"}, "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-8877f5cf44ee4523", "name": "Commented-code block (7 lines) in apps/api/src/middleware/client-ip.ts:35", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/middleware/client-ip.ts: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-234446412d690cac", "name": "Commented-code block (5 lines) in apps/api/src/middleware/auth.ts:358", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/middleware/auth.ts:358"}, "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-f72046d4ded3dadd", "name": "Commented-code block (6 lines) in apps/api/src/middleware/active-organization.ts:52", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/middleware/active-organization.ts:52"}, "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-387f427875286487", "name": "Commented-code block (6 lines) in apps/api/src/middleware/rate-limiter.ts:61", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/middleware/rate-limiter.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-863441ceb6c2a7a4", "name": "Commented-code block (5 lines) in apps/api/src/lib/cloud-auth-proxy.ts:464", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/cloud-auth-proxy.ts:464"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2692671ba612ca61", "name": "Commented-code block (6 lines) in apps/api/src/lib/auth.ts:41", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/auth.ts:41"}, "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-6327692e1fe3aa19", "name": "Commented-code block (7 lines) in apps/api/src/lib/controller-helpers.ts:216", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/controller-helpers.ts:216"}, "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-d37e68f8fe0190f5", "name": "Commented-code block (6 lines) in apps/api/src/lib/stack-detector.ts:523", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/stack-detector.ts:523"}, "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-fdccebf63fe84e4f", "name": "Commented-code block (6 lines) in apps/api/src/lib/ssh-key-path.ts:77", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/ssh-key-path.ts: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-8e89ce4b55601c5e", "name": "Commented-code block (5 lines) in apps/api/src/lib/local-user.ts:42", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/local-user.ts:42"}, "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-02529aadf6202514", "name": "Commented-code block (7 lines) in apps/api/src/lib/secure-router.ts:134", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/secure-router.ts:134"}, "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-d7b1d18322fe9fc6", "name": "Commented-code block (7 lines) in apps/api/src/lib/request-context.ts:54", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/request-context.ts:54"}, "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-0a02777bab43a363", "name": "Commented-code block (5 lines) in apps/api/src/lib/compose-parser.ts:220", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/compose-parser.ts:220"}, "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-25702ff6e2b889bc", "name": "Commented-code block (8 lines) in apps/api/src/lib/sse.ts:15", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/lib/sse.ts:15"}, "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-972b6796613ea0e6", "name": "Commented-code block (9 lines) in apps/api/src/lib/domain-ssl.ts:125", "shortDescription": {"text": "Commented-code block (9 lines) in apps/api/src/lib/domain-ssl.ts:125"}, "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-33a7b16e420cc94f", "name": "Commented-code block (8 lines) in apps/api/src/lib/project-root-detector.ts:446", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/lib/project-root-detector.ts:446"}, "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-d3efb3e2354a0fac", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/lib/notification-workers.ts:166", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/lib/notification-workers.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-406c774a33b42b30", "name": "Commented-code block (5 lines) in apps/api/src/lib/deployment-runtime.ts:164", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/deployment-runtime.ts:164"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31e91100d337043e", "name": "Commented-code block (6 lines) in apps/api/src/lib/route-permission.ts:249", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/route-permission.ts:249"}, "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-e5f77018604f4f89", "name": "Commented-code block (8 lines) in apps/api/src/lib/ssh-manager.ts:157", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/lib/ssh-manager.ts:157"}, "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-e071903e24f65069", "name": "Commented-code block (7 lines) in apps/api/src/lib/permission.ts:331", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/permission.ts:331"}, "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-0d4e4dbf88d0f58a", "name": "Commented-code block (6 lines) in apps/api/src/lib/project-route-store.ts:118", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/project-route-store.ts:118"}, "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-b712c33b86e1e991", "name": "Commented-code block (7 lines) in apps/api/src/lib/routing-domains.ts:81", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/routing-domains.ts:81"}, "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-61a38001b8a37a25", "name": "Commented-code block (6 lines) in apps/api/src/lib/cloud-route.service.ts:107", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/cloud-route.service.ts:107"}, "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-c869adbbf2934d28", "name": "Commented-code block (6 lines) in apps/api/src/lib/system-jobs.ts:48", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/system-jobs.ts:48"}, "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-a28f50451e8ee5fd", "name": "Commented-code block (5 lines) in apps/api/src/lib/route-scanner.ts:96", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/route-scanner.ts:96"}, "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-b8dc4a9c407aebcb", "name": "Commented-code block (7 lines) in apps/api/src/lib/openship-cloud.ts:31", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/openship-cloud.ts:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7310c2797548e5c", "name": "Commented-code block (6 lines) in apps/api/src/lib/mail.ts:94", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/mail.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-c46d1d36896a1225", "name": "Commented-code block (5 lines) in apps/api/src/lib/terminal-session-manager.ts:363", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/terminal-session-manager.ts:363"}, "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-aae049d0e6d91501", "name": "Commented-code block (7 lines) in apps/api/src/lib/route-apply.service.ts:106", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/route-apply.service.ts:106"}, "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-70c44bc1e936b8fd", "name": "Commented-code block (5 lines) in apps/api/src/lib/cloud/session.ts:80", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/cloud/session.ts:80"}, "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-61808a3a7a33626a", "name": "Commented-code block (5 lines) in apps/api/src/lib/cloud/transport.ts:44", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/cloud/transport.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e655fcb178d9b39", "name": "Commented-code block (5 lines) in apps/api/src/lib/cloud/types.ts:25", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/cloud/types.ts:25"}, "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-c80bef781c440ec8", "name": "Commented-code block (5 lines) in apps/api/src/lib/git-forwarding/relay.ts:170", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/git-forwarding/relay.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-e217c7f868cb7301", "name": "Commented-code block (6 lines) in apps/api/src/modules/mail/mail.service.ts:630", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/mail/mail.service.ts:630"}, "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-83bbd930e9f6a15b", "name": "Commented-code block (5 lines) in apps/api/src/modules/mail/mail.controller.ts:123", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/mail/mail.controller.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-0fa9d63fbab32666", "name": "Commented-code block (6 lines) in apps/api/src/modules/mail/mail-credentials.service.ts:84", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/mail/mail-credentials.service.ts:84"}, "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-cd7d507fa81319d0", "name": "Commented-code block (5 lines) in apps/api/src/modules/mail/webmail/webmail-project.service.ts:377", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/mail/webmail/webmail-project.service.ts:377"}, "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-958c9944ba8061e1", "name": "Commented-code block (8 lines) in apps/api/src/modules/mail/admin/psql-runner.ts:166", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/modules/mail/admin/psql-runner.ts:166"}, "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-fdeae01eca83ff5a", "name": "Commented-code block (5 lines) in apps/api/src/modules/mail/admin/dns-scan.service.ts:290", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/mail/admin/dns-scan.service.ts:290"}, "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-d41ea54d6e8c8b6f", "name": "Commented-code block (5 lines) in apps/api/src/modules/mail/admin/test-mailbox.service.ts:107", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/mail/admin/test-mailbox.service.ts:107"}, "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-b08af0e404dd739d", "name": "Commented-code block (5 lines) in apps/api/src/modules/mail/admin/platform-mailbox.service.ts:126", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/mail/admin/platform-mailbox.service.ts:126"}, "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-7a38a6d2460ac981", "name": "Commented-code block (6 lines) in apps/api/src/modules/mail/admin/domains.service.ts:138", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/mail/admin/domains.service.ts:138"}, "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-da26c4f5813287e4", "name": "Commented-code block (7 lines) in apps/api/src/modules/mail/admin/test-email.service.ts:139", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/mail/admin/test-email.service.ts:139"}, "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-ec12930130a82991", "name": "Commented-code block (6 lines) in apps/api/src/modules/github/github.controller.ts:97", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/github/github.controller.ts:97"}, "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-be1484f185b474a3", "name": "Commented-code block (6 lines) in apps/api/src/modules/github/clone-auth.ts:119", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/github/clone-auth.ts:119"}, "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-694a8ccc07d59782", "name": "Commented-code block (6 lines) in apps/api/src/modules/github/github.http.ts:135", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/github/github.http.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-dd7f52708bb5d316", "name": "Commented-code block (6 lines) in apps/api/src/modules/github/github.service.ts:758", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/github/github.service.ts:758"}, "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-7e93410df72ce1b2", "name": "Commented-code block (5 lines) in apps/api/src/modules/github/webhook-check-run.ts:81", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/github/webhook-check-run.ts:81"}, "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-75006e2a9e40e782", "name": "Commented-code block (10 lines) in apps/api/src/modules/github/webhook-installation.ts:17", "shortDescription": {"text": "Commented-code block (10 lines) in apps/api/src/modules/github/webhook-installation.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-9fe336575a6ec64b", "name": "Commented-code block (7 lines) in apps/api/src/modules/github/github.token.ts:124", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/github/github.token.ts:124"}, "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-dbe8edd4467bb30b", "name": "Commented-code block (7 lines) in apps/api/src/modules/github/github.local-auth.ts:54", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/github/github.local-auth.ts:54"}, "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-a9904cc072dd2682", "name": "Commented-code block (9 lines) in apps/api/src/modules/github/github.types.ts:243", "shortDescription": {"text": "Commented-code block (9 lines) in apps/api/src/modules/github/github.types.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-fd70b6363050775f", "name": "Commented-code block (5 lines) in apps/api/src/modules/github/webhook-push.ts:106", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/github/webhook-push.ts:106"}, "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-c9299ea6172ecc16", "name": "Commented-code block (6 lines) in apps/api/src/modules/github/github.auth.ts:241", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/github/github.auth.ts:241"}, "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-45d85f5db845dc59", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/modules/github/github.auth.ts:205", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/modules/github/github.auth.ts:205"}, "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-6fb63df4ef0ebee8", "name": "Commented-code block (6 lines) in apps/api/src/modules/github/sources/app-source.ts:59", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/github/sources/app-source.ts: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-31f4e8cdae680cac", "name": "Commented-code block (6 lines) in apps/api/src/modules/auth/auth.routes.ts:33", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/auth/auth.routes.ts:33"}, "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-f5f4950d65ee47cc", "name": "Commented-code block (6 lines) in apps/api/src/modules/auth/auth.controller.ts:151", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/auth/auth.controller.ts:151"}, "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-0fd27f7362d37a12", "name": "Commented-code block (6 lines) in apps/api/src/modules/projects/project.controller.ts:153", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/projects/project.controller.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-875b36cca5e0c51b", "name": "Commented-code block (6 lines) in apps/api/src/modules/projects/project-crud.service.ts:291", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/projects/project-crud.service.ts:291"}, "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-12ba48d45c7c226e", "name": "Commented-code block (7 lines) in apps/api/src/modules/projects/project-teardown.ts:211", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/projects/project-teardown.ts:211"}, "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-28977c8297c49811", "name": "Commented-code block (5 lines) in apps/api/src/modules/projects/project-cleanup.service.ts:188", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/projects/project-cleanup.service.ts:188"}, "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-f0710363b896e4b1", "name": "Commented-code block (6 lines) in apps/api/src/modules/projects/project.routes.ts:183", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/projects/project.routes.ts:183"}, "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-c210b51f28d4a7a1", "name": "Commented-code block (7 lines) in apps/api/src/modules/projects/transfer.service.ts:174", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/projects/transfer.service.ts:174"}, "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-9861c65e39d73b30", "name": "Commented-code block (5 lines) in apps/api/src/modules/projects/folder/folder.service.ts:146", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/projects/folder/folder.service.ts:146"}, "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-3add27bcaeffec73", "name": "Commented-code block (6 lines) in apps/api/src/modules/health/health.routes.ts:81", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/health/health.routes.ts:81"}, "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-9bb127d9f46ec208", "name": "Commented-code block (5 lines) in apps/api/src/modules/service-terminal/service-terminal.controller.ts:119", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/service-terminal/service-terminal.controller.ts:119"}, "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-f26b631136d1d3f0", "name": "Commented-code block (5 lines) in apps/api/src/modules/mcp/mcp.routes.ts:73", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/mcp/mcp.routes.ts:73"}, "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-269f191c35d5d2d0", "name": "Commented-code block (6 lines) in apps/api/src/modules/migration/migration.orchestrator.ts:182", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/migration/migration.orchestrator.ts:182"}, "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-305c33d89a68b9f1", "name": "Commented-code block (5 lines) in apps/api/src/modules/migration/docker-reconcile.ts:261", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/migration/docker-reconcile.ts:261"}, "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-45952a49271770f8", "name": "Commented-code block (5 lines) in apps/api/src/modules/migration/migrate.service.ts:165", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/migration/migrate.service.ts:165"}, "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-9e584340cb7bca77", "name": "Commented-code block (6 lines) in apps/api/src/modules/cloud/cloud-edge-proxy.service.ts:34", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/cloud/cloud-edge-proxy.service.ts:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ebebf09135ba69a9", "name": "Commented-code block (6 lines) in apps/api/src/modules/cloud/cloud-github.service.ts:146", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/cloud/cloud-github.service.ts:146"}, "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-b5fbd573d17d3d60", "name": "Commented-code block (5 lines) in apps/api/src/modules/cloud/cloud-session-auth.ts:45", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/cloud/cloud-session-auth.ts:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71c7f1ce2c53706a", "name": "Commented-code block (5 lines) in apps/api/src/modules/cloud/cloud-saas.routes.ts:17", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/cloud/cloud-saas.routes.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-8371779d64eec8e3", "name": "Commented-code block (5 lines) in apps/api/src/modules/cloud/cloud-saas.controller.ts:259", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/cloud/cloud-saas.controller.ts:259"}, "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-555a203b0e52fa0c", "name": "Commented-code block (5 lines) in apps/api/src/modules/billing/billing-org-cleanup.ts:94", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/billing/billing-org-cleanup.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-a0b5963187b00c7f", "name": "Commented-code block (5 lines) in apps/api/src/modules/billing/billing-local.controller.ts:182", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/billing/billing-local.controller.ts:182"}, "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-03785dee18e367d5", "name": "Commented-code block (8 lines) in apps/api/src/modules/billing/billing-local.routes.ts:30", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/modules/billing/billing-local.routes.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-8549f602ca2891ba", "name": "Commented-code block (6 lines) in apps/api/src/modules/billing/billing.webhooks.ts:416", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/billing/billing.webhooks.ts:416"}, "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-0cf09891049dcc17", "name": "Commented-code block (6 lines) in apps/api/src/modules/billing/billing.service.ts:129", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/billing/billing.service.ts: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-c70db36b85a1adb4", "name": "Commented-code block (6 lines) in apps/api/src/modules/billing/billing-anniversary.cron.ts:184", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/billing/billing-anniversary.cron.ts:184"}, "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-64545ef64d47a006", "name": "Commented-code block (5 lines) in apps/api/src/modules/deployments/preflight.ts:680", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/preflight.ts:680"}, "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-91c1a41cc14b6e0c", "name": "Commented-code block (7 lines) in apps/api/src/modules/deployments/terminal-logs.ts:75", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/deployments/terminal-logs.ts:75"}, "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-490541a651be61ad", "name": "Commented-code block (5 lines) in apps/api/src/modules/deployments/ssl.service.ts:56", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/ssl.service.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-c44c8d418ccf64b5", "name": "Commented-code block (5 lines) in apps/api/src/modules/deployments/deployment-lifecycle.ts:303", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/deployment-lifecycle.ts:303"}, "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-8a42376b00cb37d2", "name": "Commented-code block (6 lines) in apps/api/src/modules/deployments/build-status.service.ts:154", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/deployments/build-status.service.ts:154"}, "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-3186b172f3121729", "name": "Commented-code block (5 lines) in apps/api/src/modules/deployments/build-pipeline.ts:72", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/build-pipeline.ts:72"}, "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-e51f97aeae143ce1", "name": "Commented-code block (7 lines) in apps/api/src/modules/deployments/build.service.ts:284", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/deployments/build.service.ts: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-35526646ed68dd86", "name": "Commented-code block (7 lines) in apps/api/src/modules/deployments/deployment.controller.ts:72", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/deployments/deployment.controller.ts:72"}, "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-1c2c041989df899f", "name": "Commented-code block (6 lines) in apps/api/src/modules/deployments/deployment.service.ts:153", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/deployments/deployment.service.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-3a3a46d23f24b51e", "name": "Commented-code block (7 lines) in apps/api/src/modules/deployments/prepare.service.ts:350", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/deployments/prepare.service.ts:350"}, "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-cb641ea4ef0fc8c0", "name": "Commented-code block (7 lines) in apps/api/src/modules/deployments/clone-plan.ts:70", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/deployments/clone-plan.ts: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-76704d77bf07b94d", "name": "Commented-code block (5 lines) in apps/api/src/modules/deployments/compose/deploy.service.ts:223", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/compose/deploy.service.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-deedf384bb0ba4f9", "name": "Commented-code block (10 lines) in apps/api/src/modules/deployments/compose/build.service.ts:155", "shortDescription": {"text": "Commented-code block (10 lines) in apps/api/src/modules/deployments/compose/build.service.ts:155"}, "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-91f67e5a8a60d4fe", "name": "Commented-code block (5 lines) in apps/api/src/modules/deployments/compose/pipeline.ts:159", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/compose/pipeline.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-e4ea9378eda4e131", "name": "Commented-code block (5 lines) in apps/api/src/modules/deployments/rollback/rollback-orchestrator.ts:199", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/rollback/rollback-orchestrator.ts:199"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22b4834e005dd642", "name": "Commented-code block (5 lines) in apps/api/src/modules/terminal/terminal.controller.ts:120", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/terminal/terminal.controller.ts:120"}, "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-7a27a1da8014f38b", "name": "Commented-code block (5 lines) in apps/api/src/modules/terminal/terminal.routes.ts:44", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/terminal/terminal.routes.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-069ba96b02564588", "name": "Commented-code block (5 lines) in apps/api/src/modules/backups/backup.routes.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/backups/backup.routes.ts:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4090cdf35f898aa", "name": "Commented-code block (5 lines) in apps/api/src/modules/backups/retention-prune.ts:63", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/backups/retention-prune.ts:63"}, "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-0ad0fd58571e5dce", "name": "Commented-code block (5 lines) in apps/api/src/modules/backups/backup.orchestrator.ts:100", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/backups/backup.orchestrator.ts:100"}, "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-a539144ccf21e89c", "name": "Commented-code block (6 lines) in apps/api/src/modules/backups/restore.orchestrator.ts:131", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/backups/restore.orchestrator.ts:131"}, "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-0d9a4c3cd821e710", "name": "Commented-code block (5 lines) in apps/api/src/modules/tokens/token.controller.ts:198", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/tokens/token.controller.ts:198"}, "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-b33fb9f6fa11e9f3", "name": "Commented-code block (6 lines) in apps/api/src/modules/system/server-check.controller.ts:152", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/system/server-check.controller.ts:152"}, "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-f0b50c72d3650474", "name": "Commented-code block (7 lines) in apps/api/src/modules/system/setup.controller.ts:112", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/system/setup.controller.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-cc03a20e9c33d9cf", "name": "Commented-code block (7 lines) in apps/api/src/modules/system/self-app.controller.ts:135", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/system/self-app.controller.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-5139d93dee6147b2", "name": "Commented-code block (7 lines) in apps/api/src/modules/system/system.routes.ts:67", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/modules/system/system.routes.ts:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-320c1c0c9acafb66", "name": "Commented-code block (5 lines) in apps/api/src/modules/system/migration/migrate-instance.service.ts:100", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/system/migration/migrate-instance.service.ts:100"}, "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-799b0ff86648c5dc", "name": "Commented-code block (6 lines) in apps/api/src/modules/system/migration/migrate-to-cloud.service.ts:98", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/system/migration/migrate-to-cloud.service.ts:98"}, "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-79b30e137dd3b262", "name": "Commented-code block (5 lines) in apps/api/src/modules/system/migration/switch-back.service.ts:112", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/system/migration/switch-back.service.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-328d6dd5ad4251e3", "name": "Commented-code block (8 lines) in apps/api/src/modules/system/migration/db-migrate-remote.service.ts:43", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/modules/system/migration/db-migrate-remote.service.ts:43"}, "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-ed85ee2e72c93df2", "name": "Commented-code block (5 lines) in apps/api/src/modules/system/migration/migrate-to-tunnel.service.ts:147", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/system/migration/migrate-to-tunnel.service.ts:147"}, "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-5620923bec917979", "name": "Commented-code block (5 lines) in apps/api/src/modules/permissions/permissions.routes.ts:47", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/permissions/permissions.routes.ts:47"}, "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-fb49d16b0598f78d", "name": "Commented-code block (6 lines) in apps/api/src/modules/permissions/permissions.controller.ts:221", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/modules/permissions/permissions.controller.ts:221"}, "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-ca782f9a8f2bc8bb", "name": "Commented-code block (5 lines) in apps/api/src/modules/services/service.schema.ts:125", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/services/service.schema.ts:125"}, "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-366d14c5e8f5ddd7", "name": "Commented-code block (5 lines) in apps/api/src/modules/services/service.service.ts:193", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/services/service.service.ts:193"}, "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-cb9d5515b060a04b", "name": "Commented-code block (5 lines) in apps/api/src/modules/domains/project-route.service.ts:343", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/domains/project-route.service.ts:343"}, "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-cf28b19f2ceb9df1", "name": "Commented-code block (8 lines) in apps/api/src/modules/domains/domain.service.ts:71", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/modules/domains/domain.service.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56f02889864d2530", "name": "Commented-code block (5 lines) in apps/api/src/modules/domains/domain.controller.ts:73", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/modules/domains/domain.controller.ts:73"}, "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-5d2cf7b55fb7c9f5", "name": "Commented-code block (7 lines) in apps/dashboard/next.config.mjs:6", "shortDescription": {"text": "Commented-code block (7 lines) in apps/dashboard/next.config.mjs:6"}, "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-5af5d1ef15d03219", "name": "Commented-code block (6 lines) in apps/dashboard/scripts/load-env.mjs:3", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/scripts/load-env.mjs: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-a406fa98f19df60e", "name": "Commented-code block (6 lines) in apps/dashboard/src/proxy.ts:23", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/src/proxy.ts:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab4d5da726e585d8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/utils/deploymentPhaseDetector.ts:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/utils/deploymentPhaseDetector.ts:45"}, "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-b4bfe738ee1354d3", "name": "Commented-code block (5 lines) in apps/dashboard/src/utils/authWindow.ts:101", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/utils/authWindow.ts:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cce36a686d2da040", "name": "Commented-code block (6 lines) in apps/dashboard/src/components/sidebar.tsx:126", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/src/components/sidebar.tsx:126"}, "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-8285724dfd79d4b0", "name": "Commented-code block (7 lines) in apps/dashboard/src/components/AppLogo.tsx:77", "shortDescription": {"text": "Commented-code block (7 lines) in apps/dashboard/src/components/AppLogo.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-3730bef83a1417c4", "name": "Commented-code block (5 lines) in apps/dashboard/src/components/updates/useUpdates.ts:184", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/components/updates/useUpdates.ts:184"}, "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-6657d75336aa8b02", "name": "Commented-code block (6 lines) in apps/dashboard/src/components/cloud/CloudConnectionGate.tsx:37", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/src/components/cloud/CloudConnectionGate.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-809a8d3517f300a3", "name": "Commented-code block (5 lines) in apps/dashboard/src/components/billing/BillingUsage.tsx:198", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/components/billing/BillingUsage.tsx:198"}, "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-38d1e7b7c93487a8", "name": "Commented-code block (6 lines) in apps/dashboard/src/components/terminal/ServerTerminal.tsx:264", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/src/components/terminal/ServerTerminal.tsx:264"}, "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-4238332624105777", "name": "Commented-code block (5 lines) in apps/dashboard/src/components/terminal/ServerTerminalTabs.tsx:112", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/components/terminal/ServerTerminalTabs.tsx: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-63a639f257018b72", "name": "Commented-code block (7 lines) in apps/dashboard/src/components/import-project/MonorepoApps.tsx:128", "shortDescription": {"text": "Commented-code block (7 lines) in apps/dashboard/src/components/import-project/MonorepoApps.tsx:128"}, "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-ce4e1d92ca5fe425", "name": "Commented-code block (7 lines) in apps/dashboard/src/components/import-project/TerminalSurface.tsx:110", "shortDescription": {"text": "Commented-code block (7 lines) in apps/dashboard/src/components/import-project/TerminalSurface.tsx:110"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36da0065716da570", "name": "Commented-code block (6 lines) in apps/dashboard/src/components/import-project/ComposeServices.tsx:89", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/src/components/import-project/ComposeServices.tsx:89"}, "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-35dbf0612ace2e51", "name": "Commented-code block (5 lines) in apps/dashboard/src/components/import-project/compose/ComposeDeploymentProcessing.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/components/import-project/compose/ComposeDeploymentProcessing.tsx:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb54259137944928", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/layout.tsx:57", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/layout.tsx:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0dc9f98c2bc4015b", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/settings/_components/EmailSettings.tsx:105", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/settings/_components/EmailSettings.tsx:105"}, "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-d62e44b1d27b5651", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/settings/_components/TeamTab.tsx:350", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/settings/_components/TeamTab.tsx:350"}, "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-87781e74fc48a491", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/settings/_components/GitHubConnection.tsx:35", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/settings/_components/GitHubConnection.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-97410a2c32a35b9c", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/library/page.tsx:59", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/library/page.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-19a0d6691b30dc71", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/library/components/LibrarySidebar.tsx:44", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/library/components/LibrarySidebar.tsx:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82e3c614552fb9b0", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/ServicesTab.tsx:143", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/ServicesTab.tsx:143"}, "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-aadcec844d088226", "name": "Commented-code block (8 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainSettings.tsx:264", "shortDescription": {"text": "Commented-code block (8 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainSettings.tsx:264"}, "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-ac8b26b7c653593e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainSettings", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainSettings.tsx:445"}, "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-6557de8b8ccd28f0", "name": "Commented-code block (6 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/BuildSettings.tsx:98", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/BuildSettings.tsx:98"}, "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-36bcd8778c9d98c8", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/OverviewTab.tsx:74", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/OverviewTab.tsx:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66d583b7db829619", "name": "Commented-code block (6 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/LogsSettings.tsx:57", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/LogsSettings.tsx:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d22f3f17fe926c7", "name": "Commented-code block (6 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/services/ServiceDetailPane", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/services/ServiceDetailPanel.tsx:143"}, "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-9db80d91c7a50035", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/services/AddServiceModal.t", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/services/AddServiceModal.tsx:233"}, "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-9aadf474f24e6fb4", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/[[...slug]]/page.tsx:528", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/[[...slug]]/page.tsx:528"}, "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-d8d000adccb186a6", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/[[...slug]]/layout.tsx:14", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/[[...slug]]/layout.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-afd8dbd8d0282b3a", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/apps/new/page.tsx:72", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/apps/new/page.tsx:72"}, "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-072ddf6e1704430f", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/emails/page.tsx:34", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/emails/page.tsx:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ffb654b1b3de5ba", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/emails/_components/admin/domains-tab.tsx:71", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/emails/_components/admin/domains-tab.tsx:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01bafd68c6ce319c", "name": "Commented-code block (7 lines) in apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/page.tsx:114", "shortDescription": {"text": "Commented-code block (7 lines) in apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/page.tsx:114"}, "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-e9660ea12e617c01", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/DeployTargetS", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/DeployTargetStep.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-c5ba8c892d56b073", "name": "Commented-code block (11 lines) in apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/Sidebar.tsx:", "shortDescription": {"text": "Commented-code block (11 lines) in apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/Sidebar.tsx:239"}, "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-c81ba8d04f54bce1", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/backups/_components/CreateDestinationModal.tsx:43", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/backups/_components/CreateDestinationModal.tsx:43"}, "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-48855368374f44fc", "name": "Commented-code block (7 lines) in apps/dashboard/src/app/(dashboard)/servers/new/page.tsx:124", "shortDescription": {"text": "Commented-code block (7 lines) in apps/dashboard/src/app/(dashboard)/servers/new/page.tsx:124"}, "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-545961bd013fa10e", "name": "Commented-code block (6 lines) in apps/dashboard/src/app/mcp/authorize/page.tsx:97", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/src/app/mcp/authorize/page.tsx:97"}, "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-9cd390e8aba26efb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/app/mcp/authorize/page.tsx:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/app/mcp/authorize/page.tsx:63"}, "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-470376740c9023b9", "name": "Commented-code block (5 lines) in apps/dashboard/src/app/cloud-authorize/page.tsx:140", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/cloud-authorize/page.tsx:140"}, "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-9d4f7316b2e5cb6b", "name": "Commented-code block (8 lines) in apps/dashboard/src/app/(auth)/layout.tsx:28", "shortDescription": {"text": "Commented-code block (8 lines) in apps/dashboard/src/app/(auth)/layout.tsx:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f903c9e81f291ed", "name": "Commented-code block (7 lines) in apps/dashboard/src/app/accept-invite/[id]/page.tsx:111", "shortDescription": {"text": "Commented-code block (7 lines) in apps/dashboard/src/app/accept-invite/[id]/page.tsx:111"}, "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-e9b81ae8eb2c04e0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/lib/sseClient.ts:90", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/lib/sseClient.ts:90"}, "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-f8a143d8811c9f6f", "name": "Commented-code block (7 lines) in apps/dashboard/src/lib/api/github.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in apps/dashboard/src/lib/api/github.ts:8"}, "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-fad1f2e6bbb05836", "name": "Commented-code block (5 lines) in apps/dashboard/src/lib/api/client.ts:110", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/lib/api/client.ts:110"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b599167e82393f50", "name": "Commented-code block (5 lines) in apps/dashboard/src/lib/api/urls.ts:81", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/lib/api/urls.ts:81"}, "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-9d77786ef28de64f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/lib/api/mail.ts:394", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/lib/api/mail.ts:394"}, "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-0be35ba8f94f5f19", "name": "Commented-code block (11 lines) in apps/dashboard/src/lib/server/api.ts:201", "shortDescription": {"text": "Commented-code block (11 lines) in apps/dashboard/src/lib/server/api.ts:201"}, "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-cc8ee16d56743ffd", "name": "Commented-code block (5 lines) in apps/dashboard/src/lib/server/session.ts:205", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/lib/server/session.ts:205"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e48f191bc703e41", "name": "Commented-code block (5 lines) in apps/dashboard/src/hooks/useSSEConnection.ts:491", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/hooks/useSSEConnection.ts:491"}, "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-1694a4e922d0f207", "name": "Commented-code block (8 lines) in apps/dashboard/src/hooks/usePtyConnection.ts:283", "shortDescription": {"text": "Commented-code block (8 lines) in apps/dashboard/src/hooks/usePtyConnection.ts:283"}, "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-5fde7ec68cb51b2a", "name": "Commented-code block (5 lines) in apps/dashboard/src/hooks/useProjectEndpoints.ts:129", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/hooks/useProjectEndpoints.ts: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-70652c602d0665d3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/hooks/useProjectEndpoints.ts:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/hooks/useProjectEndpoints.ts:59"}, "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-549bf9568fd39825", "name": "Commented-code block (6 lines) in apps/dashboard/src/context/GitHubContext.tsx:182", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/src/context/GitHubContext.tsx:182"}, "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-802a4eee835f1c29", "name": "Commented-code block (5 lines) in apps/dashboard/src/context/ProjectSettingsContext.tsx:296", "shortDescription": {"text": "Commented-code block (5 lines) in apps/dashboard/src/context/ProjectSettingsContext.tsx:296"}, "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-6b7be6124e562b04", "name": "Commented-code block (6 lines) in apps/dashboard/src/context/CloudContext.tsx:181", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/src/context/CloudContext.tsx:181"}, "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-358f3ab2e6552262", "name": "Commented-code block (7 lines) in apps/dashboard/src/context/deployment/mode-config.ts:357", "shortDescription": {"text": "Commented-code block (7 lines) in apps/dashboard/src/context/deployment/mode-config.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-1d7a3ba1f97e2b8e", "name": "Commented-code block (7 lines) in apps/dashboard/src/context/deployment/useDeploymentBuild.tsx:413", "shortDescription": {"text": "Commented-code block (7 lines) in apps/dashboard/src/context/deployment/useDeploymentBuild.tsx:413"}, "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-8a7d86ffa431b221", "name": "Commented-code block (6 lines) in apps/dashboard/src/context/deployment/useDeploymentConfig.ts:244", "shortDescription": {"text": "Commented-code block (6 lines) in apps/dashboard/src/context/deployment/useDeploymentConfig.ts:244"}, "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-147792d93ce04567", "name": "Commented-code block (5 lines) in apps/cli/tsup.config.ts:16", "shortDescription": {"text": "Commented-code block (5 lines) in apps/cli/tsup.config.ts:16"}, "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-e3e54fa6d3b0650d", "name": "Commented-code block (5 lines) in apps/cli/src/commands/project.ts:525", "shortDescription": {"text": "Commented-code block (5 lines) in apps/cli/src/commands/project.ts:525"}, "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-0ab3050791b306e8", "name": "Commented-code block (9 lines) in apps/cli/src/commands/wizard.ts:186", "shortDescription": {"text": "Commented-code block (9 lines) in apps/cli/src/commands/wizard.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-ef840ef7575e3c46", "name": "Commented-code block (7 lines) in apps/cli/src/commands/up.ts:398", "shortDescription": {"text": "Commented-code block (7 lines) in apps/cli/src/commands/up.ts:398"}, "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-8bf21c06a310922e", "name": "Commented-code block (5 lines) in apps/cli/src/lib/ports.ts:139", "shortDescription": {"text": "Commented-code block (5 lines) in apps/cli/src/lib/ports.ts:139"}, "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-36b859e5ad57c880", "name": "Commented-code block (6 lines) in apps/cli/src/lib/service.ts:267", "shortDescription": {"text": "Commented-code block (6 lines) in apps/cli/src/lib/service.ts:267"}, "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-b85f6252dff52fb2", "name": "Commented-code block (5 lines) in apps/desktop/forge.config.js:20", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/forge.config.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c357e4c006c8a81a", "name": "Commented-code block (5 lines) in apps/desktop/src/main/updater.ts:114", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/main/updater.ts:114"}, "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-30f88864e6bd67cc", "name": "Commented-code block (7 lines) in apps/desktop/src/main/services.ts:293", "shortDescription": {"text": "Commented-code block (7 lines) in apps/desktop/src/main/services.ts:293"}, "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-9879f99a963f82cd", "name": "Commented-code block (5 lines) in apps/web/src/app/(site)/layout.tsx:101", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/app/(site)/layout.tsx:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-854f02a3e3a65e51", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/app/(site)/download/page.tsx:110", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/app/(site)/download/page.tsx:110"}, "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-03c2ba3e66d1fea4", "name": "Commented-code block (5 lines) in apps/web/src/app/(docs)/layout.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/app/(docs)/layout.tsx:4"}, "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-ba10b9a65197a7f4", "name": "Commented-code block (5 lines) in apps/web/src/hooks/use-platform.ts:57", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/hooks/use-platform.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46be4a8498da9be4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/update-geoip.mjs:27", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/update-geoip.mjs:27"}, "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-d307521212d3e57c", "name": "Commented-code block (9 lines) in scripts/release.ts:62", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/release.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-48ffe24ecdf44a9a", "name": "Commented-code block (5 lines) in packages/adapters/test/nginx-geo-whitelist.test.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in packages/adapters/test/nginx-geo-whitelist.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-93c2cb09d26cee57", "name": "Commented-code block (5 lines) in packages/adapters/scripts/embed-lua.ts:42", "shortDescription": {"text": "Commented-code block (5 lines) in packages/adapters/scripts/embed-lua.ts:42"}, "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-2302e55836bc836b", "name": "Commented-code block (6 lines) in packages/adapters/src/backup/common/credentials.ts:20", "shortDescription": {"text": "Commented-code block (6 lines) in packages/adapters/src/backup/common/credentials.ts:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35284e4ecd69e058", "name": "Commented-code block (5 lines) in packages/adapters/src/backup/executors/cloud.ts:156", "shortDescription": {"text": "Commented-code block (5 lines) in packages/adapters/src/backup/executors/cloud.ts:156"}, "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-4bb276613e4b785d", "name": "Commented-code block (6 lines) in packages/adapters/src/backup/executors/docker.ts:82", "shortDescription": {"text": "Commented-code block (6 lines) in packages/adapters/src/backup/executors/docker.ts:82"}, "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-6922935b55c77d52", "name": "Commented-code block (5 lines) in packages/adapters/src/backup/producers/volume.ts:115", "shortDescription": {"text": "Commented-code block (5 lines) in packages/adapters/src/backup/producers/volume.ts:115"}, "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-ca359f7f7c76c066", "name": "Commented-code block (9 lines) in packages/adapters/src/backup/producers/pg-dump.ts:110", "shortDescription": {"text": "Commented-code block (9 lines) in packages/adapters/src/backup/producers/pg-dump.ts:110"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17ac9ddaea7fcd3a", "name": "Commented-code block (6 lines) in packages/adapters/src/runtime/cloud-deploy-static.test.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in packages/adapters/src/runtime/cloud-deploy-static.test.ts:7"}, "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-7b76412e34396863", "name": "Commented-code block (9 lines) in packages/adapters/src/runtime/route-registration.ts:102", "shortDescription": {"text": "Commented-code block (9 lines) in packages/adapters/src/runtime/route-registration.ts:102"}, "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-b78dda7936f5b682", "name": "Commented-code block (7 lines) in packages/adapters/src/runtime/bare.ts:184", "shortDescription": {"text": "Commented-code block (7 lines) in packages/adapters/src/runtime/bare.ts:184"}, "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-dd5f5072ac49bd9c", "name": "Commented-code block (6 lines) in packages/adapters/src/runtime/cloud.ts:424", "shortDescription": {"text": "Commented-code block (6 lines) in packages/adapters/src/runtime/cloud.ts:424"}, "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-b3b4737bc40da585", "name": "Commented-code block (5 lines) in packages/adapters/src/runtime/docker-build-plan.ts:250", "shortDescription": {"text": "Commented-code block (5 lines) in packages/adapters/src/runtime/docker-build-plan.ts:250"}, "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-c84fdde6ec44b040", "name": "Commented-code block (6 lines) in packages/adapters/src/runtime/build-pipeline.ts:202", "shortDescription": {"text": "Commented-code block (6 lines) in packages/adapters/src/runtime/build-pipeline.ts:202"}, "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-f2436435dd4a0217", "name": "Commented-code block (5 lines) in packages/adapters/src/runtime/docker.ts:702", "shortDescription": {"text": "Commented-code block (5 lines) in packages/adapters/src/runtime/docker.ts:702"}, "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-ab5c7a50a4847557", "name": "Commented-code block (5 lines) in packages/adapters/src/runtime/types.ts:485", "shortDescription": {"text": "Commented-code block (5 lines) in packages/adapters/src/runtime/types.ts:485"}, "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-4f3d86e6b6266fe1", "name": "Commented-code block (7 lines) in packages/adapters/src/runtime/cloud/compose.ts:533", "shortDescription": {"text": "Commented-code block (7 lines) in packages/adapters/src/runtime/cloud/compose.ts:533"}, "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-873b8c23014b1dfc", "name": "Commented-code block (6 lines) in packages/adapters/src/system/catalog.ts:98", "shortDescription": {"text": "Commented-code block (6 lines) in packages/adapters/src/system/catalog.ts:98"}, "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-41404cae9de28be6", "name": "Commented-code block (5 lines) in packages/adapters/src/system/installer.ts:356", "shortDescription": {"text": "Commented-code block (5 lines) in packages/adapters/src/system/installer.ts:356"}, "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-a2db924306f11eef", "name": "Commented-code block (5 lines) in packages/adapters/src/system/system-ssh-executor.ts:498", "shortDescription": {"text": "Commented-code block (5 lines) in packages/adapters/src/system/system-ssh-executor.ts:498"}, "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-95437de1122f29c9", "name": "Commented-code block (7 lines) in packages/adapters/src/system/local-executor.ts:53", "shortDescription": {"text": "Commented-code block (7 lines) in packages/adapters/src/system/local-executor.ts: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-2462113ee96c30f3", "name": "Commented-code block (6 lines) in packages/adapters/src/system/remote-transfer.ts:251", "shortDescription": {"text": "Commented-code block (6 lines) in packages/adapters/src/system/remote-transfer.ts:251"}, "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-44c4186ed470eb26", "name": "Commented-code block (8 lines) in packages/adapters/src/system/errors.ts:18", "shortDescription": {"text": "Commented-code block (8 lines) in packages/adapters/src/system/errors.ts:18"}, "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-163315ca846e3dcc", "name": "Commented-code block (5 lines) in packages/adapters/src/system/modules/catalog-embedded.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/adapters/src/system/modules/catalog-embedded.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb5e38651f8fbda1", "name": "Commented-code block (6 lines) in packages/adapters/src/toolchain/catalog.ts:20", "shortDescription": {"text": "Commented-code block (6 lines) in packages/adapters/src/toolchain/catalog.ts:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76b3ef6dfa2d47c4", "name": "Commented-code block (6 lines) in packages/adapters/src/infra/openresty-lua.ts:508", "shortDescription": {"text": "Commented-code block (6 lines) in packages/adapters/src/infra/openresty-lua.ts:508"}, "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-17c40099da11dcb9", "name": "Commented-code block (5 lines) in packages/adapters/src/infra/lua-embedded.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in packages/adapters/src/infra/lua-embedded.ts:4"}, "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-7a74f4afe86d40a7", "name": "Commented-code block (5 lines) in packages/adapters/src/infra/nginx.ts:140", "shortDescription": {"text": "Commented-code block (5 lines) in packages/adapters/src/infra/nginx.ts:140"}, "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-93e4078df7e9fc8b", "name": "Commented-code block (6 lines) in packages/db-email/src/schema/vmail.ts:243", "shortDescription": {"text": "Commented-code block (6 lines) in packages/db-email/src/schema/vmail.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-db68d7069d7f5239", "name": "Commented-code block (9 lines) in packages/db/scripts/restore.ts:69", "shortDescription": {"text": "Commented-code block (9 lines) in packages/db/scripts/restore.ts:69"}, "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-68ace7e0fc13980f", "name": "Commented-code block (6 lines) in packages/db/scripts/dump.ts:52", "shortDescription": {"text": "Commented-code block (6 lines) in packages/db/scripts/dump.ts:52"}, "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-3ceb7652695cd4c5", "name": "Commented-code block (6 lines) in packages/db/src/dump.test.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in packages/db/src/dump.test.ts:6"}, "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-a30dfb4f4ef598a8", "name": "Commented-code block (7 lines) in packages/db/src/pglite-lock.ts:76", "shortDescription": {"text": "Commented-code block (7 lines) in packages/db/src/pglite-lock.ts:76"}, "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-814375880eb5b55c", "name": "Commented-code block (6 lines) in packages/db/src/client.ts:235", "shortDescription": {"text": "Commented-code block (6 lines) in packages/db/src/client.ts:235"}, "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-100672136bf63761", "name": "Commented-code block (7 lines) in packages/db/src/migrations-additive.test.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in packages/db/src/migrations-additive.test.ts:8"}, "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-19cbb10eed93d654", "name": "Commented-code block (7 lines) in packages/db/src/dump.ts:170", "shortDescription": {"text": "Commented-code block (7 lines) in packages/db/src/dump.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-c01422bd04e30ab8", "name": "Commented-code block (8 lines) in packages/db/src/schema/organization.ts:26", "shortDescription": {"text": "Commented-code block (8 lines) in packages/db/src/schema/organization.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-9eee05816cb145c4", "name": "Commented-code block (7 lines) in packages/db/src/schema/billing.ts:140", "shortDescription": {"text": "Commented-code block (7 lines) in packages/db/src/schema/billing.ts:140"}, "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-127476afe61483f2", "name": "Commented-code block (6 lines) in packages/db/src/schema/deployment.ts:170", "shortDescription": {"text": "Commented-code block (6 lines) in packages/db/src/schema/deployment.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-dab84d2480fcf6ae", "name": "Commented-code block (6 lines) in packages/db/src/schema/github-webhook-event.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in packages/db/src/schema/github-webhook-event.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-bf3752a0812b8915", "name": "Commented-code block (5 lines) in packages/db/src/schema/service.ts:305", "shortDescription": {"text": "Commented-code block (5 lines) in packages/db/src/schema/service.ts:305"}, "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-d5ab45ed3a76b70f", "name": "Commented-code block (5 lines) in packages/db/src/schema/settings.ts:78", "shortDescription": {"text": "Commented-code block (5 lines) in packages/db/src/schema/settings.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-e4f9f006bc9211e1", "name": "Commented-code block (5 lines) in packages/core/test/null-json-manifest.test.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in packages/core/test/null-json-manifest.test.ts:8"}, "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-194ca1feb8e5bb8c", "name": "Commented-code block (6 lines) in packages/core/src/connectivity.ts:52", "shortDescription": {"text": "Commented-code block (6 lines) in packages/core/src/connectivity.ts:52"}, "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-008b69cf2ef8504a", "name": "Commented-code block (9 lines) in packages/core/src/constants.ts:119", "shortDescription": {"text": "Commented-code block (9 lines) in packages/core/src/constants.ts:119"}, "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-3b21f6a8ddaf0d13", "name": "Commented-code block (6 lines) in packages/core/src/runtime-config.ts:19", "shortDescription": {"text": "Commented-code block (6 lines) in packages/core/src/runtime-config.ts:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-91931c24b774d9f2", "name": "Commented-code block (5 lines) in packages/core/src/mail-server/routing/build-routes.ts:132", "shortDescription": {"text": "Commented-code block (5 lines) in packages/core/src/mail-server/routing/build-routes.ts:132"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1910059f9dfa096b", "name": "Commented-code block (6 lines) in packages/core/src/languages/python.ts:55", "shortDescription": {"text": "Commented-code block (6 lines) in packages/core/src/languages/python.ts:55"}, "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-45a5db513d691560", "name": "85 env vars used in code but missing from .env.example", "shortDescription": {"text": "85 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `API_PORT`, `APPIMAGE`, `APPLE_IDENTITY`, `BILLING_TEARDOWN_DELETE_CUSTOMER`, `BILLING_WEBHOOK_DISCARD_UNHANDLED`, `CLIENT_BUILD_DIR`, `DASHBOARD_PORT`, `DEFAULT_IMAP_HOST` + 77 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-1a810cc4e50f1903", "name": "JS POST `/admin/:serverId/domains` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:55", "shortDescription": {"text": "JS POST `/admin/:serverId/domains` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:55"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d2a1a9290917897e", "name": "JS PATCH `/admin/:serverId/domains/:domain` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:65", "shortDescription": {"text": "JS PATCH `/admin/:serverId/domains/:domain` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:65"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7bd196ca07163758", "name": "JS DELETE `/admin/:serverId/domains/:domain` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:70", "shortDescription": {"text": "JS DELETE `/admin/:serverId/domains/:domain` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:70"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-162a498ae4c6930c", "name": "JS POST `/admin/:serverId/domains/:domain/dns/acknowledge` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.", "shortDescription": {"text": "JS POST `/admin/:serverId/domains/:domain/dns/acknowledge` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:85"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f6d84df377cfa6b7", "name": "JS POST `/admin/:serverId/mailboxes` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:102", "shortDescription": {"text": "JS POST `/admin/:serverId/mailboxes` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:102"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-126dd305d2a27fcf", "name": "JS PATCH `/admin/:serverId/mailboxes/:email` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:112", "shortDescription": {"text": "JS PATCH `/admin/:serverId/mailboxes/:email` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:112"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4909369cd7423d26", "name": "JS DELETE `/admin/:serverId/mailboxes/:email` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:117", "shortDescription": {"text": "JS DELETE `/admin/:serverId/mailboxes/:email` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:117"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-531f916e7c00117d", "name": "JS POST `/admin/:serverId/backup-policy` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:136", "shortDescription": {"text": "JS POST `/admin/:serverId/backup-policy` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:136"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb9ce1ee6b42170e", "name": "JS POST `/admin/:serverId/relay` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:160", "shortDescription": {"text": "JS POST `/admin/:serverId/relay` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:160"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bcdc480ad619f3f8", "name": "JS DELETE `/admin/:serverId/relay` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:165", "shortDescription": {"text": "JS DELETE `/admin/:serverId/relay` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:165"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-510e4cdf90ca0312", "name": "JS POST `/admin/:serverId/test-email` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:172", "shortDescription": {"text": "JS POST `/admin/:serverId/test-email` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:172"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9787b183530948d2", "name": "JS POST `/admin/:serverId/components/restart-all` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts", "shortDescription": {"text": "JS POST `/admin/:serverId/components/restart-all` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:179"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4404da22e40cbfa0", "name": "JS POST `/admin/:serverId/components/:key/:action` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.t", "shortDescription": {"text": "JS POST `/admin/:serverId/components/:key/:action` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:184"}, "fullDescription": {"text": "Admin-scoped JS route with no recognizable auth: no middleware-position guard, no router-level guard above it in this file, and no inline permission call within the first 15 lines of the handler. If auth is applied where this router is mounted, dismiss with reason `by_design` or tag the route `// public-by-design`."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e59920b57293d0c5", "name": "Vulnerable dependency better-auth 1.6.11: GHSA-86j7-9j95-vpqj", "shortDescription": {"text": "Vulnerable dependency better-auth 1.6.11: GHSA-86j7-9j95-vpqj"}, "fullDescription": {"text": "OSV.dev reports `better-auth` at version `1.6.11` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-86j7-9j95-vpqj.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-86j7-9j95-vpqj\nFix: upgrade `better-auth` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a02f87510302c19d", "name": "Vulnerable dependency dompurify 3.4.5: GHSA-76mc-f452-cxcm", "shortDescription": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-76mc-f452-cxcm"}, "fullDescription": {"text": "OSV.dev reports `dompurify` at version `3.4.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-76mc-f452-cxcm.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-76mc-f452-cxcm\nFix: upgrade `dompurify` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a62b720b5780f7e7", "name": "Vulnerable dependency dompurify 3.4.5: GHSA-c2j3-45gr-mqc4", "shortDescription": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-c2j3-45gr-mqc4"}, "fullDescription": {"text": "OSV.dev reports `dompurify` at version `3.4.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-c2j3-45gr-mqc4.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-c2j3-45gr-mqc4\nFix: upgrade `dompurify` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a5ed64b25229644f", "name": "Vulnerable dependency dompurify 3.4.5: GHSA-cmwh-pvxp-8882", "shortDescription": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-cmwh-pvxp-8882"}, "fullDescription": {"text": "OSV.dev reports `dompurify` at version `3.4.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-cmwh-pvxp-8882.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-cmwh-pvxp-8882\nFix: upgrade `dompurify` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-69b8e089112b5a44", "name": "Vulnerable dependency dompurify 3.4.5: GHSA-gvmj-g25r-r7wr", "shortDescription": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-gvmj-g25r-r7wr"}, "fullDescription": {"text": "OSV.dev reports `dompurify` at version `3.4.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-gvmj-g25r-r7wr.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-gvmj-g25r-r7wr\nFix: upgrade `dompurify` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fffda59a2f9ebd02", "name": "Vulnerable dependency dompurify 3.4.5: GHSA-hpcv-96wg-7vj8", "shortDescription": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-hpcv-96wg-7vj8"}, "fullDescription": {"text": "OSV.dev reports `dompurify` at version `3.4.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-hpcv-96wg-7vj8.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-hpcv-96wg-7vj8\nFix: upgrade `dompurify` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7e678bc37de8fcf1", "name": "Vulnerable dependency dompurify 3.4.5: GHSA-r47g-fvhr-h676", "shortDescription": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-r47g-fvhr-h676"}, "fullDescription": {"text": "OSV.dev reports `dompurify` at version `3.4.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-r47g-fvhr-h676.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-r47g-fvhr-h676\nFix: upgrade `dompurify` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f374e6eabecd54d2", "name": "Vulnerable dependency dompurify 3.4.5: GHSA-rp9w-3fw7-7cwq", "shortDescription": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-rp9w-3fw7-7cwq"}, "fullDescription": {"text": "OSV.dev reports `dompurify` at version `3.4.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-rp9w-3fw7-7cwq.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-rp9w-3fw7-7cwq\nFix: upgrade `dompurify` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-88b4356eed6d3281", "name": "Vulnerable dependency dompurify 3.4.5: GHSA-vxr8-fq34-vvx9", "shortDescription": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-vxr8-fq34-vvx9"}, "fullDescription": {"text": "OSV.dev reports `dompurify` at version `3.4.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-vxr8-fq34-vvx9.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-vxr8-fq34-vvx9\nFix: upgrade `dompurify` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1034432c0ee33e0", "name": "Vulnerable dependency dompurify 3.4.5: GHSA-x4vx-rjvf-j5p4", "shortDescription": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-x4vx-rjvf-j5p4"}, "fullDescription": {"text": "OSV.dev reports `dompurify` at version `3.4.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-x4vx-rjvf-j5p4.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-x4vx-rjvf-j5p4\nFix: upgrade `dompurify` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c1a910f92584c47b", "name": "Vulnerable dependency hono 4.12.23: GHSA-88fw-hqm2-52qc", "shortDescription": {"text": "Vulnerable dependency hono 4.12.23: GHSA-88fw-hqm2-52qc"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.23` (resolved in `apps/email/server/bun.lock`) is affected by GHSA-88fw-hqm2-52qc (aka CVE-2026-54290).\n\nhono: CORS Middleware reflects any Origin with credentials when `origin` defaults to the wildcard\n\nAliases: CVE-2026-54290\nAdvisory: https://osv.dev/vulnerability/GHSA-88fw-hqm2-52qc\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "high", "confidence": 1.0}}, {"id": "scanner-756b592f1ebce873", "name": "Vulnerable dependency hono 4.12.23: GHSA-hvrm-45r6-mjfj", "shortDescription": {"text": "Vulnerable dependency hono 4.12.23: GHSA-hvrm-45r6-mjfj"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.23` (resolved in `apps/email/server/bun.lock`) is affected by GHSA-hvrm-45r6-mjfj.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-hvrm-45r6-mjfj\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f9c498b59ee675ff", "name": "Vulnerable dependency hono 4.12.23: GHSA-j6c9-x7qj-28xf", "shortDescription": {"text": "Vulnerable dependency hono 4.12.23: GHSA-j6c9-x7qj-28xf"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.23` (resolved in `apps/email/server/bun.lock`) is affected by GHSA-j6c9-x7qj-28xf (aka CVE-2026-54287).\n\nhono: AWS Lambda adapter merges multiple `Set-Cookie` headers into one value, dropping cookies on ALB single-header and Lattice\n\nAliases: CVE-2026-54287\nAdvisory: https://osv.dev/vulnerability/GHSA-j6c9-x7qj-28xf\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6820edb220aa235", "name": "Vulnerable dependency hono 4.12.23: GHSA-rv63-4mwf-qqc2", "shortDescription": {"text": "Vulnerable dependency hono 4.12.23: GHSA-rv63-4mwf-qqc2"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.23` (resolved in `apps/email/server/bun.lock`) is affected by GHSA-rv63-4mwf-qqc2 (aka CVE-2026-54288).\n\nhono: Body Limit Middleware can be bypassed on AWS Lambda by understating `Content-Length`\n\nAliases: CVE-2026-54288\nAdvisory: https://osv.dev/vulnerability/GHSA-rv63-4mwf-qqc2\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fb39ddae519937cb", "name": "Vulnerable dependency hono 4.12.23: GHSA-w62v-xxxg-mg59", "shortDescription": {"text": "Vulnerable dependency hono 4.12.23: GHSA-w62v-xxxg-mg59"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.23` (resolved in `apps/email/server/bun.lock`) is affected by GHSA-w62v-xxxg-mg59 (aka CVE-2026-59895).\n\nHono: Server-Side XSS via JSX Escaping Bypass in cx() Utility\n\nAliases: CVE-2026-59895\nAdvisory: https://osv.dev/vulnerability/GHSA-w62v-xxxg-mg59\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-52d5e7aecec76822", "name": "Vulnerable dependency hono 4.12.23: GHSA-wgpf-jwqj-8h8p", "shortDescription": {"text": "Vulnerable dependency hono 4.12.23: GHSA-wgpf-jwqj-8h8p"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.23` (resolved in `apps/email/server/bun.lock`) is affected by GHSA-wgpf-jwqj-8h8p (aka CVE-2026-54289).\n\nhono: Lambda@Edge adapter keeps only the last value of a repeated request header, dropping the rest\n\nAliases: CVE-2026-54289\nAdvisory: https://osv.dev/vulnerability/GHSA-wgpf-jwqj-8h8p\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db7ec0c820d47952", "name": "Vulnerable dependency hono 4.12.23: GHSA-wwfh-h76j-fc44", "shortDescription": {"text": "Vulnerable dependency hono 4.12.23: GHSA-wwfh-h76j-fc44"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.23` (resolved in `apps/email/server/bun.lock`) is affected by GHSA-wwfh-h76j-fc44 (aka CVE-2026-54286).\n\nhono: Path traversal in `serve-static` on Windows via encoded backslash (`%5C`)\n\nAliases: CVE-2026-54286\nAdvisory: https://osv.dev/vulnerability/GHSA-wwfh-h76j-fc44\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dcee0ae3fd7e86df", "name": "Vulnerable dependency hono 4.12.23: GHSA-xgm2-5f3f-mvvc", "shortDescription": {"text": "Vulnerable dependency hono 4.12.23: GHSA-xgm2-5f3f-mvvc"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.23` (resolved in `apps/email/server/bun.lock`) is affected by GHSA-xgm2-5f3f-mvvc (aka CVE-2026-59897).\n\nHono: API Gateway v1 adapter can drop a distinct repeated request header value during de-duplication\n\nAliases: CVE-2026-59897\nAdvisory: https://osv.dev/vulnerability/GHSA-xgm2-5f3f-mvvc\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e4b1b9c1c82013de", "name": "Vulnerable dependency nodemailer 6.10.1: GHSA-268h-hp4c-crq3", "shortDescription": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-268h-hp4c-crq3"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `6.10.1` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-268h-hp4c-crq3.\n\nNodemailer: CRLF injection in Nodemailer List-* header comments allows arbitrary message header injection\n\nAdvisory: https://osv.dev/vulnerability/GHSA-268h-hp4c-crq3\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a0e58729bbe235d", "name": "Vulnerable dependency nodemailer 6.10.1: GHSA-c7w3-x93f-qmm8", "shortDescription": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-c7w3-x93f-qmm8"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `6.10.1` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-c7w3-x93f-qmm8.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-c7w3-x93f-qmm8\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a1f76b8ee30fa54", "name": "Vulnerable dependency nodemailer 6.10.1: GHSA-mm7p-fcc7-pg87", "shortDescription": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-mm7p-fcc7-pg87"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `6.10.1` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-mm7p-fcc7-pg87.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-mm7p-fcc7-pg87\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-10c513733cd6f500", "name": "Vulnerable dependency nodemailer 6.10.1: GHSA-p6gq-j5cr-w38f", "shortDescription": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-p6gq-j5cr-w38f"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `6.10.1` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-p6gq-j5cr-w38f.\n\nNodemailer: Message-level raw option bypasses disableFileAccess/disableUrlAccess, enabling arbitrary file read and full-response SSRF in the delivered message\n\nAdvisory: https://osv.dev/vulnerability/GHSA-p6gq-j5cr-w38f\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c3e94fae264648e", "name": "Vulnerable dependency nodemailer 6.10.1: GHSA-r7g4-qg5f-qqm2", "shortDescription": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-r7g4-qg5f-qqm2"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `6.10.1` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-r7g4-qg5f-qqm2.\n\nNodemailer: Improper TLS Certificate Validation in OAuth2 Token Fetch Enables Credential Interception\n\nAdvisory: https://osv.dev/vulnerability/GHSA-r7g4-qg5f-qqm2\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3b7bc8bb40346ddb", "name": "Vulnerable dependency nodemailer 6.10.1: GHSA-rcmh-qjqh-p98v", "shortDescription": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-rcmh-qjqh-p98v"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `6.10.1` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-rcmh-qjqh-p98v.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-rcmh-qjqh-p98v\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ade5580c684d3526", "name": "Vulnerable dependency nodemailer 6.10.1: GHSA-vvjj-xcjg-gr5g", "shortDescription": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-vvjj-xcjg-gr5g"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `6.10.1` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-vvjj-xcjg-gr5g.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-vvjj-xcjg-gr5g\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-10d3e8ccfd5f3078", "name": "Vulnerable dependency nodemailer 6.10.1: GHSA-wqvq-jvpq-h66f", "shortDescription": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-wqvq-jvpq-h66f"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `6.10.1` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-wqvq-jvpq-h66f.\n\nNodemailer jsonTransport bypasses disableFileAccess and disableUrlAccess during message normalization\n\nAdvisory: https://osv.dev/vulnerability/GHSA-wqvq-jvpq-h66f\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5be9f13a441116bb", "name": "Vulnerable dependency vite 6.4.2: GHSA-fx2h-pf6j-xcff", "shortDescription": {"text": "Vulnerable dependency vite 6.4.2: GHSA-fx2h-pf6j-xcff"}, "fullDescription": {"text": "OSV.dev reports `vite` at version `6.4.2` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-fx2h-pf6j-xcff.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-fx2h-pf6j-xcff\nFix: upgrade `vite` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-884aa8e38360a6ca", "name": "Vulnerable dependency vite 6.4.2: GHSA-v6wh-96g9-6wx3", "shortDescription": {"text": "Vulnerable dependency vite 6.4.2: GHSA-v6wh-96g9-6wx3"}, "fullDescription": {"text": "OSV.dev reports `vite` at version `6.4.2` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-v6wh-96g9-6wx3.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-v6wh-96g9-6wx3\nFix: upgrade `vite` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-2cc09eaee4c175ee", "name": "Vulnerable dependency esbuild 0.18.20: GHSA-67mh-4wv8-2f99", "shortDescription": {"text": "Vulnerable dependency esbuild 0.18.20: GHSA-67mh-4wv8-2f99"}, "fullDescription": {"text": "OSV.dev reports `esbuild` at version `0.18.20` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-67mh-4wv8-2f99.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-67mh-4wv8-2f99\nFix: upgrade `esbuild` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1a70c33b91961ce", "name": "Vulnerable dependency nodemailer 8.0.7: GHSA-268h-hp4c-crq3", "shortDescription": {"text": "Vulnerable dependency nodemailer 8.0.7: GHSA-268h-hp4c-crq3"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `8.0.7` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-268h-hp4c-crq3.\n\nNodemailer: CRLF injection in Nodemailer List-* header comments allows arbitrary message header injection\n\nAdvisory: https://osv.dev/vulnerability/GHSA-268h-hp4c-crq3\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1bbfad0c95511e78", "name": "Vulnerable dependency nodemailer 8.0.7: GHSA-p6gq-j5cr-w38f", "shortDescription": {"text": "Vulnerable dependency nodemailer 8.0.7: GHSA-p6gq-j5cr-w38f"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `8.0.7` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-p6gq-j5cr-w38f.\n\nNodemailer: Message-level raw option bypasses disableFileAccess/disableUrlAccess, enabling arbitrary file read and full-response SSRF in the delivered message\n\nAdvisory: https://osv.dev/vulnerability/GHSA-p6gq-j5cr-w38f\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c922c758fe64175d", "name": "Vulnerable dependency nodemailer 8.0.7: GHSA-r7g4-qg5f-qqm2", "shortDescription": {"text": "Vulnerable dependency nodemailer 8.0.7: GHSA-r7g4-qg5f-qqm2"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `8.0.7` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-r7g4-qg5f-qqm2.\n\nNodemailer: Improper TLS Certificate Validation in OAuth2 Token Fetch Enables Credential Interception\n\nAdvisory: https://osv.dev/vulnerability/GHSA-r7g4-qg5f-qqm2\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-090e51971d373ff0", "name": "Vulnerable dependency nodemailer 8.0.7: GHSA-wqvq-jvpq-h66f", "shortDescription": {"text": "Vulnerable dependency nodemailer 8.0.7: GHSA-wqvq-jvpq-h66f"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `8.0.7` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-wqvq-jvpq-h66f.\n\nNodemailer jsonTransport bypasses disableFileAccess and disableUrlAccess during message normalization\n\nAdvisory: https://osv.dev/vulnerability/GHSA-wqvq-jvpq-h66f\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e43ee8956df9f9a9", "name": "Vulnerable dependency nodemailer 8.0.5: GHSA-268h-hp4c-crq3", "shortDescription": {"text": "Vulnerable dependency nodemailer 8.0.5: GHSA-268h-hp4c-crq3"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `8.0.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-268h-hp4c-crq3.\n\nNodemailer: CRLF injection in Nodemailer List-* header comments allows arbitrary message header injection\n\nAdvisory: https://osv.dev/vulnerability/GHSA-268h-hp4c-crq3\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fad8b8bfb00c8fd3", "name": "Vulnerable dependency nodemailer 8.0.5: GHSA-p6gq-j5cr-w38f", "shortDescription": {"text": "Vulnerable dependency nodemailer 8.0.5: GHSA-p6gq-j5cr-w38f"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `8.0.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-p6gq-j5cr-w38f.\n\nNodemailer: Message-level raw option bypasses disableFileAccess/disableUrlAccess, enabling arbitrary file read and full-response SSRF in the delivered message\n\nAdvisory: https://osv.dev/vulnerability/GHSA-p6gq-j5cr-w38f\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7908a8e7a324859f", "name": "Vulnerable dependency nodemailer 8.0.5: GHSA-r7g4-qg5f-qqm2", "shortDescription": {"text": "Vulnerable dependency nodemailer 8.0.5: GHSA-r7g4-qg5f-qqm2"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `8.0.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-r7g4-qg5f-qqm2.\n\nNodemailer: Improper TLS Certificate Validation in OAuth2 Token Fetch Enables Credential Interception\n\nAdvisory: https://osv.dev/vulnerability/GHSA-r7g4-qg5f-qqm2\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e18b1540fe8f4313", "name": "Vulnerable dependency nodemailer 8.0.5: GHSA-wqvq-jvpq-h66f", "shortDescription": {"text": "Vulnerable dependency nodemailer 8.0.5: GHSA-wqvq-jvpq-h66f"}, "fullDescription": {"text": "OSV.dev reports `nodemailer` at version `8.0.5` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-wqvq-jvpq-h66f.\n\nNodemailer jsonTransport bypasses disableFileAccess and disableUrlAccess during message normalization\n\nAdvisory: https://osv.dev/vulnerability/GHSA-wqvq-jvpq-h66f\nFix: upgrade `nodemailer` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5921a1914f4a0cef", "name": "Vulnerable dependency esbuild 0.28.0: GHSA-g7r4-m6w7-qqqr", "shortDescription": {"text": "Vulnerable dependency esbuild 0.28.0: GHSA-g7r4-m6w7-qqqr"}, "fullDescription": {"text": "OSV.dev reports `esbuild` at version `0.28.0` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-g7r4-m6w7-qqqr.\n\nesbuild allows arbitrary file read when running the development server on Windows\n\nAdvisory: https://osv.dev/vulnerability/GHSA-g7r4-m6w7-qqqr\nFix: upgrade `esbuild` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f3755faea1a1dbd4", "name": "Vulnerable dependency esbuild 0.27.3: GHSA-g7r4-m6w7-qqqr", "shortDescription": {"text": "Vulnerable dependency esbuild 0.27.3: GHSA-g7r4-m6w7-qqqr"}, "fullDescription": {"text": "OSV.dev reports `esbuild` at version `0.27.3` (resolved in `apps/email/client/bun.lock`) is affected by GHSA-g7r4-m6w7-qqqr.\n\nesbuild allows arbitrary file read when running the development server on Windows\n\nAdvisory: https://osv.dev/vulnerability/GHSA-g7r4-m6w7-qqqr\nFix: upgrade `esbuild` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f462613445d0faf", "name": "Vulnerable dependency @hono/node-server 1.19.11: GHSA-92pp-h63x-v22m", "shortDescription": {"text": "Vulnerable dependency @hono/node-server 1.19.11: GHSA-92pp-h63x-v22m"}, "fullDescription": {"text": "OSV.dev reports `@hono/node-server` at version `1.19.11` (resolved in `bun.lock`) is affected by GHSA-92pp-h63x-v22m.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-92pp-h63x-v22m\nFix: upgrade `@hono/node-server` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3df9c5df3e668558", "name": "Vulnerable dependency @hono/node-server 1.19.11: GHSA-frvp-7c67-39w9", "shortDescription": {"text": "Vulnerable dependency @hono/node-server 1.19.11: GHSA-frvp-7c67-39w9"}, "fullDescription": {"text": "OSV.dev reports `@hono/node-server` at version `1.19.11` (resolved in `bun.lock`) is affected by GHSA-frvp-7c67-39w9.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-frvp-7c67-39w9\nFix: upgrade `@hono/node-server` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2f1883a02796bbea", "name": "Vulnerable dependency better-auth 1.5.4: GHSA-2vg6-77g8-24mp", "shortDescription": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-2vg6-77g8-24mp"}, "fullDescription": {"text": "OSV.dev reports `better-auth` at version `1.5.4` (resolved in `bun.lock`) is affected by GHSA-2vg6-77g8-24mp.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-2vg6-77g8-24mp\nFix: upgrade `better-auth` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7de0ad871d17c77b", "name": "Vulnerable dependency better-auth 1.5.4: GHSA-392p-2q2v-4372", "shortDescription": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-392p-2q2v-4372"}, "fullDescription": {"text": "OSV.dev reports `better-auth` at version `1.5.4` (resolved in `bun.lock`) is affected by GHSA-392p-2q2v-4372.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-392p-2q2v-4372\nFix: upgrade `better-auth` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-14af986b2038cfcb", "name": "Vulnerable dependency better-auth 1.5.4: GHSA-7w99-5wm4-3g79", "shortDescription": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-7w99-5wm4-3g79"}, "fullDescription": {"text": "OSV.dev reports `better-auth` at version `1.5.4` (resolved in `bun.lock`) is affected by GHSA-7w99-5wm4-3g79.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-7w99-5wm4-3g79\nFix: upgrade `better-auth` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2981c3faff5f2cc5", "name": "Vulnerable dependency better-auth 1.5.4: GHSA-86j7-9j95-vpqj", "shortDescription": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-86j7-9j95-vpqj"}, "fullDescription": {"text": "OSV.dev reports `better-auth` at version `1.5.4` (resolved in `bun.lock`) is affected by GHSA-86j7-9j95-vpqj.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-86j7-9j95-vpqj\nFix: upgrade `better-auth` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-533768ead6ed27a0", "name": "Vulnerable dependency better-auth 1.5.4: GHSA-9h47-pqcx-hjr4", "shortDescription": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-9h47-pqcx-hjr4"}, "fullDescription": {"text": "OSV.dev reports `better-auth` at version `1.5.4` (resolved in `bun.lock`) is affected by GHSA-9h47-pqcx-hjr4.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-9h47-pqcx-hjr4\nFix: upgrade `better-auth` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b0f6d7eb9fbcc656", "name": "Vulnerable dependency better-auth 1.5.4: GHSA-fmh4-wcc4-5jm3", "shortDescription": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-fmh4-wcc4-5jm3"}, "fullDescription": {"text": "OSV.dev reports `better-auth` at version `1.5.4` (resolved in `bun.lock`) is affected by GHSA-fmh4-wcc4-5jm3.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-fmh4-wcc4-5jm3\nFix: upgrade `better-auth` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8e12d3d8ada0bd0e", "name": "Vulnerable dependency better-auth 1.5.4: GHSA-g38m-r43w-p2q7", "shortDescription": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-g38m-r43w-p2q7"}, "fullDescription": {"text": "OSV.dev reports `better-auth` at version `1.5.4` (resolved in `bun.lock`) is affected by GHSA-g38m-r43w-p2q7.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-g38m-r43w-p2q7\nFix: upgrade `better-auth` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-47e7145a3a0fcd23", "name": "Vulnerable dependency better-auth 1.5.4: GHSA-pw9m-5jxm-xr6h", "shortDescription": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-pw9m-5jxm-xr6h"}, "fullDescription": {"text": "OSV.dev reports `better-auth` at version `1.5.4` (resolved in `bun.lock`) is affected by GHSA-pw9m-5jxm-xr6h.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-pw9m-5jxm-xr6h\nFix: upgrade `better-auth` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-519d6d92ee388cc1", "name": "Vulnerable dependency better-auth 1.5.4: GHSA-wxw3-q3m9-c3jr", "shortDescription": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-wxw3-q3m9-c3jr"}, "fullDescription": {"text": "OSV.dev reports `better-auth` at version `1.5.4` (resolved in `bun.lock`) is affected by GHSA-wxw3-q3m9-c3jr.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-wxw3-q3m9-c3jr\nFix: upgrade `better-auth` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-663e7fcaf0619ce1", "name": "Vulnerable dependency drizzle-orm 0.45.1: GHSA-gpj5-g38j-94v9", "shortDescription": {"text": "Vulnerable dependency drizzle-orm 0.45.1: GHSA-gpj5-g38j-94v9"}, "fullDescription": {"text": "OSV.dev reports `drizzle-orm` at version `0.45.1` (resolved in `bun.lock`) is affected by GHSA-gpj5-g38j-94v9.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-gpj5-g38j-94v9\nFix: upgrade `drizzle-orm` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5bb4b6e82189f376", "name": "Vulnerable dependency electron 40.8.0: GHSA-3c8v-cfp5-9885", "shortDescription": {"text": "Vulnerable dependency electron 40.8.0: GHSA-3c8v-cfp5-9885"}, "fullDescription": {"text": "OSV.dev reports `electron` at version `40.8.0` (resolved in `bun.lock`) is affected by GHSA-3c8v-cfp5-9885.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-3c8v-cfp5-9885\nFix: upgrade `electron` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-bba30f9f007307d3", "name": "Vulnerable dependency electron 40.8.0: GHSA-4p4r-m79c-wq3v", "shortDescription": {"text": "Vulnerable dependency electron 40.8.0: GHSA-4p4r-m79c-wq3v"}, "fullDescription": {"text": "OSV.dev reports `electron` at version `40.8.0` (resolved in `bun.lock`) is affected by GHSA-4p4r-m79c-wq3v.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-4p4r-m79c-wq3v\nFix: upgrade `electron` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-91ccb011312e344b", "name": "Vulnerable dependency electron 40.8.0: GHSA-8x5q-pvf5-64mp", "shortDescription": {"text": "Vulnerable dependency electron 40.8.0: GHSA-8x5q-pvf5-64mp"}, "fullDescription": {"text": "OSV.dev reports `electron` at version `40.8.0` (resolved in `bun.lock`) is affected by GHSA-8x5q-pvf5-64mp.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-8x5q-pvf5-64mp\nFix: upgrade `electron` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-4097e6c33a371f03", "name": "Vulnerable dependency electron 40.8.0: GHSA-f37v-82c4-4x64", "shortDescription": {"text": "Vulnerable dependency electron 40.8.0: GHSA-f37v-82c4-4x64"}, "fullDescription": {"text": "OSV.dev reports `electron` at version `40.8.0` (resolved in `bun.lock`) is affected by GHSA-f37v-82c4-4x64.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-f37v-82c4-4x64\nFix: upgrade `electron` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-3567686f14112df7", "name": "Vulnerable dependency electron 40.8.0: GHSA-f3pv-wv63-48x8", "shortDescription": {"text": "Vulnerable dependency electron 40.8.0: GHSA-f3pv-wv63-48x8"}, "fullDescription": {"text": "OSV.dev reports `electron` at version `40.8.0` (resolved in `bun.lock`) is affected by GHSA-f3pv-wv63-48x8.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-f3pv-wv63-48x8\nFix: upgrade `electron` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-19263afb5728f50e", "name": "Vulnerable dependency electron 40.8.0: GHSA-mwmh-mq4g-g6gr", "shortDescription": {"text": "Vulnerable dependency electron 40.8.0: GHSA-mwmh-mq4g-g6gr"}, "fullDescription": {"text": "OSV.dev reports `electron` at version `40.8.0` (resolved in `bun.lock`) is affected by GHSA-mwmh-mq4g-g6gr.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-mwmh-mq4g-g6gr\nFix: upgrade `electron` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-e482c27c4c01aa68", "name": "Vulnerable dependency electron 40.8.0: GHSA-r5p7-gp4j-qhrx", "shortDescription": {"text": "Vulnerable dependency electron 40.8.0: GHSA-r5p7-gp4j-qhrx"}, "fullDescription": {"text": "OSV.dev reports `electron` at version `40.8.0` (resolved in `bun.lock`) is affected by GHSA-r5p7-gp4j-qhrx.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-r5p7-gp4j-qhrx\nFix: upgrade `electron` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-f9c1f9c06327414f", "name": "Vulnerable dependency electron 40.8.0: GHSA-xj5x-m3f3-5x3h", "shortDescription": {"text": "Vulnerable dependency electron 40.8.0: GHSA-xj5x-m3f3-5x3h"}, "fullDescription": {"text": "OSV.dev reports `electron` at version `40.8.0` (resolved in `bun.lock`) is affected by GHSA-xj5x-m3f3-5x3h.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-xj5x-m3f3-5x3h\nFix: upgrade `electron` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-bc39477b68963d8c", "name": "Vulnerable dependency electron 40.8.0: GHSA-xwr5-m59h-vwqr", "shortDescription": {"text": "Vulnerable dependency electron 40.8.0: GHSA-xwr5-m59h-vwqr"}, "fullDescription": {"text": "OSV.dev reports `electron` at version `40.8.0` (resolved in `bun.lock`) is affected by GHSA-xwr5-m59h-vwqr.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-xwr5-m59h-vwqr\nFix: upgrade `electron` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-7bff8d8f8e4b693f", "name": "Vulnerable dependency hono 4.12.5: GHSA-26pp-8wgv-hjvm", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-26pp-8wgv-hjvm"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-26pp-8wgv-hjvm (aka CVE-2026-56762).\n\nHono missing validation of cookie name on write path in setCookie()\n\nAliases: CVE-2026-56762\nAdvisory: https://osv.dev/vulnerability/GHSA-26pp-8wgv-hjvm\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e0a5ed6f9e95b01", "name": "Vulnerable dependency hono 4.12.5: GHSA-2gcr-mfcq-wcc3", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-2gcr-mfcq-wcc3"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-2gcr-mfcq-wcc3 (aka CVE-2026-47676).\n\nHono: app.mount() strips mount prefix using undecoded path, causing incorrect routing for percent-encoded paths\n\nAliases: CVE-2026-47676\nAdvisory: https://osv.dev/vulnerability/GHSA-2gcr-mfcq-wcc3\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b083e50214151d38", "name": "Vulnerable dependency hono 4.12.5: GHSA-3hrh-pfw6-9m5x", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-3hrh-pfw6-9m5x"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-3hrh-pfw6-9m5x (aka CVE-2026-47675).\n\nHono: Cookie helper does not sanitize sameSite and priority, allowing Set-Cookie injection\n\nAliases: CVE-2026-47675\nAdvisory: https://osv.dev/vulnerability/GHSA-3hrh-pfw6-9m5x\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-625e3e86325af7fb", "name": "Vulnerable dependency hono 4.12.5: GHSA-458j-xx4x-4375", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-458j-xx4x-4375"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-458j-xx4x-4375 (aka CVE-2026-56761).\n\nhono Improperly Handles JSX Attribute Names Allows HTML Injection in hono/jsx SSR\n\nAliases: CVE-2026-56761\nAdvisory: https://osv.dev/vulnerability/GHSA-458j-xx4x-4375\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f2e0bc3c9ae60b00", "name": "Vulnerable dependency hono 4.12.5: GHSA-69xw-7hcm-h432", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-69xw-7hcm-h432"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-69xw-7hcm-h432.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-69xw-7hcm-h432\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-034156edab561c92", "name": "Vulnerable dependency hono 4.12.5: GHSA-88fw-hqm2-52qc", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-88fw-hqm2-52qc"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-88fw-hqm2-52qc (aka CVE-2026-54290).\n\nhono: CORS Middleware reflects any Origin with credentials when `origin` defaults to the wildcard\n\nAliases: CVE-2026-54290\nAdvisory: https://osv.dev/vulnerability/GHSA-88fw-hqm2-52qc\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb1d5166ef970aa9", "name": "Vulnerable dependency hono 4.12.5: GHSA-9vqf-7f2p-gf9v", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-9vqf-7f2p-gf9v"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-9vqf-7f2p-gf9v.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-9vqf-7f2p-gf9v\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a56140b9eee4d677", "name": "Vulnerable dependency hono 4.12.5: GHSA-f577-qrjj-4474", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-f577-qrjj-4474"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-f577-qrjj-4474.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-f577-qrjj-4474\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-41b4a63fb6614fd4", "name": "Vulnerable dependency hono 4.12.5: GHSA-hm8q-7f3q-5f36", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-hm8q-7f3q-5f36"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-hm8q-7f3q-5f36.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-hm8q-7f3q-5f36\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01d6e6f63bdd9096", "name": "Vulnerable dependency hono 4.12.5: GHSA-hvrm-45r6-mjfj", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-hvrm-45r6-mjfj"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-hvrm-45r6-mjfj.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-hvrm-45r6-mjfj\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b7bc378748267194", "name": "Vulnerable dependency hono 4.12.5: GHSA-j6c9-x7qj-28xf", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-j6c9-x7qj-28xf"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-j6c9-x7qj-28xf (aka CVE-2026-54287).\n\nhono: AWS Lambda adapter merges multiple `Set-Cookie` headers into one value, dropping cookies on ALB single-header and Lattice\n\nAliases: CVE-2026-54287\nAdvisory: https://osv.dev/vulnerability/GHSA-j6c9-x7qj-28xf\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1b50d7f6004ccdaf", "name": "Vulnerable dependency hono 4.12.5: GHSA-p77w-8qqv-26rm", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-p77w-8qqv-26rm"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-p77w-8qqv-26rm.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-p77w-8qqv-26rm\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff233330e73230e2", "name": "Vulnerable dependency hono 4.12.5: GHSA-qp7p-654g-cw7p", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-qp7p-654g-cw7p"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-qp7p-654g-cw7p.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-qp7p-654g-cw7p\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-157d1a898f91f652", "name": "Vulnerable dependency hono 4.12.5: GHSA-r5rp-j6wh-rvv4", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-r5rp-j6wh-rvv4"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-r5rp-j6wh-rvv4.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-r5rp-j6wh-rvv4\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e904546abf8aca5c", "name": "Vulnerable dependency hono 4.12.5: GHSA-rv63-4mwf-qqc2", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-rv63-4mwf-qqc2"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-rv63-4mwf-qqc2 (aka CVE-2026-54288).\n\nhono: Body Limit Middleware can be bypassed on AWS Lambda by understating `Content-Length`\n\nAliases: CVE-2026-54288\nAdvisory: https://osv.dev/vulnerability/GHSA-rv63-4mwf-qqc2\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d2ab825c38b25fc2", "name": "Vulnerable dependency hono 4.12.5: GHSA-v8w9-8mx6-g223", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-v8w9-8mx6-g223"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-v8w9-8mx6-g223.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-v8w9-8mx6-g223\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f172781a2ca06b7", "name": "Vulnerable dependency hono 4.12.5: GHSA-w62v-xxxg-mg59", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-w62v-xxxg-mg59"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-w62v-xxxg-mg59 (aka CVE-2026-59895).\n\nHono: Server-Side XSS via JSX Escaping Bypass in cx() Utility\n\nAliases: CVE-2026-59895\nAdvisory: https://osv.dev/vulnerability/GHSA-w62v-xxxg-mg59\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-50be0368742a6245", "name": "Vulnerable dependency hono 4.12.5: GHSA-wgpf-jwqj-8h8p", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-wgpf-jwqj-8h8p"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-wgpf-jwqj-8h8p (aka CVE-2026-54289).\n\nhono: Lambda@Edge adapter keeps only the last value of a repeated request header, dropping the rest\n\nAliases: CVE-2026-54289\nAdvisory: https://osv.dev/vulnerability/GHSA-wgpf-jwqj-8h8p\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6f6ff23f2887aa7d", "name": "Vulnerable dependency hono 4.12.5: GHSA-wmmm-f939-6g9c", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-wmmm-f939-6g9c"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-wmmm-f939-6g9c.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-wmmm-f939-6g9c\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-64fdf831ed6552cd", "name": "Vulnerable dependency hono 4.12.5: GHSA-wwfh-h76j-fc44", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-wwfh-h76j-fc44"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-wwfh-h76j-fc44 (aka CVE-2026-54286).\n\nhono: Path traversal in `serve-static` on Windows via encoded backslash (`%5C`)\n\nAliases: CVE-2026-54286\nAdvisory: https://osv.dev/vulnerability/GHSA-wwfh-h76j-fc44\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-321a56a73428dead", "name": "Vulnerable dependency hono 4.12.5: GHSA-xf4j-xp2r-rqqx", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-xf4j-xp2r-rqqx"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-xf4j-xp2r-rqqx.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-xf4j-xp2r-rqqx\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8359e6efcc4b07d", "name": "Vulnerable dependency hono 4.12.5: GHSA-xgm2-5f3f-mvvc", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-xgm2-5f3f-mvvc"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-xgm2-5f3f-mvvc (aka CVE-2026-59897).\n\nHono: API Gateway v1 adapter can drop a distinct repeated request header value during de-duplication\n\nAliases: CVE-2026-59897\nAdvisory: https://osv.dev/vulnerability/GHSA-xgm2-5f3f-mvvc\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a4b5da8fd7832ead", "name": "Vulnerable dependency hono 4.12.5: GHSA-xpcf-pg52-r92g", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-xpcf-pg52-r92g"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-xpcf-pg52-r92g.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-xpcf-pg52-r92g\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8da5317ed50e1674", "name": "Vulnerable dependency hono 4.12.5: GHSA-xrhx-7g5j-rcj5", "shortDescription": {"text": "Vulnerable dependency hono 4.12.5: GHSA-xrhx-7g5j-rcj5"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.12.5` (resolved in `bun.lock`) is affected by GHSA-xrhx-7g5j-rcj5.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-xrhx-7g5j-rcj5\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f4f8f30331d6f0a3", "name": "Vulnerable dependency next 16.1.6: GHSA-267c-6grr-h53f", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-267c-6grr-h53f"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-267c-6grr-h53f.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-267c-6grr-h53f\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-62c818882d8c229a", "name": "Vulnerable dependency next 16.1.6: GHSA-26hh-7cqf-hhc6", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-26hh-7cqf-hhc6"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-26hh-7cqf-hhc6.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-26hh-7cqf-hhc6\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e3fc0493a3c06724", "name": "Vulnerable dependency next 16.1.6: GHSA-36qx-fr4f-26g5", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-36qx-fr4f-26g5"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-36qx-fr4f-26g5.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-36qx-fr4f-26g5\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-416a5352cb225794", "name": "Vulnerable dependency next 16.1.6: GHSA-3g8h-86w9-wvmq", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-3g8h-86w9-wvmq"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-3g8h-86w9-wvmq.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-3g8h-86w9-wvmq\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4aaf2a8925bfcf1a", "name": "Vulnerable dependency next 16.1.6: GHSA-3x4c-7xq6-9pq8", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-3x4c-7xq6-9pq8"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-3x4c-7xq6-9pq8.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-3x4c-7xq6-9pq8\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab221d2028203861", "name": "Vulnerable dependency next 16.1.6: GHSA-4633-3j49-mh5q", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-4633-3j49-mh5q"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-4633-3j49-mh5q.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-4633-3j49-mh5q\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d7b92a4b1ed1252", "name": "Vulnerable dependency next 16.1.6: GHSA-492v-c6pp-mqqv", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-492v-c6pp-mqqv"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-492v-c6pp-mqqv.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-492v-c6pp-mqqv\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d55edb9be97ba896", "name": "Vulnerable dependency next 16.1.6: GHSA-4c39-4ccg-62r3", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-4c39-4ccg-62r3"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-4c39-4ccg-62r3.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-4c39-4ccg-62r3\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-127777cfa053b24b", "name": "Vulnerable dependency next 16.1.6: GHSA-68g3-v927-f742", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-68g3-v927-f742"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-68g3-v927-f742.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-68g3-v927-f742\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc89b2d08a07fe47", "name": "Vulnerable dependency next 16.1.6: GHSA-6gpp-xcg3-4w24", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-6gpp-xcg3-4w24"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-6gpp-xcg3-4w24.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-6gpp-xcg3-4w24\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a8c654a78d098537", "name": "Vulnerable dependency next 16.1.6: GHSA-89xv-2m56-2m9x", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-89xv-2m56-2m9x"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-89xv-2m56-2m9x.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-89xv-2m56-2m9x\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c08ea78325054694", "name": "Vulnerable dependency next 16.1.6: GHSA-8h8q-6873-q5fj", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-8h8q-6873-q5fj"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-8h8q-6873-q5fj.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-8h8q-6873-q5fj\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4f590a7f4cf4c8d3", "name": "Vulnerable dependency next 16.1.6: GHSA-955p-x3mx-jcvp", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-955p-x3mx-jcvp"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-955p-x3mx-jcvp.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-955p-x3mx-jcvp\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e3f3693ffe2c8af7", "name": "Vulnerable dependency next 16.1.6: GHSA-c4j6-fc7j-m34r", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-c4j6-fc7j-m34r"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-c4j6-fc7j-m34r.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-c4j6-fc7j-m34r\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-abb29cbfb8856750", "name": "Vulnerable dependency next 16.1.6: GHSA-ffhc-5mcf-pf4q", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-ffhc-5mcf-pf4q"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-ffhc-5mcf-pf4q.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-ffhc-5mcf-pf4q\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eedf3ddc2e37427d", "name": "Vulnerable dependency next 16.1.6: GHSA-ggv3-7p47-pfv8", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-ggv3-7p47-pfv8"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-ggv3-7p47-pfv8.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-ggv3-7p47-pfv8\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-000976eef667db2e", "name": "Vulnerable dependency next 16.1.6: GHSA-gx5p-jg67-6x7h", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-gx5p-jg67-6x7h"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-gx5p-jg67-6x7h.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-gx5p-jg67-6x7h\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-757c84dbee9581d4", "name": "Vulnerable dependency next 16.1.6: GHSA-h27x-g6w4-24gq", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-h27x-g6w4-24gq"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-h27x-g6w4-24gq.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-h27x-g6w4-24gq\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bc0843bbed1ef36c", "name": "Vulnerable dependency next 16.1.6: GHSA-h64f-5h5j-jqjh", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-h64f-5h5j-jqjh"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-h64f-5h5j-jqjh.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-h64f-5h5j-jqjh\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6f86f8af84047b76", "name": "Vulnerable dependency next 16.1.6: GHSA-jcc7-9wpm-mj36", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-jcc7-9wpm-mj36"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-jcc7-9wpm-mj36.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-jcc7-9wpm-mj36\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8d603aad59c47018", "name": "Vulnerable dependency next 16.1.6: GHSA-m99w-x7hq-7vfj", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-m99w-x7hq-7vfj"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-m99w-x7hq-7vfj.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-m99w-x7hq-7vfj\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f4af8eb6f1f270cc", "name": "Vulnerable dependency next 16.1.6: GHSA-mg66-mrh9-m8jx", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-mg66-mrh9-m8jx"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-mg66-mrh9-m8jx.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-mg66-mrh9-m8jx\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7e615027f9cce193", "name": "Vulnerable dependency next 16.1.6: GHSA-mq59-m269-xvcx", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-mq59-m269-xvcx"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-mq59-m269-xvcx.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-mq59-m269-xvcx\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eab0f6276d01cad7", "name": "Vulnerable dependency next 16.1.6: GHSA-p9j2-gv94-2wf4", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-p9j2-gv94-2wf4"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-p9j2-gv94-2wf4.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-p9j2-gv94-2wf4\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d6152658eac4bf1f", "name": "Vulnerable dependency next 16.1.6: GHSA-q4gf-8mx6-v5v3", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-q4gf-8mx6-v5v3"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-q4gf-8mx6-v5v3.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-q4gf-8mx6-v5v3\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d3a0d2acb6c49354", "name": "Vulnerable dependency next 16.1.6: GHSA-q8wf-6r8g-63ch", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-q8wf-6r8g-63ch"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-q8wf-6r8g-63ch.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-q8wf-6r8g-63ch\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d0517bb219baaee", "name": "Vulnerable dependency next 16.1.6: GHSA-vfv6-92ff-j949", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-vfv6-92ff-j949"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-vfv6-92ff-j949.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-vfv6-92ff-j949\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-adf12d940c8a3033", "name": "Vulnerable dependency next 16.1.6: GHSA-wfc6-r584-vfw7", "shortDescription": {"text": "Vulnerable dependency next 16.1.6: GHSA-wfc6-r584-vfw7"}, "fullDescription": {"text": "OSV.dev reports `next` at version `16.1.6` (resolved in `bun.lock`) is affected by GHSA-wfc6-r584-vfw7.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-wfc6-r584-vfw7\nFix: upgrade `next` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c4cbd117d7235b7d", "name": "Vulnerable dependency postcss 8.5.8: GHSA-qx2v-qp2m-jg93", "shortDescription": {"text": "Vulnerable dependency postcss 8.5.8: GHSA-qx2v-qp2m-jg93"}, "fullDescription": {"text": "OSV.dev reports `postcss` at version `8.5.8` (resolved in `bun.lock`) is affected by GHSA-qx2v-qp2m-jg93.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-qx2v-qp2m-jg93\nFix: upgrade `postcss` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-e42e484da2b1c7f1", "name": "Vulnerable dependency turbo 2.8.14: GHSA-3qcw-2rhx-2726", "shortDescription": {"text": "Vulnerable dependency turbo 2.8.14: GHSA-3qcw-2rhx-2726"}, "fullDescription": {"text": "OSV.dev reports `turbo` at version `2.8.14` (resolved in `bun.lock`) is affected by GHSA-3qcw-2rhx-2726.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-3qcw-2rhx-2726\nFix: upgrade `turbo` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-77930c0fd357420c", "name": "Vulnerable dependency turbo 2.8.14: GHSA-hcf7-66rw-9f5r", "shortDescription": {"text": "Vulnerable dependency turbo 2.8.14: GHSA-hcf7-66rw-9f5r"}, "fullDescription": {"text": "OSV.dev reports `turbo` at version `2.8.14` (resolved in `bun.lock`) is affected by GHSA-hcf7-66rw-9f5r.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-hcf7-66rw-9f5r\nFix: upgrade `turbo` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-f2f1c355a78f99b6", "name": "Vulnerable dependency vite 7.3.1: GHSA-4w7w-66w2-5vf9", "shortDescription": {"text": "Vulnerable dependency vite 7.3.1: GHSA-4w7w-66w2-5vf9"}, "fullDescription": {"text": "OSV.dev reports `vite` at version `7.3.1` (resolved in `bun.lock`) is affected by GHSA-4w7w-66w2-5vf9.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-4w7w-66w2-5vf9\nFix: upgrade `vite` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f9ad4132d7c379ef", "name": "Vulnerable dependency vite 7.3.1: GHSA-fx2h-pf6j-xcff", "shortDescription": {"text": "Vulnerable dependency vite 7.3.1: GHSA-fx2h-pf6j-xcff"}, "fullDescription": {"text": "OSV.dev reports `vite` at version `7.3.1` (resolved in `bun.lock`) is affected by GHSA-fx2h-pf6j-xcff.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-fx2h-pf6j-xcff\nFix: upgrade `vite` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61df69735206880e", "name": "Vulnerable dependency vite 7.3.1: GHSA-p9ff-h696-f583", "shortDescription": {"text": "Vulnerable dependency vite 7.3.1: GHSA-p9ff-h696-f583"}, "fullDescription": {"text": "OSV.dev reports `vite` at version `7.3.1` (resolved in `bun.lock`) is affected by GHSA-p9ff-h696-f583.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-p9ff-h696-f583\nFix: upgrade `vite` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-209cd72e2ebeaa40", "name": "Vulnerable dependency vite 7.3.1: GHSA-v2wj-q39q-566r", "shortDescription": {"text": "Vulnerable dependency vite 7.3.1: GHSA-v2wj-q39q-566r"}, "fullDescription": {"text": "OSV.dev reports `vite` at version `7.3.1` (resolved in `bun.lock`) is affected by GHSA-v2wj-q39q-566r.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-v2wj-q39q-566r\nFix: upgrade `vite` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e9419338c33eb04b", "name": "Vulnerable dependency vite 7.3.1: GHSA-v6wh-96g9-6wx3", "shortDescription": {"text": "Vulnerable dependency vite 7.3.1: GHSA-v6wh-96g9-6wx3"}, "fullDescription": {"text": "OSV.dev reports `vite` at version `7.3.1` (resolved in `bun.lock`) is affected by GHSA-v6wh-96g9-6wx3.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-v6wh-96g9-6wx3\nFix: upgrade `vite` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb6947c03ef31165", "name": "Vulnerable dependency vitest 4.0.18: GHSA-5xrq-8626-4rwp", "shortDescription": {"text": "Vulnerable dependency vitest 4.0.18: GHSA-5xrq-8626-4rwp"}, "fullDescription": {"text": "OSV.dev reports `vitest` at version `4.0.18` (resolved in `bun.lock`) is affected by GHSA-5xrq-8626-4rwp.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-5xrq-8626-4rwp\nFix: upgrade `vitest` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-05b694a1520b5855", "name": "Vulnerable dependency yaml 2.8.2: GHSA-48c2-rrv3-qjmp", "shortDescription": {"text": "Vulnerable dependency yaml 2.8.2: GHSA-48c2-rrv3-qjmp"}, "fullDescription": {"text": "OSV.dev reports `yaml` at version `2.8.2` (resolved in `bun.lock`) is affected by GHSA-48c2-rrv3-qjmp (aka CVE-2026-33532).\n\nyaml is vulnerable to Stack Overflow via deeply nested YAML collections\n\nAliases: CVE-2026-33532\nAdvisory: https://osv.dev/vulnerability/GHSA-48c2-rrv3-qjmp\nFix: upgrade `yaml` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b971f6db7c6833a", "name": "Vulnerable dependency @hono/node-server 1.19.9: GHSA-92pp-h63x-v22m", "shortDescription": {"text": "Vulnerable dependency @hono/node-server 1.19.9: GHSA-92pp-h63x-v22m"}, "fullDescription": {"text": "OSV.dev reports `@hono/node-server` at version `1.19.9` (resolved in `bun.lock`) is affected by GHSA-92pp-h63x-v22m.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-92pp-h63x-v22m\nFix: upgrade `@hono/node-server` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d656df8c98c3e61", "name": "Vulnerable dependency @hono/node-server 1.19.9: GHSA-frvp-7c67-39w9", "shortDescription": {"text": "Vulnerable dependency @hono/node-server 1.19.9: GHSA-frvp-7c67-39w9"}, "fullDescription": {"text": "OSV.dev reports `@hono/node-server` at version `1.19.9` (resolved in `bun.lock`) is affected by GHSA-frvp-7c67-39w9.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-frvp-7c67-39w9\nFix: upgrade `@hono/node-server` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-22f16d61aa9b01df", "name": "Vulnerable dependency @hono/node-server 1.19.9: GHSA-wc8c-qw6v-h7f6", "shortDescription": {"text": "Vulnerable dependency @hono/node-server 1.19.9: GHSA-wc8c-qw6v-h7f6"}, "fullDescription": {"text": "OSV.dev reports `@hono/node-server` at version `1.19.9` (resolved in `bun.lock`) is affected by GHSA-wc8c-qw6v-h7f6.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-wc8c-qw6v-h7f6\nFix: upgrade `@hono/node-server` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d64b3179872a1581", "name": "Vulnerable dependency hono 4.11.4: GHSA-26pp-8wgv-hjvm", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-26pp-8wgv-hjvm"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-26pp-8wgv-hjvm (aka CVE-2026-56762).\n\nHono missing validation of cookie name on write path in setCookie()\n\nAliases: CVE-2026-56762\nAdvisory: https://osv.dev/vulnerability/GHSA-26pp-8wgv-hjvm\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0582fa61f3bdca63", "name": "Vulnerable dependency hono 4.11.4: GHSA-2gcr-mfcq-wcc3", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-2gcr-mfcq-wcc3"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-2gcr-mfcq-wcc3 (aka CVE-2026-47676).\n\nHono: app.mount() strips mount prefix using undecoded path, causing incorrect routing for percent-encoded paths\n\nAliases: CVE-2026-47676\nAdvisory: https://osv.dev/vulnerability/GHSA-2gcr-mfcq-wcc3\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-52c93e4ae3c500c8", "name": "Vulnerable dependency hono 4.11.4: GHSA-3hrh-pfw6-9m5x", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-3hrh-pfw6-9m5x"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-3hrh-pfw6-9m5x (aka CVE-2026-47675).\n\nHono: Cookie helper does not sanitize sameSite and priority, allowing Set-Cookie injection\n\nAliases: CVE-2026-47675\nAdvisory: https://osv.dev/vulnerability/GHSA-3hrh-pfw6-9m5x\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c390bfd23dd27b43", "name": "Vulnerable dependency hono 4.11.4: GHSA-458j-xx4x-4375", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-458j-xx4x-4375"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-458j-xx4x-4375 (aka CVE-2026-56761).\n\nhono Improperly Handles JSX Attribute Names Allows HTML Injection in hono/jsx SSR\n\nAliases: CVE-2026-56761\nAdvisory: https://osv.dev/vulnerability/GHSA-458j-xx4x-4375\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2732f89c7017d556", "name": "Vulnerable dependency hono 4.11.4: GHSA-5pq2-9x2x-5p6w", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-5pq2-9x2x-5p6w"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-5pq2-9x2x-5p6w.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-5pq2-9x2x-5p6w\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c15fef102284ae61", "name": "Vulnerable dependency hono 4.11.4: GHSA-69xw-7hcm-h432", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-69xw-7hcm-h432"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-69xw-7hcm-h432.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-69xw-7hcm-h432\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9f77aebae9884d21", "name": "Vulnerable dependency hono 4.11.4: GHSA-6wqw-2p9w-4vw4", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-6wqw-2p9w-4vw4"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-6wqw-2p9w-4vw4.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-6wqw-2p9w-4vw4\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-94401d3080acc19e", "name": "Vulnerable dependency hono 4.11.4: GHSA-88fw-hqm2-52qc", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-88fw-hqm2-52qc"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-88fw-hqm2-52qc (aka CVE-2026-54290).\n\nhono: CORS Middleware reflects any Origin with credentials when `origin` defaults to the wildcard\n\nAliases: CVE-2026-54290\nAdvisory: https://osv.dev/vulnerability/GHSA-88fw-hqm2-52qc\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "high", "confidence": 1.0}}, {"id": "scanner-11356755b3babea7", "name": "Vulnerable dependency hono 4.11.4: GHSA-9r54-q6cx-xmh5", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-9r54-q6cx-xmh5"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-9r54-q6cx-xmh5.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-9r54-q6cx-xmh5\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-53bd23e2fa8e8740", "name": "Vulnerable dependency hono 4.11.4: GHSA-9vqf-7f2p-gf9v", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-9vqf-7f2p-gf9v"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-9vqf-7f2p-gf9v.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-9vqf-7f2p-gf9v\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ec1ad1746516d7d", "name": "Vulnerable dependency hono 4.11.4: GHSA-f577-qrjj-4474", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-f577-qrjj-4474"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-f577-qrjj-4474.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-f577-qrjj-4474\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d4ac076030622ee3", "name": "Vulnerable dependency hono 4.11.4: GHSA-gq3j-xvxp-8hrf", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-gq3j-xvxp-8hrf"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-gq3j-xvxp-8hrf.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-gq3j-xvxp-8hrf\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aafc95e166d01db5", "name": "Vulnerable dependency hono 4.11.4: GHSA-hm8q-7f3q-5f36", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-hm8q-7f3q-5f36"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-hm8q-7f3q-5f36.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-hm8q-7f3q-5f36\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01ac1b8ed9085599", "name": "Vulnerable dependency hono 4.11.4: GHSA-j6c9-x7qj-28xf", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-j6c9-x7qj-28xf"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-j6c9-x7qj-28xf (aka CVE-2026-54287).\n\nhono: AWS Lambda adapter merges multiple `Set-Cookie` headers into one value, dropping cookies on ALB single-header and Lattice\n\nAliases: CVE-2026-54287\nAdvisory: https://osv.dev/vulnerability/GHSA-j6c9-x7qj-28xf\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-60f6b578e4c4213b", "name": "Vulnerable dependency hono 4.11.4: GHSA-p6xx-57qc-3wxr", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-p6xx-57qc-3wxr"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-p6xx-57qc-3wxr.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-p6xx-57qc-3wxr\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ebb58f1805ed462", "name": "Vulnerable dependency hono 4.11.4: GHSA-p77w-8qqv-26rm", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-p77w-8qqv-26rm"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-p77w-8qqv-26rm.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-p77w-8qqv-26rm\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a7c33d429b7ea9df", "name": "Vulnerable dependency hono 4.11.4: GHSA-q5qw-h33p-qvwr", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-q5qw-h33p-qvwr"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-q5qw-h33p-qvwr.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-q5qw-h33p-qvwr\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a8b930f6a0c73f3", "name": "Vulnerable dependency hono 4.11.4: GHSA-qp7p-654g-cw7p", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-qp7p-654g-cw7p"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-qp7p-654g-cw7p.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-qp7p-654g-cw7p\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-99b58300159b76d0", "name": "Vulnerable dependency hono 4.11.4: GHSA-r354-f388-2fhh", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-r354-f388-2fhh"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-r354-f388-2fhh.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-r354-f388-2fhh\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5341b664debc0d94", "name": "Vulnerable dependency hono 4.11.4: GHSA-r5rp-j6wh-rvv4", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-r5rp-j6wh-rvv4"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-r5rp-j6wh-rvv4.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-r5rp-j6wh-rvv4\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cde472791d9505e8", "name": "Vulnerable dependency hono 4.11.4: GHSA-rv63-4mwf-qqc2", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-rv63-4mwf-qqc2"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-rv63-4mwf-qqc2 (aka CVE-2026-54288).\n\nhono: Body Limit Middleware can be bypassed on AWS Lambda by understating `Content-Length`\n\nAliases: CVE-2026-54288\nAdvisory: https://osv.dev/vulnerability/GHSA-rv63-4mwf-qqc2\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ec977ec72f44d0e4", "name": "Vulnerable dependency hono 4.11.4: GHSA-v8w9-8mx6-g223", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-v8w9-8mx6-g223"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-v8w9-8mx6-g223.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-v8w9-8mx6-g223\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe9b04d5acca627e", "name": "Vulnerable dependency hono 4.11.4: GHSA-w332-q679-j88p", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-w332-q679-j88p"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-w332-q679-j88p.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-w332-q679-j88p\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-be2bcaaba671d7fc", "name": "Vulnerable dependency hono 4.11.4: GHSA-w62v-xxxg-mg59", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-w62v-xxxg-mg59"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-w62v-xxxg-mg59 (aka CVE-2026-59895).\n\nHono: Server-Side XSS via JSX Escaping Bypass in cx() Utility\n\nAliases: CVE-2026-59895\nAdvisory: https://osv.dev/vulnerability/GHSA-w62v-xxxg-mg59\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe8665f2d50895dd", "name": "Vulnerable dependency hono 4.11.4: GHSA-wgpf-jwqj-8h8p", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-wgpf-jwqj-8h8p"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-wgpf-jwqj-8h8p (aka CVE-2026-54289).\n\nhono: Lambda@Edge adapter keeps only the last value of a repeated request header, dropping the rest\n\nAliases: CVE-2026-54289\nAdvisory: https://osv.dev/vulnerability/GHSA-wgpf-jwqj-8h8p\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-64ff66c79833f0e0", "name": "Vulnerable dependency hono 4.11.4: GHSA-wmmm-f939-6g9c", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-wmmm-f939-6g9c"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-wmmm-f939-6g9c.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-wmmm-f939-6g9c\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e07ed90e61b1bd2a", "name": "Vulnerable dependency hono 4.11.4: GHSA-wwfh-h76j-fc44", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-wwfh-h76j-fc44"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-wwfh-h76j-fc44 (aka CVE-2026-54286).\n\nhono: Path traversal in `serve-static` on Windows via encoded backslash (`%5C`)\n\nAliases: CVE-2026-54286\nAdvisory: https://osv.dev/vulnerability/GHSA-wwfh-h76j-fc44\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-40df8d170afd99f0", "name": "Vulnerable dependency hono 4.11.4: GHSA-xf4j-xp2r-rqqx", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-xf4j-xp2r-rqqx"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-xf4j-xp2r-rqqx.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-xf4j-xp2r-rqqx\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-83dfa414477660c7", "name": "Vulnerable dependency hono 4.11.4: GHSA-xgm2-5f3f-mvvc", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-xgm2-5f3f-mvvc"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-xgm2-5f3f-mvvc (aka CVE-2026-59897).\n\nHono: API Gateway v1 adapter can drop a distinct repeated request header value during de-duplication\n\nAliases: CVE-2026-59897\nAdvisory: https://osv.dev/vulnerability/GHSA-xgm2-5f3f-mvvc\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ab727955392010c", "name": "Vulnerable dependency hono 4.11.4: GHSA-xpcf-pg52-r92g", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-xpcf-pg52-r92g"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-xpcf-pg52-r92g.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-xpcf-pg52-r92g\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-78d9f4d50c23b8c6", "name": "Vulnerable dependency hono 4.11.4: GHSA-xrhx-7g5j-rcj5", "shortDescription": {"text": "Vulnerable dependency hono 4.11.4: GHSA-xrhx-7g5j-rcj5"}, "fullDescription": {"text": "OSV.dev reports `hono` at version `4.11.4` (resolved in `bun.lock`) is affected by GHSA-xrhx-7g5j-rcj5.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-xrhx-7g5j-rcj5\nFix: upgrade `hono` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-755167a8c51f0c81", "name": "Vulnerable dependency postcss 8.4.31: GHSA-qx2v-qp2m-jg93", "shortDescription": {"text": "Vulnerable dependency postcss 8.4.31: GHSA-qx2v-qp2m-jg93"}, "fullDescription": {"text": "OSV.dev reports `postcss` at version `8.4.31` (resolved in `bun.lock`) is affected by GHSA-qx2v-qp2m-jg93.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-qx2v-qp2m-jg93\nFix: upgrade `postcss` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-114745e1168ebf13", "name": "Vulnerable dependency yaml 1.10.2: GHSA-48c2-rrv3-qjmp", "shortDescription": {"text": "Vulnerable dependency yaml 1.10.2: GHSA-48c2-rrv3-qjmp"}, "fullDescription": {"text": "OSV.dev reports `yaml` at version `1.10.2` (resolved in `bun.lock`) is affected by GHSA-48c2-rrv3-qjmp (aka CVE-2026-33532).\n\nyaml is vulnerable to Stack Overflow via deeply nested YAML collections\n\nAliases: CVE-2026-33532\nAdvisory: https://osv.dev/vulnerability/GHSA-48c2-rrv3-qjmp\nFix: upgrade `yaml` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b4b48d9069bc8497", "name": "Vulnerable dependency tokio 1: GHSA-2grh-hm3w-w7hv", "shortDescription": {"text": "Vulnerable dependency tokio 1: GHSA-2grh-hm3w-w7hv"}, "fullDescription": {"text": "OSV.dev reports `tokio` at version `1` (declared in `fixtures/deploy/rust-axum/Cargo.toml`) is affected by GHSA-2grh-hm3w-w7hv.\nNote: `1` is the declared floor of a range \u2014 the installed version may be newer.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-2grh-hm3w-w7hv\nFix: upgrade `tokio` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.7}}, {"id": "scanner-6e91a73f38a82879", "name": "Vulnerable dependency tokio 1: GHSA-4q83-7cq4-p6wg", "shortDescription": {"text": "Vulnerable dependency tokio 1: GHSA-4q83-7cq4-p6wg"}, "fullDescription": {"text": "OSV.dev reports `tokio` at version `1` (declared in `fixtures/deploy/rust-axum/Cargo.toml`) is affected by GHSA-4q83-7cq4-p6wg.\nNote: `1` is the declared floor of a range \u2014 the installed version may be newer.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-4q83-7cq4-p6wg\nFix: upgrade `tokio` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.7}}, {"id": "scanner-646d936333cfbc53", "name": "Vulnerable dependency tokio 1: GHSA-fg7r-2g4j-5cgr", "shortDescription": {"text": "Vulnerable dependency tokio 1: GHSA-fg7r-2g4j-5cgr"}, "fullDescription": {"text": "OSV.dev reports `tokio` at version `1` (declared in `fixtures/deploy/rust-axum/Cargo.toml`) is affected by GHSA-fg7r-2g4j-5cgr.\nNote: `1` is the declared floor of a range \u2014 the installed version may be newer.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-fg7r-2g4j-5cgr\nFix: upgrade `tokio` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.7}}, {"id": "scanner-5b5315a2187d70eb", "name": "Vulnerable dependency tokio 1: GHSA-rr8g-9fpq-6wmg", "shortDescription": {"text": "Vulnerable dependency tokio 1: GHSA-rr8g-9fpq-6wmg"}, "fullDescription": {"text": "OSV.dev reports `tokio` at version `1` (declared in `fixtures/deploy/rust-axum/Cargo.toml`) is affected by GHSA-rr8g-9fpq-6wmg.\nNote: `1` is the declared floor of a range \u2014 the installed version may be newer.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/GHSA-rr8g-9fpq-6wmg\nFix: upgrade `tokio` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.7}}, {"id": "scanner-712dcf2a0390f8af", "name": "Vulnerable dependency tokio 1: RUSTSEC-2021-0072", "shortDescription": {"text": "Vulnerable dependency tokio 1: RUSTSEC-2021-0072"}, "fullDescription": {"text": "OSV.dev reports `tokio` at version `1` (declared in `fixtures/deploy/rust-axum/Cargo.toml`) is affected by RUSTSEC-2021-0072.\nNote: `1` is the declared floor of a range \u2014 the installed version may be newer.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/RUSTSEC-2021-0072\nFix: upgrade `tokio` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.7}}, {"id": "scanner-91c9e4dfef71e75d", "name": "Vulnerable dependency tokio 1: RUSTSEC-2021-0124", "shortDescription": {"text": "Vulnerable dependency tokio 1: RUSTSEC-2021-0124"}, "fullDescription": {"text": "OSV.dev reports `tokio` at version `1` (declared in `fixtures/deploy/rust-axum/Cargo.toml`) is affected by RUSTSEC-2021-0124.\nNote: `1` is the declared floor of a range \u2014 the installed version may be newer.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/RUSTSEC-2021-0124\nFix: upgrade `tokio` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.7}}, {"id": "scanner-fe694ed3edeb9f54", "name": "Vulnerable dependency tokio 1: RUSTSEC-2023-0005", "shortDescription": {"text": "Vulnerable dependency tokio 1: RUSTSEC-2023-0005"}, "fullDescription": {"text": "OSV.dev reports `tokio` at version `1` (declared in `fixtures/deploy/rust-axum/Cargo.toml`) is affected by RUSTSEC-2023-0005.\nNote: `1` is the declared floor of a range \u2014 the installed version may be newer.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/RUSTSEC-2023-0005\nFix: upgrade `tokio` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.7}}, {"id": "scanner-6c0cd45e13d67f1b", "name": "Vulnerable dependency tokio 1: RUSTSEC-2025-0023", "shortDescription": {"text": "Vulnerable dependency tokio 1: RUSTSEC-2025-0023"}, "fullDescription": {"text": "OSV.dev reports `tokio` at version `1` (declared in `fixtures/deploy/rust-axum/Cargo.toml`) is affected by RUSTSEC-2025-0023.\nNote: `1` is the declared floor of a range \u2014 the installed version may be newer.\n\nNo summary published yet.\n\nAdvisory: https://osv.dev/vulnerability/RUSTSEC-2025-0023\nFix: upgrade `tokio` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.7}}, {"id": "scanner-f963cab5c34ed93a", "name": "Dependency @clack/prompts is a major version behind", "shortDescription": {"text": "Dependency @clack/prompts is a major version behind"}, "fullDescription": {"text": "`@clack/prompts` is pinned at `0.11.0` in `apps/cli/package.json` while the latest release on the npm registry is `1.7.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@clack/prompts` to `1.7.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-76683d1608d38c88", "name": "Dependency @hono/node-server is a major version behind", "shortDescription": {"text": "Dependency @hono/node-server is a major version behind"}, "fullDescription": {"text": "`@hono/node-server` is pinned at `1.19.11` in `apps/api/package.json` while the latest release on the npm registry is `2.0.11` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@hono/node-server` to `2.0.11`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-1c1b37123b96faa7", "name": "Dependency @hono/typebox-validator is a major version behind", "shortDescription": {"text": "Dependency @hono/typebox-validator is a major version behind"}, "fullDescription": {"text": "`@hono/typebox-validator` is pinned at `0.3.0` in `apps/api/package.json` while the latest release on the npm registry is `1.1.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@hono/typebox-validator` to `1.1.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-b4d36c9ce13e2e5b", "name": "Dependency @hookform/resolvers is a major version behind", "shortDescription": {"text": "Dependency @hookform/resolvers is a major version behind"}, "fullDescription": {"text": "`@hookform/resolvers` is pinned at `4.1.2` in `apps/email/client/package.json` while the latest release on the npm registry is `5.4.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@hookform/resolvers` to `5.4.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-0fe5e3fce5134ab7", "name": "Dependency @react-email/components is a major version behind", "shortDescription": {"text": "Dependency @react-email/components is a major version behind"}, "fullDescription": {"text": "`@react-email/components` is pinned at `0.0.36` in `apps/email/client/package.json` while the latest release on the npm registry is `1.0.12` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@react-email/components` to `1.0.12`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-bac666d53676a032", "name": "Dependency @react-email/render is a major version behind", "shortDescription": {"text": "Dependency @react-email/render is a major version behind"}, "fullDescription": {"text": "`@react-email/render` is pinned at `1.1.0` in `apps/email/client/package.json` while the latest release on the npm registry is `2.1.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@react-email/render` to `2.1.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-caafcc5e8b687818", "name": "Dependency @react-router/dev is a major version behind", "shortDescription": {"text": "Dependency @react-router/dev is a major version behind"}, "fullDescription": {"text": "`@react-router/dev` is pinned at `7.6.1` in `apps/email/client/package.json` while the latest release on the npm registry is `8.3.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@react-router/dev` to `8.3.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-e23e34ebc2167d51", "name": "Dependency @tiptap/core is a major version behind", "shortDescription": {"text": "Dependency @tiptap/core is a major version behind"}, "fullDescription": {"text": "`@tiptap/core` is pinned at `2.23.0` in `apps/email/client/package.json` while the latest release on the npm registry is `3.28.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@tiptap/core` to `3.28.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-a5e4d8a899672291", "name": "Dependency @tiptap/extension-bold is a major version behind", "shortDescription": {"text": "Dependency @tiptap/extension-bold is a major version behind"}, "fullDescription": {"text": "`@tiptap/extension-bold` is pinned at `2.23.0` in `apps/email/client/package.json` while the latest release on the npm registry is `3.28.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@tiptap/extension-bold` to `3.28.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-a07e296a3590d9fd", "name": "Dependency @tiptap/extension-document is a major version behind", "shortDescription": {"text": "Dependency @tiptap/extension-document is a major version behind"}, "fullDescription": {"text": "`@tiptap/extension-document` is pinned at `2.23.0` in `apps/email/client/package.json` while the latest release on the npm registry is `3.28.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@tiptap/extension-document` to `3.28.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-b7f46f1cc5a12ef6", "name": "Dependency @tiptap/extension-emoji is a major version behind", "shortDescription": {"text": "Dependency @tiptap/extension-emoji is a major version behind"}, "fullDescription": {"text": "`@tiptap/extension-emoji` is pinned at `2.23.1` in `apps/email/client/package.json` while the latest release on the npm registry is `3.28.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@tiptap/extension-emoji` to `3.28.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-0ac90f7c8b6e2ac9", "name": "Dependency @tiptap/extension-file-handler is a major version behind", "shortDescription": {"text": "Dependency @tiptap/extension-file-handler is a major version behind"}, "fullDescription": {"text": "`@tiptap/extension-file-handler` is pinned at `2.23.0` in `apps/email/client/package.json` while the latest release on the npm registry is `3.28.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@tiptap/extension-file-handler` to `3.28.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-e47ef6981f166582", "name": "Dependency @tiptap/extension-image is a major version behind", "shortDescription": {"text": "Dependency @tiptap/extension-image is a major version behind"}, "fullDescription": {"text": "`@tiptap/extension-image` is pinned at `2.23.0` in `apps/email/client/package.json` while the latest release on the npm registry is `3.28.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@tiptap/extension-image` to `3.28.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-0515cd57ca8e13e0", "name": "Dependency @tiptap/extension-link is a major version behind", "shortDescription": {"text": "Dependency @tiptap/extension-link is a major version behind"}, "fullDescription": {"text": "`@tiptap/extension-link` is pinned at `2.23.0` in `apps/email/client/package.json` while the latest release on the npm registry is `3.28.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@tiptap/extension-link` to `3.28.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-48442365b38595d3", "name": "Dependency @tiptap/extension-paragraph is a major version behind", "shortDescription": {"text": "Dependency @tiptap/extension-paragraph is a major version behind"}, "fullDescription": {"text": "`@tiptap/extension-paragraph` is pinned at `2.23.0` in `apps/email/client/package.json` while the latest release on the npm registry is `3.28.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@tiptap/extension-paragraph` to `3.28.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-d637e1148798fc52", "name": "Dependency @tiptap/extension-placeholder is a major version behind", "shortDescription": {"text": "Dependency @tiptap/extension-placeholder is a major version behind"}, "fullDescription": {"text": "`@tiptap/extension-placeholder` is pinned at `2.23.0` in `apps/email/client/package.json` while the latest release on the npm registry is `3.28.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@tiptap/extension-placeholder` to `3.28.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-62374e0c14e9d750", "name": "Dependency @tiptap/extension-text is a major version behind", "shortDescription": {"text": "Dependency @tiptap/extension-text is a major version behind"}, "fullDescription": {"text": "`@tiptap/extension-text` is pinned at `2.23.0` in `apps/email/client/package.json` while the latest release on the npm registry is `3.28.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `@tiptap/extension-text` to `3.28.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-5403384267b55ae0", "name": "Dangling fetch: GET /api/v1/shortcuts (apps/email/client/lib/hotkeys/use-hotkey-utils.ts:12)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/shortcuts (apps/email/client/lib/hotkeys/use-hotkey-utils.ts:12)"}, "fullDescription": {"text": "`apps/email/client/lib/hotkeys/use-hotkey-utils.ts:12` calls `GET /api/v1/shortcuts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/v1/shortcuts`\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-cdf0f0acfa8bd9ca", "name": "Dangling fetch: POST /echo (apps/api/test/middleware/json-error-handler.test.ts:29)", "shortDescription": {"text": "Dangling fetch: POST /echo (apps/api/test/middleware/json-error-handler.test.ts:29)"}, "fullDescription": {"text": "`apps/api/test/middleware/json-error-handler.test.ts:29` calls `POST /echo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/echo`\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-8cced361d9a31e23", "name": "Dangling fetch: POST /echo (apps/api/test/middleware/json-error-handler.test.ts:41)", "shortDescription": {"text": "Dangling fetch: POST /echo (apps/api/test/middleware/json-error-handler.test.ts:41)"}, "fullDescription": {"text": "`apps/api/test/middleware/json-error-handler.test.ts:41` calls `POST /echo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/echo`\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-f1da74036d0bcb86", "name": "Dangling fetch: GET https://api.github.com/repos/${repo}/releases/latest (apps/api/src/lib/release-resolver.ts:179)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/repos/${repo}/releases/latest (apps/api/src/lib/release-resolver.ts:179)"}, "fullDescription": {"text": "`apps/api/src/lib/release-resolver.ts:179` calls `GET https://api.github.com/repos/${repo}/releases/latest` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/repos/<p>/releases/latest`\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-216043d57c3f2de1", "name": "Dangling fetch: GET https://api.github.com/repos/${repo}/releases/latest (apps/api/src/lib/release-dist.ts:179)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/repos/${repo}/releases/latest (apps/api/src/lib/release-dist.ts:179)"}, "fullDescription": {"text": "`apps/api/src/lib/release-dist.ts:179` calls `GET https://api.github.com/repos/${repo}/releases/latest` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/repos/<p>/releases/latest`\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-066187560e980fa4", "name": "Dangling fetch: HEAD https://${registry}/v2/${repo}/manifests/${encodeURIComponent(ref)} (apps/api/src/lib/image-registr", "shortDescription": {"text": "Dangling fetch: HEAD https://${registry}/v2/${repo}/manifests/${encodeURIComponent(ref)} (apps/api/src/lib/image-registry.ts:115)"}, "fullDescription": {"text": "`apps/api/src/lib/image-registry.ts:115` calls `HEAD https://${registry}/v2/${repo}/manifests/${encodeURIComponent(ref)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/<p>/v2/<p>/manifests/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f0a9cc04be1e4cfe", "name": "Dangling fetch: GET /api/projects/home (apps/api/src/lib/cloud/projects.ts:29)", "shortDescription": {"text": "Dangling fetch: GET /api/projects/home (apps/api/src/lib/cloud/projects.ts:29)"}, "fullDescription": {"text": "`apps/api/src/lib/cloud/projects.ts:29` calls `GET /api/projects/home` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/projects/home`\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-0e370a37e66eae1c", "name": "Dangling fetch: GET https://api.github.com/user (apps/api/src/modules/github/github.service.ts:104)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/user (apps/api/src/modules/github/github.service.ts:104)"}, "fullDescription": {"text": "`apps/api/src/modules/github/github.service.ts:104` calls `GET https://api.github.com/user` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/user`\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-b57d4e75ff7283b1", "name": "Dangling fetch: GET https://api.github.com/user (apps/api/src/modules/github/github.local-auth.ts:103)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/user (apps/api/src/modules/github/github.local-auth.ts:103)"}, "fullDescription": {"text": "`apps/api/src/modules/github/github.local-auth.ts:103` calls `GET https://api.github.com/user` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/user`\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-80b1657662c230cf", "name": "Dangling fetch: GET https://api.github.com/user (apps/api/src/modules/github/github.auth.ts:669)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/user (apps/api/src/modules/github/github.auth.ts:669)"}, "fullDescription": {"text": "`apps/api/src/modules/github/github.auth.ts:669` calls `GET https://api.github.com/user` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/user`\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-155fa61b659ad1a9", "name": "Dangling fetch: POST http://127.0.0.1:${OPENRESTY_MGMT_PORT}/rules (apps/api/src/modules/route-rules/route-rule.service.", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${OPENRESTY_MGMT_PORT}/rules (apps/api/src/modules/route-rules/route-rule.service.ts:75)"}, "fullDescription": {"text": "`apps/api/src/modules/route-rules/route-rule.service.ts:75` calls `POST http://127.0.0.1:${OPENRESTY_MGMT_PORT}/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/rules`\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-9e242fb3dddbad72", "name": "Dangling fetch: POST /oauth2/consent (apps/dashboard/src/app/mcp/authorize/page.tsx:63)", "shortDescription": {"text": "Dangling fetch: POST /oauth2/consent (apps/dashboard/src/app/mcp/authorize/page.tsx:63)"}, "fullDescription": {"text": "`apps/dashboard/src/app/mcp/authorize/page.tsx:63` calls `POST /oauth2/consent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oauth2/consent`\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-e6e58c2141f72fdb", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/system/reset-admin-password (apps/cli/src/commands/reset-admin.ts:67)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/system/reset-admin-password (apps/cli/src/commands/reset-admin.ts:67)"}, "fullDescription": {"text": "`apps/cli/src/commands/reset-admin.ts:67` calls `POST http://127.0.0.1:${port}/api/system/reset-admin-password` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/system/reset-admin-password`\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-40d7cfa7719486ab", "name": "Dangling fetch: GET http://127.0.0.1:${port}${path} (apps/cli/src/commands/wizard.ts:58)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}${path} (apps/cli/src/commands/wizard.ts:58)"}, "fullDescription": {"text": "`apps/cli/src/commands/wizard.ts:58` calls `GET http://127.0.0.1:${port}${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ec3eb9139788c77c", "name": "Dangling fetch: POST http://127.0.0.1:${port}${path} (apps/cli/src/commands/wizard.ts:71)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}${path} (apps/cli/src/commands/wizard.ts:71)"}, "fullDescription": {"text": "`apps/cli/src/commands/wizard.ts:71` calls `POST http://127.0.0.1:${port}${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d4472d3f41036b6c", "name": "Dangling fetch: GET http://127.0.0.1:${apiPort}/api/health (apps/cli/src/commands/wizard.ts:116)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${apiPort}/api/health (apps/cli/src/commands/wizard.ts:116)"}, "fullDescription": {"text": "`apps/cli/src/commands/wizard.ts:116` calls `GET http://127.0.0.1:${apiPort}/api/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/health`\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-22881d7093b35131", "name": "Dangling fetch: GET http://127.0.0.1:${dashPort}/ (apps/cli/src/commands/wizard.ts:132)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${dashPort}/ (apps/cli/src/commands/wizard.ts:132)"}, "fullDescription": {"text": "`apps/cli/src/commands/wizard.ts:132` calls `GET http://127.0.0.1:${dashPort}/` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d195f22ed89b12c", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/system/self-register/stream?id=${sessionId} (apps/cli/src/commands/wiza", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/system/self-register/stream?id=${sessionId} (apps/cli/src/commands/wizard.ts:280)"}, "fullDescription": {"text": "`apps/cli/src/commands/wizard.ts:280` calls `GET http://127.0.0.1:${port}/api/system/self-register/stream?id=${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/system/self-register/stream`\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-2bff0e10fe4442ae", "name": "Dangling fetch: GET http://127.0.0.1:${dashPort} (apps/cli/src/commands/up.ts:493)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${dashPort} (apps/cli/src/commands/up.ts:493)"}, "fullDescription": {"text": "`apps/cli/src/commands/up.ts:493` calls `GET http://127.0.0.1:${dashPort}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-164bd529620d31b5", "name": "Dangling fetch: GET https://api.github.com/repos/oblien/openship/releases/latest (apps/web/src/app/(site)/download/page.", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/repos/oblien/openship/releases/latest (apps/web/src/app/(site)/download/page.tsx:110)"}, "fullDescription": {"text": "`apps/web/src/app/(site)/download/page.tsx:110` calls `GET https://api.github.com/repos/oblien/openship/releases/latest` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/repos/oblien/openship/releases/latest`\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-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`fixtures/deploy/python-fastapi/main.py` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5d31727160297a24", "name": "Unused endpoint: GET /branding.json", "shortDescription": {"text": "Unused endpoint: GET /branding.json"}, "fullDescription": {"text": "`apps/email/server/src/main.ts` declares `GET /branding.json` 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-671ef33132addc27", "name": "Unused endpoint: USE /branding/assets/*", "shortDescription": {"text": "Unused endpoint: USE /branding/assets/*"}, "fullDescription": {"text": "`apps/email/server/src/main.ts` declares `USE /branding/assets/*` 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-9be260efccadaa46", "name": "Unused endpoint: USE /trpc/*", "shortDescription": {"text": "Unused endpoint: USE /trpc/*"}, "fullDescription": {"text": "`apps/email/server/src/main.ts` declares `USE /trpc/*` 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-89aa8e5d33cc4431", "name": "Unused endpoint: USE /api/trpc/*", "shortDescription": {"text": "Unused endpoint: USE /api/trpc/*"}, "fullDescription": {"text": "`apps/email/server/src/main.ts` declares `USE /api/trpc/*` 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-3abf952b8d28d710", "name": "Unused endpoint: USE /*", "shortDescription": {"text": "Unused endpoint: USE /*"}, "fullDescription": {"text": "`apps/email/server/src/main.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-8c948a3a3f6b8a6e", "name": "Unused endpoint: POST /sign-in", "shortDescription": {"text": "Unused endpoint: POST /sign-in"}, "fullDescription": {"text": "`apps/email/server/src/routes/auth.ts` declares `POST /sign-in` 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-64cbb9739f91f124", "name": "Unused endpoint: POST /sign-out", "shortDescription": {"text": "Unused endpoint: POST /sign-out"}, "fullDescription": {"text": "`apps/email/server/src/routes/auth.ts` declares `POST /sign-out` 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-ca81309757a10117", "name": "Unused endpoint: POST /switch", "shortDescription": {"text": "Unused endpoint: POST /switch"}, "fullDescription": {"text": "`apps/email/server/src/routes/auth.ts` declares `POST /switch` 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-1daa53f3c56e6b16", "name": "Unused endpoint: GET /session", "shortDescription": {"text": "Unused endpoint: GET /session"}, "fullDescription": {"text": "`apps/email/server/src/routes/auth.ts` declares `GET /session` 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-b15d518d538de57d", "name": "Unused endpoint: GET /sessions", "shortDescription": {"text": "Unused endpoint: GET /sessions"}, "fullDescription": {"text": "`apps/email/server/src/routes/auth.ts` declares `GET /sessions` 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-1b43918ad6ecab38", "name": "Unused endpoint: PATCH /branding", "shortDescription": {"text": "Unused endpoint: PATCH /branding"}, "fullDescription": {"text": "`apps/email/server/src/routes/branding-admin.ts` declares `PATCH /branding` 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-e34f02337c261a05", "name": "Unused endpoint: GET /branding", "shortDescription": {"text": "Unused endpoint: GET /branding"}, "fullDescription": {"text": "`apps/email/server/src/routes/branding-admin.ts` declares `GET /branding` 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-98e70a1b9adc0901", "name": "Unused endpoint: GET /idle", "shortDescription": {"text": "Unused endpoint: GET /idle"}, "fullDescription": {"text": "`apps/email/server/src/routes/idle.ts` declares `GET /idle` 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-b8073f7bf758f6d0", "name": "Unused endpoint: USE /api/*", "shortDescription": {"text": "Unused endpoint: USE /api/*"}, "fullDescription": {"text": "`apps/api/src/app.ts` declares `USE /api/*` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1e6a6d1906bfadc1", "name": "Unused endpoint: USE /api/auth/organization/*", "shortDescription": {"text": "Unused endpoint: USE /api/auth/organization/*"}, "fullDescription": {"text": "`apps/api/src/app.ts` declares `USE /api/auth/organization/*` 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-19f6d98cabcfafa4", "name": "Unused endpoint: USE /api/auth/mcp/authorize", "shortDescription": {"text": "Unused endpoint: USE /api/auth/mcp/authorize"}, "fullDescription": {"text": "`apps/api/src/app.ts` declares `USE /api/auth/mcp/authorize` 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-8e7b0cb9031a1550", "name": "Unused endpoint: GET /auth/callback/install", "shortDescription": {"text": "Unused endpoint: GET /auth/callback/install"}, "fullDescription": {"text": "`apps/api/src/app.ts` declares `GET /auth/callback/install` 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-fd26ad1c8c3758c6", "name": "Unused endpoint: GET /auth/callback/close", "shortDescription": {"text": "Unused endpoint: GET /auth/callback/close"}, "fullDescription": {"text": "`apps/api/src/app.ts` declares `GET /auth/callback/close` 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-d684f26382ef2909", "name": "Unused endpoint: USE /invite", "shortDescription": {"text": "Unused endpoint: USE /invite"}, "fullDescription": {"text": "`apps/api/src/middleware/active-organization.ts` declares `USE /invite` 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-ca5756175765b49d", "name": "Unused endpoint: GET /:id", "shortDescription": {"text": "Unused endpoint: GET /:id"}, "fullDescription": {"text": "`apps/api/src/lib/secure-router.ts` declares `GET /:id` 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-7a61c112b611f4bb", "name": "Unused endpoint: DELETE /:id", "shortDescription": {"text": "Unused endpoint: DELETE /:id"}, "fullDescription": {"text": "`apps/api/src/lib/secure-router.ts` declares `DELETE /:id` 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-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`apps/api/src/lib/route-scanner.ts` declares `POST /` 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-203ee8eaa9280b40", "name": "Unused endpoint: POST /auth/sign-in", "shortDescription": {"text": "Unused endpoint: POST /auth/sign-in"}, "fullDescription": {"text": "`apps/api/src/lib/rate-limit/policies.ts` declares `POST /auth/sign-in` 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-c1e1ee09590b0a49", "name": "Unused endpoint: GET /projects", "shortDescription": {"text": "Unused endpoint: GET /projects"}, "fullDescription": {"text": "`apps/api/src/lib/rate-limit/policies.ts` declares `GET /projects` 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-94ffa90d58f4e12f", "name": "Unused endpoint: GET /:id/info", "shortDescription": {"text": "Unused endpoint: GET /:id/info"}, "fullDescription": {"text": "`apps/api/src/lib/cloud/project-router.ts` declares `GET /:id/info` 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-67d28fa8cd6bb12f", "name": "Unused endpoint: PUT /", "shortDescription": {"text": "Unused endpoint: PUT /"}, "fullDescription": {"text": "`apps/api/src/modules/settings/settings.routes.ts` declares `PUT /` 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-6e550b27a15004d6", "name": "Unused endpoint: PATCH /build-mode", "shortDescription": {"text": "Unused endpoint: PATCH /build-mode"}, "fullDescription": {"text": "`apps/api/src/modules/settings/settings.routes.ts` declares `PATCH /build-mode` 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-30c3c82a66748278", "name": "Unused endpoint: PATCH /deploy-defaults", "shortDescription": {"text": "Unused endpoint: PATCH /deploy-defaults"}, "fullDescription": {"text": "`apps/api/src/modules/settings/settings.routes.ts` declares `PATCH /deploy-defaults` 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-eb0bdea9c2fa31c1", "name": "Unused endpoint: PATCH /clone-credentials", "shortDescription": {"text": "Unused endpoint: PATCH /clone-credentials"}, "fullDescription": {"text": "`apps/api/src/modules/settings/settings.routes.ts` declares `PATCH /clone-credentials` 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-9ee80458ebaa5ad2", "name": "Unused endpoint: PATCH /clone-strategy-preference", "shortDescription": {"text": "Unused endpoint: PATCH /clone-strategy-preference"}, "fullDescription": {"text": "`apps/api/src/modules/settings/settings.routes.ts` declares `PATCH /clone-strategy-preference` 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-7fc2c7991a552e65", "name": "Unused endpoint: PATCH /transfer", "shortDescription": {"text": "Unused endpoint: PATCH /transfer"}, "fullDescription": {"text": "`apps/api/src/modules/settings/settings.routes.ts` declares `PATCH /transfer` 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-2152f75e0ca53a31", "name": "Unused endpoint: GET /steps", "shortDescription": {"text": "Unused endpoint: GET /steps"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `GET /steps` 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-282c9c5199668445", "name": "Unused endpoint: GET /servers", "shortDescription": {"text": "Unused endpoint: GET /servers"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `GET /servers` 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-2ea320ae6e11aa21", "name": "Unused endpoint: DELETE /servers/:serverId", "shortDescription": {"text": "Unused endpoint: DELETE /servers/:serverId"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `DELETE /servers/:serverId` 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-195fb029bb695346", "name": "Unused endpoint: POST /scan", "shortDescription": {"text": "Unused endpoint: POST /scan"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `POST /scan` 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-09483d24a50ea09b", "name": "Unused endpoint: POST /adopt", "shortDescription": {"text": "Unused endpoint: POST /adopt"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `POST /adopt` 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-eb757797f6bd3444", "name": "Unused endpoint: POST /setup", "shortDescription": {"text": "Unused endpoint: POST /setup"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `POST /setup` 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-b3bb579c81fd8494", "name": "Unused endpoint: POST /setup/cancel", "shortDescription": {"text": "Unused endpoint: POST /setup/cancel"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `POST /setup/cancel` 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-36e71406f202a9f4", "name": "Unused endpoint: POST /setup/dns-ack", "shortDescription": {"text": "Unused endpoint: POST /setup/dns-ack"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `POST /setup/dns-ack` 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-6b2ea10316ea98fd", "name": "Unused endpoint: POST /setup/ptr-ack", "shortDescription": {"text": "Unused endpoint: POST /setup/ptr-ack"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `POST /setup/ptr-ack` 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-0926bc04714b08ca", "name": "Unused endpoint: POST /setup/reset", "shortDescription": {"text": "Unused endpoint: POST /setup/reset"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `POST /setup/reset` 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-87e3f292e7274eee", "name": "Unused endpoint: POST /credentials/postmaster", "shortDescription": {"text": "Unused endpoint: POST /credentials/postmaster"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `POST /credentials/postmaster` 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-a50a849a17db7b78", "name": "Unused endpoint: GET /admin/:serverId/domains", "shortDescription": {"text": "Unused endpoint: GET /admin/:serverId/domains"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `GET /admin/:serverId/domains` 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-2c57bf8cfe22dacc", "name": "Unused endpoint: POST /admin/:serverId/domains", "shortDescription": {"text": "Unused endpoint: POST /admin/:serverId/domains"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `POST /admin/:serverId/domains` 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-66301f6d9a27e0a5", "name": "Unused endpoint: GET /admin/:serverId/domains/:domain", "shortDescription": {"text": "Unused endpoint: GET /admin/:serverId/domains/:domain"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `GET /admin/:serverId/domains/:domain` 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-36de4529ed1f8ca5", "name": "Unused endpoint: PATCH /admin/:serverId/domains/:domain", "shortDescription": {"text": "Unused endpoint: PATCH /admin/:serverId/domains/:domain"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `PATCH /admin/:serverId/domains/:domain` 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-d17509b2426f6e5e", "name": "Unused endpoint: DELETE /admin/:serverId/domains/:domain", "shortDescription": {"text": "Unused endpoint: DELETE /admin/:serverId/domains/:domain"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `DELETE /admin/:serverId/domains/:domain` 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-afd5d50d6258e8e6", "name": "Unused endpoint: GET /admin/:serverId/domains/:domain/dependents", "shortDescription": {"text": "Unused endpoint: GET /admin/:serverId/domains/:domain/dependents"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `GET /admin/:serverId/domains/:domain/dependents` 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-2412a712419792cc", "name": "Unused endpoint: GET /admin/:serverId/domains/:domain/dns", "shortDescription": {"text": "Unused endpoint: GET /admin/:serverId/domains/:domain/dns"}, "fullDescription": {"text": "`apps/api/src/modules/mail/mail.routes.ts` declares `GET /admin/:serverId/domains/:domain/dns` 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/30748"}, "properties": {"repository": "oblien/openship", "repoUrl": "https://github.com/oblien/openship", "branch": "main"}, "results": [{"ruleId": "scanner-135153e9784bbef8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 fixtures/deploy/node/server.js:11"}, "properties": {"repobilityId": "a110e733ec308630", "scanner": "scanner-primary", "fingerprint": "135153e9784bbef8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-66ff4e6f0468b149", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/keyboard-layout-indicator.tsx:43"}, "properties": {"repobilityId": "69deca152b95c226", "scanner": "scanner-primary", "fingerprint": "66ff4e6f0468b149", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e06410a4899d2758", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/email/client/components/mail/note-panel.tsx:359"}, "properties": {"repobilityId": "d88794b8b6940887", "scanner": "scanner-primary", "fingerprint": "e06410a4899d2758", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5a972ff56ed4fad8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/mail/render-labels.tsx:54"}, "properties": {"repobilityId": "301ac6dc03a8e57f", "scanner": "scanner-primary", "fingerprint": "5a972ff56ed4fad8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-337b384f1ec287c4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/mail/mail-display.tsx:1674"}, "properties": {"repobilityId": "238322e0a2c6d7f8", "scanner": "scanner-primary", "fingerprint": "337b384f1ec287c4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c5e161371fc79036", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/mail/mail-display.tsx:418"}, "properties": {"repobilityId": "f900b3f73bde8f3e", "scanner": "scanner-primary", "fingerprint": "c5e161371fc79036", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3e79bd43c33ecfd8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/mail/thread-display.tsx:212"}, "properties": {"repobilityId": "c2105ec8c1181a51", "scanner": "scanner-primary", "fingerprint": "3e79bd43c33ecfd8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c6dd2923fcf81a67", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/mail/mail.tsx:449"}, "properties": {"repobilityId": "a572fdb58f416aa7", "scanner": "scanner-primary", "fingerprint": "c6dd2923fcf81a67", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1aca1523af2a7673", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/mail/mail.tsx:347"}, "properties": {"repobilityId": "15ddca16bb764904", "scanner": "scanner-primary", "fingerprint": "1aca1523af2a7673", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ce0461c8f4989b27", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/mail/mail-skeleton.tsx:144"}, "properties": {"repobilityId": "35b981044da38724", "scanner": "scanner-primary", "fingerprint": "ce0461c8f4989b27", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9a0982c2fa02310f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/mail/mail-list.tsx:784"}, "properties": {"repobilityId": "9ac1f0e6c22ac08b", "scanner": "scanner-primary", "fingerprint": "9a0982c2fa02310f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fbaa761b98b42f31", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/email/client/components/ui/bimi-avatar.tsx:69"}, "properties": {"repobilityId": "64cd3072e80373c4", "scanner": "scanner-primary", "fingerprint": "fbaa761b98b42f31", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3f1091425cdb8bcb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/ui/recipient-autosuggest.tsx:297"}, "properties": {"repobilityId": "6c73014087075449", "scanner": "scanner-primary", "fingerprint": "3f1091425cdb8bcb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0db8f79e6f639b34", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/ui/nav-main.tsx:264"}, "properties": {"repobilityId": "e2a55362f5065b7f", "scanner": "scanner-primary", "fingerprint": "0db8f79e6f639b34", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1a8678df906e29b1", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/email/client/components/ui/chart.tsx:73"}, "properties": {"repobilityId": "c7166cf3b6d563ab", "scanner": "scanner-primary", "fingerprint": "1a8678df906e29b1", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b2df52f7391f056d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/ui/nav-user.tsx:451"}, "properties": {"repobilityId": "2f98d14579023f89", "scanner": "scanner-primary", "fingerprint": "b2df52f7391f056d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-22320effc47f6ed4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/create/email-composer.tsx:896"}, "properties": {"repobilityId": "a2b8288f2c7fef11", "scanner": "scanner-primary", "fingerprint": "22320effc47f6ed4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9fc8788e099d2dc9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/create/email-composer.tsx:540"}, "properties": {"repobilityId": "14fd7c9088075489", "scanner": "scanner-primary", "fingerprint": "9fc8788e099d2dc9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-46b9df86ddc2a9fe", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/email/client/components/create/extensions.ts:23"}, "properties": {"repobilityId": "0b4d151bee2ba2b7", "scanner": "scanner-primary", "fingerprint": "46b9df86ddc2a9fe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-6d011cb84b793465", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/create/template-button.tsx:236"}, "properties": {"repobilityId": "812ea2981fdc6f68", "scanner": "scanner-primary", "fingerprint": "6d011cb84b793465", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2d98c8689c80713b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/create/editor.colors.tsx:104"}, "properties": {"repobilityId": "cfd5b5c14a3a5821", "scanner": "scanner-primary", "fingerprint": "2d98c8689c80713b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-341fb1d2f03d2f49", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/components/magicui/file-tree.tsx:380"}, "properties": {"repobilityId": "e9c9de4dd310ce10", "scanner": "scanner-primary", "fingerprint": "341fb1d2f03d2f49", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bd747b3478ea6f34", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/components/context/command-palette-context.tsx:988"}, "properties": {"repobilityId": "6978edcb9e1ff8d5", "scanner": "scanner-primary", "fingerprint": "bd747b3478ea6f34", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d9adfaee1dfa5a93", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/app/mailto-handler.ts:88"}, "properties": {"repobilityId": "62f3d58c5e0712b7", "scanner": "scanner-primary", "fingerprint": "d9adfaee1dfa5a93", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9687ecc4e5e513eb", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/email/client/app/(routes)/settings/security/page.tsx:38"}, "properties": {"repobilityId": "0f83f0d08feb2524", "scanner": "scanner-primary", "fingerprint": "9687ecc4e5e513eb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-523a9328d7d69e0a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/app/(routes)/settings/security/page.tsx:40"}, "properties": {"repobilityId": "c97aecb72914c471", "scanner": "scanner-primary", "fingerprint": "523a9328d7d69e0a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-69dfcfb8ea8905a7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/email/client/app/(routes)/settings/general/page.tsx:68"}, "properties": {"repobilityId": "07f6f3fe29166d2f", "scanner": "scanner-primary", "fingerprint": "69dfcfb8ea8905a7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d6224a1e8ac73e5e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/email/client/app/(routes)/settings/shortcuts/page.tsx:12"}, "properties": {"repobilityId": "5f13e7588d073d41", "scanner": "scanner-primary", "fingerprint": "d6224a1e8ac73e5e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e16ffd1bf5906906", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/email/client/lib/email-utils.client.tsx:196"}, "properties": {"repobilityId": "f7437af0575d8493", "scanner": "scanner-primary", "fingerprint": "e16ffd1bf5906906", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5b92be767240d7fe", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/email/client/lib/sanitize-tip-tap-html.tsx:17"}, "properties": {"repobilityId": "d6e7c0f9cefb0b80", "scanner": "scanner-primary", "fingerprint": "5b92be767240d7fe", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a7d895ac50cc0f83", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/email/client/lib/hotkeys/use-hotkey-utils.ts:1"}, "properties": {"repobilityId": "82f235cf2283f5b3", "scanner": "scanner-primary", "fingerprint": "a7d895ac50cc0f83", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-afa87ab74a6c54a3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/lib/hotkeys/use-hotkey-utils.ts:306"}, "properties": {"repobilityId": "c20ae5aa6397a7d1", "scanner": "scanner-primary", "fingerprint": "afa87ab74a6c54a3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-32c9136678343327", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/hooks/use-optimistic-actions.ts:124"}, "properties": {"repobilityId": "3fb970d83ec7b7d1", "scanner": "scanner-primary", "fingerprint": "32c9136678343327", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8e37905f4b16c88a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/client/hooks/use-compose-editor.ts:177"}, "properties": {"repobilityId": "227931059fed6f17", "scanner": "scanner-primary", "fingerprint": "8e37905f4b16c88a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2e816a6dc9bbcab2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/scripts/build-release.ts:55"}, "properties": {"repobilityId": "1538345da2a0cebb", "scanner": "scanner-primary", "fingerprint": "2e816a6dc9bbcab2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0b5db15ffa2454ca", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/scripts/resolve-catalog-refs.ts:97"}, "properties": {"repobilityId": "c3b06946907748d7", "scanner": "scanner-primary", "fingerprint": "0b5db15ffa2454ca", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4b848a28015ff7c3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/scripts/slim-engine.ts:260"}, "properties": {"repobilityId": "254507a2e062659f", "scanner": "scanner-primary", "fingerprint": "4b848a28015ff7c3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-51000df23e3d4773", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/server/scripts/fetch-thread-debug.ts:26"}, "properties": {"repobilityId": "2657bd1a9215bf1a", "scanner": "scanner-primary", "fingerprint": "51000df23e3d4773", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fafc147eb9fb5153", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/server/src/main.ts:164"}, "properties": {"repobilityId": "4d33ad2943a3cde2", "scanner": "scanner-primary", "fingerprint": "fafc147eb9fb5153", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d6be963a34b56511", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/server/src/lib/branding.ts:65"}, "properties": {"repobilityId": "c057b9a6b4247e96", "scanner": "scanner-primary", "fingerprint": "d6be963a34b56511", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2168399b8492a8f8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/server/src/lib/imap.ts:75"}, "properties": {"repobilityId": "e627819d35845bc7", "scanner": "scanner-primary", "fingerprint": "2168399b8492a8f8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-53c4c8205aa86253", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/email/server/src/lib/imap-driver.ts:472"}, "properties": {"repobilityId": "f77df1301ea4cd01", "scanner": "scanner-primary", "fingerprint": "53c4c8205aa86253", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cab0ae6b1a92c4f1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/api/test/modules/github/github.webhook.test.ts:77"}, "properties": {"repobilityId": "e2211c98248003fd", "scanner": "scanner-primary", "fingerprint": "cab0ae6b1a92c4f1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cbdf13e7805682cb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/scripts/build-release.ts:81"}, "properties": {"repobilityId": "ef6a3b58941eba0e", "scanner": "scanner-primary", "fingerprint": "cbdf13e7805682cb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-72a088ad86c9bee9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/index.ts:27"}, "properties": {"repobilityId": "a178156af585d748", "scanner": "scanner-primary", "fingerprint": "72a088ad86c9bee9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-855996ccf54be138", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/app.ts:255"}, "properties": {"repobilityId": "eb9fab69dc1cbf3d", "scanner": "scanner-primary", "fingerprint": "855996ccf54be138", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-34650a6711939501", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/config/env.ts:329"}, "properties": {"repobilityId": "e1c04ac3f6f415cf", "scanner": "scanner-primary", "fingerprint": "34650a6711939501", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-16f3cb001a5d1a31", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/api/src/middleware/better-auth-shield.ts:70"}, "properties": {"repobilityId": "d3ff83575af6863b", "scanner": "scanner-primary", "fingerprint": "16f3cb001a5d1a31", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-3a7fa4f2da300c5d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/api/src/middleware/active-organization.ts:52"}, "properties": {"repobilityId": "771cbe82017cb588", "scanner": "scanner-primary", "fingerprint": "3a7fa4f2da300c5d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-589cc8d0bcab88bd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/cloud-auth-proxy.ts:348"}, "properties": {"repobilityId": "3d516050a515fcc2", "scanner": "scanner-primary", "fingerprint": "589cc8d0bcab88bd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b6c292af79a7a98f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/ssh-tunnel.ts:147"}, "properties": {"repobilityId": "2483fe0cceda7a2c", "scanner": "scanner-primary", "fingerprint": "b6c292af79a7a98f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-67d98e00f73ba1ec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/ssh-tunnel-manager.ts:142"}, "properties": {"repobilityId": "c28b7814dd257faf", "scanner": "scanner-primary", "fingerprint": "67d98e00f73ba1ec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a33fbc0d83ef3e7a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/system-debug.ts:5"}, "properties": {"repobilityId": "04c2589044827fde", "scanner": "scanner-primary", "fingerprint": "a33fbc0d83ef3e7a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3cf5211d946ed730", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/route-scanner.ts:188"}, "properties": {"repobilityId": "d81a770c51f0d9b1", "scanner": "scanner-primary", "fingerprint": "3cf5211d946ed730", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-92c30fb6368b7a5c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/openship-cloud.ts:104"}, "properties": {"repobilityId": "4f1f28632a822605", "scanner": "scanner-primary", "fingerprint": "92c30fb6368b7a5c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e65741bec277cb60", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/startup/self-deploy.ts:284"}, "properties": {"repobilityId": "1c2fe2fc28759295", "scanner": "scanner-primary", "fingerprint": "e65741bec277cb60", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2b5dbc74239abf45", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/startup/self-edge.ts:63"}, "properties": {"repobilityId": "218dfddd5aa0ca1f", "scanner": "scanner-primary", "fingerprint": "2b5dbc74239abf45", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-21dc66606e43e6a9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/cloud/transport.ts:61"}, "properties": {"repobilityId": "8fbbca5101627b8b", "scanner": "scanner-primary", "fingerprint": "21dc66606e43e6a9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a9aca0e14475311d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/lib/git-forwarding/relay.ts:66"}, "properties": {"repobilityId": "3daa14ec3bddde01", "scanner": "scanner-primary", "fingerprint": "a9aca0e14475311d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f116759bdca495af", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/github.service.ts:1080"}, "properties": {"repobilityId": "b28dbbe7ebeb77a6", "scanner": "scanner-primary", "fingerprint": "f116759bdca495af", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bc67217bcbfd724e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/webhook-event-prune-schedule.ts:26"}, "properties": {"repobilityId": "a412f2dc6e30e0e5", "scanner": "scanner-primary", "fingerprint": "bc67217bcbfd724e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b5c4de7b1fc7c6b0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/webhook-installation.ts:32"}, "properties": {"repobilityId": "443134bccb6488ed", "scanner": "scanner-primary", "fingerprint": "b5c4de7b1fc7c6b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2a0edc6cc08df1da", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/webhook-push.ts:172"}, "properties": {"repobilityId": "df682bd1e2a78698", "scanner": "scanner-primary", "fingerprint": "2a0edc6cc08df1da", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-56f92c8f4d4f809c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/github/github.auth.ts:620"}, "properties": {"repobilityId": "15e3a17fc25a5621", "scanner": "scanner-primary", "fingerprint": "56f92c8f4d4f809c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f8977d3364dcae7a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/api/src/modules/projects/transfer.service.ts:339"}, "properties": {"repobilityId": "c2caa7657da4d1b2", "scanner": "scanner-primary", "fingerprint": "f8977d3364dcae7a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-9752c01cc51b8720", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/service-terminal/service-terminal.routes.ts:57"}, "properties": {"repobilityId": "a8017196b4c06f43", "scanner": "scanner-primary", "fingerprint": "9752c01cc51b8720", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ed7a717caf56e99c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/migration/migration.orchestrator.ts:229"}, "properties": {"repobilityId": "f8c26413d8390888", "scanner": "scanner-primary", "fingerprint": "ed7a717caf56e99c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-28dd6e7d36fa5689", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/cloud/cloud-github.service.ts:255"}, "properties": {"repobilityId": "17ca116767d4a737", "scanner": "scanner-primary", "fingerprint": "28dd6e7d36fa5689", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1f22dee99c546bf1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/cloud/cloud-saas.controller.ts:876"}, "properties": {"repobilityId": "48665ec9c104ca9e", "scanner": "scanner-primary", "fingerprint": "1f22dee99c546bf1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-726220dd855289c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/audit/audit-prune-schedule.ts:22"}, "properties": {"repobilityId": "1008ff9f8fd59a15", "scanner": "scanner-primary", "fingerprint": "726220dd855289c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4778eb165f692df0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/billing/billing.webhooks.ts:436"}, "properties": {"repobilityId": "ca7e6a4115a219f3", "scanner": "scanner-primary", "fingerprint": "4778eb165f692df0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ff5255cdf6c3d315", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/billing/billing-anniversary.cron.ts:195"}, "properties": {"repobilityId": "465879d2cb594fc7", "scanner": "scanner-primary", "fingerprint": "ff5255cdf6c3d315", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2fc1eefe7d06d36a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/deployments/build.service.ts:441"}, "properties": {"repobilityId": "bd5b913d3efac671", "scanner": "scanner-primary", "fingerprint": "2fc1eefe7d06d36a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-64fd5fcf1df15bfe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/terminal/terminal.routes.ts:54"}, "properties": {"repobilityId": "bda32cd18a77f2e0", "scanner": "scanner-primary", "fingerprint": "64fd5fcf1df15bfe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-051dc0eedd3b8900", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/permissions/pending-grant-prune-schedule.ts:27"}, "properties": {"repobilityId": "f2e85a648d89ef3d", "scanner": "scanner-primary", "fingerprint": "051dc0eedd3b8900", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8503d899860f5595", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/modules/services/service.service.ts:725"}, "properties": {"repobilityId": "3764f2e79138c1e8", "scanner": "scanner-primary", "fingerprint": "8503d899860f5595", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4aaf6b47792ed6af", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/utils/upload.js:12"}, "properties": {"repobilityId": "dd8b291868078bab", "scanner": "scanner-primary", "fingerprint": "4aaf6b47792ed6af", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5ff00bf9dd7ff45a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/sidebar.tsx:282"}, "properties": {"repobilityId": "484c6b10969f6194", "scanner": "scanner-primary", "fingerprint": "5ff00bf9dd7ff45a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9206ce7c36fadb18", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/account-switcher.tsx:154"}, "properties": {"repobilityId": "7c27da4f1afeffc3", "scanner": "scanner-primary", "fingerprint": "9206ce7c36fadb18", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-22b80287c905e621", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/dashboard/src/components/theme-provider.tsx:126"}, "properties": {"repobilityId": "1d27a2e3e77e77df", "scanner": "scanner-primary", "fingerprint": "22b80287c905e621", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c17121bddaea7a1b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/resource-not-found.tsx:115"}, "properties": {"repobilityId": "dd7bc0d389eb9c05", "scanner": "scanner-primary", "fingerprint": "c17121bddaea7a1b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-74f4cb8f95b9a856", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/routing/RoutingSettingsCard.tsx:504"}, "properties": {"repobilityId": "6a9bceb365e1aa38", "scanner": "scanner-primary", "fingerprint": "74f4cb8f95b9a856", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-11a071d8f22fd363", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/routing/PublicEndpointsCard.tsx:215"}, "properties": {"repobilityId": "4170f71d30a6bc5b", "scanner": "scanner-primary", "fingerprint": "11a071d8f22fd363", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3b3227f038424c78", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/routing/DomainSwitcher.tsx:51"}, "properties": {"repobilityId": "2debbcb1658d23f0", "scanner": "scanner-primary", "fingerprint": "3b3227f038424c78", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fbc36f0dfdab3b7f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/shared/ServerSelector.tsx:161"}, "properties": {"repobilityId": "7f9e608888ae7ce9", "scanner": "scanner-primary", "fingerprint": "fbc36f0dfdab3b7f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3f2825e74a834948", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/ui/DropdownMenu.tsx:134"}, "properties": {"repobilityId": "231e3868de633f39", "scanner": "scanner-primary", "fingerprint": "3f2825e74a834948", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-274da0afb733b8e1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/components/ui/FileIcon.jsx:11"}, "properties": {"repobilityId": "76881884e31263f3", "scanner": "scanner-primary", "fingerprint": "274da0afb733b8e1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-27289dc8c5f9ef47", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/ui/CustomSelect.tsx:189"}, "properties": {"repobilityId": "22ea7f1805abe6f2", "scanner": "scanner-primary", "fingerprint": "27289dc8c5f9ef47", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b45e781bc9bce974", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/updates/UpdateCenter.tsx:86"}, "properties": {"repobilityId": "6be7442caa2a94a9", "scanner": "scanner-primary", "fingerprint": "b45e781bc9bce974", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3db38d749711e56d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/migration/ServerMigrationWizard.tsx:536"}, "properties": {"repobilityId": "5c9202c2e9a9bddc", "scanner": "scanner-primary", "fingerprint": "3db38d749711e56d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-97488dad1ab95bf5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/backup/PolicyEditor.tsx:350"}, "properties": {"repobilityId": "6c8e67926464198f", "scanner": "scanner-primary", "fingerprint": "97488dad1ab95bf5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-03386b153cfb7064", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/permissions/ResourcePicker.tsx:405"}, "properties": {"repobilityId": "949348057316e58e", "scanner": "scanner-primary", "fingerprint": "03386b153cfb7064", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-505ba8c2a1cc1d25", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/components/import-project/BuildTerminal.tsx:46"}, "properties": {"repobilityId": "d0dce736652e651c", "scanner": "scanner-primary", "fingerprint": "505ba8c2a1cc1d25", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8ed610ca9636b4e5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/MonorepoApps.tsx:188"}, "properties": {"repobilityId": "1dc4987b4903fec5", "scanner": "scanner-primary", "fingerprint": "8ed610ca9636b4e5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-94840a9e1f241d1c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/ComposeServices.tsx:400"}, "properties": {"repobilityId": "a90acfebde941ed0", "scanner": "scanner-primary", "fingerprint": "94840a9e1f241d1c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c7718a7165efe706", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/PromptDetails.tsx:72"}, "properties": {"repobilityId": "c5b70cd18e61a16b", "scanner": "scanner-primary", "fingerprint": "c7718a7165efe706", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8a74204278f1f230", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/DeploymentProcessing.tsx:95"}, "properties": {"repobilityId": "f3da9b427df5bd33", "scanner": "scanner-primary", "fingerprint": "8a74204278f1f230", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-68288068fee76cc1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/compose/ComposeDeploymentProcessing.tsx:736"}, "properties": {"repobilityId": "39d72d50c4748442", "scanner": "scanner-primary", "fingerprint": "68288068fee76cc1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c1a0d20e095a3022", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/import-project/compose/ServiceRow.tsx:56"}, "properties": {"repobilityId": "8032f12b642a7797", "scanner": "scanner-primary", "fingerprint": "c1a0d20e095a3022", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5eadd4e666a39255", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/jobs/JobForm.tsx:356"}, "properties": {"repobilityId": "d2029938eb8f00f5", "scanner": "scanner-primary", "fingerprint": "5eadd4e666a39255", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-daaed7cbe1bd5f73", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/components/overview/UpdatesBlock.tsx:88"}, "properties": {"repobilityId": "78ef7909d97e70e0", "scanner": "scanner-primary", "fingerprint": "daaed7cbe1bd5f73", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-186b1291e21ef776", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/components/overview/ActivityChart.tsx:57"}, "properties": {"repobilityId": "7b69665c8d05b7f4", "scanner": "scanner-primary", "fingerprint": "186b1291e21ef776", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a46e948a20034367", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/dashboard/src/app/layout.tsx:96"}, "properties": {"repobilityId": "7699360869b13d79", "scanner": "scanner-primary", "fingerprint": "a46e948a20034367", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e6f8e41f5dcdcd7c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/DashboardHomeClient.tsx:354"}, "properties": {"repobilityId": "5d855f8811bfaaab", "scanner": "scanner-primary", "fingerprint": "e6f8e41f5dcdcd7c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2ae418056c360a31", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/McpConnection.tsx:37"}, "properties": {"repobilityId": "2919be4f31810547", "scanner": "scanner-primary", "fingerprint": "2ae418056c360a31", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e816699d879c70eb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/InstanceInfo.tsx:66"}, "properties": {"repobilityId": "be8dd4db16832252", "scanner": "scanner-primary", "fingerprint": "e816699d879c70eb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-91ac023417901ddd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/NotificationsTab.tsx:184"}, "properties": {"repobilityId": "53a3d258fc38bdf9", "scanner": "scanner-primary", "fingerprint": "91ac023417901ddd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-658ca2a42aa341ac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/AuditTab.tsx:425"}, "properties": {"repobilityId": "7ef3a28d9070383a", "scanner": "scanner-primary", "fingerprint": "658ca2a42aa341ac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ea0b87acbe5a7ae2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/CloudConnection.tsx:73"}, "properties": {"repobilityId": "32798229653c853f", "scanner": "scanner-primary", "fingerprint": "ea0b87acbe5a7ae2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-125799207d979464", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/PersonalAccessTokens.tsx:176"}, "properties": {"repobilityId": "45b7ebfa1866b304", "scanner": "scanner-primary", "fingerprint": "125799207d979464", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a74cc5a79c4c7fe6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/TeamTab.tsx:476"}, "properties": {"repobilityId": "6bff7ad8a9c86cbb", "scanner": "scanner-primary", "fingerprint": "a74cc5a79c4c7fe6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-145e06fbf2adff3e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/GitHubConnection.tsx:217"}, "properties": {"repobilityId": "61d28d445e46038d", "scanner": "scanner-primary", "fingerprint": "145e06fbf2adff3e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-60db43b524823846", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/DeployDefaults.tsx:167"}, "properties": {"repobilityId": "f7495e23875f619e", "scanner": "scanner-primary", "fingerprint": "60db43b524823846", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2b17474f89176db5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/WorkspaceManageModal.tsx:236"}, "properties": {"repobilityId": "fb382193fa175778", "scanner": "scanner-primary", "fingerprint": "2b17474f89176db5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d7d3e1505385998a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/settings/_components/SettingsSidebar.tsx:90"}, "properties": {"repobilityId": "0feea8787f70eaa2", "scanner": "scanner-primary", "fingerprint": "d7d3e1505385998a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d9001d2c17c18521", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/library/components/LibrarySidebar.tsx:284"}, "properties": {"repobilityId": "f2cf708513a6f20a", "scanner": "scanner-primary", "fingerprint": "d9001d2c17c18521", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d6270755a2e88a16", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/library/components/LocalProjects.tsx:153"}, "properties": {"repobilityId": "4b8d6e503bf7f076", "scanner": "scanner-primary", "fingerprint": "d6270755a2e88a16", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5c7fb1b2f1667358", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/library/components/RepositoryList.tsx:300"}, "properties": {"repobilityId": "9eb88ac04ef3b65e", "scanner": "scanner-primary", "fingerprint": "5c7fb1b2f1667358", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6bea3490697355c9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/library/components/FolderUpload.tsx:196"}, "properties": {"repobilityId": "9fce84de75db6aa1", "scanner": "scanner-primary", "fingerprint": "6bea3490697355c9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-43b0ddb5a366bb4e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/components/ProjectCard.tsx:102"}, "properties": {"repobilityId": "c3969b31d60ed7bc", "scanner": "scanner-primary", "fingerprint": "43b0ddb5a366bb4e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-69146810ee34f829", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/components/ProjectFilters.tsx:142"}, "properties": {"repobilityId": "f899bba044cd8437", "scanner": "scanner-primary", "fingerprint": "69146810ee34f829", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a2f69027ddf0bb13", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/ServicesTab.tsx:541"}, "properties": {"repobilityId": "631134d087c64ed1", "scanner": "scanner-primary", "fingerprint": "a2f69027ddf0bb13", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f0c914a28a755a79", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/GitSettings.tsx:372"}, "properties": {"repobilityId": "ee21cd5e90736c92", "scanner": "scanner-primary", "fingerprint": "f0c914a28a755a79", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-96e3a488e1362170", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/ProjectSidebar.tsx:97"}, "properties": {"repobilityId": "c69e2b7172ca51c0", "scanner": "scanner-primary", "fingerprint": "96e3a488e1362170", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b2e1f2a917e920cf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainSettings.tsx:1789"}, "properties": {"repobilityId": "ddcc313cf643d58d", "scanner": "scanner-primary", "fingerprint": "b2e1f2a917e920cf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c2239219a8e319e8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/GitInfo.tsx:102"}, "properties": {"repobilityId": "75fec525d7893814", "scanner": "scanner-primary", "fingerprint": "c2239219a8e319e8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9bebd8ee642b6463", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/AdvancedSettings.tsx:284"}, "properties": {"repobilityId": "14a48cf9d9381cdf", "scanner": "scanner-primary", "fingerprint": "9bebd8ee642b6463", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-de7a1d026c2cf8ee", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/OverviewTab.tsx:171"}, "properties": {"repobilityId": "a45e1747b2c36585", "scanner": "scanner-primary", "fingerprint": "de7a1d026c2cf8ee", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c648aa5836aa6e7e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/RouteRules.tsx:240"}, "properties": {"repobilityId": "eaa3c03c455daae7", "scanner": "scanner-primary", "fingerprint": "c648aa5836aa6e7e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fd9b0c7a5707b9cd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/DeletionModal.tsx:109"}, "properties": {"repobilityId": "63c25a139fbf5c64", "scanner": "scanner-primary", "fingerprint": "fd9b0c7a5707b9cd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-863180014ca3f50c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/logs/TerminalLogs.tsx:433"}, "properties": {"repobilityId": "2ddc56f7492aaccb", "scanner": "scanner-primary", "fingerprint": "863180014ca3f50c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dc267f5407db5b42", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/logs/ServerLogs.tsx:350"}, "properties": {"repobilityId": "87294958faa9f367", "scanner": "scanner-primary", "fingerprint": "dc267f5407db5b42", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-64e06292b0da4e9a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/services/ServiceDetailPanel.tsx:465"}, "properties": {"repobilityId": "cd29554fd03748ae", "scanner": "scanner-primary", "fingerprint": "64e06292b0da4e9a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4107fda32e172af7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/services/AddServiceModal.tsx:483"}, "properties": {"repobilityId": "7cb7f7cf27e57487", "scanner": "scanner-primary", "fingerprint": "4107fda32e172af7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6fc93e1eb0b8e8a5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/TopPaths.tsx:43"}, "properties": {"repobilityId": "8d3b8772f0b68919", "scanner": "scanner-primary", "fingerprint": "6fc93e1eb0b8e8a5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a1071a98bf71ad22", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/ProductionUrl.tsx:20"}, "properties": {"repobilityId": "eec745cd9640d6e5", "scanner": "scanner-primary", "fingerprint": "a1071a98bf71ad22", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0326068fbb52213b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/TrafficChart.tsx:46"}, "properties": {"repobilityId": "b71fe7aafac08c71", "scanner": "scanner-primary", "fingerprint": "0326068fbb52213b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d897bb22272eb89d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/[[...slug]]/page.tsx:295"}, "properties": {"repobilityId": "92db0ea2dc81aee2", "scanner": "scanner-primary", "fingerprint": "d897bb22272eb89d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-31328f3ebac10a25", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/apps/page.tsx:185"}, "properties": {"repobilityId": "2d532a6118be5cd8", "scanner": "scanner-primary", "fingerprint": "31328f3ebac10a25", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-24cc8674a8728d87", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/mail-server-list.tsx:65"}, "properties": {"repobilityId": "e77f8e00c6ccf646", "scanner": "scanner-primary", "fingerprint": "24cc8674a8728d87", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7adc48a06ef7b5dd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/mail-sidebar.tsx:223"}, "properties": {"repobilityId": "85b27ae3d0fe18df", "scanner": "scanner-primary", "fingerprint": "7adc48a06ef7b5dd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7784ab758babcf4c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/health-tab.tsx:347"}, "properties": {"repobilityId": "91994a0276cfb151", "scanner": "scanner-primary", "fingerprint": "7784ab758babcf4c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b810a957b510fa4c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/domains-tab.tsx:246"}, "properties": {"repobilityId": "0affa46617186373", "scanner": "scanner-primary", "fingerprint": "b810a957b510fa4c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ad438d8c8422f52c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/overview-tab.tsx:275"}, "properties": {"repobilityId": "7d223ac28a3eb8b5", "scanner": "scanner-primary", "fingerprint": "ad438d8c8422f52c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5bc7c4b1744ef006", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/mailboxes-tab.tsx:189"}, "properties": {"repobilityId": "b0fcaffb531d4bed", "scanner": "scanner-primary", "fingerprint": "5bc7c4b1744ef006", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-50792cf540bcfdd6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/advanced-tab.tsx:328"}, "properties": {"repobilityId": "2cedac4de9a47c79", "scanner": "scanner-primary", "fingerprint": "50792cf540bcfdd6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-837115e68b417eb9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/emails/_components/admin/_shared/section-card.tsx:57"}, "properties": {"repobilityId": "b50e648dfdc6c493", "scanner": "scanner-primary", "fingerprint": "837115e68b417eb9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2af0a379e38d8c50", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/billing/_components/BillingHeader.tsx:59"}, "properties": {"repobilityId": "5c9895d5c2bdbbb5", "scanner": "scanner-primary", "fingerprint": "2af0a379e38d8c50", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b7b04ac949e2d58a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/mail/page.tsx:302"}, "properties": {"repobilityId": "9ded0c3381d0405c", "scanner": "scanner-primary", "fingerprint": "b7b04ac949e2d58a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e9954a903a8e6771", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/DnsConfiguration.tsx:84"}, "properties": {"repobilityId": "246ff340803fd36a", "scanner": "scanner-primary", "fingerprint": "e9954a903a8e6771", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b692a58c965165e7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/DeployTargetStep.tsx:105"}, "properties": {"repobilityId": "73c8af497d70bc6f", "scanner": "scanner-primary", "fingerprint": "b692a58c965165e7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-04a9b71eea734eb1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/BuildSummary.tsx:87"}, "properties": {"repobilityId": "806e696708ec18ad", "scanner": "scanner-primary", "fingerprint": "04a9b71eea734eb1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b3221ff32f0c3d14", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/SkeletonLoader.tsx:96"}, "properties": {"repobilityId": "e71793e3733fe3ec", "scanner": "scanner-primary", "fingerprint": "b3221ff32f0c3d14", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4f62e91d7811bc1f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/Sidebar.tsx:135"}, "properties": {"repobilityId": "e8a494eac596e3e9", "scanner": "scanner-primary", "fingerprint": "4f62e91d7811bc1f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b96830fba3bb22d1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/AddServerModal.tsx:152"}, "properties": {"repobilityId": "6660881ec75b5853", "scanner": "scanner-primary", "fingerprint": "b96830fba3bb22d1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-558bf95b221a98c7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/deployments/components/ProjectFilter.tsx:46"}, "properties": {"repobilityId": "a7c8810c58b33782", "scanner": "scanner-primary", "fingerprint": "558bf95b221a98c7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d7746518563a93f5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/deployments/components/CommitDetailsModal.tsx:130"}, "properties": {"repobilityId": "e3616efb1cb44395", "scanner": "scanner-primary", "fingerprint": "d7746518563a93f5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9a7617b31ebe3464", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/deployments/components/DeploymentCard.tsx:147"}, "properties": {"repobilityId": "44db2d019b6205e3", "scanner": "scanner-primary", "fingerprint": "9a7617b31ebe3464", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6462165fc597d4b8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/backups/page.tsx:204"}, "properties": {"repobilityId": "ef537bba40ae38c0", "scanner": "scanner-primary", "fingerprint": "6462165fc597d4b8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-89ac991cf2a22ac2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/backups/[id]/page.tsx:136"}, "properties": {"repobilityId": "63e4ebc8ce7389de", "scanner": "scanner-primary", "fingerprint": "89ac991cf2a22ac2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-daef61f24b96cbe7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/backups/_components/CreateDestinationModal.tsx:255"}, "properties": {"repobilityId": "7006234335483b89", "scanner": "scanner-primary", "fingerprint": "daef61f24b96cbe7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1f597e6ca0374cda", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/page.tsx:251"}, "properties": {"repobilityId": "a9cc95d54b105407", "scanner": "scanner-primary", "fingerprint": "1f597e6ca0374cda", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c18246e585a94890", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/page.tsx:596"}, "properties": {"repobilityId": "d34ae1a16aede1bf", "scanner": "scanner-primary", "fingerprint": "c18246e585a94890", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-837af72fd2d44bd7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/components-tab.tsx:455"}, "properties": {"repobilityId": "d44e4c0bfdec21be", "scanner": "scanner-primary", "fingerprint": "837af72fd2d44bd7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b7f3e84e9a8b82d2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/overview-tab.tsx:223"}, "properties": {"repobilityId": "af9e9492e0d87234", "scanner": "scanner-primary", "fingerprint": "b7f3e84e9a8b82d2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a923be90e1c0995b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/port-forwarding-card.tsx:220"}, "properties": {"repobilityId": "1692e435f83e3950", "scanner": "scanner-primary", "fingerprint": "a923be90e1c0995b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a3390e04f1dc7abb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/terminal-tab.tsx:26"}, "properties": {"repobilityId": "ccc400396ab91169", "scanner": "scanner-primary", "fingerprint": "a3390e04f1dc7abb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-628b41196779b4ce", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/jobs/page.tsx:475"}, "properties": {"repobilityId": "ce2245bb266a00ae", "scanner": "scanner-primary", "fingerprint": "628b41196779b4ce", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0ecc68bd284d2c2a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/jobs/[key]/page.tsx:119"}, "properties": {"repobilityId": "6ac75296bb15056b", "scanner": "scanner-primary", "fingerprint": "0ecc68bd284d2c2a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-53781d916ed1ab3c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(dashboard)/jobs/[key]/edit/page.tsx:50"}, "properties": {"repobilityId": "eb5f735edf5d211c", "scanner": "scanner-primary", "fingerprint": "53781d916ed1ab3c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f568f45736246024", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/src/app/(auth)/select-organization/page.tsx:281"}, "properties": {"repobilityId": "61c6d86c2baa7af8", "scanner": "scanner-primary", "fingerprint": "f568f45736246024", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-831e6848749a541c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/lib/sseClient.ts:105"}, "properties": {"repobilityId": "c681b346e3a73efb", "scanner": "scanner-primary", "fingerprint": "831e6848749a541c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8cde088868abf41d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/hooks/useBuildConnection.ts:53"}, "properties": {"repobilityId": "5ce15a349695add8", "scanner": "scanner-primary", "fingerprint": "8cde088868abf41d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6b3a90e4d2bd3340", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/src/hooks/useSSEConnection.ts:56"}, "properties": {"repobilityId": "d31a79bc7f3c35e2", "scanner": "scanner-primary", "fingerprint": "6b3a90e4d2bd3340", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-13776521cfa7f046", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/login.ts:25"}, "properties": {"repobilityId": "8a7980b63ef3d20b", "scanner": "scanner-primary", "fingerprint": "13776521cfa7f046", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d9cd0039fddc176", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/open.ts:25"}, "properties": {"repobilityId": "3b3c7dcbfca5d015", "scanner": "scanner-primary", "fingerprint": "1d9cd0039fddc176", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ac1670b54278714b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/stop.ts:12"}, "properties": {"repobilityId": "46b4f1d5c61abebf", "scanner": "scanner-primary", "fingerprint": "ac1670b54278714b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-60dbcf858485938e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/logout.ts:11"}, "properties": {"repobilityId": "a44387279c8f0c22", "scanner": "scanner-primary", "fingerprint": "60dbcf858485938e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3fe52486d93985a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/commands/up.ts:140"}, "properties": {"repobilityId": "9d613fb494f10294", "scanner": "scanner-primary", "fingerprint": "3fe52486d93985a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a1b1a1525f45ccff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/lib/from-source.ts:116"}, "properties": {"repobilityId": "1df0e8dfd6694513", "scanner": "scanner-primary", "fingerprint": "a1b1a1525f45ccff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d49f9a4b9e00819", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/desktop/src/main/services.ts:184"}, "properties": {"repobilityId": "8707a0331fe668e0", "scanner": "scanner-primary", "fingerprint": "6d49f9a4b9e00819", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fb80b73e9438c8b0", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/page.tsx:61"}, "properties": {"repobilityId": "009c24e8e571ddfb", "scanner": "scanner-primary", "fingerprint": "fb80b73e9438c8b0", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c2b345cff301811d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/layout.tsx:177"}, "properties": {"repobilityId": "5b83b4071065fb01", "scanner": "scanner-primary", "fingerprint": "c2b345cff301811d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5570efba6b997fcf", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/resources/page.tsx:127"}, "properties": {"repobilityId": "2cc54e79a2822b58", "scanner": "scanner-primary", "fingerprint": "5570efba6b997fcf", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b5337c5d367b135b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/resources/[...slug]/page.tsx:145"}, "properties": {"repobilityId": "b8f0a1c4a43d392b", "scanner": "scanner-primary", "fingerprint": "b5337c5d367b135b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e4850e51d47fc268", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/(site)/download/page.tsx:363"}, "properties": {"repobilityId": "945da350184c5b08", "scanner": "scanner-primary", "fingerprint": "e4850e51d47fc268", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e7d08320de70375e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/download/layout.tsx:75"}, "properties": {"repobilityId": "94c4495d050a8cae", "scanner": "scanner-primary", "fingerprint": "e7d08320de70375e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a76abb744b20313d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/(marketing)/mail/page.tsx:71"}, "properties": {"repobilityId": "4d5240820df16626", "scanner": "scanner-primary", "fingerprint": "a76abb744b20313d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-842877b15f3583ac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/web/src/app/(site)/(marketing)/mail/setup-guide/nodemailer/page.tsx:74"}, "properties": {"repobilityId": "87c0428a94eb6bde", "scanner": "scanner-primary", "fingerprint": "842877b15f3583ac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-86e097aef3842a07", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 apps/web/src/app/(site)/(marketing)/mail/_components/ui/tabs.tsx:52"}, "properties": {"repobilityId": "7ae4159330a118ae", "scanner": "scanner-primary", "fingerprint": "86e097aef3842a07", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-8904755f3e0f1110", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/web/src/app/(site)/(marketing)/pricing/layout.tsx:115"}, "properties": {"repobilityId": "76d91c85de522273", "scanner": "scanner-primary", "fingerprint": "8904755f3e0f1110", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8d01f80e6a714367", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/release.ts:473"}, "properties": {"repobilityId": "d820829d8215324e", "scanner": "scanner-primary", "fingerprint": "8d01f80e6a714367", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-381bf5446aae045e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/adapters/test/archive-also-include.test.ts:57"}, "properties": {"repobilityId": "b5389fa60de38583", "scanner": "scanner-primary", "fingerprint": "381bf5446aae045e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1613ba7501d091c3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/adapters/scripts/embed-lua.ts:59"}, "properties": {"repobilityId": "82ecb9f17b088d87", "scanner": "scanner-primary", "fingerprint": "1613ba7501d091c3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-01093415e9c5cbef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/adapters/scripts/embed-catalog.ts:110"}, "properties": {"repobilityId": "82f5b91cea78ea82", "scanner": "scanner-primary", "fingerprint": "01093415e9c5cbef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fd10011c258a366e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/adapters/src/runtime/cloud.ts:1747"}, "properties": {"repobilityId": "56cc276ef4ba2c54", "scanner": "scanner-primary", "fingerprint": "fd10011c258a366e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c6d16a214b54a035", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/adapters/src/system/debug.ts:13"}, "properties": {"repobilityId": "df9630f6b875c7b2", "scanner": "scanner-primary", "fingerprint": "c6d16a214b54a035", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1600b880d7e75bbe", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/adapters/src/infra/cloud.ts:22"}, "properties": {"repobilityId": "261a4aee399c721d", "scanner": "scanner-primary", "fingerprint": "1600b880d7e75bbe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-996247091e6515c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/scripts/heal-pglite-resetwal.ts:90"}, "properties": {"repobilityId": "74bf668d7b75a05c", "scanner": "scanner-primary", "fingerprint": "996247091e6515c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9c7e1c0d99f70f06", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/scripts/heal-pglite.ts:59"}, "properties": {"repobilityId": "419f510e3a933357", "scanner": "scanner-primary", "fingerprint": "9c7e1c0d99f70f06", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dd18e6670ba38315", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/scripts/heal-orphan-tables.ts:40"}, "properties": {"repobilityId": "ec6dc04684c9dda5", "scanner": "scanner-primary", "fingerprint": "dd18e6670ba38315", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-89e0b33b6918cae6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/src/pglite-lock.ts:311"}, "properties": {"repobilityId": "04401c6c66f61009", "scanner": "scanner-primary", "fingerprint": "89e0b33b6918cae6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5635af85ca81254b", "level": "warning", "message": {"text": "react dangerouslysetinnerhtml \u2014 apps/email/client/lib/email-utils.client.tsx:196"}, "properties": {"repobilityId": "96ee593b32db67a8", "scanner": "scanner-primary", "fingerprint": "5635af85ca81254b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["semgrep", "security", "react"]}}, {"ruleId": "scanner-0467acacfd5929a7", "level": "warning", "message": {"text": "use tls \u2014 fixtures/deploy/go/main.go:17"}, "properties": {"repobilityId": "5bfa65aad954f7e5", "scanner": "scanner-primary", "fingerprint": "0467acacfd5929a7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["semgrep", "security", "go"]}}, {"ruleId": "scanner-e637c415447867e4", "level": "none", "message": {"text": "Run SkillSpector's LLM-backed analysis in your own pipeline"}, "properties": {"repobilityId": "1936f198ff5212bf", "scanner": "scanner-primary", "fingerprint": "e637c415447867e4", "layer": "security", "severity": "info", "confidence": 1.0, "tags": ["skillspector", "mcp-skill", "llm-advisory", "ai-coder"]}}, {"ruleId": "scanner-9413fc5f7b02b82d", "level": "warning", "message": {"text": "Privileged port 993 in use"}, "properties": {"repobilityId": "a36e56a26353e9ee", "scanner": "scanner-primary", "fingerprint": "9413fc5f7b02b82d", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/server/scripts/fetch-thread-debug.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-db93c12eec01b288", "level": "warning", "message": {"text": "Privileged port 3 in use"}, "properties": {"repobilityId": "261b7b1c6a18d412", "scanner": "scanner-primary", "fingerprint": "db93c12eec01b288", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/engine/functions/postgresql.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a7b5e4db36f3f775", "level": "warning", "message": {"text": "Privileged port 1 in use"}, "properties": {"repobilityId": "ddf3fa6c29abb8d2", "scanner": "scanner-primary", "fingerprint": "a7b5e4db36f3f775", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/engine/functions/postgresql.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0efd7cedfd0f4534", "level": "warning", "message": {"text": "Privileged port 587 in use"}, "properties": {"repobilityId": "a87a96c3b2e62c08", "scanner": "scanner-primary", "fingerprint": "0efd7cedfd0f4534", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/admin/outbound-relay.service.test.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e9c1981e880145c", "level": "warning", "message": {"text": "Privileged port 465 in use"}, "properties": {"repobilityId": "bcd1f06b60a2b6bc", "scanner": "scanner-primary", "fingerprint": "7e9c1981e880145c", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/src/app/(site)/(marketing)/mail/setup-guide/nodemailer/page.tsx"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0f384cd08e6de3f7", "level": "warning", "message": {"text": "Privileged port 127 in use"}, "properties": {"repobilityId": "afafb77f13b4bf59", "scanner": "scanner-primary", "fingerprint": "0f384cd08e6de3f7", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/adapters/src/infra/openresty-lua.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d9980d9104825b19", "level": "warning", "message": {"text": "Dockerfile runs as root: apps/api/Dockerfile"}, "properties": {"repobilityId": "e591b11d8a0c1fe7", "scanner": "scanner-primary", "fingerprint": "d9980d9104825b19", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-a3f3767117cc7dc9", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: oven/bun:1.3.10"}, "properties": {"repobilityId": "1ad1383580b7c160", "scanner": "scanner-primary", "fingerprint": "a3f3767117cc7dc9", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/Dockerfile"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-d9ba81fe682ac8c5", "level": "warning", "message": {"text": "Docker base image uses a mutable or implicit tag: oven/bun:latest"}, "properties": {"repobilityId": "f731b2ffc7c736fd", "scanner": "scanner-primary", "fingerprint": "d9ba81fe682ac8c5", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/Dockerfile"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-427dcc5a6d0f69bc", "level": "warning", "message": {"text": "Dockerfile runs as root: apps/dashboard/Dockerfile"}, "properties": {"repobilityId": "4f089858fe4a229f", "scanner": "scanner-primary", "fingerprint": "427dcc5a6d0f69bc", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-1eebee2efe7799f5", "level": "warning", "message": {"text": "Docker base image uses a mutable or implicit tag: oven/bun:latest"}, "properties": {"repobilityId": "fdcfee86a8b93876", "scanner": "scanner-primary", "fingerprint": "1eebee2efe7799f5", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-382f55b4d1922ff6", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-alpine"}, "properties": {"repobilityId": "98a458a8047dce34", "scanner": "scanner-primary", "fingerprint": "382f55b4d1922ff6", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/Dockerfile"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-7673561931a5dd33", "level": "warning", "message": {"text": "Dockerfile runs as root: apps/web/Dockerfile"}, "properties": {"repobilityId": "d68d7937b96d047d", "scanner": "scanner-primary", "fingerprint": "7673561931a5dd33", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-987dabda13273c1d", "level": "warning", "message": {"text": "Docker base image uses a mutable or implicit tag: oven/bun:latest"}, "properties": {"repobilityId": "8b3d4d2bab489429", "scanner": "scanner-primary", "fingerprint": "987dabda13273c1d", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-744c132692cc6e12", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-alpine"}, "properties": {"repobilityId": "30d5f8d2b686569b", "scanner": "scanner-primary", "fingerprint": "744c132692cc6e12", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/Dockerfile"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-2591daadb7e8940e", "level": "warning", "message": {"text": "Runtime dotenv file present in repo: apps/email/client/.env.development"}, "properties": {"repobilityId": "b1d470707984e253", "scanner": "scanner-primary", "fingerprint": "2591daadb7e8940e", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["secrets", "config", "env-file", "runtime-env"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/.env.development"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-374438c5b4b4acda", "level": "warning", "message": {"text": "Runtime dotenv file present in repo: apps/api/.env.migtest"}, "properties": {"repobilityId": "96f4ba624506a8bf", "scanner": "scanner-primary", "fingerprint": "374438c5b4b4acda", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["secrets", "config", "env-file", "runtime-env"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/.env.migtest"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-99bb3b3484119219", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/email/client/components/ui/chart.tsx:73"}, "properties": {"repobilityId": "1933b5e0831e6fee", "scanner": "scanner-primary", "fingerprint": "99bb3b3484119219", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/components/ui/chart.tsx"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-8d765f41e4e8dcf1", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/email/client/lib/email-utils.client.tsx:196"}, "properties": {"repobilityId": "4df5bb34949f96be", "scanner": "scanner-primary", "fingerprint": "8d765f41e4e8dcf1", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/lib/email-utils.client.tsx"}, "region": {"startLine": 196}}}]}, {"ruleId": "scanner-c499c83bcd554d33", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in apps/email/client/lib/email-utils.client.tsx:108"}, "properties": {"repobilityId": "4a38ba2297597e22", "scanner": "scanner-primary", "fingerprint": "c499c83bcd554d33", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/lib/email-utils.client.tsx"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-afc8a129466363d1", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/email/client/lib/sanitize-tip-tap-html.tsx:17"}, "properties": {"repobilityId": "f3eaedcb35791466", "scanner": "scanner-primary", "fingerprint": "afc8a129466363d1", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/lib/sanitize-tip-tap-html.tsx"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-b9d198a01c9c6a11", "level": "error", "message": {"text": "Insecure pattern 'node_child_process' in apps/email/scripts/build-release.ts:36"}, "properties": {"repobilityId": "3a15ef87aec827da", "scanner": "scanner-primary", "fingerprint": "b9d198a01c9c6a11", "layer": "security", "severity": "high", "confidence": 0.9, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/scripts/build-release.ts"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-88e222fabc9a6bec", "level": "warning", "message": {"text": "Possible secret in apps/email/engine/tools/create_mail_user_OpenLDAP.sh"}, "properties": {"repobilityId": "dc163a3ece2a05de", "scanner": "scanner-primary", "fingerprint": "88e222fabc9a6bec", "layer": "security", "severity": "medium", "confidence": 0.58, "tags": ["secrets", "password_literal"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/engine/tools/create_mail_user_OpenLDAP.sh"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-91a61c4f5eed90c3", "level": "error", "message": {"text": "Insecure pattern 'node_child_process' in apps/api/scripts/build-release.ts:51"}, "properties": {"repobilityId": "9203752da7f9127e", "scanner": "scanner-primary", "fingerprint": "91a61c4f5eed90c3", "layer": "security", "severity": "high", "confidence": 0.9, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/scripts/build-release.ts"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-a638017c194a282d", "level": "error", "message": {"text": "Insecure pattern 'private_key_in_repo' in apps/dashboard/src/i18n/locales/fr/projectSettings.json:672"}, "properties": {"repobilityId": "29da6ee6f4c1e822", "scanner": "scanner-primary", "fingerprint": "a638017c194a282d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["owasp", "private_key_in_repo"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/src/i18n/locales/fr/projectSettings.json"}, "region": {"startLine": 672}}}]}, {"ruleId": "scanner-1201f560ca51158a", "level": "error", "message": {"text": "Insecure pattern 'private_key_in_repo' in apps/dashboard/src/i18n/locales/en/projectSettings.json:739"}, "properties": {"repobilityId": "7e36cee144d51af6", "scanner": "scanner-primary", "fingerprint": "1201f560ca51158a", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["owasp", "private_key_in_repo"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/src/i18n/locales/en/projectSettings.json"}, "region": {"startLine": 739}}}]}, {"ruleId": "scanner-ef1e748105670d00", "level": "error", "message": {"text": "Insecure pattern 'private_key_in_repo' in apps/dashboard/src/i18n/locales/tr/projectSettings.json:739"}, "properties": {"repobilityId": "f925613a977ac51d", "scanner": "scanner-primary", "fingerprint": "ef1e748105670d00", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["owasp", "private_key_in_repo"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/src/i18n/locales/tr/projectSettings.json"}, "region": {"startLine": 739}}}]}, {"ruleId": "scanner-a9f11e1491a79b1d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/dashboard/src/components/theme-provider.tsx:126"}, "properties": {"repobilityId": "b7a0be3562a62fdf", "scanner": "scanner-primary", "fingerprint": "a9f11e1491a79b1d", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/src/components/theme-provider.tsx"}, "region": {"startLine": 126}}}]}, {"ruleId": "scanner-31652bd8f86f9315", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/dashboard/src/app/layout.tsx:96"}, "properties": {"repobilityId": "e5108aacd2602e1b", "scanner": "scanner-primary", "fingerprint": "31652bd8f86f9315", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/src/app/layout.tsx"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-dce306fda5648779", "level": "warning", "message": {"text": "Possible secret in apps/dashboard/src/lib/api/endpoints.ts"}, "properties": {"repobilityId": "932560a99bc7caa1", "scanner": "scanner-primary", "fingerprint": "dce306fda5648779", "layer": "security", "severity": "medium", "confidence": 0.58, "tags": ["secrets", "password_literal"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/src/lib/api/endpoints.ts"}, "region": {"startLine": 290}}}]}, {"ruleId": "scanner-6a20b68054c9b050", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/page.tsx:61"}, "properties": {"repobilityId": "f06a6a7e918d01b9", "scanner": "scanner-primary", "fingerprint": "6a20b68054c9b050", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/src/app/(site)/page.tsx"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-1194337b718eef78", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/layout.tsx:177"}, "properties": {"repobilityId": "16c36d50e35c8332", "scanner": "scanner-primary", "fingerprint": "1194337b718eef78", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/src/app/(site)/layout.tsx"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-7fb9a7fea93be608", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/resources/page.tsx:127"}, "properties": {"repobilityId": "e5acd1fb76d8b713", "scanner": "scanner-primary", "fingerprint": "7fb9a7fea93be608", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/src/app/(site)/resources/page.tsx"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-5c7ca4a7fd46ecc0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/resources/[...slug]/page.tsx:145"}, "properties": {"repobilityId": "d536de8fc20cd82b", "scanner": "scanner-primary", "fingerprint": "5c7ca4a7fd46ecc0", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/src/app/(site)/resources/[...slug]/page.tsx"}, "region": {"startLine": 145}}}]}, {"ruleId": "scanner-de0673962e87b374", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/download/layout.tsx:75"}, "properties": {"repobilityId": "146df4c6fea4bf91", "scanner": "scanner-primary", "fingerprint": "de0673962e87b374", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/src/app/(site)/download/layout.tsx"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-ff3dcea1ec46af0f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/(marketing)/mail/page.tsx:71"}, "properties": {"repobilityId": "da3a1253a2b0868a", "scanner": "scanner-primary", "fingerprint": "ff3dcea1ec46af0f", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/src/app/(site)/(marketing)/mail/page.tsx"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-140b747107521d22", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/web/src/app/(site)/(marketing)/pricing/layout.tsx:115"}, "properties": {"repobilityId": "719127e64a927e95", "scanner": "scanner-primary", "fingerprint": "140b747107521d22", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/src/app/(site)/(marketing)/pricing/layout.tsx"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-025909b3afd4932c", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/types.ts:484"}, "properties": {"repobilityId": "d5e58395b4fc81b4", "scanner": "scanner-primary", "fingerprint": "025909b3afd4932c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/adapters/src/types.ts"}, "region": {"startLine": 484}}}]}, {"ruleId": "scanner-e6bf696d61b41a27", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/runtime/build-pipeline.ts:116"}, "properties": {"repobilityId": "fae929b58e0ee17b", "scanner": "scanner-primary", "fingerprint": "e6bf696d61b41a27", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/adapters/src/runtime/build-pipeline.ts"}, "region": {"startLine": 116}}}]}, {"ruleId": "scanner-579f65da0b2efc2e", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/system/system-ssh-executor.ts:218"}, "properties": {"repobilityId": "00eea34df323fbe3", "scanner": "scanner-primary", "fingerprint": "579f65da0b2efc2e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/adapters/src/system/system-ssh-executor.ts"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-3bb5618804fda51c", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/system/local-executor.ts:25"}, "properties": {"repobilityId": "26eecfe15fadbd2c", "scanner": "scanner-primary", "fingerprint": "3bb5618804fda51c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/adapters/src/system/local-executor.ts"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-b3f78a7152fcb011", "level": "error", "message": {"text": "Insecure pattern 'node_child_process' in packages/adapters/src/system/local-executor.ts:1"}, "properties": {"repobilityId": "0eba3a6f5fd16767", "scanner": "scanner-primary", "fingerprint": "b3f78a7152fcb011", "layer": "security", "severity": "high", "confidence": 0.9, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/adapters/src/system/local-executor.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c5aef652f78f4ba5", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/system/ssh-executor.ts:200"}, "properties": {"repobilityId": "95863ff4fb015622", "scanner": "scanner-primary", "fingerprint": "c5aef652f78f4ba5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/adapters/src/system/ssh-executor.ts"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-14f8c589141736fa", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/system/remote-transfer.ts:81"}, "properties": {"repobilityId": "0160323b445a9f4e", "scanner": "scanner-primary", "fingerprint": "14f8c589141736fa", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/adapters/src/system/remote-transfer.ts"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-c433a74a2d73dbf5", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/adapters/src/system/port-listen.ts:20"}, "properties": {"repobilityId": "ff35d4c66ba07bef", "scanner": "scanner-primary", "fingerprint": "c433a74a2d73dbf5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/adapters/src/system/port-listen.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bb442df54f9ee065", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "123746a93d080446", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "b86179956da3a4a8", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-68e3272269d57ab6", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "e15595ad70d6b810", "scanner": "scanner-primary", "fingerprint": "68e3272269d57ab6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-36982c0452c82c8b", "level": "note", "message": {"text": "Very large file: apps/email/client/components/mail/mail-display.tsx (1738 lines)"}, "properties": {"repobilityId": "092a89ffed33aee5", "scanner": "scanner-primary", "fingerprint": "36982c0452c82c8b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e15765eeb077c3c3", "level": "note", "message": {"text": "Very large file: apps/email/client/components/icons/icons.tsx (1783 lines)"}, "properties": {"repobilityId": "d3e4520ccbfdeaf6", "scanner": "scanner-primary", "fingerprint": "e15765eeb077c3c3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5dbabeb55e1ab8f1", "level": "note", "message": {"text": "Very large file: apps/email/client/components/context/command-palette-context.tsx (1905 lines)"}, "properties": {"repobilityId": "9bda6e859856f316", "scanner": "scanner-primary", "fingerprint": "5dbabeb55e1ab8f1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c6daef9e510aa128", "level": "note", "message": {"text": "Very large file: apps/api/src/modules/mail/mail.controller.ts (1424 lines)"}, "properties": {"repobilityId": "e89ef959aa691f30", "scanner": "scanner-primary", "fingerprint": "c6daef9e510aa128", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-26391432e83208bf", "level": "note", "message": {"text": "Very large file: apps/api/src/modules/github/github.auth.ts (1248 lines)"}, "properties": {"repobilityId": "442fd520b43cd332", "scanner": "scanner-primary", "fingerprint": "26391432e83208bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3570510467eb6c84", "level": "note", "message": {"text": "Very large file: apps/api/src/modules/projects/project.controller.ts (2109 lines)"}, "properties": {"repobilityId": "e9fb7de57851859e", "scanner": "scanner-primary", "fingerprint": "3570510467eb6c84", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-27961b1da0275932", "level": "note", "message": {"text": "Very large file: apps/api/src/modules/projects/project-crud.service.ts (1362 lines)"}, "properties": {"repobilityId": "43cb1dc06e30d22d", "scanner": "scanner-primary", "fingerprint": "27961b1da0275932", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-26fc335668c85c06", "level": "note", "message": {"text": "Very large file: apps/api/src/modules/deployments/preflight.ts (1385 lines)"}, "properties": {"repobilityId": "5fbd8f42bf756430", "scanner": "scanner-primary", "fingerprint": "26fc335668c85c06", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3fde4926bebce41b", "level": "note", "message": {"text": "Very large file: apps/api/src/modules/deployments/build-pipeline.ts (1399 lines)"}, "properties": {"repobilityId": "49305215e14c1b45", "scanner": "scanner-primary", "fingerprint": "3fde4926bebce41b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7a3d691980ba4979", "level": "note", "message": {"text": "Very large file: apps/api/src/modules/deployments/build.service.ts (1615 lines)"}, "properties": {"repobilityId": "3c8b95352e727ba1", "scanner": "scanner-primary", "fingerprint": "7a3d691980ba4979", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7238e11869066c27", "level": "note", "message": {"text": "Very large file: apps/api/src/modules/deployments/compose/deploy.service.ts (1304 lines)"}, "properties": {"repobilityId": "2e35aa8c592c7fe3", "scanner": "scanner-primary", "fingerprint": "7238e11869066c27", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-52fb656fc2b240fc", "level": "note", "message": {"text": "Very large file: apps/dashboard/src/components/migration/ServerMigrationWizard.tsx (1630 lines)"}, "properties": {"repobilityId": "43d56cbf8a3d4f05", "scanner": "scanner-primary", "fingerprint": "52fb656fc2b240fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e8c26fb31aeded66", "level": "note", "message": {"text": "Very large file: apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainSettings.tsx (2261 lines)"}, "properties": {"repobilityId": "7cdaddc0774f1712", "scanner": "scanner-primary", "fingerprint": "e8c26fb31aeded66", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-29c6e7897d8f587d", "level": "note", "message": {"text": "Very large file: apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/DeployTargetStep.tsx (1635 lines)"}, "properties": {"repobilityId": "2ca0915b47cc021b", "scanner": "scanner-primary", "fingerprint": "29c6e7897d8f587d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-47d50249f55916c5", "level": "note", "message": {"text": "Very large file: apps/dashboard/src/context/deployment/useDeploymentBuild.tsx (1389 lines)"}, "properties": {"repobilityId": "a0847d344fe441a2", "scanner": "scanner-primary", "fingerprint": "47d50249f55916c5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-442b561318cce599", "level": "note", "message": {"text": "Very large file: apps/web/src/app/(site)/(marketing)/mail/_components/icons.tsx (1783 lines)"}, "properties": {"repobilityId": "9f992729ef3aeb10", "scanner": "scanner-primary", "fingerprint": "442b561318cce599", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bb1534c226295148", "level": "note", "message": {"text": "Very large file: apps/web/src/app/(site)/(marketing)/mail/_components/home/HomeContent.tsx (1767 lines)"}, "properties": {"repobilityId": "f33aa045d8ffa2ed", "scanner": "scanner-primary", "fingerprint": "bb1534c226295148", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b41dd47497226c8f", "level": "note", "message": {"text": "Very large file: packages/adapters/src/runtime/cloud.ts (2671 lines)"}, "properties": {"repobilityId": "e9a4c515823ced4c", "scanner": "scanner-primary", "fingerprint": "b41dd47497226c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b293fd814939b468", "level": "note", "message": {"text": "Very large file: packages/adapters/src/runtime/docker.ts (2582 lines)"}, "properties": {"repobilityId": "e2bc6f9c2a305e66", "scanner": "scanner-primary", "fingerprint": "b293fd814939b468", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-36a70142ea707354", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/api/package.json"}, "properties": {"repobilityId": "ce77cd34ed0306d4", "scanner": "scanner-primary", "fingerprint": "36a70142ea707354", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ce95561e3bc6bc0f", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/dashboard/package.json"}, "properties": {"repobilityId": "4cf5ff15e81d6746", "scanner": "scanner-primary", "fingerprint": "ce95561e3bc6bc0f", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e81ae8bba620e602", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/cli/package.json"}, "properties": {"repobilityId": "027862884b842339", "scanner": "scanner-primary", "fingerprint": "e81ae8bba620e602", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/cli/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c43207efe218f8c2", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/desktop/package.json"}, "properties": {"repobilityId": "a5d1a254ecc349f8", "scanner": "scanner-primary", "fingerprint": "c43207efe218f8c2", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f73c8ff17174db57", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/web/package.json"}, "properties": {"repobilityId": "6c1704bf24cf19ac", "scanner": "scanner-primary", "fingerprint": "f73c8ff17174db57", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-49a441b3d53d4153", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/adapters/package.json"}, "properties": {"repobilityId": "353ba006b4dbfa69", "scanner": "scanner-primary", "fingerprint": "49a441b3d53d4153", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/adapters/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6472718547d75a00", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/ui/package.json"}, "properties": {"repobilityId": "637e26a8c754e81d", "scanner": "scanner-primary", "fingerprint": "6472718547d75a00", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ui/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-788c79428ee5c6f4", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/db-email/package.json"}, "properties": {"repobilityId": "ac44ccbad5897271", "scanner": "scanner-primary", "fingerprint": "788c79428ee5c6f4", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/db-email/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9f9a2b489d284802", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/onboarding/package.json"}, "properties": {"repobilityId": "65aff37a7ca5a1be", "scanner": "scanner-primary", "fingerprint": "9f9a2b489d284802", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/onboarding/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-18fab9ce1ae3dc0d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/db/package.json"}, "properties": {"repobilityId": "2bddd295d559a9b6", "scanner": "scanner-primary", "fingerprint": "18fab9ce1ae3dc0d", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/db/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1ada30b496643aab", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/core/package.json"}, "properties": {"repobilityId": "8640e46be7e3f9b2", "scanner": "scanner-primary", "fingerprint": "1ada30b496643aab", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/core/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "ab1a0ed365542c95", "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": "4e85ed54bc3c4913", "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": "275fd7ad87e25316", "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": "67e98cc3e7fce389", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-a0dd59dcb19aa862", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/email/client/config/shortcuts.ts:84"}, "properties": {"repobilityId": "243fc353c6f7d432", "scanner": "scanner-primary", "fingerprint": "a0dd59dcb19aa862", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c599088f88abc2c1", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/email/client/config/navigation.ts:125"}, "properties": {"repobilityId": "9df637a0484ae767", "scanner": "scanner-primary", "fingerprint": "c599088f88abc2c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71dfc041489f5b86", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/email/client/components/mail/mail-display.tsx:668"}, "properties": {"repobilityId": "aeccbc48659f41ec", "scanner": "scanner-primary", "fingerprint": "71dfc041489f5b86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df3a79dc2f275e8d", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/email/client/components/mail/thread-display.tsx:190"}, "properties": {"repobilityId": "79e3abee6ad92168", "scanner": "scanner-primary", "fingerprint": "df3a79dc2f275e8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48e29202d945d3a4", "level": "none", "message": {"text": "Commented-code block (26 lines) in apps/email/client/components/mail/mail.tsx:36"}, "properties": {"repobilityId": "8ff52e202e6f24e0", "scanner": "scanner-primary", "fingerprint": "48e29202d945d3a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43f5e58c16a1f5a9", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/email/client/components/mail/mail-list.tsx:233"}, "properties": {"repobilityId": "3a938cad07b9696e", "scanner": "scanner-primary", "fingerprint": "43f5e58c16a1f5a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e67eacdfbb86e625", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/email/client/components/mail/mail-content.tsx:106"}, "properties": {"repobilityId": "d458ae2d42d5ccd0", "scanner": "scanner-primary", "fingerprint": "e67eacdfbb86e625", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a72e222716544636", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/email/client/components/ui/app-sidebar.tsx:67"}, "properties": {"repobilityId": "db99f2426af71290", "scanner": "scanner-primary", "fingerprint": "a72e222716544636", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3d38fd6bff583a4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/email/client/components/ui/nav-user.tsx:90"}, "properties": {"repobilityId": "c67a3d4010e38fa8", "scanner": "scanner-primary", "fingerprint": "c3d38fd6bff583a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7067393d1d1b5418", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/email/client/components/create/editor.tsx:17"}, "properties": {"repobilityId": "c5ca7d5a69c3d25b", "scanner": "scanner-primary", "fingerprint": "7067393d1d1b5418", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67e31718d37e7c3a", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/email/client/components/create/create-email.tsx:175"}, "properties": {"repobilityId": "a59660f429bc6cf3", "scanner": "scanner-primary", "fingerprint": "67e31718d37e7c3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0654783dd117a74e", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/email/client/components/context/command-palette-context.tsx:684"}, "properties": {"repobilityId": "95914622eee83e4c", "scanner": "scanner-primary", "fingerprint": "0654783dd117a74e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40b6c989cecacce6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/email/client/providers/query-provider.tsx:130"}, "properties": {"repobilityId": "13203ca4700760d0", "scanner": "scanner-primary", "fingerprint": "40b6c989cecacce6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d393c84b3d5aedf4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/providers/query-provider.tsx:99"}, "properties": {"repobilityId": "c0f07e265d49e739", "scanner": "scanner-primary", "fingerprint": "d393c84b3d5aedf4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-07350fec15f0d538", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/email/client/app/root.tsx:107"}, "properties": {"repobilityId": "3e7ff51d853d35e9", "scanner": "scanner-primary", "fingerprint": "07350fec15f0d538", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f15e2867b5ac0b7c", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/email/client/app/(routes)/settings/shortcuts/page.tsx:22"}, "properties": {"repobilityId": "3c8bf46eb37381d4", "scanner": "scanner-primary", "fingerprint": "f15e2867b5ac0b7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fd86b0b8a89c8c3", "level": "none", "message": {"text": "Commented-code block (16 lines) in apps/email/client/app/(routes)/mail/create/page.tsx:31"}, "properties": {"repobilityId": "7a742ecd0f4352cd", "scanner": "scanner-primary", "fingerprint": "2fd86b0b8a89c8c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d90d9c1a026ec0a9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/lib/email-utils.client.tsx:26"}, "properties": {"repobilityId": "85e7a4ece7c93ba1", "scanner": "scanner-primary", "fingerprint": "d90d9c1a026ec0a9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4f42ed1e040808da", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/email/client/lib/auth-client.ts:165"}, "properties": {"repobilityId": "5757e6337ed6504e", "scanner": "scanner-primary", "fingerprint": "4f42ed1e040808da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03afcba03bbb1b4d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/lib/auth-client.ts:98"}, "properties": {"repobilityId": "1241df9e1e746db9", "scanner": "scanner-primary", "fingerprint": "03afcba03bbb1b4d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd3b90cef3190d0f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/lib/trpc.ts:15"}, "properties": {"repobilityId": "7466ac60d0d918d0", "scanner": "scanner-primary", "fingerprint": "cd3b90cef3190d0f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bd528a48541cc82c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/lib/server-tool.ts:5"}, "properties": {"repobilityId": "7a4d8463c55ec15a", "scanner": "scanner-primary", "fingerprint": "bd528a48541cc82c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-761b1619d3a018fe", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/email/client/lib/hotkeys/use-hotkey-utils.ts:23"}, "properties": {"repobilityId": "0c4cb0d7da4b6bd9", "scanner": "scanner-primary", "fingerprint": "761b1619d3a018fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74fbd03b387f2ccf", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/email/client/lib/hotkeys/mail-list-hotkeys.tsx:43"}, "properties": {"repobilityId": "2fb1d75c1fef3aca", "scanner": "scanner-primary", "fingerprint": "74fbd03b387f2ccf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c23c0af2db0abe07", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/email/client/hooks/use-email-aliases.ts:9"}, "properties": {"repobilityId": "696337474a3141f3", "scanner": "scanner-primary", "fingerprint": "c23c0af2db0abe07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e53465d9d44522c2", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/email/client/hooks/use-labels.ts:15"}, "properties": {"repobilityId": "92e3e050e78ec03b", "scanner": "scanner-primary", "fingerprint": "e53465d9d44522c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7d72cf58ccd3549", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/email/client/hooks/use-threads.ts:33"}, "properties": {"repobilityId": "3aa7c4812e661557", "scanner": "scanner-primary", "fingerprint": "e7d72cf58ccd3549", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a21a3663b0da8f5", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/email/client/hooks/use-optimistic-actions.ts:77"}, "properties": {"repobilityId": "0500e5bcffae5573", "scanner": "scanner-primary", "fingerprint": "1a21a3663b0da8f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-847f3b9066a7ddcb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/client/hooks/use-optimistic-actions.ts:118"}, "properties": {"repobilityId": "e20dd8b65d8b2556", "scanner": "scanner-primary", "fingerprint": "847f3b9066a7ddcb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ccddb292ebed5d88", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/email/client/hooks/use-compose-editor.ts:226"}, "properties": {"repobilityId": "4c10a4e2c607121b", "scanner": "scanner-primary", "fingerprint": "ccddb292ebed5d88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0416e72cc416a6f3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/email/scripts/slim-engine.ts:138"}, "properties": {"repobilityId": "6b86b996608fa8ca", "scanner": "scanner-primary", "fingerprint": "0416e72cc416a6f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21aceb48e5199a67", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/scripts/slim-engine.ts:140"}, "properties": {"repobilityId": "f54271ad4c220872", "scanner": "scanner-primary", "fingerprint": "21aceb48e5199a67", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e990397ac3060ab1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/server/scripts/fetch-thread-debug.ts:77"}, "properties": {"repobilityId": "ea3a613f4070f2bb", "scanner": "scanner-primary", "fingerprint": "e990397ac3060ab1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fcb340939c4bee72", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/email/server/src/main.ts:42"}, "properties": {"repobilityId": "62940690f02372c0", "scanner": "scanner-primary", "fingerprint": "fcb340939c4bee72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf7a097a703acd6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/email/server/src/lib/imap.ts:150"}, "properties": {"repobilityId": "9c7ddedd835590ea", "scanner": "scanner-primary", "fingerprint": "cf7a097a703acd6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9f3a08f5f3e6c71", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/email/server/src/lib/imap-driver.ts:118"}, "properties": {"repobilityId": "214195a6473e10c2", "scanner": "scanner-primary", "fingerprint": "b9f3a08f5f3e6c71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-badee4ece417c983", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/server/src/lib/imap-driver.ts:421"}, "properties": {"repobilityId": "64f7ac598e646adf", "scanner": "scanner-primary", "fingerprint": "badee4ece417c983", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b32db49efd7d469c", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/email/server/src/trpc/routes/labels.ts:45"}, "properties": {"repobilityId": "77bf7240e83c24e1", "scanner": "scanner-primary", "fingerprint": "b32db49efd7d469c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dca6e7b104cf960c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/email/server/src/trpc/routes/drafts.ts:88"}, "properties": {"repobilityId": "7cb8c350430cef0d", "scanner": "scanner-primary", "fingerprint": "dca6e7b104cf960c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23fce509d5875e6f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/email/server/src/trpc/routes/drafts.ts:54"}, "properties": {"repobilityId": "9bce6f24ccc71213", "scanner": "scanner-primary", "fingerprint": "23fce509d5875e6f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2e70879205950ca9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/email/server/src/routes/auth.ts:71"}, "properties": {"repobilityId": "ea85cac5bc71311f", "scanner": "scanner-primary", "fingerprint": "2e70879205950ca9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20d8de67e1f57e38", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in apps/email/engine/tools/ldap_move_members_to_another_group.py:66"}, "properties": {"repobilityId": "fa6cc65d3bdccee5", "scanner": "scanner-primary", "fingerprint": "20d8de67e1f57e38", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4ed816a7dd4818a6", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/email/engine/update/1.4.1/update-ldap.py:2"}, "properties": {"repobilityId": "d5dcf007803d211e", "scanner": "scanner-primary", "fingerprint": "4ed816a7dd4818a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7eca274088dda492", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/vitest.config.ts:18"}, "properties": {"repobilityId": "e0a1b670b52700fd", "scanner": "scanner-primary", "fingerprint": "7eca274088dda492", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57a1a776da5a2142", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/test/lib/public-url.test.ts:60"}, "properties": {"repobilityId": "e9296d6ccc418493", "scanner": "scanner-primary", "fingerprint": "57a1a776da5a2142", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d5bf332cebdf29e", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/test/lib/cloud/project-router.test.ts:3"}, "properties": {"repobilityId": "87b8244194a353f2", "scanner": "scanner-primary", "fingerprint": "5d5bf332cebdf29e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dbf44dad88541641", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/test/modules/health-env-authmode.test.ts:3"}, "properties": {"repobilityId": "5088e0655684ad5e", "scanner": "scanner-primary", "fingerprint": "dbf44dad88541641", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-737b1bee36686ff7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/test/modules/mail/_setup-env.ts:1"}, "properties": {"repobilityId": "3ba2a659bc2d48ae", "scanner": "scanner-primary", "fingerprint": "737b1bee36686ff7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4137b440d0250c92", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/api/test/modules/github/github.webhook.test.ts:77"}, "properties": {"repobilityId": "791933542eb4c90c", "scanner": "scanner-primary", "fingerprint": "4137b440d0250c92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72309c52623a06dc", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/scripts/build-release.ts:421"}, "properties": {"repobilityId": "ed4444593e7b58c0", "scanner": "scanner-primary", "fingerprint": "72309c52623a06dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d14cbe2eb77cc518", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/index.ts:28"}, "properties": {"repobilityId": "282c0b5f170eb187", "scanner": "scanner-primary", "fingerprint": "d14cbe2eb77cc518", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e55f526770f719a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/app.ts:83"}, "properties": {"repobilityId": "af04e2530ee76437", "scanner": "scanner-primary", "fingerprint": "e55f526770f719a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7961fc9028ca33f", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/config/env.ts:379"}, "properties": {"repobilityId": "d586d2172eb59a97", "scanner": "scanner-primary", "fingerprint": "e7961fc9028ca33f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8877f5cf44ee4523", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/middleware/client-ip.ts:35"}, "properties": {"repobilityId": "a7637fe32b85cb44", "scanner": "scanner-primary", "fingerprint": "8877f5cf44ee4523", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-234446412d690cac", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/middleware/auth.ts:358"}, "properties": {"repobilityId": "646e264798787222", "scanner": "scanner-primary", "fingerprint": "234446412d690cac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f72046d4ded3dadd", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/middleware/active-organization.ts:52"}, "properties": {"repobilityId": "c82a3e45d1445ec7", "scanner": "scanner-primary", "fingerprint": "f72046d4ded3dadd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-387f427875286487", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/middleware/rate-limiter.ts:61"}, "properties": {"repobilityId": "487521e38237ecc5", "scanner": "scanner-primary", "fingerprint": "387f427875286487", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-863441ceb6c2a7a4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/cloud-auth-proxy.ts:464"}, "properties": {"repobilityId": "8aa16aa1367766e3", "scanner": "scanner-primary", "fingerprint": "863441ceb6c2a7a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2692671ba612ca61", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/auth.ts:41"}, "properties": {"repobilityId": "d3a2e189a2171835", "scanner": "scanner-primary", "fingerprint": "2692671ba612ca61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6327692e1fe3aa19", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/controller-helpers.ts:216"}, "properties": {"repobilityId": "73fe35a94c8f31cb", "scanner": "scanner-primary", "fingerprint": "6327692e1fe3aa19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d37e68f8fe0190f5", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/stack-detector.ts:523"}, "properties": {"repobilityId": "9c6849981199d9b3", "scanner": "scanner-primary", "fingerprint": "d37e68f8fe0190f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdccebf63fe84e4f", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/ssh-key-path.ts:77"}, "properties": {"repobilityId": "e09053e62b87b1ff", "scanner": "scanner-primary", "fingerprint": "fdccebf63fe84e4f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e89ce4b55601c5e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/local-user.ts:42"}, "properties": {"repobilityId": "ceeae8fc0194f4bd", "scanner": "scanner-primary", "fingerprint": "8e89ce4b55601c5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02529aadf6202514", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/secure-router.ts:134"}, "properties": {"repobilityId": "4ccf038c86479da7", "scanner": "scanner-primary", "fingerprint": "02529aadf6202514", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7b1d18322fe9fc6", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/request-context.ts:54"}, "properties": {"repobilityId": "047e7c2ec0f5cccf", "scanner": "scanner-primary", "fingerprint": "d7b1d18322fe9fc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a02777bab43a363", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/compose-parser.ts:220"}, "properties": {"repobilityId": "8f301cb5f338b49a", "scanner": "scanner-primary", "fingerprint": "0a02777bab43a363", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25702ff6e2b889bc", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/lib/sse.ts:15"}, "properties": {"repobilityId": "6b8b9f37d7c37ec7", "scanner": "scanner-primary", "fingerprint": "25702ff6e2b889bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-972b6796613ea0e6", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/api/src/lib/domain-ssl.ts:125"}, "properties": {"repobilityId": "66fbf7ddaedccb33", "scanner": "scanner-primary", "fingerprint": "972b6796613ea0e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33a7b16e420cc94f", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/lib/project-root-detector.ts:446"}, "properties": {"repobilityId": "330b69f8675b22ae", "scanner": "scanner-primary", "fingerprint": "33a7b16e420cc94f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3efb3e2354a0fac", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/lib/notification-workers.ts:166"}, "properties": {"repobilityId": "72b7827c38cbcb93", "scanner": "scanner-primary", "fingerprint": "d3efb3e2354a0fac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-406c774a33b42b30", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/deployment-runtime.ts:164"}, "properties": {"repobilityId": "b3b3395a21a272a6", "scanner": "scanner-primary", "fingerprint": "406c774a33b42b30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31e91100d337043e", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/route-permission.ts:249"}, "properties": {"repobilityId": "3af7070601e0ed63", "scanner": "scanner-primary", "fingerprint": "31e91100d337043e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5f77018604f4f89", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/lib/ssh-manager.ts:157"}, "properties": {"repobilityId": "b0654dbf3eabd21c", "scanner": "scanner-primary", "fingerprint": "e5f77018604f4f89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e071903e24f65069", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/permission.ts:331"}, "properties": {"repobilityId": "05abfad39e77bbd6", "scanner": "scanner-primary", "fingerprint": "e071903e24f65069", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d4e4dbf88d0f58a", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/project-route-store.ts:118"}, "properties": {"repobilityId": "436a645988152e56", "scanner": "scanner-primary", "fingerprint": "0d4e4dbf88d0f58a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b712c33b86e1e991", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/routing-domains.ts:81"}, "properties": {"repobilityId": "3c2e3b684f4e206c", "scanner": "scanner-primary", "fingerprint": "b712c33b86e1e991", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61a38001b8a37a25", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/cloud-route.service.ts:107"}, "properties": {"repobilityId": "a8e6cc25fdd5be01", "scanner": "scanner-primary", "fingerprint": "61a38001b8a37a25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c869adbbf2934d28", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/system-jobs.ts:48"}, "properties": {"repobilityId": "fca8e50f99ed3888", "scanner": "scanner-primary", "fingerprint": "c869adbbf2934d28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a28f50451e8ee5fd", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/route-scanner.ts:96"}, "properties": {"repobilityId": "29dd4e9014e1dabd", "scanner": "scanner-primary", "fingerprint": "a28f50451e8ee5fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8dc4a9c407aebcb", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/openship-cloud.ts:31"}, "properties": {"repobilityId": "c68a77e3fa55286a", "scanner": "scanner-primary", "fingerprint": "b8dc4a9c407aebcb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7310c2797548e5c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/mail.ts:94"}, "properties": {"repobilityId": "c88c66a525f22fd9", "scanner": "scanner-primary", "fingerprint": "f7310c2797548e5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c46d1d36896a1225", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/terminal-session-manager.ts:363"}, "properties": {"repobilityId": "d059de14223f482c", "scanner": "scanner-primary", "fingerprint": "c46d1d36896a1225", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aae049d0e6d91501", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/route-apply.service.ts:106"}, "properties": {"repobilityId": "110d63666cfd141f", "scanner": "scanner-primary", "fingerprint": "aae049d0e6d91501", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70c44bc1e936b8fd", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/cloud/session.ts:80"}, "properties": {"repobilityId": "4aa6107cae5e6c1c", "scanner": "scanner-primary", "fingerprint": "70c44bc1e936b8fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61808a3a7a33626a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/cloud/transport.ts:44"}, "properties": {"repobilityId": "47556178ca8acfd6", "scanner": "scanner-primary", "fingerprint": "61808a3a7a33626a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e655fcb178d9b39", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/cloud/types.ts:25"}, "properties": {"repobilityId": "a77b52935c85b6e8", "scanner": "scanner-primary", "fingerprint": "1e655fcb178d9b39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c80bef781c440ec8", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/git-forwarding/relay.ts:170"}, "properties": {"repobilityId": "a6ab44d319ab131a", "scanner": "scanner-primary", "fingerprint": "c80bef781c440ec8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e217c7f868cb7301", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/mail/mail.service.ts:630"}, "properties": {"repobilityId": "e51d84f8bf8f2d81", "scanner": "scanner-primary", "fingerprint": "e217c7f868cb7301", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83bbd930e9f6a15b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/mail/mail.controller.ts:123"}, "properties": {"repobilityId": "749b0c22ca57b8a9", "scanner": "scanner-primary", "fingerprint": "83bbd930e9f6a15b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fa9d63fbab32666", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/mail/mail-credentials.service.ts:84"}, "properties": {"repobilityId": "833932ee237901d8", "scanner": "scanner-primary", "fingerprint": "0fa9d63fbab32666", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd7d507fa81319d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/mail/webmail/webmail-project.service.ts:377"}, "properties": {"repobilityId": "1ebe6eace1460d06", "scanner": "scanner-primary", "fingerprint": "cd7d507fa81319d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-958c9944ba8061e1", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/modules/mail/admin/psql-runner.ts:166"}, "properties": {"repobilityId": "3eb354b8fd317cf6", "scanner": "scanner-primary", "fingerprint": "958c9944ba8061e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdeae01eca83ff5a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/mail/admin/dns-scan.service.ts:290"}, "properties": {"repobilityId": "843c6864376da1c4", "scanner": "scanner-primary", "fingerprint": "fdeae01eca83ff5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d41ea54d6e8c8b6f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/mail/admin/test-mailbox.service.ts:107"}, "properties": {"repobilityId": "867296cee94306a0", "scanner": "scanner-primary", "fingerprint": "d41ea54d6e8c8b6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b08af0e404dd739d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/mail/admin/platform-mailbox.service.ts:126"}, "properties": {"repobilityId": "10285231ce9d73d4", "scanner": "scanner-primary", "fingerprint": "b08af0e404dd739d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a38a6d2460ac981", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/mail/admin/domains.service.ts:138"}, "properties": {"repobilityId": "fa5c1b631f8dd7c7", "scanner": "scanner-primary", "fingerprint": "7a38a6d2460ac981", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da26c4f5813287e4", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/mail/admin/test-email.service.ts:139"}, "properties": {"repobilityId": "4cea7f41d035d17e", "scanner": "scanner-primary", "fingerprint": "da26c4f5813287e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec12930130a82991", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/github/github.controller.ts:97"}, "properties": {"repobilityId": "e18c878928dd1910", "scanner": "scanner-primary", "fingerprint": "ec12930130a82991", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be1484f185b474a3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/github/clone-auth.ts:119"}, "properties": {"repobilityId": "dffc71a3b2488dfc", "scanner": "scanner-primary", "fingerprint": "be1484f185b474a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-694a8ccc07d59782", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/github/github.http.ts:135"}, "properties": {"repobilityId": "4d0499d4ea86df0f", "scanner": "scanner-primary", "fingerprint": "694a8ccc07d59782", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd7f52708bb5d316", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/github/github.service.ts:758"}, "properties": {"repobilityId": "878a3dd2538659fe", "scanner": "scanner-primary", "fingerprint": "dd7f52708bb5d316", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e93410df72ce1b2", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/github/webhook-check-run.ts:81"}, "properties": {"repobilityId": "40bf5476e3dd970e", "scanner": "scanner-primary", "fingerprint": "7e93410df72ce1b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75006e2a9e40e782", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/api/src/modules/github/webhook-installation.ts:17"}, "properties": {"repobilityId": "f6f04ce74ffd72ed", "scanner": "scanner-primary", "fingerprint": "75006e2a9e40e782", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9fe336575a6ec64b", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/github/github.token.ts:124"}, "properties": {"repobilityId": "d4525d15b270203d", "scanner": "scanner-primary", "fingerprint": "9fe336575a6ec64b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dbe8edd4467bb30b", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/github/github.local-auth.ts:54"}, "properties": {"repobilityId": "cc4f429e890c642d", "scanner": "scanner-primary", "fingerprint": "dbe8edd4467bb30b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9904cc072dd2682", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/api/src/modules/github/github.types.ts:243"}, "properties": {"repobilityId": "c162f0fb0c2ed7e6", "scanner": "scanner-primary", "fingerprint": "a9904cc072dd2682", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd70b6363050775f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/github/webhook-push.ts:106"}, "properties": {"repobilityId": "e0c7b6416bbaeb0f", "scanner": "scanner-primary", "fingerprint": "fd70b6363050775f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9299ea6172ecc16", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/github/github.auth.ts:241"}, "properties": {"repobilityId": "b4f2da6d1f6ae8a2", "scanner": "scanner-primary", "fingerprint": "c9299ea6172ecc16", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45d85f5db845dc59", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/modules/github/github.auth.ts:205"}, "properties": {"repobilityId": "fe7c2d4f20efb72c", "scanner": "scanner-primary", "fingerprint": "45d85f5db845dc59", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6fb63df4ef0ebee8", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/github/sources/app-source.ts:59"}, "properties": {"repobilityId": "c0cc271352b9745e", "scanner": "scanner-primary", "fingerprint": "6fb63df4ef0ebee8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31f4e8cdae680cac", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/auth/auth.routes.ts:33"}, "properties": {"repobilityId": "e97ffe8e7b213aa4", "scanner": "scanner-primary", "fingerprint": "31f4e8cdae680cac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5f4950d65ee47cc", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/auth/auth.controller.ts:151"}, "properties": {"repobilityId": "8d69ba0b3d3691e0", "scanner": "scanner-primary", "fingerprint": "f5f4950d65ee47cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fd27f7362d37a12", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/projects/project.controller.ts:153"}, "properties": {"repobilityId": "4bdda14591d172e1", "scanner": "scanner-primary", "fingerprint": "0fd27f7362d37a12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-875b36cca5e0c51b", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/projects/project-crud.service.ts:291"}, "properties": {"repobilityId": "b2bf9a23e7c2a7f7", "scanner": "scanner-primary", "fingerprint": "875b36cca5e0c51b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12ba48d45c7c226e", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/projects/project-teardown.ts:211"}, "properties": {"repobilityId": "6472d7ec0f07d6bb", "scanner": "scanner-primary", "fingerprint": "12ba48d45c7c226e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28977c8297c49811", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/projects/project-cleanup.service.ts:188"}, "properties": {"repobilityId": "6d7c032bd50d85ff", "scanner": "scanner-primary", "fingerprint": "28977c8297c49811", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0710363b896e4b1", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/projects/project.routes.ts:183"}, "properties": {"repobilityId": "a3dd35e9ee51889b", "scanner": "scanner-primary", "fingerprint": "f0710363b896e4b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c210b51f28d4a7a1", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/projects/transfer.service.ts:174"}, "properties": {"repobilityId": "078f0e67805577d1", "scanner": "scanner-primary", "fingerprint": "c210b51f28d4a7a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9861c65e39d73b30", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/projects/folder/folder.service.ts:146"}, "properties": {"repobilityId": "dcba22c0ddeed4c7", "scanner": "scanner-primary", "fingerprint": "9861c65e39d73b30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3add27bcaeffec73", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/health/health.routes.ts:81"}, "properties": {"repobilityId": "ce3ddd2e245d8032", "scanner": "scanner-primary", "fingerprint": "3add27bcaeffec73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bb127d9f46ec208", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/service-terminal/service-terminal.controller.ts:119"}, "properties": {"repobilityId": "ae3aeb0afe468436", "scanner": "scanner-primary", "fingerprint": "9bb127d9f46ec208", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f26b631136d1d3f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/mcp/mcp.routes.ts:73"}, "properties": {"repobilityId": "d38517884bb26881", "scanner": "scanner-primary", "fingerprint": "f26b631136d1d3f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-269f191c35d5d2d0", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/migration/migration.orchestrator.ts:182"}, "properties": {"repobilityId": "664716d4e9c7b6c6", "scanner": "scanner-primary", "fingerprint": "269f191c35d5d2d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-305c33d89a68b9f1", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/migration/docker-reconcile.ts:261"}, "properties": {"repobilityId": "f87957c663eb702e", "scanner": "scanner-primary", "fingerprint": "305c33d89a68b9f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45952a49271770f8", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/migration/migrate.service.ts:165"}, "properties": {"repobilityId": "3d80e06bc0db1427", "scanner": "scanner-primary", "fingerprint": "45952a49271770f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e584340cb7bca77", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/cloud/cloud-edge-proxy.service.ts:34"}, "properties": {"repobilityId": "a6ddbbf3221708b1", "scanner": "scanner-primary", "fingerprint": "9e584340cb7bca77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ebebf09135ba69a9", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/cloud/cloud-github.service.ts:146"}, "properties": {"repobilityId": "9b3fac38cf81b089", "scanner": "scanner-primary", "fingerprint": "ebebf09135ba69a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5fbd573d17d3d60", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/cloud/cloud-session-auth.ts:45"}, "properties": {"repobilityId": "f1b85a09cca98c56", "scanner": "scanner-primary", "fingerprint": "b5fbd573d17d3d60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71c7f1ce2c53706a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/cloud/cloud-saas.routes.ts:17"}, "properties": {"repobilityId": "af21ffe4666b5c4d", "scanner": "scanner-primary", "fingerprint": "71c7f1ce2c53706a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8371779d64eec8e3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/cloud/cloud-saas.controller.ts:259"}, "properties": {"repobilityId": "fa2c3ebc63e77014", "scanner": "scanner-primary", "fingerprint": "8371779d64eec8e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-555a203b0e52fa0c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/billing/billing-org-cleanup.ts:94"}, "properties": {"repobilityId": "b1d38483731fc907", "scanner": "scanner-primary", "fingerprint": "555a203b0e52fa0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0b5963187b00c7f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/billing/billing-local.controller.ts:182"}, "properties": {"repobilityId": "82169c420ddeb3a6", "scanner": "scanner-primary", "fingerprint": "a0b5963187b00c7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03785dee18e367d5", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/modules/billing/billing-local.routes.ts:30"}, "properties": {"repobilityId": "226f79d21b99a158", "scanner": "scanner-primary", "fingerprint": "03785dee18e367d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8549f602ca2891ba", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/billing/billing.webhooks.ts:416"}, "properties": {"repobilityId": "b1f1b05163ed510b", "scanner": "scanner-primary", "fingerprint": "8549f602ca2891ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0cf09891049dcc17", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/billing/billing.service.ts:129"}, "properties": {"repobilityId": "77e9eb531e3e727a", "scanner": "scanner-primary", "fingerprint": "0cf09891049dcc17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c70db36b85a1adb4", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/billing/billing-anniversary.cron.ts:184"}, "properties": {"repobilityId": "f8324f389660b2b4", "scanner": "scanner-primary", "fingerprint": "c70db36b85a1adb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64545ef64d47a006", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/preflight.ts:680"}, "properties": {"repobilityId": "5822e01caf4b8437", "scanner": "scanner-primary", "fingerprint": "64545ef64d47a006", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91c1a41cc14b6e0c", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/deployments/terminal-logs.ts:75"}, "properties": {"repobilityId": "bf800334bf07d90f", "scanner": "scanner-primary", "fingerprint": "91c1a41cc14b6e0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-490541a651be61ad", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/ssl.service.ts:56"}, "properties": {"repobilityId": "c09c7a3cbb013a9b", "scanner": "scanner-primary", "fingerprint": "490541a651be61ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c44c8d418ccf64b5", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/deployment-lifecycle.ts:303"}, "properties": {"repobilityId": "88c1f032e2f3ab2b", "scanner": "scanner-primary", "fingerprint": "c44c8d418ccf64b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a42376b00cb37d2", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/deployments/build-status.service.ts:154"}, "properties": {"repobilityId": "d2d911b6c2e823a1", "scanner": "scanner-primary", "fingerprint": "8a42376b00cb37d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3186b172f3121729", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/build-pipeline.ts:72"}, "properties": {"repobilityId": "b73147c5babfa612", "scanner": "scanner-primary", "fingerprint": "3186b172f3121729", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e51f97aeae143ce1", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/deployments/build.service.ts:284"}, "properties": {"repobilityId": "a2fc9200261c9c01", "scanner": "scanner-primary", "fingerprint": "e51f97aeae143ce1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35526646ed68dd86", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/deployments/deployment.controller.ts:72"}, "properties": {"repobilityId": "eac3abc659e471c8", "scanner": "scanner-primary", "fingerprint": "35526646ed68dd86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c2c041989df899f", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/deployments/deployment.service.ts:153"}, "properties": {"repobilityId": "bd08a2a3463ea478", "scanner": "scanner-primary", "fingerprint": "1c2c041989df899f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a3a46d23f24b51e", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/deployments/prepare.service.ts:350"}, "properties": {"repobilityId": "8ecc90e8fa44fbb5", "scanner": "scanner-primary", "fingerprint": "3a3a46d23f24b51e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb641ea4ef0fc8c0", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/deployments/clone-plan.ts:70"}, "properties": {"repobilityId": "0db202237df7b258", "scanner": "scanner-primary", "fingerprint": "cb641ea4ef0fc8c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76704d77bf07b94d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/compose/deploy.service.ts:223"}, "properties": {"repobilityId": "539bc423d18d8b87", "scanner": "scanner-primary", "fingerprint": "76704d77bf07b94d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-deedf384bb0ba4f9", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/api/src/modules/deployments/compose/build.service.ts:155"}, "properties": {"repobilityId": "fc89345c26978e32", "scanner": "scanner-primary", "fingerprint": "deedf384bb0ba4f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91f67e5a8a60d4fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/compose/pipeline.ts:159"}, "properties": {"repobilityId": "62b9cdaee0868721", "scanner": "scanner-primary", "fingerprint": "91f67e5a8a60d4fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4ea9378eda4e131", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/deployments/rollback/rollback-orchestrator.ts:199"}, "properties": {"repobilityId": "fcbdab5beb9431b3", "scanner": "scanner-primary", "fingerprint": "e4ea9378eda4e131", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22b4834e005dd642", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/terminal/terminal.controller.ts:120"}, "properties": {"repobilityId": "5f23375530650bf0", "scanner": "scanner-primary", "fingerprint": "22b4834e005dd642", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a27a1da8014f38b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/terminal/terminal.routes.ts:44"}, "properties": {"repobilityId": "76bfc12b2b82a7ae", "scanner": "scanner-primary", "fingerprint": "7a27a1da8014f38b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-069ba96b02564588", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/backups/backup.routes.ts:19"}, "properties": {"repobilityId": "799433cd851d6c5b", "scanner": "scanner-primary", "fingerprint": "069ba96b02564588", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4090cdf35f898aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/backups/retention-prune.ts:63"}, "properties": {"repobilityId": "4c122c72f1c98948", "scanner": "scanner-primary", "fingerprint": "e4090cdf35f898aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ad0fd58571e5dce", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/backups/backup.orchestrator.ts:100"}, "properties": {"repobilityId": "887db1634e393aba", "scanner": "scanner-primary", "fingerprint": "0ad0fd58571e5dce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a539144ccf21e89c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/backups/restore.orchestrator.ts:131"}, "properties": {"repobilityId": "1e8fb1d76c01f608", "scanner": "scanner-primary", "fingerprint": "a539144ccf21e89c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d9a4c3cd821e710", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/tokens/token.controller.ts:198"}, "properties": {"repobilityId": "b5852c7995fb8e84", "scanner": "scanner-primary", "fingerprint": "0d9a4c3cd821e710", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b33fb9f6fa11e9f3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/system/server-check.controller.ts:152"}, "properties": {"repobilityId": "b1574c50bbb0b59b", "scanner": "scanner-primary", "fingerprint": "b33fb9f6fa11e9f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0b50c72d3650474", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/system/setup.controller.ts:112"}, "properties": {"repobilityId": "45a5f701808100d1", "scanner": "scanner-primary", "fingerprint": "f0b50c72d3650474", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc03a20e9c33d9cf", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/system/self-app.controller.ts:135"}, "properties": {"repobilityId": "f5f81082b466c0ea", "scanner": "scanner-primary", "fingerprint": "cc03a20e9c33d9cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5139d93dee6147b2", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/modules/system/system.routes.ts:67"}, "properties": {"repobilityId": "1ddb1e04df1c183a", "scanner": "scanner-primary", "fingerprint": "5139d93dee6147b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-320c1c0c9acafb66", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/system/migration/migrate-instance.service.ts:100"}, "properties": {"repobilityId": "0c54d7ebbecc0e76", "scanner": "scanner-primary", "fingerprint": "320c1c0c9acafb66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-799b0ff86648c5dc", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/system/migration/migrate-to-cloud.service.ts:98"}, "properties": {"repobilityId": "3ecbe08b2117c1cc", "scanner": "scanner-primary", "fingerprint": "799b0ff86648c5dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79b30e137dd3b262", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/system/migration/switch-back.service.ts:112"}, "properties": {"repobilityId": "9a4615cec19f7d4c", "scanner": "scanner-primary", "fingerprint": "79b30e137dd3b262", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-328d6dd5ad4251e3", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/modules/system/migration/db-migrate-remote.service.ts:43"}, "properties": {"repobilityId": "e6dc98b09d10a1a7", "scanner": "scanner-primary", "fingerprint": "328d6dd5ad4251e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed85ee2e72c93df2", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/system/migration/migrate-to-tunnel.service.ts:147"}, "properties": {"repobilityId": "fd60e40e7b92ab13", "scanner": "scanner-primary", "fingerprint": "ed85ee2e72c93df2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5620923bec917979", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/permissions/permissions.routes.ts:47"}, "properties": {"repobilityId": "c3ea5af8a7df9f64", "scanner": "scanner-primary", "fingerprint": "5620923bec917979", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb49d16b0598f78d", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/modules/permissions/permissions.controller.ts:221"}, "properties": {"repobilityId": "757682b9fa4b800a", "scanner": "scanner-primary", "fingerprint": "fb49d16b0598f78d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca782f9a8f2bc8bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/services/service.schema.ts:125"}, "properties": {"repobilityId": "89f95e10f970b660", "scanner": "scanner-primary", "fingerprint": "ca782f9a8f2bc8bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-366d14c5e8f5ddd7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/services/service.service.ts:193"}, "properties": {"repobilityId": "0ac7ced00bc79d8e", "scanner": "scanner-primary", "fingerprint": "366d14c5e8f5ddd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb9d5515b060a04b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/domains/project-route.service.ts:343"}, "properties": {"repobilityId": "faf0f288d75db4ec", "scanner": "scanner-primary", "fingerprint": "cb9d5515b060a04b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf28b19f2ceb9df1", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/modules/domains/domain.service.ts:71"}, "properties": {"repobilityId": "36b809786e4037ac", "scanner": "scanner-primary", "fingerprint": "cf28b19f2ceb9df1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56f02889864d2530", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/modules/domains/domain.controller.ts:73"}, "properties": {"repobilityId": "4612b07941d23586", "scanner": "scanner-primary", "fingerprint": "56f02889864d2530", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d2cf7b55fb7c9f5", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/dashboard/next.config.mjs:6"}, "properties": {"repobilityId": "365d6df974046069", "scanner": "scanner-primary", "fingerprint": "5d2cf7b55fb7c9f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5af5d1ef15d03219", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/scripts/load-env.mjs:3"}, "properties": {"repobilityId": "919ac3bbb3e3c6f5", "scanner": "scanner-primary", "fingerprint": "5af5d1ef15d03219", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a406fa98f19df60e", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/src/proxy.ts:23"}, "properties": {"repobilityId": "5300f8e3f831daf0", "scanner": "scanner-primary", "fingerprint": "a406fa98f19df60e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab4d5da726e585d8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/utils/deploymentPhaseDetector.ts:45"}, "properties": {"repobilityId": "64888626ee6550b2", "scanner": "scanner-primary", "fingerprint": "ab4d5da726e585d8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b4bfe738ee1354d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/utils/authWindow.ts:101"}, "properties": {"repobilityId": "c766184b75bb44da", "scanner": "scanner-primary", "fingerprint": "b4bfe738ee1354d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cce36a686d2da040", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/src/components/sidebar.tsx:126"}, "properties": {"repobilityId": "ba228eae5b266fec", "scanner": "scanner-primary", "fingerprint": "cce36a686d2da040", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8285724dfd79d4b0", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/dashboard/src/components/AppLogo.tsx:77"}, "properties": {"repobilityId": "d66f9e44bbc9ada0", "scanner": "scanner-primary", "fingerprint": "8285724dfd79d4b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3730bef83a1417c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/components/updates/useUpdates.ts:184"}, "properties": {"repobilityId": "787c7e70d95bad07", "scanner": "scanner-primary", "fingerprint": "3730bef83a1417c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6657d75336aa8b02", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/src/components/cloud/CloudConnectionGate.tsx:37"}, "properties": {"repobilityId": "cd179378107c6cfd", "scanner": "scanner-primary", "fingerprint": "6657d75336aa8b02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-809a8d3517f300a3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/components/billing/BillingUsage.tsx:198"}, "properties": {"repobilityId": "3640ba1bb8a62842", "scanner": "scanner-primary", "fingerprint": "809a8d3517f300a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38d1e7b7c93487a8", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/src/components/terminal/ServerTerminal.tsx:264"}, "properties": {"repobilityId": "bd5a2ed09a5de04c", "scanner": "scanner-primary", "fingerprint": "38d1e7b7c93487a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4238332624105777", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/components/terminal/ServerTerminalTabs.tsx:112"}, "properties": {"repobilityId": "6b5ac7123e675d06", "scanner": "scanner-primary", "fingerprint": "4238332624105777", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63a639f257018b72", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/dashboard/src/components/import-project/MonorepoApps.tsx:128"}, "properties": {"repobilityId": "6c952ab6be00959f", "scanner": "scanner-primary", "fingerprint": "63a639f257018b72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce4e1d92ca5fe425", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/dashboard/src/components/import-project/TerminalSurface.tsx:110"}, "properties": {"repobilityId": "9768ead19f7622c1", "scanner": "scanner-primary", "fingerprint": "ce4e1d92ca5fe425", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36da0065716da570", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/src/components/import-project/ComposeServices.tsx:89"}, "properties": {"repobilityId": "72d4e96d27f6a1eb", "scanner": "scanner-primary", "fingerprint": "36da0065716da570", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35dbf0612ace2e51", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/components/import-project/compose/ComposeDeploymentProcessing.tsx:101"}, "properties": {"repobilityId": "c7b3b66b0ae50a4f", "scanner": "scanner-primary", "fingerprint": "35dbf0612ace2e51", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb54259137944928", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/layout.tsx:57"}, "properties": {"repobilityId": "248974049de7a611", "scanner": "scanner-primary", "fingerprint": "fb54259137944928", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0dc9f98c2bc4015b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/settings/_components/EmailSettings.tsx:105"}, "properties": {"repobilityId": "b2ff020dbe1025e8", "scanner": "scanner-primary", "fingerprint": "0dc9f98c2bc4015b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d62e44b1d27b5651", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/settings/_components/TeamTab.tsx:350"}, "properties": {"repobilityId": "6c12751379d265b9", "scanner": "scanner-primary", "fingerprint": "d62e44b1d27b5651", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87781e74fc48a491", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/settings/_components/GitHubConnection.tsx:35"}, "properties": {"repobilityId": "871feef9b00e7b4e", "scanner": "scanner-primary", "fingerprint": "87781e74fc48a491", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97410a2c32a35b9c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/library/page.tsx:59"}, "properties": {"repobilityId": "2e139996cee9e907", "scanner": "scanner-primary", "fingerprint": "97410a2c32a35b9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19a0d6691b30dc71", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/library/components/LibrarySidebar.tsx:44"}, "properties": {"repobilityId": "fd3edef52bd38d1e", "scanner": "scanner-primary", "fingerprint": "19a0d6691b30dc71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82e3c614552fb9b0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/ServicesTab.tsx:143"}, "properties": {"repobilityId": "671cb5bd81d38d32", "scanner": "scanner-primary", "fingerprint": "82e3c614552fb9b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aadcec844d088226", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainSettings.tsx:264"}, "properties": {"repobilityId": "2e556d7c4dd3895e", "scanner": "scanner-primary", "fingerprint": "aadcec844d088226", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac8b26b7c653593e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainSettings.tsx:445"}, "properties": {"repobilityId": "b68916609a435cb5", "scanner": "scanner-primary", "fingerprint": "ac8b26b7c653593e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6557de8b8ccd28f0", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/BuildSettings.tsx:98"}, "properties": {"repobilityId": "0247faab383d3426", "scanner": "scanner-primary", "fingerprint": "6557de8b8ccd28f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36bcd8778c9d98c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/OverviewTab.tsx:74"}, "properties": {"repobilityId": "8c8f5cf327d0252f", "scanner": "scanner-primary", "fingerprint": "36bcd8778c9d98c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66d583b7db829619", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/LogsSettings.tsx:57"}, "properties": {"repobilityId": "51c44280f819d78e", "scanner": "scanner-primary", "fingerprint": "66d583b7db829619", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d22f3f17fe926c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/services/ServiceDetailPanel.tsx:143"}, "properties": {"repobilityId": "d4d00f993642bb34", "scanner": "scanner-primary", "fingerprint": "6d22f3f17fe926c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9db80d91c7a50035", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/components/services/AddServiceModal.tsx:233"}, "properties": {"repobilityId": "a642fbb433a1e069", "scanner": "scanner-primary", "fingerprint": "9db80d91c7a50035", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9aadf474f24e6fb4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/[[...slug]]/page.tsx:528"}, "properties": {"repobilityId": "836b6cdafeeae727", "scanner": "scanner-primary", "fingerprint": "9aadf474f24e6fb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8d000adccb186a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/projects/[id]/[[...slug]]/layout.tsx:14"}, "properties": {"repobilityId": "a8a7906cd4788db1", "scanner": "scanner-primary", "fingerprint": "d8d000adccb186a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afd8dbd8d0282b3a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/apps/new/page.tsx:72"}, "properties": {"repobilityId": "58341008082d7fe3", "scanner": "scanner-primary", "fingerprint": "afd8dbd8d0282b3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-072ddf6e1704430f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/emails/page.tsx:34"}, "properties": {"repobilityId": "35c069bac9aea134", "scanner": "scanner-primary", "fingerprint": "072ddf6e1704430f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ffb654b1b3de5ba", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/emails/_components/admin/domains-tab.tsx:71"}, "properties": {"repobilityId": "2e0e312a1b2b57fb", "scanner": "scanner-primary", "fingerprint": "8ffb654b1b3de5ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01bafd68c6ce319c", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/page.tsx:114"}, "properties": {"repobilityId": "a2d906d28e91015d", "scanner": "scanner-primary", "fingerprint": "01bafd68c6ce319c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9660ea12e617c01", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/DeployTargetStep.tsx:256"}, "properties": {"repobilityId": "20dbff5ccb0d920d", "scanner": "scanner-primary", "fingerprint": "e9660ea12e617c01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5ba8c892d56b073", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/Sidebar.tsx:239"}, "properties": {"repobilityId": "63c9efaa3e8bbda8", "scanner": "scanner-primary", "fingerprint": "c5ba8c892d56b073", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c81ba8d04f54bce1", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/(dashboard)/backups/_components/CreateDestinationModal.tsx:43"}, "properties": {"repobilityId": "ccee48f2968a7cad", "scanner": "scanner-primary", "fingerprint": "c81ba8d04f54bce1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48855368374f44fc", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/dashboard/src/app/(dashboard)/servers/new/page.tsx:124"}, "properties": {"repobilityId": "adc8ac15f1c27a2e", "scanner": "scanner-primary", "fingerprint": "48855368374f44fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-545961bd013fa10e", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/src/app/mcp/authorize/page.tsx:97"}, "properties": {"repobilityId": "5c5428008ed2c012", "scanner": "scanner-primary", "fingerprint": "545961bd013fa10e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cd390e8aba26efb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/app/mcp/authorize/page.tsx:63"}, "properties": {"repobilityId": "532abcfbffb275c6", "scanner": "scanner-primary", "fingerprint": "9cd390e8aba26efb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-470376740c9023b9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/app/cloud-authorize/page.tsx:140"}, "properties": {"repobilityId": "bd4017e05fbc85b0", "scanner": "scanner-primary", "fingerprint": "470376740c9023b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d4f7316b2e5cb6b", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/dashboard/src/app/(auth)/layout.tsx:28"}, "properties": {"repobilityId": "b8fdfa9f0ca8ffec", "scanner": "scanner-primary", "fingerprint": "9d4f7316b2e5cb6b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f903c9e81f291ed", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/dashboard/src/app/accept-invite/[id]/page.tsx:111"}, "properties": {"repobilityId": "ae24192f1ece58c8", "scanner": "scanner-primary", "fingerprint": "9f903c9e81f291ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9b81ae8eb2c04e0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/lib/sseClient.ts:90"}, "properties": {"repobilityId": "2f724640798f780d", "scanner": "scanner-primary", "fingerprint": "e9b81ae8eb2c04e0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f8a143d8811c9f6f", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/dashboard/src/lib/api/github.ts:8"}, "properties": {"repobilityId": "cdb81033f04d3da0", "scanner": "scanner-primary", "fingerprint": "f8a143d8811c9f6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fad1f2e6bbb05836", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/lib/api/client.ts:110"}, "properties": {"repobilityId": "d8c276c0ed9ca2a0", "scanner": "scanner-primary", "fingerprint": "fad1f2e6bbb05836", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b599167e82393f50", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/lib/api/urls.ts:81"}, "properties": {"repobilityId": "797ec1a52f671e8f", "scanner": "scanner-primary", "fingerprint": "b599167e82393f50", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d77786ef28de64f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/lib/api/mail.ts:394"}, "properties": {"repobilityId": "ed3728fbf2c460bf", "scanner": "scanner-primary", "fingerprint": "9d77786ef28de64f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0be35ba8f94f5f19", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/dashboard/src/lib/server/api.ts:201"}, "properties": {"repobilityId": "ebbc398eea7624eb", "scanner": "scanner-primary", "fingerprint": "0be35ba8f94f5f19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc8ee16d56743ffd", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/lib/server/session.ts:205"}, "properties": {"repobilityId": "2297fc2ce0ef4fc7", "scanner": "scanner-primary", "fingerprint": "cc8ee16d56743ffd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e48f191bc703e41", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/hooks/useSSEConnection.ts:491"}, "properties": {"repobilityId": "6db0adcfc342e021", "scanner": "scanner-primary", "fingerprint": "7e48f191bc703e41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1694a4e922d0f207", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/dashboard/src/hooks/usePtyConnection.ts:283"}, "properties": {"repobilityId": "7b2414c56bfbf729", "scanner": "scanner-primary", "fingerprint": "1694a4e922d0f207", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fde7ec68cb51b2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/hooks/useProjectEndpoints.ts:129"}, "properties": {"repobilityId": "7290189a94461bb0", "scanner": "scanner-primary", "fingerprint": "5fde7ec68cb51b2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70652c602d0665d3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/src/hooks/useProjectEndpoints.ts:59"}, "properties": {"repobilityId": "7668a9f5f1e23742", "scanner": "scanner-primary", "fingerprint": "70652c602d0665d3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-549bf9568fd39825", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/src/context/GitHubContext.tsx:182"}, "properties": {"repobilityId": "876211bef1acd228", "scanner": "scanner-primary", "fingerprint": "549bf9568fd39825", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-802a4eee835f1c29", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/dashboard/src/context/ProjectSettingsContext.tsx:296"}, "properties": {"repobilityId": "061349dcf20b3446", "scanner": "scanner-primary", "fingerprint": "802a4eee835f1c29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b7be6124e562b04", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/src/context/CloudContext.tsx:181"}, "properties": {"repobilityId": "ad488eaf8f4e26ce", "scanner": "scanner-primary", "fingerprint": "6b7be6124e562b04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-358f3ab2e6552262", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/dashboard/src/context/deployment/mode-config.ts:357"}, "properties": {"repobilityId": "d465cf7a37cda476", "scanner": "scanner-primary", "fingerprint": "358f3ab2e6552262", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d7a3ba1f97e2b8e", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/dashboard/src/context/deployment/useDeploymentBuild.tsx:413"}, "properties": {"repobilityId": "aa8c9048301f7cc4", "scanner": "scanner-primary", "fingerprint": "1d7a3ba1f97e2b8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a7d86ffa431b221", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/dashboard/src/context/deployment/useDeploymentConfig.ts:244"}, "properties": {"repobilityId": "3f12e0d770578673", "scanner": "scanner-primary", "fingerprint": "8a7d86ffa431b221", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-147792d93ce04567", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/cli/tsup.config.ts:16"}, "properties": {"repobilityId": "041ebb07d6158429", "scanner": "scanner-primary", "fingerprint": "147792d93ce04567", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3e54fa6d3b0650d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/cli/src/commands/project.ts:525"}, "properties": {"repobilityId": "bdf47cf2437394f4", "scanner": "scanner-primary", "fingerprint": "e3e54fa6d3b0650d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ab3050791b306e8", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/cli/src/commands/wizard.ts:186"}, "properties": {"repobilityId": "6afe648922f00941", "scanner": "scanner-primary", "fingerprint": "0ab3050791b306e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef840ef7575e3c46", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/cli/src/commands/up.ts:398"}, "properties": {"repobilityId": "883e9b2820329fbd", "scanner": "scanner-primary", "fingerprint": "ef840ef7575e3c46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8bf21c06a310922e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/cli/src/lib/ports.ts:139"}, "properties": {"repobilityId": "25a3b1d35f0154fe", "scanner": "scanner-primary", "fingerprint": "8bf21c06a310922e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36b859e5ad57c880", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/cli/src/lib/service.ts:267"}, "properties": {"repobilityId": "2c5c191b6f44bf91", "scanner": "scanner-primary", "fingerprint": "36b859e5ad57c880", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b85f6252dff52fb2", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/forge.config.js:20"}, "properties": {"repobilityId": "2edba2e8b29a5811", "scanner": "scanner-primary", "fingerprint": "b85f6252dff52fb2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c357e4c006c8a81a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/main/updater.ts:114"}, "properties": {"repobilityId": "753670380aa3012f", "scanner": "scanner-primary", "fingerprint": "c357e4c006c8a81a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30f88864e6bd67cc", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/desktop/src/main/services.ts:293"}, "properties": {"repobilityId": "7c8f72cd5ea07518", "scanner": "scanner-primary", "fingerprint": "30f88864e6bd67cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9879f99a963f82cd", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/app/(site)/layout.tsx:101"}, "properties": {"repobilityId": "a61697582c7de263", "scanner": "scanner-primary", "fingerprint": "9879f99a963f82cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-854f02a3e3a65e51", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/app/(site)/download/page.tsx:110"}, "properties": {"repobilityId": "dd8015b29b8cd806", "scanner": "scanner-primary", "fingerprint": "854f02a3e3a65e51", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-03c2ba3e66d1fea4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/app/(docs)/layout.tsx:4"}, "properties": {"repobilityId": "cf32631fe8af20c7", "scanner": "scanner-primary", "fingerprint": "03c2ba3e66d1fea4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba10b9a65197a7f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/hooks/use-platform.ts:57"}, "properties": {"repobilityId": "19f50e68e2b2438c", "scanner": "scanner-primary", "fingerprint": "ba10b9a65197a7f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46be4a8498da9be4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/update-geoip.mjs:27"}, "properties": {"repobilityId": "f96475f74111b4be", "scanner": "scanner-primary", "fingerprint": "46be4a8498da9be4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d307521212d3e57c", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/release.ts:62"}, "properties": {"repobilityId": "9e40667f6330d3a6", "scanner": "scanner-primary", "fingerprint": "d307521212d3e57c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48ffe24ecdf44a9a", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/adapters/test/nginx-geo-whitelist.test.ts:5"}, "properties": {"repobilityId": "4f8119c71a550e05", "scanner": "scanner-primary", "fingerprint": "48ffe24ecdf44a9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93c2cb09d26cee57", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/adapters/scripts/embed-lua.ts:42"}, "properties": {"repobilityId": "affc6f134da14dda", "scanner": "scanner-primary", "fingerprint": "93c2cb09d26cee57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2302e55836bc836b", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/adapters/src/backup/common/credentials.ts:20"}, "properties": {"repobilityId": "f0972d2255b04029", "scanner": "scanner-primary", "fingerprint": "2302e55836bc836b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35284e4ecd69e058", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/adapters/src/backup/executors/cloud.ts:156"}, "properties": {"repobilityId": "37a219f539b32fd4", "scanner": "scanner-primary", "fingerprint": "35284e4ecd69e058", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4bb276613e4b785d", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/adapters/src/backup/executors/docker.ts:82"}, "properties": {"repobilityId": "9eb2210529b38950", "scanner": "scanner-primary", "fingerprint": "4bb276613e4b785d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6922935b55c77d52", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/adapters/src/backup/producers/volume.ts:115"}, "properties": {"repobilityId": "bd08cf11a2546f22", "scanner": "scanner-primary", "fingerprint": "6922935b55c77d52", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca359f7f7c76c066", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/adapters/src/backup/producers/pg-dump.ts:110"}, "properties": {"repobilityId": "10c493bdef2f0b72", "scanner": "scanner-primary", "fingerprint": "ca359f7f7c76c066", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17ac9ddaea7fcd3a", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/adapters/src/runtime/cloud-deploy-static.test.ts:7"}, "properties": {"repobilityId": "0dbc08da014d366e", "scanner": "scanner-primary", "fingerprint": "17ac9ddaea7fcd3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b76412e34396863", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/adapters/src/runtime/route-registration.ts:102"}, "properties": {"repobilityId": "de5a9cf0b6112dc7", "scanner": "scanner-primary", "fingerprint": "7b76412e34396863", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b78dda7936f5b682", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/adapters/src/runtime/bare.ts:184"}, "properties": {"repobilityId": "9b3aec0183f79e44", "scanner": "scanner-primary", "fingerprint": "b78dda7936f5b682", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd5f5072ac49bd9c", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/adapters/src/runtime/cloud.ts:424"}, "properties": {"repobilityId": "3f2fa04a8b2a302e", "scanner": "scanner-primary", "fingerprint": "dd5f5072ac49bd9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3b4737bc40da585", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/adapters/src/runtime/docker-build-plan.ts:250"}, "properties": {"repobilityId": "c14f602de3890cc7", "scanner": "scanner-primary", "fingerprint": "b3b4737bc40da585", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c84fdde6ec44b040", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/adapters/src/runtime/build-pipeline.ts:202"}, "properties": {"repobilityId": "3714b8a604445213", "scanner": "scanner-primary", "fingerprint": "c84fdde6ec44b040", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2436435dd4a0217", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/adapters/src/runtime/docker.ts:702"}, "properties": {"repobilityId": "ba5e2d069da25ee9", "scanner": "scanner-primary", "fingerprint": "f2436435dd4a0217", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab5c7a50a4847557", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/adapters/src/runtime/types.ts:485"}, "properties": {"repobilityId": "3d4a3500786356b9", "scanner": "scanner-primary", "fingerprint": "ab5c7a50a4847557", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f3d86e6b6266fe1", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/adapters/src/runtime/cloud/compose.ts:533"}, "properties": {"repobilityId": "a1cddfc539e3e8a2", "scanner": "scanner-primary", "fingerprint": "4f3d86e6b6266fe1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-873b8c23014b1dfc", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/adapters/src/system/catalog.ts:98"}, "properties": {"repobilityId": "a9c6bc221fe516f6", "scanner": "scanner-primary", "fingerprint": "873b8c23014b1dfc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41404cae9de28be6", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/adapters/src/system/installer.ts:356"}, "properties": {"repobilityId": "951e8194213c9fb0", "scanner": "scanner-primary", "fingerprint": "41404cae9de28be6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2db924306f11eef", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/adapters/src/system/system-ssh-executor.ts:498"}, "properties": {"repobilityId": "992c74e1dc56b9d0", "scanner": "scanner-primary", "fingerprint": "a2db924306f11eef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95437de1122f29c9", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/adapters/src/system/local-executor.ts:53"}, "properties": {"repobilityId": "e16311214a62fa4b", "scanner": "scanner-primary", "fingerprint": "95437de1122f29c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2462113ee96c30f3", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/adapters/src/system/remote-transfer.ts:251"}, "properties": {"repobilityId": "a945b9f6f8afae18", "scanner": "scanner-primary", "fingerprint": "2462113ee96c30f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44c4186ed470eb26", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/adapters/src/system/errors.ts:18"}, "properties": {"repobilityId": "1420f683374fe824", "scanner": "scanner-primary", "fingerprint": "44c4186ed470eb26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-163315ca846e3dcc", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/adapters/src/system/modules/catalog-embedded.ts:1"}, "properties": {"repobilityId": "dd57c0a14cc1dd4d", "scanner": "scanner-primary", "fingerprint": "163315ca846e3dcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb5e38651f8fbda1", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/adapters/src/toolchain/catalog.ts:20"}, "properties": {"repobilityId": "105a551070bd22e9", "scanner": "scanner-primary", "fingerprint": "eb5e38651f8fbda1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76b3ef6dfa2d47c4", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/adapters/src/infra/openresty-lua.ts:508"}, "properties": {"repobilityId": "b69e71c502b46bd6", "scanner": "scanner-primary", "fingerprint": "76b3ef6dfa2d47c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17c40099da11dcb9", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/adapters/src/infra/lua-embedded.ts:4"}, "properties": {"repobilityId": "5a3938597e58c545", "scanner": "scanner-primary", "fingerprint": "17c40099da11dcb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a74f4afe86d40a7", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/adapters/src/infra/nginx.ts:140"}, "properties": {"repobilityId": "a355200ef91f7182", "scanner": "scanner-primary", "fingerprint": "7a74f4afe86d40a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93e4078df7e9fc8b", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/db-email/src/schema/vmail.ts:243"}, "properties": {"repobilityId": "158923ddbf68ab1d", "scanner": "scanner-primary", "fingerprint": "93e4078df7e9fc8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db68d7069d7f5239", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/db/scripts/restore.ts:69"}, "properties": {"repobilityId": "48bf6d3f19f75165", "scanner": "scanner-primary", "fingerprint": "db68d7069d7f5239", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68ace7e0fc13980f", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/db/scripts/dump.ts:52"}, "properties": {"repobilityId": "f4bfec3449b793dd", "scanner": "scanner-primary", "fingerprint": "68ace7e0fc13980f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ceb7652695cd4c5", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/db/src/dump.test.ts:6"}, "properties": {"repobilityId": "fd1e236de3fbc606", "scanner": "scanner-primary", "fingerprint": "3ceb7652695cd4c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a30dfb4f4ef598a8", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/db/src/pglite-lock.ts:76"}, "properties": {"repobilityId": "927431d0cd75ed3c", "scanner": "scanner-primary", "fingerprint": "a30dfb4f4ef598a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-814375880eb5b55c", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/db/src/client.ts:235"}, "properties": {"repobilityId": "eeec509327d5a632", "scanner": "scanner-primary", "fingerprint": "814375880eb5b55c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-100672136bf63761", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/db/src/migrations-additive.test.ts:8"}, "properties": {"repobilityId": "927e494ff71dc11a", "scanner": "scanner-primary", "fingerprint": "100672136bf63761", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19cbb10eed93d654", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/db/src/dump.ts:170"}, "properties": {"repobilityId": "8ea9fe8f90ecbcf3", "scanner": "scanner-primary", "fingerprint": "19cbb10eed93d654", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c01422bd04e30ab8", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/db/src/schema/organization.ts:26"}, "properties": {"repobilityId": "2ee8e33c51fc8e2f", "scanner": "scanner-primary", "fingerprint": "c01422bd04e30ab8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9eee05816cb145c4", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/db/src/schema/billing.ts:140"}, "properties": {"repobilityId": "0428cb7a265e2281", "scanner": "scanner-primary", "fingerprint": "9eee05816cb145c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-127476afe61483f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/db/src/schema/deployment.ts:170"}, "properties": {"repobilityId": "9f24593fad6e66ac", "scanner": "scanner-primary", "fingerprint": "127476afe61483f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dab84d2480fcf6ae", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/db/src/schema/github-webhook-event.ts:3"}, "properties": {"repobilityId": "83e532a64868d79d", "scanner": "scanner-primary", "fingerprint": "dab84d2480fcf6ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf3752a0812b8915", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/db/src/schema/service.ts:305"}, "properties": {"repobilityId": "9bfa86ab6fb4f7db", "scanner": "scanner-primary", "fingerprint": "bf3752a0812b8915", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5ab45ed3a76b70f", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/db/src/schema/settings.ts:78"}, "properties": {"repobilityId": "e6da1336b6563dd2", "scanner": "scanner-primary", "fingerprint": "d5ab45ed3a76b70f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4f9f006bc9211e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/core/test/null-json-manifest.test.ts:8"}, "properties": {"repobilityId": "8eda425e3b258869", "scanner": "scanner-primary", "fingerprint": "e4f9f006bc9211e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-194ca1feb8e5bb8c", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/core/src/connectivity.ts:52"}, "properties": {"repobilityId": "988598befa7c02a2", "scanner": "scanner-primary", "fingerprint": "194ca1feb8e5bb8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-008b69cf2ef8504a", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/core/src/constants.ts:119"}, "properties": {"repobilityId": "7bcd555f031ce489", "scanner": "scanner-primary", "fingerprint": "008b69cf2ef8504a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b21f6a8ddaf0d13", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/core/src/runtime-config.ts:19"}, "properties": {"repobilityId": "45831b113b7b625e", "scanner": "scanner-primary", "fingerprint": "3b21f6a8ddaf0d13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91931c24b774d9f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/core/src/mail-server/routing/build-routes.ts:132"}, "properties": {"repobilityId": "0e00a6d8760b21f5", "scanner": "scanner-primary", "fingerprint": "91931c24b774d9f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1910059f9dfa096b", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/core/src/languages/python.ts:55"}, "properties": {"repobilityId": "5ac22b21b4124783", "scanner": "scanner-primary", "fingerprint": "1910059f9dfa096b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45a5db513d691560", "level": "note", "message": {"text": "85 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "1a174a1457848da7", "scanner": "scanner-primary", "fingerprint": "45a5db513d691560", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-1a810cc4e50f1903", "level": "error", "message": {"text": "JS POST `/admin/:serverId/domains` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:55"}, "properties": {"repobilityId": "037684042b73c423", "scanner": "scanner-primary", "fingerprint": "1a810cc4e50f1903", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-d2a1a9290917897e", "level": "error", "message": {"text": "JS PATCH `/admin/:serverId/domains/:domain` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:65"}, "properties": {"repobilityId": "de9190689e821549", "scanner": "scanner-primary", "fingerprint": "d2a1a9290917897e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-7bd196ca07163758", "level": "error", "message": {"text": "JS DELETE `/admin/:serverId/domains/:domain` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:70"}, "properties": {"repobilityId": "dc054d4eacb82fed", "scanner": "scanner-primary", "fingerprint": "7bd196ca07163758", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-162a498ae4c6930c", "level": "error", "message": {"text": "JS POST `/admin/:serverId/domains/:domain/dns/acknowledge` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:85"}, "properties": {"repobilityId": "25878e8836056919", "scanner": "scanner-primary", "fingerprint": "162a498ae4c6930c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-f6d84df377cfa6b7", "level": "error", "message": {"text": "JS POST `/admin/:serverId/mailboxes` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:102"}, "properties": {"repobilityId": "c35f87d46eabda9a", "scanner": "scanner-primary", "fingerprint": "f6d84df377cfa6b7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-126dd305d2a27fcf", "level": "error", "message": {"text": "JS PATCH `/admin/:serverId/mailboxes/:email` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:112"}, "properties": {"repobilityId": "59fd4ff61b8d5eab", "scanner": "scanner-primary", "fingerprint": "126dd305d2a27fcf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-4909369cd7423d26", "level": "error", "message": {"text": "JS DELETE `/admin/:serverId/mailboxes/:email` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:117"}, "properties": {"repobilityId": "c2c1c21245b4d2eb", "scanner": "scanner-primary", "fingerprint": "4909369cd7423d26", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-531f916e7c00117d", "level": "error", "message": {"text": "JS POST `/admin/:serverId/backup-policy` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:136"}, "properties": {"repobilityId": "ba3cfe8adac101be", "scanner": "scanner-primary", "fingerprint": "531f916e7c00117d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-eb9ce1ee6b42170e", "level": "error", "message": {"text": "JS POST `/admin/:serverId/relay` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:160"}, "properties": {"repobilityId": "6dab1caf01691426", "scanner": "scanner-primary", "fingerprint": "eb9ce1ee6b42170e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 160}}}]}, {"ruleId": "scanner-bcdc480ad619f3f8", "level": "error", "message": {"text": "JS DELETE `/admin/:serverId/relay` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:165"}, "properties": {"repobilityId": "9f165f0b639ead5b", "scanner": "scanner-primary", "fingerprint": "bcdc480ad619f3f8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 165}}}]}, {"ruleId": "scanner-510e4cdf90ca0312", "level": "error", "message": {"text": "JS POST `/admin/:serverId/test-email` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:172"}, "properties": {"repobilityId": "ffdf7673d2fdd8ff", "scanner": "scanner-primary", "fingerprint": "510e4cdf90ca0312", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 172}}}]}, {"ruleId": "scanner-9787b183530948d2", "level": "error", "message": {"text": "JS POST `/admin/:serverId/components/restart-all` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:179"}, "properties": {"repobilityId": "f82ac5b564c08ef7", "scanner": "scanner-primary", "fingerprint": "9787b183530948d2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-4404da22e40cbfa0", "level": "error", "message": {"text": "JS POST `/admin/:serverId/components/:key/:action` admin endpoint without auth \u2014 apps/api/src/modules/mail/mail.routes.ts:184"}, "properties": {"repobilityId": "c96c1e035e081e42", "scanner": "scanner-primary", "fingerprint": "4404da22e40cbfa0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.js.admin_unauth"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/modules/mail/mail.routes.ts"}, "region": {"startLine": 184}}}]}, {"ruleId": "scanner-e59920b57293d0c5", "level": "warning", "message": {"text": "Vulnerable dependency better-auth 1.6.11: GHSA-86j7-9j95-vpqj"}, "properties": {"repobilityId": "1dcf4c76422ff99b", "scanner": "scanner-primary", "fingerprint": "e59920b57293d0c5", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-86j7-9j95-vpqj"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a02f87510302c19d", "level": "warning", "message": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-76mc-f452-cxcm"}, "properties": {"repobilityId": "2cfae6890aea30b6", "scanner": "scanner-primary", "fingerprint": "a02f87510302c19d", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-76mc-f452-cxcm"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a62b720b5780f7e7", "level": "warning", "message": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-c2j3-45gr-mqc4"}, "properties": {"repobilityId": "e2a07766be8f5583", "scanner": "scanner-primary", "fingerprint": "a62b720b5780f7e7", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-c2j3-45gr-mqc4"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a5ed64b25229644f", "level": "warning", "message": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-cmwh-pvxp-8882"}, "properties": {"repobilityId": "26b9ae75b5fadd35", "scanner": "scanner-primary", "fingerprint": "a5ed64b25229644f", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-cmwh-pvxp-8882"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-69b8e089112b5a44", "level": "warning", "message": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-gvmj-g25r-r7wr"}, "properties": {"repobilityId": "45ab09dedc121784", "scanner": "scanner-primary", "fingerprint": "69b8e089112b5a44", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-gvmj-g25r-r7wr"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fffda59a2f9ebd02", "level": "warning", "message": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-hpcv-96wg-7vj8"}, "properties": {"repobilityId": "f01504b5cbb12706", "scanner": "scanner-primary", "fingerprint": "fffda59a2f9ebd02", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-hpcv-96wg-7vj8"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e678bc37de8fcf1", "level": "warning", "message": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-r47g-fvhr-h676"}, "properties": {"repobilityId": "3834dc320cba2513", "scanner": "scanner-primary", "fingerprint": "7e678bc37de8fcf1", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-r47g-fvhr-h676"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f374e6eabecd54d2", "level": "warning", "message": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-rp9w-3fw7-7cwq"}, "properties": {"repobilityId": "566d6be911652e71", "scanner": "scanner-primary", "fingerprint": "f374e6eabecd54d2", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-rp9w-3fw7-7cwq"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-88b4356eed6d3281", "level": "warning", "message": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-vxr8-fq34-vvx9"}, "properties": {"repobilityId": "556f1802081deff4", "scanner": "scanner-primary", "fingerprint": "88b4356eed6d3281", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-vxr8-fq34-vvx9"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f1034432c0ee33e0", "level": "warning", "message": {"text": "Vulnerable dependency dompurify 3.4.5: GHSA-x4vx-rjvf-j5p4"}, "properties": {"repobilityId": "23de2ef004134c67", "scanner": "scanner-primary", "fingerprint": "f1034432c0ee33e0", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-x4vx-rjvf-j5p4"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c1a910f92584c47b", "level": "error", "message": {"text": "Vulnerable dependency hono 4.12.23: GHSA-88fw-hqm2-52qc"}, "properties": {"repobilityId": "9b27f6238e0a499c", "scanner": "scanner-primary", "fingerprint": "c1a910f92584c47b", "layer": "dependencies", "severity": "high", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-88fw-hqm2-52qc"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/server/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-756b592f1ebce873", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.23: GHSA-hvrm-45r6-mjfj"}, "properties": {"repobilityId": "3344643289ee1878", "scanner": "scanner-primary", "fingerprint": "756b592f1ebce873", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-hvrm-45r6-mjfj"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/server/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f9c498b59ee675ff", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.23: GHSA-j6c9-x7qj-28xf"}, "properties": {"repobilityId": "20028bec3be440f5", "scanner": "scanner-primary", "fingerprint": "f9c498b59ee675ff", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-j6c9-x7qj-28xf"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/server/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b6820edb220aa235", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.23: GHSA-rv63-4mwf-qqc2"}, "properties": {"repobilityId": "87f22ec1ad31440f", "scanner": "scanner-primary", "fingerprint": "b6820edb220aa235", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-rv63-4mwf-qqc2"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/server/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fb39ddae519937cb", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.23: GHSA-w62v-xxxg-mg59"}, "properties": {"repobilityId": "f7bf490b61a49cf0", "scanner": "scanner-primary", "fingerprint": "fb39ddae519937cb", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-w62v-xxxg-mg59"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/server/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-52d5e7aecec76822", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.23: GHSA-wgpf-jwqj-8h8p"}, "properties": {"repobilityId": "143895454b53f13e", "scanner": "scanner-primary", "fingerprint": "52d5e7aecec76822", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wgpf-jwqj-8h8p"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/server/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-db7ec0c820d47952", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.23: GHSA-wwfh-h76j-fc44"}, "properties": {"repobilityId": "99c2ba573be94993", "scanner": "scanner-primary", "fingerprint": "db7ec0c820d47952", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wwfh-h76j-fc44"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/server/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dcee0ae3fd7e86df", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.23: GHSA-xgm2-5f3f-mvvc"}, "properties": {"repobilityId": "2bbc021370e7bf05", "scanner": "scanner-primary", "fingerprint": "dcee0ae3fd7e86df", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-xgm2-5f3f-mvvc"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/server/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e4b1b9c1c82013de", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-268h-hp4c-crq3"}, "properties": {"repobilityId": "f20888874cfacf87", "scanner": "scanner-primary", "fingerprint": "e4b1b9c1c82013de", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-268h-hp4c-crq3"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6a0e58729bbe235d", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-c7w3-x93f-qmm8"}, "properties": {"repobilityId": "debfbe9dd4b40155", "scanner": "scanner-primary", "fingerprint": "6a0e58729bbe235d", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-c7w3-x93f-qmm8"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a1f76b8ee30fa54", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-mm7p-fcc7-pg87"}, "properties": {"repobilityId": "f642809f56f37250", "scanner": "scanner-primary", "fingerprint": "0a1f76b8ee30fa54", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-mm7p-fcc7-pg87"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-10c513733cd6f500", "level": "error", "message": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-p6gq-j5cr-w38f"}, "properties": {"repobilityId": "b0c3c35d06b6661a", "scanner": "scanner-primary", "fingerprint": "10c513733cd6f500", "layer": "dependencies", "severity": "high", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-p6gq-j5cr-w38f"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2c3e94fae264648e", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-r7g4-qg5f-qqm2"}, "properties": {"repobilityId": "291b5d6e44fd682b", "scanner": "scanner-primary", "fingerprint": "2c3e94fae264648e", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-r7g4-qg5f-qqm2"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3b7bc8bb40346ddb", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-rcmh-qjqh-p98v"}, "properties": {"repobilityId": "9c5f437f8fb58dde", "scanner": "scanner-primary", "fingerprint": "3b7bc8bb40346ddb", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-rcmh-qjqh-p98v"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ade5580c684d3526", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-vvjj-xcjg-gr5g"}, "properties": {"repobilityId": "33cd2e182bcb4732", "scanner": "scanner-primary", "fingerprint": "ade5580c684d3526", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-vvjj-xcjg-gr5g"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-10d3e8ccfd5f3078", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 6.10.1: GHSA-wqvq-jvpq-h66f"}, "properties": {"repobilityId": "3d4a2eed5b08808a", "scanner": "scanner-primary", "fingerprint": "10d3e8ccfd5f3078", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wqvq-jvpq-h66f"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5be9f13a441116bb", "level": "warning", "message": {"text": "Vulnerable dependency vite 6.4.2: GHSA-fx2h-pf6j-xcff"}, "properties": {"repobilityId": "eab07cdb6033978e", "scanner": "scanner-primary", "fingerprint": "5be9f13a441116bb", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-fx2h-pf6j-xcff", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-884aa8e38360a6ca", "level": "warning", "message": {"text": "Vulnerable dependency vite 6.4.2: GHSA-v6wh-96g9-6wx3"}, "properties": {"repobilityId": "cc4b5000fe61f491", "scanner": "scanner-primary", "fingerprint": "884aa8e38360a6ca", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-v6wh-96g9-6wx3", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2cc09eaee4c175ee", "level": "warning", "message": {"text": "Vulnerable dependency esbuild 0.18.20: GHSA-67mh-4wv8-2f99"}, "properties": {"repobilityId": "370c12585895d5be", "scanner": "scanner-primary", "fingerprint": "2cc09eaee4c175ee", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-67mh-4wv8-2f99"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f1a70c33b91961ce", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 8.0.7: GHSA-268h-hp4c-crq3"}, "properties": {"repobilityId": "c147794a4d5df70b", "scanner": "scanner-primary", "fingerprint": "f1a70c33b91961ce", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-268h-hp4c-crq3"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1bbfad0c95511e78", "level": "error", "message": {"text": "Vulnerable dependency nodemailer 8.0.7: GHSA-p6gq-j5cr-w38f"}, "properties": {"repobilityId": "089bc35baada5d5b", "scanner": "scanner-primary", "fingerprint": "1bbfad0c95511e78", "layer": "dependencies", "severity": "high", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-p6gq-j5cr-w38f"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c922c758fe64175d", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 8.0.7: GHSA-r7g4-qg5f-qqm2"}, "properties": {"repobilityId": "dc11a0ac600e2acc", "scanner": "scanner-primary", "fingerprint": "c922c758fe64175d", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-r7g4-qg5f-qqm2"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-090e51971d373ff0", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 8.0.7: GHSA-wqvq-jvpq-h66f"}, "properties": {"repobilityId": "9a610fd70128019c", "scanner": "scanner-primary", "fingerprint": "090e51971d373ff0", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wqvq-jvpq-h66f"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e43ee8956df9f9a9", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 8.0.5: GHSA-268h-hp4c-crq3"}, "properties": {"repobilityId": "f97593af440c43e3", "scanner": "scanner-primary", "fingerprint": "e43ee8956df9f9a9", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-268h-hp4c-crq3"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fad8b8bfb00c8fd3", "level": "error", "message": {"text": "Vulnerable dependency nodemailer 8.0.5: GHSA-p6gq-j5cr-w38f"}, "properties": {"repobilityId": "54a4ca559d5a8717", "scanner": "scanner-primary", "fingerprint": "fad8b8bfb00c8fd3", "layer": "dependencies", "severity": "high", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-p6gq-j5cr-w38f"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7908a8e7a324859f", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 8.0.5: GHSA-r7g4-qg5f-qqm2"}, "properties": {"repobilityId": "321df037040dc9d7", "scanner": "scanner-primary", "fingerprint": "7908a8e7a324859f", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-r7g4-qg5f-qqm2"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e18b1540fe8f4313", "level": "warning", "message": {"text": "Vulnerable dependency nodemailer 8.0.5: GHSA-wqvq-jvpq-h66f"}, "properties": {"repobilityId": "c2cc0dcfb0d1c1ab", "scanner": "scanner-primary", "fingerprint": "e18b1540fe8f4313", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wqvq-jvpq-h66f"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5921a1914f4a0cef", "level": "note", "message": {"text": "Vulnerable dependency esbuild 0.28.0: GHSA-g7r4-m6w7-qqqr"}, "properties": {"repobilityId": "9d3e670bee40697e", "scanner": "scanner-primary", "fingerprint": "5921a1914f4a0cef", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-g7r4-m6w7-qqqr"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f3755faea1a1dbd4", "level": "note", "message": {"text": "Vulnerable dependency esbuild 0.27.3: GHSA-g7r4-m6w7-qqqr"}, "properties": {"repobilityId": "8ca6a3c17eea45ad", "scanner": "scanner-primary", "fingerprint": "f3755faea1a1dbd4", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-g7r4-m6w7-qqqr"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8f462613445d0faf", "level": "warning", "message": {"text": "Vulnerable dependency @hono/node-server 1.19.11: GHSA-92pp-h63x-v22m"}, "properties": {"repobilityId": "5512559e1ff26ddf", "scanner": "scanner-primary", "fingerprint": "8f462613445d0faf", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-92pp-h63x-v22m"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3df9c5df3e668558", "level": "warning", "message": {"text": "Vulnerable dependency @hono/node-server 1.19.11: GHSA-frvp-7c67-39w9"}, "properties": {"repobilityId": "acbce5b2ad9dc49c", "scanner": "scanner-primary", "fingerprint": "3df9c5df3e668558", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-frvp-7c67-39w9"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2f1883a02796bbea", "level": "warning", "message": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-2vg6-77g8-24mp"}, "properties": {"repobilityId": "ed9553487d518011", "scanner": "scanner-primary", "fingerprint": "2f1883a02796bbea", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-2vg6-77g8-24mp"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7de0ad871d17c77b", "level": "warning", "message": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-392p-2q2v-4372"}, "properties": {"repobilityId": "f26e07465e185ae6", "scanner": "scanner-primary", "fingerprint": "7de0ad871d17c77b", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-392p-2q2v-4372"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-14af986b2038cfcb", "level": "warning", "message": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-7w99-5wm4-3g79"}, "properties": {"repobilityId": "d071fedb0964f206", "scanner": "scanner-primary", "fingerprint": "14af986b2038cfcb", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-7w99-5wm4-3g79"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2981c3faff5f2cc5", "level": "warning", "message": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-86j7-9j95-vpqj"}, "properties": {"repobilityId": "48b1562a56b8ea49", "scanner": "scanner-primary", "fingerprint": "2981c3faff5f2cc5", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-86j7-9j95-vpqj"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-533768ead6ed27a0", "level": "warning", "message": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-9h47-pqcx-hjr4"}, "properties": {"repobilityId": "a005782213e4046b", "scanner": "scanner-primary", "fingerprint": "533768ead6ed27a0", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-9h47-pqcx-hjr4"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b0f6d7eb9fbcc656", "level": "warning", "message": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-fmh4-wcc4-5jm3"}, "properties": {"repobilityId": "e3450fdcbf658c8c", "scanner": "scanner-primary", "fingerprint": "b0f6d7eb9fbcc656", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-fmh4-wcc4-5jm3"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8e12d3d8ada0bd0e", "level": "warning", "message": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-g38m-r43w-p2q7"}, "properties": {"repobilityId": "16b0f550b08982ea", "scanner": "scanner-primary", "fingerprint": "8e12d3d8ada0bd0e", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-g38m-r43w-p2q7"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-47e7145a3a0fcd23", "level": "warning", "message": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-pw9m-5jxm-xr6h"}, "properties": {"repobilityId": "08084d3b4a4d759b", "scanner": "scanner-primary", "fingerprint": "47e7145a3a0fcd23", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-pw9m-5jxm-xr6h"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-519d6d92ee388cc1", "level": "warning", "message": {"text": "Vulnerable dependency better-auth 1.5.4: GHSA-wxw3-q3m9-c3jr"}, "properties": {"repobilityId": "9050213bbe108faf", "scanner": "scanner-primary", "fingerprint": "519d6d92ee388cc1", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wxw3-q3m9-c3jr"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-663e7fcaf0619ce1", "level": "warning", "message": {"text": "Vulnerable dependency drizzle-orm 0.45.1: GHSA-gpj5-g38j-94v9"}, "properties": {"repobilityId": "9addd008abf215a3", "scanner": "scanner-primary", "fingerprint": "663e7fcaf0619ce1", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-gpj5-g38j-94v9"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/db-email/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5bb4b6e82189f376", "level": "warning", "message": {"text": "Vulnerable dependency electron 40.8.0: GHSA-3c8v-cfp5-9885"}, "properties": {"repobilityId": "f3f55666b68b57e9", "scanner": "scanner-primary", "fingerprint": "5bb4b6e82189f376", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-3c8v-cfp5-9885", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bba30f9f007307d3", "level": "warning", "message": {"text": "Vulnerable dependency electron 40.8.0: GHSA-4p4r-m79c-wq3v"}, "properties": {"repobilityId": "cb6690c3b611c8d9", "scanner": "scanner-primary", "fingerprint": "bba30f9f007307d3", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-4p4r-m79c-wq3v", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-91ccb011312e344b", "level": "warning", "message": {"text": "Vulnerable dependency electron 40.8.0: GHSA-8x5q-pvf5-64mp"}, "properties": {"repobilityId": "59b340451c623e46", "scanner": "scanner-primary", "fingerprint": "91ccb011312e344b", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-8x5q-pvf5-64mp", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4097e6c33a371f03", "level": "warning", "message": {"text": "Vulnerable dependency electron 40.8.0: GHSA-f37v-82c4-4x64"}, "properties": {"repobilityId": "7336fca895adc775", "scanner": "scanner-primary", "fingerprint": "4097e6c33a371f03", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-f37v-82c4-4x64", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3567686f14112df7", "level": "warning", "message": {"text": "Vulnerable dependency electron 40.8.0: GHSA-f3pv-wv63-48x8"}, "properties": {"repobilityId": "f3903b4f43fcf4dd", "scanner": "scanner-primary", "fingerprint": "3567686f14112df7", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-f3pv-wv63-48x8", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-19263afb5728f50e", "level": "warning", "message": {"text": "Vulnerable dependency electron 40.8.0: GHSA-mwmh-mq4g-g6gr"}, "properties": {"repobilityId": "014239511db39b74", "scanner": "scanner-primary", "fingerprint": "19263afb5728f50e", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-mwmh-mq4g-g6gr", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e482c27c4c01aa68", "level": "warning", "message": {"text": "Vulnerable dependency electron 40.8.0: GHSA-r5p7-gp4j-qhrx"}, "properties": {"repobilityId": "d6a3cc72dbfa178e", "scanner": "scanner-primary", "fingerprint": "e482c27c4c01aa68", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-r5p7-gp4j-qhrx", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f9c1f9c06327414f", "level": "warning", "message": {"text": "Vulnerable dependency electron 40.8.0: GHSA-xj5x-m3f3-5x3h"}, "properties": {"repobilityId": "dec36931894f1a3a", "scanner": "scanner-primary", "fingerprint": "f9c1f9c06327414f", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-xj5x-m3f3-5x3h", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bc39477b68963d8c", "level": "warning", "message": {"text": "Vulnerable dependency electron 40.8.0: GHSA-xwr5-m59h-vwqr"}, "properties": {"repobilityId": "fb328d6759ed46d1", "scanner": "scanner-primary", "fingerprint": "bc39477b68963d8c", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-xwr5-m59h-vwqr", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7bff8d8f8e4b693f", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-26pp-8wgv-hjvm"}, "properties": {"repobilityId": "256e0de16b7d0f4c", "scanner": "scanner-primary", "fingerprint": "7bff8d8f8e4b693f", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-26pp-8wgv-hjvm"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5e0a5ed6f9e95b01", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-2gcr-mfcq-wcc3"}, "properties": {"repobilityId": "0852127aaf0c8bb1", "scanner": "scanner-primary", "fingerprint": "5e0a5ed6f9e95b01", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-2gcr-mfcq-wcc3"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b083e50214151d38", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-3hrh-pfw6-9m5x"}, "properties": {"repobilityId": "c7891d4b101e310f", "scanner": "scanner-primary", "fingerprint": "b083e50214151d38", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-3hrh-pfw6-9m5x"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-625e3e86325af7fb", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-458j-xx4x-4375"}, "properties": {"repobilityId": "2d8bea59038c543e", "scanner": "scanner-primary", "fingerprint": "625e3e86325af7fb", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-458j-xx4x-4375"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f2e0bc3c9ae60b00", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-69xw-7hcm-h432"}, "properties": {"repobilityId": "7013cc3aff6987b5", "scanner": "scanner-primary", "fingerprint": "f2e0bc3c9ae60b00", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-69xw-7hcm-h432"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-034156edab561c92", "level": "error", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-88fw-hqm2-52qc"}, "properties": {"repobilityId": "ff9fbee35e71f2b0", "scanner": "scanner-primary", "fingerprint": "034156edab561c92", "layer": "dependencies", "severity": "high", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-88fw-hqm2-52qc"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bb1d5166ef970aa9", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-9vqf-7f2p-gf9v"}, "properties": {"repobilityId": "5ec7bcccb9214dce", "scanner": "scanner-primary", "fingerprint": "bb1d5166ef970aa9", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-9vqf-7f2p-gf9v"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a56140b9eee4d677", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-f577-qrjj-4474"}, "properties": {"repobilityId": "d5372d8c56b81fd4", "scanner": "scanner-primary", "fingerprint": "a56140b9eee4d677", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-f577-qrjj-4474"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-41b4a63fb6614fd4", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-hm8q-7f3q-5f36"}, "properties": {"repobilityId": "a3051372ff0a8845", "scanner": "scanner-primary", "fingerprint": "41b4a63fb6614fd4", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-hm8q-7f3q-5f36"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-01d6e6f63bdd9096", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-hvrm-45r6-mjfj"}, "properties": {"repobilityId": "2a5039f94d8efa59", "scanner": "scanner-primary", "fingerprint": "01d6e6f63bdd9096", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-hvrm-45r6-mjfj"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b7bc378748267194", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-j6c9-x7qj-28xf"}, "properties": {"repobilityId": "3122e9ef72487386", "scanner": "scanner-primary", "fingerprint": "b7bc378748267194", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-j6c9-x7qj-28xf"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b50d7f6004ccdaf", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-p77w-8qqv-26rm"}, "properties": {"repobilityId": "63a2867526ef9ab3", "scanner": "scanner-primary", "fingerprint": "1b50d7f6004ccdaf", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-p77w-8qqv-26rm"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ff233330e73230e2", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-qp7p-654g-cw7p"}, "properties": {"repobilityId": "0d94df63292c0fad", "scanner": "scanner-primary", "fingerprint": "ff233330e73230e2", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-qp7p-654g-cw7p"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-157d1a898f91f652", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-r5rp-j6wh-rvv4"}, "properties": {"repobilityId": "bcadf68394a56b98", "scanner": "scanner-primary", "fingerprint": "157d1a898f91f652", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-r5rp-j6wh-rvv4"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e904546abf8aca5c", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-rv63-4mwf-qqc2"}, "properties": {"repobilityId": "57dd45db4f90086b", "scanner": "scanner-primary", "fingerprint": "e904546abf8aca5c", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-rv63-4mwf-qqc2"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d2ab825c38b25fc2", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-v8w9-8mx6-g223"}, "properties": {"repobilityId": "d485496de2027d89", "scanner": "scanner-primary", "fingerprint": "d2ab825c38b25fc2", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-v8w9-8mx6-g223"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3f172781a2ca06b7", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-w62v-xxxg-mg59"}, "properties": {"repobilityId": "063e8231c57e0b65", "scanner": "scanner-primary", "fingerprint": "3f172781a2ca06b7", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-w62v-xxxg-mg59"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-50be0368742a6245", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-wgpf-jwqj-8h8p"}, "properties": {"repobilityId": "56caea86d6f5e56b", "scanner": "scanner-primary", "fingerprint": "50be0368742a6245", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wgpf-jwqj-8h8p"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6f6ff23f2887aa7d", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-wmmm-f939-6g9c"}, "properties": {"repobilityId": "ef8c3bcbc1fe56fa", "scanner": "scanner-primary", "fingerprint": "6f6ff23f2887aa7d", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wmmm-f939-6g9c"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-64fdf831ed6552cd", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-wwfh-h76j-fc44"}, "properties": {"repobilityId": "d24d344c5dd18656", "scanner": "scanner-primary", "fingerprint": "64fdf831ed6552cd", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wwfh-h76j-fc44"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-321a56a73428dead", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-xf4j-xp2r-rqqx"}, "properties": {"repobilityId": "e2122daf03bf4a6c", "scanner": "scanner-primary", "fingerprint": "321a56a73428dead", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-xf4j-xp2r-rqqx"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f8359e6efcc4b07d", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-xgm2-5f3f-mvvc"}, "properties": {"repobilityId": "6521ec9c392db8e3", "scanner": "scanner-primary", "fingerprint": "f8359e6efcc4b07d", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-xgm2-5f3f-mvvc"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a4b5da8fd7832ead", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-xpcf-pg52-r92g"}, "properties": {"repobilityId": "b5099d92347d64f9", "scanner": "scanner-primary", "fingerprint": "a4b5da8fd7832ead", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-xpcf-pg52-r92g"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8da5317ed50e1674", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.12.5: GHSA-xrhx-7g5j-rcj5"}, "properties": {"repobilityId": "d6a6c512ccd95439", "scanner": "scanner-primary", "fingerprint": "8da5317ed50e1674", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-xrhx-7g5j-rcj5"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f4f8f30331d6f0a3", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-267c-6grr-h53f"}, "properties": {"repobilityId": "3708940b2ab3dc6b", "scanner": "scanner-primary", "fingerprint": "f4f8f30331d6f0a3", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-267c-6grr-h53f"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-62c818882d8c229a", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-26hh-7cqf-hhc6"}, "properties": {"repobilityId": "a53da63fa7d784b7", "scanner": "scanner-primary", "fingerprint": "62c818882d8c229a", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-26hh-7cqf-hhc6"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e3fc0493a3c06724", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-36qx-fr4f-26g5"}, "properties": {"repobilityId": "fc7744c20ea98806", "scanner": "scanner-primary", "fingerprint": "e3fc0493a3c06724", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-36qx-fr4f-26g5"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-416a5352cb225794", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-3g8h-86w9-wvmq"}, "properties": {"repobilityId": "900b57d9c1f7e194", "scanner": "scanner-primary", "fingerprint": "416a5352cb225794", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-3g8h-86w9-wvmq"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4aaf2a8925bfcf1a", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-3x4c-7xq6-9pq8"}, "properties": {"repobilityId": "51628ef0b365e46b", "scanner": "scanner-primary", "fingerprint": "4aaf2a8925bfcf1a", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-3x4c-7xq6-9pq8"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ab221d2028203861", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-4633-3j49-mh5q"}, "properties": {"repobilityId": "2d649e5e57ff6cb6", "scanner": "scanner-primary", "fingerprint": "ab221d2028203861", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-4633-3j49-mh5q"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6d7b92a4b1ed1252", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-492v-c6pp-mqqv"}, "properties": {"repobilityId": "d24a0fa912d1e04a", "scanner": "scanner-primary", "fingerprint": "6d7b92a4b1ed1252", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-492v-c6pp-mqqv"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d55edb9be97ba896", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-4c39-4ccg-62r3"}, "properties": {"repobilityId": "662a81a94e3a7ebc", "scanner": "scanner-primary", "fingerprint": "d55edb9be97ba896", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-4c39-4ccg-62r3"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-127777cfa053b24b", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-68g3-v927-f742"}, "properties": {"repobilityId": "b5e7b2382a50577a", "scanner": "scanner-primary", "fingerprint": "127777cfa053b24b", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-68g3-v927-f742"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc89b2d08a07fe47", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-6gpp-xcg3-4w24"}, "properties": {"repobilityId": "d15316045a9b03b6", "scanner": "scanner-primary", "fingerprint": "dc89b2d08a07fe47", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-6gpp-xcg3-4w24"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a8c654a78d098537", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-89xv-2m56-2m9x"}, "properties": {"repobilityId": "8cbacec70b7c7195", "scanner": "scanner-primary", "fingerprint": "a8c654a78d098537", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-89xv-2m56-2m9x"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c08ea78325054694", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-8h8q-6873-q5fj"}, "properties": {"repobilityId": "c61a0c071ac39d53", "scanner": "scanner-primary", "fingerprint": "c08ea78325054694", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-8h8q-6873-q5fj"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4f590a7f4cf4c8d3", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-955p-x3mx-jcvp"}, "properties": {"repobilityId": "fb8419cc43ac3ba6", "scanner": "scanner-primary", "fingerprint": "4f590a7f4cf4c8d3", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-955p-x3mx-jcvp"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e3f3693ffe2c8af7", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-c4j6-fc7j-m34r"}, "properties": {"repobilityId": "74cdb5616b49a582", "scanner": "scanner-primary", "fingerprint": "e3f3693ffe2c8af7", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-c4j6-fc7j-m34r"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-abb29cbfb8856750", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-ffhc-5mcf-pf4q"}, "properties": {"repobilityId": "0b3cf6bf4e7a0b02", "scanner": "scanner-primary", "fingerprint": "abb29cbfb8856750", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-ffhc-5mcf-pf4q"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eedf3ddc2e37427d", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-ggv3-7p47-pfv8"}, "properties": {"repobilityId": "81cbbad60d5fbd4a", "scanner": "scanner-primary", "fingerprint": "eedf3ddc2e37427d", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-ggv3-7p47-pfv8"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-000976eef667db2e", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-gx5p-jg67-6x7h"}, "properties": {"repobilityId": "02432a4df744c996", "scanner": "scanner-primary", "fingerprint": "000976eef667db2e", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-gx5p-jg67-6x7h"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-757c84dbee9581d4", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-h27x-g6w4-24gq"}, "properties": {"repobilityId": "f51bacfba1218354", "scanner": "scanner-primary", "fingerprint": "757c84dbee9581d4", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-h27x-g6w4-24gq"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bc0843bbed1ef36c", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-h64f-5h5j-jqjh"}, "properties": {"repobilityId": "19955fe845c7cfb2", "scanner": "scanner-primary", "fingerprint": "bc0843bbed1ef36c", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-h64f-5h5j-jqjh"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6f86f8af84047b76", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-jcc7-9wpm-mj36"}, "properties": {"repobilityId": "0df15800dc50f97d", "scanner": "scanner-primary", "fingerprint": "6f86f8af84047b76", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-jcc7-9wpm-mj36"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8d603aad59c47018", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-m99w-x7hq-7vfj"}, "properties": {"repobilityId": "a3fc9a2bbb41bf1c", "scanner": "scanner-primary", "fingerprint": "8d603aad59c47018", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-m99w-x7hq-7vfj"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f4af8eb6f1f270cc", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-mg66-mrh9-m8jx"}, "properties": {"repobilityId": "8b4a1aafdda0467a", "scanner": "scanner-primary", "fingerprint": "f4af8eb6f1f270cc", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-mg66-mrh9-m8jx"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e615027f9cce193", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-mq59-m269-xvcx"}, "properties": {"repobilityId": "d3eccf0a013f6e9d", "scanner": "scanner-primary", "fingerprint": "7e615027f9cce193", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-mq59-m269-xvcx"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eab0f6276d01cad7", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-p9j2-gv94-2wf4"}, "properties": {"repobilityId": "423677b66ed8f9f0", "scanner": "scanner-primary", "fingerprint": "eab0f6276d01cad7", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-p9j2-gv94-2wf4"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d6152658eac4bf1f", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-q4gf-8mx6-v5v3"}, "properties": {"repobilityId": "66e931275063f8bd", "scanner": "scanner-primary", "fingerprint": "d6152658eac4bf1f", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-q4gf-8mx6-v5v3"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d3a0d2acb6c49354", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-q8wf-6r8g-63ch"}, "properties": {"repobilityId": "7a28661a22c099a4", "scanner": "scanner-primary", "fingerprint": "d3a0d2acb6c49354", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-q8wf-6r8g-63ch"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7d0517bb219baaee", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-vfv6-92ff-j949"}, "properties": {"repobilityId": "65c727db5ce72555", "scanner": "scanner-primary", "fingerprint": "7d0517bb219baaee", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-vfv6-92ff-j949"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-adf12d940c8a3033", "level": "warning", "message": {"text": "Vulnerable dependency next 16.1.6: GHSA-wfc6-r584-vfw7"}, "properties": {"repobilityId": "edc5a9e8364ab838", "scanner": "scanner-primary", "fingerprint": "adf12d940c8a3033", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wfc6-r584-vfw7"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c4cbd117d7235b7d", "level": "warning", "message": {"text": "Vulnerable dependency postcss 8.5.8: GHSA-qx2v-qp2m-jg93"}, "properties": {"repobilityId": "cd077b2d3b1cc33b", "scanner": "scanner-primary", "fingerprint": "c4cbd117d7235b7d", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-qx2v-qp2m-jg93", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e42e484da2b1c7f1", "level": "warning", "message": {"text": "Vulnerable dependency turbo 2.8.14: GHSA-3qcw-2rhx-2726"}, "properties": {"repobilityId": "d33a6da143353a1b", "scanner": "scanner-primary", "fingerprint": "e42e484da2b1c7f1", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-3qcw-2rhx-2726", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-77930c0fd357420c", "level": "warning", "message": {"text": "Vulnerable dependency turbo 2.8.14: GHSA-hcf7-66rw-9f5r"}, "properties": {"repobilityId": "07b6888ddcce9fd7", "scanner": "scanner-primary", "fingerprint": "77930c0fd357420c", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-hcf7-66rw-9f5r", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f2f1c355a78f99b6", "level": "warning", "message": {"text": "Vulnerable dependency vite 7.3.1: GHSA-4w7w-66w2-5vf9"}, "properties": {"repobilityId": "e918f17f602550fb", "scanner": "scanner-primary", "fingerprint": "f2f1c355a78f99b6", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-4w7w-66w2-5vf9"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f9ad4132d7c379ef", "level": "warning", "message": {"text": "Vulnerable dependency vite 7.3.1: GHSA-fx2h-pf6j-xcff"}, "properties": {"repobilityId": "0c0fb8fcfc9a2711", "scanner": "scanner-primary", "fingerprint": "f9ad4132d7c379ef", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-fx2h-pf6j-xcff"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-61df69735206880e", "level": "warning", "message": {"text": "Vulnerable dependency vite 7.3.1: GHSA-p9ff-h696-f583"}, "properties": {"repobilityId": "bc2f4b3a640a4eef", "scanner": "scanner-primary", "fingerprint": "61df69735206880e", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-p9ff-h696-f583"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-209cd72e2ebeaa40", "level": "warning", "message": {"text": "Vulnerable dependency vite 7.3.1: GHSA-v2wj-q39q-566r"}, "properties": {"repobilityId": "6218f4560d531ff5", "scanner": "scanner-primary", "fingerprint": "209cd72e2ebeaa40", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-v2wj-q39q-566r"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e9419338c33eb04b", "level": "warning", "message": {"text": "Vulnerable dependency vite 7.3.1: GHSA-v6wh-96g9-6wx3"}, "properties": {"repobilityId": "e94069e1f72ac15f", "scanner": "scanner-primary", "fingerprint": "e9419338c33eb04b", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-v6wh-96g9-6wx3"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb6947c03ef31165", "level": "warning", "message": {"text": "Vulnerable dependency vitest 4.0.18: GHSA-5xrq-8626-4rwp"}, "properties": {"repobilityId": "33bb245f9a38c5c6", "scanner": "scanner-primary", "fingerprint": "cb6947c03ef31165", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-5xrq-8626-4rwp", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-05b694a1520b5855", "level": "warning", "message": {"text": "Vulnerable dependency yaml 2.8.2: GHSA-48c2-rrv3-qjmp"}, "properties": {"repobilityId": "05653192128144a2", "scanner": "scanner-primary", "fingerprint": "05b694a1520b5855", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-48c2-rrv3-qjmp"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9b971f6db7c6833a", "level": "warning", "message": {"text": "Vulnerable dependency @hono/node-server 1.19.9: GHSA-92pp-h63x-v22m"}, "properties": {"repobilityId": "7ceab5ad6b1bbfd8", "scanner": "scanner-primary", "fingerprint": "9b971f6db7c6833a", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-92pp-h63x-v22m"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7d656df8c98c3e61", "level": "warning", "message": {"text": "Vulnerable dependency @hono/node-server 1.19.9: GHSA-frvp-7c67-39w9"}, "properties": {"repobilityId": "e2b61b4fef8c165d", "scanner": "scanner-primary", "fingerprint": "7d656df8c98c3e61", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-frvp-7c67-39w9"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-22f16d61aa9b01df", "level": "warning", "message": {"text": "Vulnerable dependency @hono/node-server 1.19.9: GHSA-wc8c-qw6v-h7f6"}, "properties": {"repobilityId": "a3b4ce8e59f3787c", "scanner": "scanner-primary", "fingerprint": "22f16d61aa9b01df", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wc8c-qw6v-h7f6"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d64b3179872a1581", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-26pp-8wgv-hjvm"}, "properties": {"repobilityId": "842b25ef7a348502", "scanner": "scanner-primary", "fingerprint": "d64b3179872a1581", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-26pp-8wgv-hjvm"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0582fa61f3bdca63", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-2gcr-mfcq-wcc3"}, "properties": {"repobilityId": "672577731fa4c0ea", "scanner": "scanner-primary", "fingerprint": "0582fa61f3bdca63", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-2gcr-mfcq-wcc3"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-52c93e4ae3c500c8", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-3hrh-pfw6-9m5x"}, "properties": {"repobilityId": "15f359b7b92be1d4", "scanner": "scanner-primary", "fingerprint": "52c93e4ae3c500c8", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-3hrh-pfw6-9m5x"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c390bfd23dd27b43", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-458j-xx4x-4375"}, "properties": {"repobilityId": "6511d90fea6c7025", "scanner": "scanner-primary", "fingerprint": "c390bfd23dd27b43", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-458j-xx4x-4375"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2732f89c7017d556", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-5pq2-9x2x-5p6w"}, "properties": {"repobilityId": "d09a2ac68e5d2d8b", "scanner": "scanner-primary", "fingerprint": "2732f89c7017d556", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-5pq2-9x2x-5p6w"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c15fef102284ae61", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-69xw-7hcm-h432"}, "properties": {"repobilityId": "e08c18a03f749c15", "scanner": "scanner-primary", "fingerprint": "c15fef102284ae61", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-69xw-7hcm-h432"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9f77aebae9884d21", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-6wqw-2p9w-4vw4"}, "properties": {"repobilityId": "5a4663fba2017b5f", "scanner": "scanner-primary", "fingerprint": "9f77aebae9884d21", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-6wqw-2p9w-4vw4"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-94401d3080acc19e", "level": "error", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-88fw-hqm2-52qc"}, "properties": {"repobilityId": "0840afe0b6046d57", "scanner": "scanner-primary", "fingerprint": "94401d3080acc19e", "layer": "dependencies", "severity": "high", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-88fw-hqm2-52qc"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-11356755b3babea7", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-9r54-q6cx-xmh5"}, "properties": {"repobilityId": "b3d2e790676c1636", "scanner": "scanner-primary", "fingerprint": "11356755b3babea7", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-9r54-q6cx-xmh5"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-53bd23e2fa8e8740", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-9vqf-7f2p-gf9v"}, "properties": {"repobilityId": "b192d19aac13d115", "scanner": "scanner-primary", "fingerprint": "53bd23e2fa8e8740", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-9vqf-7f2p-gf9v"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ec1ad1746516d7d", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-f577-qrjj-4474"}, "properties": {"repobilityId": "69f23026c7e1850c", "scanner": "scanner-primary", "fingerprint": "0ec1ad1746516d7d", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-f577-qrjj-4474"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d4ac076030622ee3", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-gq3j-xvxp-8hrf"}, "properties": {"repobilityId": "04ff1a1724fed978", "scanner": "scanner-primary", "fingerprint": "d4ac076030622ee3", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-gq3j-xvxp-8hrf"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aafc95e166d01db5", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-hm8q-7f3q-5f36"}, "properties": {"repobilityId": "c1b2856dcd0beb3e", "scanner": "scanner-primary", "fingerprint": "aafc95e166d01db5", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-hm8q-7f3q-5f36"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-01ac1b8ed9085599", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-j6c9-x7qj-28xf"}, "properties": {"repobilityId": "554b34c93c90f449", "scanner": "scanner-primary", "fingerprint": "01ac1b8ed9085599", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-j6c9-x7qj-28xf"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-60f6b578e4c4213b", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-p6xx-57qc-3wxr"}, "properties": {"repobilityId": "33de7fa2fd597fa7", "scanner": "scanner-primary", "fingerprint": "60f6b578e4c4213b", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-p6xx-57qc-3wxr"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ebb58f1805ed462", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-p77w-8qqv-26rm"}, "properties": {"repobilityId": "3aecf1b7cec15e0d", "scanner": "scanner-primary", "fingerprint": "0ebb58f1805ed462", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-p77w-8qqv-26rm"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a7c33d429b7ea9df", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-q5qw-h33p-qvwr"}, "properties": {"repobilityId": "52b27ad911949028", "scanner": "scanner-primary", "fingerprint": "a7c33d429b7ea9df", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-q5qw-h33p-qvwr"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a8b930f6a0c73f3", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-qp7p-654g-cw7p"}, "properties": {"repobilityId": "531a0ac44289a1cb", "scanner": "scanner-primary", "fingerprint": "0a8b930f6a0c73f3", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-qp7p-654g-cw7p"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-99b58300159b76d0", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-r354-f388-2fhh"}, "properties": {"repobilityId": "b216fd0a4bbb35d2", "scanner": "scanner-primary", "fingerprint": "99b58300159b76d0", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-r354-f388-2fhh"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5341b664debc0d94", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-r5rp-j6wh-rvv4"}, "properties": {"repobilityId": "9f42e64af317e528", "scanner": "scanner-primary", "fingerprint": "5341b664debc0d94", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-r5rp-j6wh-rvv4"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cde472791d9505e8", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-rv63-4mwf-qqc2"}, "properties": {"repobilityId": "164ba4670f13916d", "scanner": "scanner-primary", "fingerprint": "cde472791d9505e8", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-rv63-4mwf-qqc2"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ec977ec72f44d0e4", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-v8w9-8mx6-g223"}, "properties": {"repobilityId": "b4599d7f56598e18", "scanner": "scanner-primary", "fingerprint": "ec977ec72f44d0e4", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-v8w9-8mx6-g223"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fe9b04d5acca627e", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-w332-q679-j88p"}, "properties": {"repobilityId": "4cb9ae938367efb9", "scanner": "scanner-primary", "fingerprint": "fe9b04d5acca627e", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-w332-q679-j88p"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-be2bcaaba671d7fc", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-w62v-xxxg-mg59"}, "properties": {"repobilityId": "8274bd9807d93728", "scanner": "scanner-primary", "fingerprint": "be2bcaaba671d7fc", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-w62v-xxxg-mg59"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fe8665f2d50895dd", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-wgpf-jwqj-8h8p"}, "properties": {"repobilityId": "4c9ebbddba9be592", "scanner": "scanner-primary", "fingerprint": "fe8665f2d50895dd", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wgpf-jwqj-8h8p"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-64ff66c79833f0e0", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-wmmm-f939-6g9c"}, "properties": {"repobilityId": "69683bf4326e7e0a", "scanner": "scanner-primary", "fingerprint": "64ff66c79833f0e0", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wmmm-f939-6g9c"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e07ed90e61b1bd2a", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-wwfh-h76j-fc44"}, "properties": {"repobilityId": "42a07d1ffcf8c8ce", "scanner": "scanner-primary", "fingerprint": "e07ed90e61b1bd2a", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-wwfh-h76j-fc44"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-40df8d170afd99f0", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-xf4j-xp2r-rqqx"}, "properties": {"repobilityId": "6f965b20c7027a72", "scanner": "scanner-primary", "fingerprint": "40df8d170afd99f0", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-xf4j-xp2r-rqqx"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-83dfa414477660c7", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-xgm2-5f3f-mvvc"}, "properties": {"repobilityId": "5b9fbc6ee11e4ada", "scanner": "scanner-primary", "fingerprint": "83dfa414477660c7", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-xgm2-5f3f-mvvc"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7ab727955392010c", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-xpcf-pg52-r92g"}, "properties": {"repobilityId": "fc38f23272f021de", "scanner": "scanner-primary", "fingerprint": "7ab727955392010c", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-xpcf-pg52-r92g"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-78d9f4d50c23b8c6", "level": "warning", "message": {"text": "Vulnerable dependency hono 4.11.4: GHSA-xrhx-7g5j-rcj5"}, "properties": {"repobilityId": "98f263c7e03798d2", "scanner": "scanner-primary", "fingerprint": "78d9f4d50c23b8c6", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-xrhx-7g5j-rcj5"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-755167a8c51f0c81", "level": "warning", "message": {"text": "Vulnerable dependency postcss 8.4.31: GHSA-qx2v-qp2m-jg93"}, "properties": {"repobilityId": "00a7666aebb4f6a3", "scanner": "scanner-primary", "fingerprint": "755167a8c51f0c81", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-qx2v-qp2m-jg93", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-114745e1168ebf13", "level": "warning", "message": {"text": "Vulnerable dependency yaml 1.10.2: GHSA-48c2-rrv3-qjmp"}, "properties": {"repobilityId": "11ffc1659f321149", "scanner": "scanner-primary", "fingerprint": "114745e1168ebf13", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-48c2-rrv3-qjmp"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bun.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b4b48d9069bc8497", "level": "warning", "message": {"text": "Vulnerable dependency tokio 1: GHSA-2grh-hm3w-w7hv"}, "properties": {"repobilityId": "403089e23c3c870e", "scanner": "scanner-primary", "fingerprint": "b4b48d9069bc8497", "layer": "dependencies", "severity": "medium", "confidence": 0.7, "tags": ["dependency", "sca", "osv", "GHSA-2grh-hm3w-w7hv"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "fixtures/deploy/rust-axum/Cargo.toml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6e91a73f38a82879", "level": "warning", "message": {"text": "Vulnerable dependency tokio 1: GHSA-4q83-7cq4-p6wg"}, "properties": {"repobilityId": "08a3d6c1d84d1c73", "scanner": "scanner-primary", "fingerprint": "6e91a73f38a82879", "layer": "dependencies", "severity": "medium", "confidence": 0.7, "tags": ["dependency", "sca", "osv", "GHSA-4q83-7cq4-p6wg"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "fixtures/deploy/rust-axum/Cargo.toml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-646d936333cfbc53", "level": "warning", "message": {"text": "Vulnerable dependency tokio 1: GHSA-fg7r-2g4j-5cgr"}, "properties": {"repobilityId": "1188edffffe11f76", "scanner": "scanner-primary", "fingerprint": "646d936333cfbc53", "layer": "dependencies", "severity": "medium", "confidence": 0.7, "tags": ["dependency", "sca", "osv", "GHSA-fg7r-2g4j-5cgr"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "fixtures/deploy/rust-axum/Cargo.toml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5b5315a2187d70eb", "level": "warning", "message": {"text": "Vulnerable dependency tokio 1: GHSA-rr8g-9fpq-6wmg"}, "properties": {"repobilityId": "ba24a59407dbe49e", "scanner": "scanner-primary", "fingerprint": "5b5315a2187d70eb", "layer": "dependencies", "severity": "medium", "confidence": 0.7, "tags": ["dependency", "sca", "osv", "GHSA-rr8g-9fpq-6wmg"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "fixtures/deploy/rust-axum/Cargo.toml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-712dcf2a0390f8af", "level": "warning", "message": {"text": "Vulnerable dependency tokio 1: RUSTSEC-2021-0072"}, "properties": {"repobilityId": "0723444d08c890b4", "scanner": "scanner-primary", "fingerprint": "712dcf2a0390f8af", "layer": "dependencies", "severity": "medium", "confidence": 0.7, "tags": ["dependency", "sca", "osv", "RUSTSEC-2021-0072"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "fixtures/deploy/rust-axum/Cargo.toml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-91c9e4dfef71e75d", "level": "warning", "message": {"text": "Vulnerable dependency tokio 1: RUSTSEC-2021-0124"}, "properties": {"repobilityId": "a6c5c375ea2e7e94", "scanner": "scanner-primary", "fingerprint": "91c9e4dfef71e75d", "layer": "dependencies", "severity": "medium", "confidence": 0.7, "tags": ["dependency", "sca", "osv", "RUSTSEC-2021-0124"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "fixtures/deploy/rust-axum/Cargo.toml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fe694ed3edeb9f54", "level": "warning", "message": {"text": "Vulnerable dependency tokio 1: RUSTSEC-2023-0005"}, "properties": {"repobilityId": "e31c266b1880c824", "scanner": "scanner-primary", "fingerprint": "fe694ed3edeb9f54", "layer": "dependencies", "severity": "medium", "confidence": 0.7, "tags": ["dependency", "sca", "osv", "RUSTSEC-2023-0005"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "fixtures/deploy/rust-axum/Cargo.toml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6c0cd45e13d67f1b", "level": "warning", "message": {"text": "Vulnerable dependency tokio 1: RUSTSEC-2025-0023"}, "properties": {"repobilityId": "c545556b605ebb4d", "scanner": "scanner-primary", "fingerprint": "6c0cd45e13d67f1b", "layer": "dependencies", "severity": "medium", "confidence": 0.7, "tags": ["dependency", "sca", "osv", "RUSTSEC-2025-0023"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "fixtures/deploy/rust-axum/Cargo.toml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f963cab5c34ed93a", "level": "note", "message": {"text": "Dependency @clack/prompts is a major version behind"}, "properties": {"repobilityId": "74151e39a3530a63", "scanner": "scanner-primary", "fingerprint": "f963cab5c34ed93a", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/cli/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-76683d1608d38c88", "level": "note", "message": {"text": "Dependency @hono/node-server is a major version behind"}, "properties": {"repobilityId": "64fbba82f7a0beb5", "scanner": "scanner-primary", "fingerprint": "76683d1608d38c88", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1c1b37123b96faa7", "level": "note", "message": {"text": "Dependency @hono/typebox-validator is a major version behind"}, "properties": {"repobilityId": "32d1566e0b99792e", "scanner": "scanner-primary", "fingerprint": "1c1b37123b96faa7", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b4d36c9ce13e2e5b", "level": "note", "message": {"text": "Dependency @hookform/resolvers is a major version behind"}, "properties": {"repobilityId": "293da198f9ba6020", "scanner": "scanner-primary", "fingerprint": "b4d36c9ce13e2e5b", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0fe5e3fce5134ab7", "level": "note", "message": {"text": "Dependency @react-email/components is a major version behind"}, "properties": {"repobilityId": "3fd94c254c62525e", "scanner": "scanner-primary", "fingerprint": "0fe5e3fce5134ab7", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bac666d53676a032", "level": "note", "message": {"text": "Dependency @react-email/render is a major version behind"}, "properties": {"repobilityId": "3a973d1d89787df5", "scanner": "scanner-primary", "fingerprint": "bac666d53676a032", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-caafcc5e8b687818", "level": "note", "message": {"text": "Dependency @react-router/dev is a major version behind"}, "properties": {"repobilityId": "a1104695202a2089", "scanner": "scanner-primary", "fingerprint": "caafcc5e8b687818", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e23e34ebc2167d51", "level": "note", "message": {"text": "Dependency @tiptap/core is a major version behind"}, "properties": {"repobilityId": "e6412d1dfaba009e", "scanner": "scanner-primary", "fingerprint": "e23e34ebc2167d51", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a5e4d8a899672291", "level": "note", "message": {"text": "Dependency @tiptap/extension-bold is a major version behind"}, "properties": {"repobilityId": "b4a7c4e2c00a896e", "scanner": "scanner-primary", "fingerprint": "a5e4d8a899672291", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a07e296a3590d9fd", "level": "note", "message": {"text": "Dependency @tiptap/extension-document is a major version behind"}, "properties": {"repobilityId": "679d5ea8c36de575", "scanner": "scanner-primary", "fingerprint": "a07e296a3590d9fd", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b7f46f1cc5a12ef6", "level": "note", "message": {"text": "Dependency @tiptap/extension-emoji is a major version behind"}, "properties": {"repobilityId": "2785e165795379e7", "scanner": "scanner-primary", "fingerprint": "b7f46f1cc5a12ef6", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ac90f7c8b6e2ac9", "level": "note", "message": {"text": "Dependency @tiptap/extension-file-handler is a major version behind"}, "properties": {"repobilityId": "94009e650827f807", "scanner": "scanner-primary", "fingerprint": "0ac90f7c8b6e2ac9", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e47ef6981f166582", "level": "note", "message": {"text": "Dependency @tiptap/extension-image is a major version behind"}, "properties": {"repobilityId": "a62d9dd35af59b6c", "scanner": "scanner-primary", "fingerprint": "e47ef6981f166582", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0515cd57ca8e13e0", "level": "note", "message": {"text": "Dependency @tiptap/extension-link is a major version behind"}, "properties": {"repobilityId": "d115e0ad1923344e", "scanner": "scanner-primary", "fingerprint": "0515cd57ca8e13e0", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-48442365b38595d3", "level": "note", "message": {"text": "Dependency @tiptap/extension-paragraph is a major version behind"}, "properties": {"repobilityId": "99fd5cb732e2d337", "scanner": "scanner-primary", "fingerprint": "48442365b38595d3", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d637e1148798fc52", "level": "note", "message": {"text": "Dependency @tiptap/extension-placeholder is a major version behind"}, "properties": {"repobilityId": "18ff7dd09ef1ba82", "scanner": "scanner-primary", "fingerprint": "d637e1148798fc52", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-62374e0c14e9d750", "level": "note", "message": {"text": "Dependency @tiptap/extension-text is a major version behind"}, "properties": {"repobilityId": "61c57dc17f9ce7e5", "scanner": "scanner-primary", "fingerprint": "62374e0c14e9d750", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/email/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5403384267b55ae0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/shortcuts (apps/email/client/lib/hotkeys/use-hotkey-utils.ts:12)"}, "properties": {"repobilityId": "56cf9574a0c4e928", "scanner": "scanner-primary", "fingerprint": "5403384267b55ae0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-cdf0f0acfa8bd9ca", "level": "error", "message": {"text": "Dangling fetch: POST /echo (apps/api/test/middleware/json-error-handler.test.ts:29)"}, "properties": {"repobilityId": "996c2086062ed86b", "scanner": "scanner-primary", "fingerprint": "cdf0f0acfa8bd9ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8cced361d9a31e23", "level": "error", "message": {"text": "Dangling fetch: POST /echo (apps/api/test/middleware/json-error-handler.test.ts:41)"}, "properties": {"repobilityId": "bcac950d7d5d6514", "scanner": "scanner-primary", "fingerprint": "8cced361d9a31e23", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f1da74036d0bcb86", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/repos/${repo}/releases/latest (apps/api/src/lib/release-resolver.ts:179)"}, "properties": {"repobilityId": "235f05c015c58526", "scanner": "scanner-primary", "fingerprint": "f1da74036d0bcb86", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-216043d57c3f2de1", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/repos/${repo}/releases/latest (apps/api/src/lib/release-dist.ts:179)"}, "properties": {"repobilityId": "5e6b851233a6be35", "scanner": "scanner-primary", "fingerprint": "216043d57c3f2de1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-066187560e980fa4", "level": "error", "message": {"text": "Dangling fetch: HEAD https://${registry}/v2/${repo}/manifests/${encodeURIComponent(ref)} (apps/api/src/lib/image-registry.ts:115)"}, "properties": {"repobilityId": "e3ff51be6ef64c72", "scanner": "scanner-primary", "fingerprint": "066187560e980fa4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f0a9cc04be1e4cfe", "level": "error", "message": {"text": "Dangling fetch: GET /api/projects/home (apps/api/src/lib/cloud/projects.ts:29)"}, "properties": {"repobilityId": "6039d063b56ce952", "scanner": "scanner-primary", "fingerprint": "f0a9cc04be1e4cfe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0e370a37e66eae1c", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/user (apps/api/src/modules/github/github.service.ts:104)"}, "properties": {"repobilityId": "5434b5635085ba4c", "scanner": "scanner-primary", "fingerprint": "0e370a37e66eae1c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b57d4e75ff7283b1", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/user (apps/api/src/modules/github/github.local-auth.ts:103)"}, "properties": {"repobilityId": "1b6c14da62440f18", "scanner": "scanner-primary", "fingerprint": "b57d4e75ff7283b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-80b1657662c230cf", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/user (apps/api/src/modules/github/github.auth.ts:669)"}, "properties": {"repobilityId": "9ac570505aca6d3b", "scanner": "scanner-primary", "fingerprint": "80b1657662c230cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-155fa61b659ad1a9", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${OPENRESTY_MGMT_PORT}/rules (apps/api/src/modules/route-rules/route-rule.service.ts:75)"}, "properties": {"repobilityId": "17b5f3288b61b690", "scanner": "scanner-primary", "fingerprint": "155fa61b659ad1a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9e242fb3dddbad72", "level": "error", "message": {"text": "Dangling fetch: POST /oauth2/consent (apps/dashboard/src/app/mcp/authorize/page.tsx:63)"}, "properties": {"repobilityId": "0335437a46b12308", "scanner": "scanner-primary", "fingerprint": "9e242fb3dddbad72", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e6e58c2141f72fdb", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/system/reset-admin-password (apps/cli/src/commands/reset-admin.ts:67)"}, "properties": {"repobilityId": "427aa6820f0b11a7", "scanner": "scanner-primary", "fingerprint": "e6e58c2141f72fdb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-40d7cfa7719486ab", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}${path} (apps/cli/src/commands/wizard.ts:58)"}, "properties": {"repobilityId": "f26b382003aacb1d", "scanner": "scanner-primary", "fingerprint": "40d7cfa7719486ab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ec3eb9139788c77c", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}${path} (apps/cli/src/commands/wizard.ts:71)"}, "properties": {"repobilityId": "9e0680faaa4d24ad", "scanner": "scanner-primary", "fingerprint": "ec3eb9139788c77c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d4472d3f41036b6c", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${apiPort}/api/health (apps/cli/src/commands/wizard.ts:116)"}, "properties": {"repobilityId": "f25b7e356c722c81", "scanner": "scanner-primary", "fingerprint": "d4472d3f41036b6c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-22881d7093b35131", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${dashPort}/ (apps/cli/src/commands/wizard.ts:132)"}, "properties": {"repobilityId": "9405446568820124", "scanner": "scanner-primary", "fingerprint": "22881d7093b35131", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4d195f22ed89b12c", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/system/self-register/stream?id=${sessionId} (apps/cli/src/commands/wizard.ts:280)"}, "properties": {"repobilityId": "d678c6b1083bb78c", "scanner": "scanner-primary", "fingerprint": "4d195f22ed89b12c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2bff0e10fe4442ae", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${dashPort} (apps/cli/src/commands/up.ts:493)"}, "properties": {"repobilityId": "85d9f0a98a671c81", "scanner": "scanner-primary", "fingerprint": "2bff0e10fe4442ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-164bd529620d31b5", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/repos/oblien/openship/releases/latest (apps/web/src/app/(site)/download/page.tsx:110)"}, "properties": {"repobilityId": "da1952ea4827a563", "scanner": "scanner-primary", "fingerprint": "164bd529620d31b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "06b7b5c5805238bf", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5d31727160297a24", "level": "note", "message": {"text": "Unused endpoint: GET /branding.json"}, "properties": {"repobilityId": "ede31b670c00cb23", "scanner": "scanner-primary", "fingerprint": "5d31727160297a24", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-671ef33132addc27", "level": "note", "message": {"text": "Unused endpoint: USE /branding/assets/*"}, "properties": {"repobilityId": "3c2efcc1105b8cf2", "scanner": "scanner-primary", "fingerprint": "671ef33132addc27", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9be260efccadaa46", "level": "note", "message": {"text": "Unused endpoint: USE /trpc/*"}, "properties": {"repobilityId": "d256e039a6e86183", "scanner": "scanner-primary", "fingerprint": "9be260efccadaa46", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-89aa8e5d33cc4431", "level": "note", "message": {"text": "Unused endpoint: USE /api/trpc/*"}, "properties": {"repobilityId": "7435231fc9dfc8e8", "scanner": "scanner-primary", "fingerprint": "89aa8e5d33cc4431", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3abf952b8d28d710", "level": "note", "message": {"text": "Unused endpoint: USE /*"}, "properties": {"repobilityId": "3165e117e41e1bf7", "scanner": "scanner-primary", "fingerprint": "3abf952b8d28d710", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8c948a3a3f6b8a6e", "level": "note", "message": {"text": "Unused endpoint: POST /sign-in"}, "properties": {"repobilityId": "5bff19544f5fa8e4", "scanner": "scanner-primary", "fingerprint": "8c948a3a3f6b8a6e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-64cbb9739f91f124", "level": "note", "message": {"text": "Unused endpoint: POST /sign-out"}, "properties": {"repobilityId": "952bacdd71efffc9", "scanner": "scanner-primary", "fingerprint": "64cbb9739f91f124", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ca81309757a10117", "level": "note", "message": {"text": "Unused endpoint: POST /switch"}, "properties": {"repobilityId": "e3627955db983755", "scanner": "scanner-primary", "fingerprint": "ca81309757a10117", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1daa53f3c56e6b16", "level": "note", "message": {"text": "Unused endpoint: GET /session"}, "properties": {"repobilityId": "8d97ae7c192ebd84", "scanner": "scanner-primary", "fingerprint": "1daa53f3c56e6b16", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b15d518d538de57d", "level": "note", "message": {"text": "Unused endpoint: GET /sessions"}, "properties": {"repobilityId": "6817fb840f8f4a6b", "scanner": "scanner-primary", "fingerprint": "b15d518d538de57d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1b43918ad6ecab38", "level": "note", "message": {"text": "Unused endpoint: PATCH /branding"}, "properties": {"repobilityId": "35120c6e9d94fe54", "scanner": "scanner-primary", "fingerprint": "1b43918ad6ecab38", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e34f02337c261a05", "level": "note", "message": {"text": "Unused endpoint: GET /branding"}, "properties": {"repobilityId": "36d2a27743a8bf71", "scanner": "scanner-primary", "fingerprint": "e34f02337c261a05", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-98e70a1b9adc0901", "level": "note", "message": {"text": "Unused endpoint: GET /idle"}, "properties": {"repobilityId": "0f3a95f9e3fd19ce", "scanner": "scanner-primary", "fingerprint": "98e70a1b9adc0901", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b8073f7bf758f6d0", "level": "note", "message": {"text": "Unused endpoint: USE /api/*"}, "properties": {"repobilityId": "9d336cc911caf011", "scanner": "scanner-primary", "fingerprint": "b8073f7bf758f6d0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1e6a6d1906bfadc1", "level": "note", "message": {"text": "Unused endpoint: USE /api/auth/organization/*"}, "properties": {"repobilityId": "2c2f66989968d1d6", "scanner": "scanner-primary", "fingerprint": "1e6a6d1906bfadc1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-19f6d98cabcfafa4", "level": "note", "message": {"text": "Unused endpoint: USE /api/auth/mcp/authorize"}, "properties": {"repobilityId": "04a8f14f1ee854b5", "scanner": "scanner-primary", "fingerprint": "19f6d98cabcfafa4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8e7b0cb9031a1550", "level": "note", "message": {"text": "Unused endpoint: GET /auth/callback/install"}, "properties": {"repobilityId": "f7864a96234c2451", "scanner": "scanner-primary", "fingerprint": "8e7b0cb9031a1550", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd26ad1c8c3758c6", "level": "note", "message": {"text": "Unused endpoint: GET /auth/callback/close"}, "properties": {"repobilityId": "f9a62678791235ee", "scanner": "scanner-primary", "fingerprint": "fd26ad1c8c3758c6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d684f26382ef2909", "level": "note", "message": {"text": "Unused endpoint: USE /invite"}, "properties": {"repobilityId": "7483fc898dececea", "scanner": "scanner-primary", "fingerprint": "d684f26382ef2909", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ca5756175765b49d", "level": "note", "message": {"text": "Unused endpoint: GET /:id"}, "properties": {"repobilityId": "ac5c8528c9db926a", "scanner": "scanner-primary", "fingerprint": "ca5756175765b49d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a61c112b611f4bb", "level": "note", "message": {"text": "Unused endpoint: DELETE /:id"}, "properties": {"repobilityId": "615e24936902d1cc", "scanner": "scanner-primary", "fingerprint": "7a61c112b611f4bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "66a16a0ce7332bc5", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-203ee8eaa9280b40", "level": "note", "message": {"text": "Unused endpoint: POST /auth/sign-in"}, "properties": {"repobilityId": "012fbd1e5f13e64b", "scanner": "scanner-primary", "fingerprint": "203ee8eaa9280b40", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c1e1ee09590b0a49", "level": "note", "message": {"text": "Unused endpoint: GET /projects"}, "properties": {"repobilityId": "45215896073e90f6", "scanner": "scanner-primary", "fingerprint": "c1e1ee09590b0a49", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-94ffa90d58f4e12f", "level": "note", "message": {"text": "Unused endpoint: GET /:id/info"}, "properties": {"repobilityId": "4555ff85b83626db", "scanner": "scanner-primary", "fingerprint": "94ffa90d58f4e12f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-67d28fa8cd6bb12f", "level": "note", "message": {"text": "Unused endpoint: PUT /"}, "properties": {"repobilityId": "ec54043ef2686de4", "scanner": "scanner-primary", "fingerprint": "67d28fa8cd6bb12f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6e550b27a15004d6", "level": "note", "message": {"text": "Unused endpoint: PATCH /build-mode"}, "properties": {"repobilityId": "f0c256bb065a683b", "scanner": "scanner-primary", "fingerprint": "6e550b27a15004d6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-30c3c82a66748278", "level": "note", "message": {"text": "Unused endpoint: PATCH /deploy-defaults"}, "properties": {"repobilityId": "99e7e211f92cdc56", "scanner": "scanner-primary", "fingerprint": "30c3c82a66748278", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eb0bdea9c2fa31c1", "level": "note", "message": {"text": "Unused endpoint: PATCH /clone-credentials"}, "properties": {"repobilityId": "91bd89ba9146dbfa", "scanner": "scanner-primary", "fingerprint": "eb0bdea9c2fa31c1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9ee80458ebaa5ad2", "level": "note", "message": {"text": "Unused endpoint: PATCH /clone-strategy-preference"}, "properties": {"repobilityId": "93f5c483e081bce9", "scanner": "scanner-primary", "fingerprint": "9ee80458ebaa5ad2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7fc2c7991a552e65", "level": "note", "message": {"text": "Unused endpoint: PATCH /transfer"}, "properties": {"repobilityId": "138e830676572b24", "scanner": "scanner-primary", "fingerprint": "7fc2c7991a552e65", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2152f75e0ca53a31", "level": "note", "message": {"text": "Unused endpoint: GET /steps"}, "properties": {"repobilityId": "240e23c14781683a", "scanner": "scanner-primary", "fingerprint": "2152f75e0ca53a31", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-282c9c5199668445", "level": "note", "message": {"text": "Unused endpoint: GET /servers"}, "properties": {"repobilityId": "93d741d22f041add", "scanner": "scanner-primary", "fingerprint": "282c9c5199668445", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2ea320ae6e11aa21", "level": "note", "message": {"text": "Unused endpoint: DELETE /servers/:serverId"}, "properties": {"repobilityId": "b6e661bec39d4038", "scanner": "scanner-primary", "fingerprint": "2ea320ae6e11aa21", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-195fb029bb695346", "level": "note", "message": {"text": "Unused endpoint: POST /scan"}, "properties": {"repobilityId": "d1affd180cc9822a", "scanner": "scanner-primary", "fingerprint": "195fb029bb695346", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-09483d24a50ea09b", "level": "note", "message": {"text": "Unused endpoint: POST /adopt"}, "properties": {"repobilityId": "9e1cf6ad7031f8a6", "scanner": "scanner-primary", "fingerprint": "09483d24a50ea09b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eb757797f6bd3444", "level": "note", "message": {"text": "Unused endpoint: POST /setup"}, "properties": {"repobilityId": "90bd7865fef780e4", "scanner": "scanner-primary", "fingerprint": "eb757797f6bd3444", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b3bb579c81fd8494", "level": "note", "message": {"text": "Unused endpoint: POST /setup/cancel"}, "properties": {"repobilityId": "fe2795024795c2c2", "scanner": "scanner-primary", "fingerprint": "b3bb579c81fd8494", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-36e71406f202a9f4", "level": "note", "message": {"text": "Unused endpoint: POST /setup/dns-ack"}, "properties": {"repobilityId": "11adc3443b36401d", "scanner": "scanner-primary", "fingerprint": "36e71406f202a9f4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6b2ea10316ea98fd", "level": "note", "message": {"text": "Unused endpoint: POST /setup/ptr-ack"}, "properties": {"repobilityId": "d4eff6139dc15f93", "scanner": "scanner-primary", "fingerprint": "6b2ea10316ea98fd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0926bc04714b08ca", "level": "note", "message": {"text": "Unused endpoint: POST /setup/reset"}, "properties": {"repobilityId": "75093b1bbb01f2ae", "scanner": "scanner-primary", "fingerprint": "0926bc04714b08ca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-87e3f292e7274eee", "level": "note", "message": {"text": "Unused endpoint: POST /credentials/postmaster"}, "properties": {"repobilityId": "7c8efe7292bfb8dc", "scanner": "scanner-primary", "fingerprint": "87e3f292e7274eee", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a50a849a17db7b78", "level": "note", "message": {"text": "Unused endpoint: GET /admin/:serverId/domains"}, "properties": {"repobilityId": "19c9040127698635", "scanner": "scanner-primary", "fingerprint": "a50a849a17db7b78", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2c57bf8cfe22dacc", "level": "note", "message": {"text": "Unused endpoint: POST /admin/:serverId/domains"}, "properties": {"repobilityId": "4cefe0efdb208f56", "scanner": "scanner-primary", "fingerprint": "2c57bf8cfe22dacc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-66301f6d9a27e0a5", "level": "note", "message": {"text": "Unused endpoint: GET /admin/:serverId/domains/:domain"}, "properties": {"repobilityId": "d15e6ae22460ecd9", "scanner": "scanner-primary", "fingerprint": "66301f6d9a27e0a5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-36de4529ed1f8ca5", "level": "note", "message": {"text": "Unused endpoint: PATCH /admin/:serverId/domains/:domain"}, "properties": {"repobilityId": "c84444257f2f0ee6", "scanner": "scanner-primary", "fingerprint": "36de4529ed1f8ca5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d17509b2426f6e5e", "level": "note", "message": {"text": "Unused endpoint: DELETE /admin/:serverId/domains/:domain"}, "properties": {"repobilityId": "14a7c80153bc05e6", "scanner": "scanner-primary", "fingerprint": "d17509b2426f6e5e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-afd5d50d6258e8e6", "level": "note", "message": {"text": "Unused endpoint: GET /admin/:serverId/domains/:domain/dependents"}, "properties": {"repobilityId": "f097285de29b98d7", "scanner": "scanner-primary", "fingerprint": "afd5d50d6258e8e6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2412a712419792cc", "level": "note", "message": {"text": "Unused endpoint: GET /admin/:serverId/domains/:domain/dns"}, "properties": {"repobilityId": "ebf0703286f8160e", "scanner": "scanner-primary", "fingerprint": "2412a712419792cc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}