{"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-8c60b0322b722407", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-test-profiles.js:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-test-profiles.js: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-f8c8a01b98e0fe67", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-secretary-test-user.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-secretary-test-user.js:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2be4fa2341c55bed", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/get-ts-errors.js:3", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/get-ts-errors.js:3"}, "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-b4bdce9572c5030f", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/monitor-type-safety.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/monitor-type-safety.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dde369175ecd916d", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/dependency-audit.js:96", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/dependency-audit.js:96"}, "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-2a79c4a79137ae8b", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/complexity-analysis.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/complexity-analysis.js:37"}, "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-af9aa941a11bd7ab", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/lint-changed.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/lint-changed.js:44"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0b80876b61d413ec", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/test-auth.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/test-auth.js:10"}, "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-3be141e862696516", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-working-test-users.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-working-test-users.js:20"}, "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-ee1b319c4ad1eae6", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/check-bundle-budget.js:120", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/check-bundle-budget.js:120"}, "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-d4d102517c9492e2", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/quality-dashboard.js:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/quality-dashboard.js:39"}, "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-9c6f051daa9833c9", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-test-users.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-test-users.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-42464b6646da9a78", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/analyze-bundle.js:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/analyze-bundle.js:62"}, "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-0e6557e841ba0855", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-test-user.js:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-test-user.js:38"}, "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-2b76af90ab582cf0", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/auto-cleanup-after-test.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/auto-cleanup-after-test.js:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b0b7ad1965491c09", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/cross-browser-test-runner.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/cross-browser-test-runner.js:37"}, "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-e29a1932a783047b", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-fresh-user.js:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-fresh-user.js: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-54c5ad56861215aa", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/validate-migration-setup.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/validate-migration-setup.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-9d6957a3dff04e65", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-playwright-test-user.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-playwright-test-user.js:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8a345da0b7ec4d51", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/apply-migration.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/apply-migration.js:28"}, "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-8fed522c4045de15", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/migrate-to-singular-tables.ts:182", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/migrate-to-singular-tables.ts:182"}, "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-efe0c4a67d995023", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/check-types.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/check-types.js:15"}, "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-c14cbfcb8d362130", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/fix-rbac-function.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/fix-rbac-function.js:9"}, "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-8cfd92bd5e563d1d", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/document-current-state.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/document-current-state.ts:41"}, "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-fc0c11e8cdccc5ac", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/rename-user-components.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/rename-user-components.js:15"}, "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-de7de49ee3c13d5f", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/setup-e2e-test-users.js:132", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/setup-e2e-test-users.js:132"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4af5e413116bc1b8", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/stripe-refund-entry/index.ts:177", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/stripe-refund-entry/index.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-7358e1af35f03a90", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/send-email/index.ts:189", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/send-email/index.ts:189"}, "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-02cc7622dc71b11d", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/stripe-webhook/index.ts:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/stripe-webhook/index.ts:98"}, "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-546bd05c6a6f79cf", "name": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/supabase/functions/stripe-connect-onboard/index.ts:135", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/supabase/functions/stripe-connect-onboard/index.ts:135"}, "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-e07f18ef02082e42", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/stripe-connect-onboard/index.ts:185", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/stripe-connect-onboard/index.ts:185"}, "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-a43506b3d4323d74", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/stripe-checkout/index.ts:258", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/stripe-checkout/index.ts:258"}, "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-b19c6692bcca85eb", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/cron-process-payouts/index.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/cron-process-payouts/index.ts:48"}, "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-90ef7cb666410553", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/cron-waitlist-expiration/index.ts:109", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/cron-waitlist-expiration/index.ts:109"}, "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-3d6ce434162643f5", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/_shared/alertAdmin.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/_shared/alertAdmin.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-e0d784db33134afa", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/phase3-4-quick-validation.test.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/phase3-4-quick-validation.test.ts:18"}, "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-4235553168e235e8", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/phase3-5-payment-processing.test.ts:277", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/phase3-5-payment-processing.test.ts:277"}, "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-a73bf0025f39cc02", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/unit/entryStore.test.ts:579", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/unit/entryStore.test.ts:579"}, "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-2f1b9cc0a28ae5b6", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/performance/performance.spec.ts:126", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/performance/performance.spec.ts:126"}, "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-8259ff3634a4af47", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/performance/templatePerformance.test.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/performance/templatePerformance.test.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-ac26b6329321d761", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/components/RegistrationWorkflow.simple.test.tsx:131", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/components/RegistrationWorkflow.simple.test.tsx:131"}, "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-4759bb7f276ba635", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/load/playwright-load-tests.spec.ts:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/load/playwright-load-tests.spec.ts:47"}, "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-6476c84c101d7a78", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/load/k6-load-tests.js:160", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/load/k6-load-tests.js:160"}, "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-5932e54bf82951ac", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/load/load-test-processor.js:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/load/load-test-processor.js: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-a9a22159143aba8f", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/hooks/queries/simplified-react-query.test.ts:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/hooks/queries/simplified-react-query.test.ts:98"}, "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-fc4d36b699741560", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/phase2-quick-test.spec.ts:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/phase2-quick-test.spec.ts:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-303b842ad36e0f90", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/auth-test.spec.ts:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/auth-test.spec.ts:10"}, "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-81bf716a9f4b12aa", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/show-details-issue.spec.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/show-details-issue.spec.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-fb52b565c39e47fb", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/show-details-performance.spec.ts:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/show-details-performance.spec.ts:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9a7468c509cce987", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/authentication-validation.spec.ts:147", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/authentication-validation.spec.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-8a5c61a2b68f9561", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/database-record-validation.spec.ts:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/database-record-validation.spec.ts:45"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5764bc8bfadce6f9", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/test-user-edit-panel-authenticated.spec.ts:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/test-user-edit-panel-authenticated.spec.ts:10"}, "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-7056bd5081c4e9dd", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-show-edit.spec.ts:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-show-edit.spec.ts:16"}, "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-1e64868b45b2b74d", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-show-add-button.spec.ts:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-show-add-button.spec.ts:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b654ae51f090ed47", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/test-user-edit-panel.spec.ts:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/test-user-edit-panel.spec.ts:6"}, "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-3dd976297d3bdb89", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/a11y-smoke.spec.ts:100", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/a11y-smoke.spec.ts:100"}, "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-bdef7be6a3d0dece", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/simple-show-edit-debug.spec.ts:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/simple-show-edit-debug.spec.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-803bc4b5da2ba438", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/phase5-simple-integration.spec.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/phase5-simple-integration.spec.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-68ba3f71b2e5d3ea", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/people-page-ui.spec.ts:279", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/people-page-ui.spec.ts:279"}, "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-fd2d362dc0094c2a", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/real-auth-browse-shows.spec.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/real-auth-browse-shows.spec.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-64272ba45bdde971", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser-compatibility.spec.ts:262", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser-compatibility.spec.ts:262"}, "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-685731ff4ad7633f", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/complete-user-journey.spec.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/complete-user-journey.spec.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-a20aea34d9d9ad0d", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/test-user-profile-edit.spec.ts:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/test-user-profile-edit.spec.ts:10"}, "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-ae607771eb86e0ec", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-user-flow.spec.ts:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-user-flow.spec.ts:10"}, "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-8bd1d7977eef601e", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/simple-connectivity.spec.ts:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/simple-connectivity.spec.ts:6"}, "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-11a91cd8d83e51a2", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/show-details-sidebar-navigation.spec.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/show-details-sidebar-navigation.spec.ts:21"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d537e11a894756bf", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-authentication.spec.ts:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-authentication.spec.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-e861b79fb6d50802", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-role-assignment.spec.ts:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-role-assignment.spec.ts:8"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a712731081fce646", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/phase5-complete-integration.spec.ts:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/phase5-complete-integration.spec.ts:36"}, "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-07afdf024f59937f", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser/basic-functionality.spec.ts:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser/basic-functionality.spec.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-8e3258a4f7e06d78", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser/performance.spec.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser/performance.spec.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-5c9b407686819629", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser/quirks.spec.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser/quirks.spec.ts:48"}, "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-3edc42945266b7b6", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser/functionality.spec.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser/functionality.spec.ts:34"}, "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-c925243313267819", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/show/phase4CrossRoleSeams.spec.ts:182", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/show/phase4CrossRoleSeams.spec.ts:182"}, "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-e574805a641d9a46", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/registration/entryCreationCore.spec.ts:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/registration/entryCreationCore.spec.ts:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a176b545739e3ec6", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/clubCRUD.spec.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/clubCRUD.spec.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-000bc150f682fcec", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/trialCRUD.spec.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/trialCRUD.spec.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-1df55ec202cbd7c4", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/classCRUD.spec.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/classCRUD.spec.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-53b8489e2cb791d9", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/showCRUD.spec.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/showCRUD.spec.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-8be31c89af441c4a", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/peopleCRUD.spec.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/peopleCRUD.spec.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-55d8a5e17f14cf33", "name": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/utils/show-management-tracking.ts:133", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/utils/show-management-tracking.ts:133"}, "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-0613d766c749fd41", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/myk9show/src/utils/sanitization.tsx:87", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/myk9show/src/utils/sanitization.tsx:87"}, "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-5b99509b2664ec53", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/layout/AppHeader.tsx:194", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/layout/AppHeader.tsx:194"}, "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-75f2ca63a7ef72d2", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/layout/record/AssociationCard.tsx:41", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/layout/record/AssociationCard.tsx:41"}, "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-0b5ab9705cf47948", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/UserEnhancedSidebar.tsx:178", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/UserEnhancedSidebar.tsx:178"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7b0f94080e2f636", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/DogCard.tsx:118", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/DogCard.tsx:118"}, "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-97fe742e40f761e4", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/browse/PeopleListView.tsx:92", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/browse/PeopleListView.tsx:92"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67d6c73982ecde7e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/browse/PeopleTableView.tsx:52", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/browse/PeopleTableView.tsx:52"}, "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-19eecc8b16052a93", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/UserDetails/UserDetailsView.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/UserDetails/UserDetailsView.tsx:181"}, "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-48f56bcb88836988", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/UserDetails/ContactInformationCa", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/UserDetails/ContactInformationCard.tsx:41"}, "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-a174c2a6feb5d415", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/notifications/MessageCenterPanel.tsx:3", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/notifications/MessageCenterPanel.tsx:361"}, "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-f7818cb3cc7c6063", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/live/EntryRow.tsx:51", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/live/EntryRow.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-cbc8fe622a698fa6", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/MultiSelectPopover.tsx:43", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/MultiSelectPopover.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-d1f6bf6bdafef93f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/browse/DogsTableView.tsx:72", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/browse/DogsTableView.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-08be1e8a913c5609", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/DogDetailsMain/sidebar/Registrati", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/DogDetailsMain/sidebar/RegistrationsCard.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-4f10dfdd7586a6c7", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/DogDetailsMain/sidebar/TitleProgr", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/DogDetailsMain/sidebar/TitleProgressCard.tsx:39"}, "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-e3198b310c864f90", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/DogDetails/TitleTracking/TitlePro", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/DogDetails/TitleTracking/TitleProgressCard.tsx:33"}, "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-19b54ff2c3ec919c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/sync/ConflictNotificationCenter.tsx:35", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/sync/ConflictNotificationCenter.tsx:359"}, "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-5be25dbb944c5abd", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/DogStripCard.tsx:34", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/DogStripCard.tsx:34"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6040bff3d915c6c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/StickyShowBar.tsx:70", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/StickyShowBar.tsx:70"}, "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-eb0ce6a12e4d3d44", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/ResultRow.tsx:36", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/ResultRow.tsx:36"}, "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-f076e5547b713cae", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/ShowDayHero.tsx:130", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/ShowDayHero.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-3967937b7e76a9de", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/CheckInStatusMenu.tsx:170", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/CheckInStatusMenu.tsx:170"}, "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-6cf22c9e4558604f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/TitleProgressCard.tsx:34", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/TitleProgressCard.tsx:34"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d98a2448571b945f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/EntryRow.tsx:52", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/EntryRow.tsx:52"}, "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-3f139492910694ec", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/judges/JudgeScoringInterface.tsx:240", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/judges/JudgeScoringInterface.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-f4622e3e67195815", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/StatusPickerDialog.tsx:58", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/StatusPickerDialog.tsx:58"}, "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-cb10e3340143e833", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/SearchPerformanceMonitor.tsx:16", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/SearchPerformanceMonitor.tsx:169"}, "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-d17f3a944eb52f4c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/CheckInManagementOverlay.tsx:17", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/CheckInManagementOverlay.tsx:170"}, "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-51d31f6f56879f88", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/RecentSearches.tsx:95", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/RecentSearches.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-6879f8e61065b314", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/ViewPicker.tsx:101", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/ViewPicker.tsx:101"}, "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-800236935e5d016c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/BrowseCard.tsx:33", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/BrowseCard.tsx:33"}, "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-a89ea0832a0cd353", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/EntitySidebar.tsx:81", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/EntitySidebar.tsx:81"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44a114955f5420df", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/pwa/PWAInstallBanner.tsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/pwa/PWAInstallBanner.tsx:55"}, "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-15d32f9f221dcf6f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowCardVertical.tsx:58", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowCardVertical.tsx:58"}, "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-57ececff1cc44bc8", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowDetails/ShowGroupedSidebar.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowDetails/ShowGroupedSidebar.tsx:114"}, "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-feb0a5ac1c10a44c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowDetails/TrialsList.tsx:99", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowDetails/TrialsList.tsx:99"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6032812b939a170a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowDetails/ShowMainCard.tsx:48", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowDetails/ShowMainCard.tsx:48"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ded817e568ed3216", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/browse/ShowCardHorizontal.tsx:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/browse/ShowCardHorizontal.tsx:74"}, "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-417450e5ead36e2a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/browse/ShowsTableView.tsx:70", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/browse/ShowsTableView.tsx:70"}, "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-50f41bba1dfecdcc", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowCalendar/ShowCalendar.tsx:14", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowCalendar/ShowCalendar.tsx:148"}, "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-2a3da51f0418f0a9", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/RegistrationWorkflow/HandlerAssi", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/RegistrationWorkflow/HandlerAssignmentStep.tsx:177"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-374fd4f5575325d0", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/RegistrationWorkflow/DogSelectio", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/RegistrationWorkflow/DogSelectionStepEnhanced.tsx:190"}, "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-6c04d7cdb240a631", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/RegistrationWorkflow/InlineHandl", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/RegistrationWorkflow/InlineHandlerSection.tsx:106"}, "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-c4525249542e022c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/wizard/steps/ClassSelectionStep.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/wizard/steps/ClassSelectionStep.tsx:367"}, "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-b8595d7f81948cca", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/wizard/steps/CloneFromShowCombob", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/wizard/steps/CloneFromShowCombobox.tsx:148"}, "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-42f78723b55a579d", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/tabs/DogEntriesSection.tsx:79", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/tabs/DogEntriesSection.tsx:79"}, "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-6b5eba00e8b901b4", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/tabs/WhereToBe.tsx:78", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/tabs/WhereToBe.tsx:78"}, "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-ae6b4d2236941365", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/tabs/TrialsTab.tsx:240", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/tabs/TrialsTab.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-8433fcb97eedc520", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/cart/CartPreviewPanel.tsx:216", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/cart/CartPreviewPanel.tsx:216"}, "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-753d2bef17fc90b5", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/cart/CartItemCard.tsx:54", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/cart/CartItemCard.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-5de9c60fe9e02109", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/classes/ClassesTableView.tsx:20", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/classes/ClassesTableView.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-da36c80d3300afdd", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/classes/ClassWarningBanners.tsx:38", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/classes/ClassWarningBanners.tsx:38"}, "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-4776d0eb7e8760f1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/classes/ClassGroupedSidebar.tsx:140", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/classes/ClassGroupedSidebar.tsx:140"}, "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-f2ff478911d439ef", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/classes/ClassResultsTable/EntryCard.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/classes/ClassResultsTable/EntryCard.tsx:39"}, "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-18e71867ba380b67", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/templates/DirectSaveTemplatesDialog.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/templates/DirectSaveTemplatesDialog.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-bfd442989ed93db1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/templates/secretary/ClassScheduleView.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/templates/secretary/ClassScheduleView.tsx:294"}, "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-42a665140ff46844", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/templates/secretary/SimpleClassSelecto", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/templates/secretary/SimpleClassSelector.tsx:505"}, "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-8a4d1f34c4101bf8", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/admin/users/UserTable/index.tsx:193", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/admin/users/UserTable/index.tsx:193"}, "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-15cc6079507efac1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/admin/permissions/PermissionInheritanc", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/admin/permissions/PermissionInheritanceView.tsx:191"}, "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-f6f009e3a38dc57e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/admin/DataLifecycleManagement/DeletedE", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/admin/DataLifecycleManagement/DeletedEntitySection.tsx:106"}, "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-e748b01eea2249ca", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/scoring/PlacementRecalculationAlert.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/scoring/PlacementRecalculationAlert.tsx:496"}, "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-f070e4c5f57e9cae", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/scoring/LiveScoreUpdates.tsx:426", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/scoring/LiveScoreUpdates.tsx:426"}, "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-9ed3f2b5ce60cdeb", "name": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/components/landing/v2/WaitlistFormLanding.tsx:59", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/components/landing/v2/WaitlistFormLanding.tsx:59"}, "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-ee15572fa93e51b2", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/optimistic/ProgressOverlay.tsx:204", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/optimistic/ProgressOverlay.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-cbb483b626cfa0e6", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/entries/management/EntriesTableView.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/entries/management/EntriesTableView.tsx:31"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8917dcc94abb7385", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/trials/TrialSidebar.tsx:100", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/trials/TrialSidebar.tsx:100"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-40e7f6c3a05bc86c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/clubs/members/MemberList.tsx:86", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/clubs/members/MemberList.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-269ed0f606d9c2b6", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/volunteers/AssignVolunteerPopover.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/volunteers/AssignVolunteerPopover.tsx:69"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2a1ad30201b8634", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/preferences/PreferencesDialog.tsx:312", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/preferences/PreferencesDialog.tsx:312"}, "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-e5719464066d5afc", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/preferences/DeviceManager.tsx:192", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/preferences/DeviceManager.tsx:192"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-84b0d95a66bb4a90", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/RegistrationWizardPage.tsx:609", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/RegistrationWizardPage.tsx:609"}, "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-99874d9e5a33a043", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/SmartSignInPage.tsx:306", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/SmartSignInPage.tsx:306"}, "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-4235fde5e0ec3384", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/AlertsPage.tsx:163", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/AlertsPage.tsx:163"}, "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-7b9532543313f859", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/ShowDetailsPrototype.tsx:367", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/ShowDetailsPrototype.tsx:367"}, "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-e548e1bbaae84f0e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/myk9show/src/pages/LegalPage.tsx:61", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/myk9show/src/pages/LegalPage.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-95fbcc6feaca5431", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/MyEntriesPage/index.tsx:558", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/MyEntriesPage/index.tsx:558"}, "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-5530e632259d138b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/scoring/ScoringEntryListPage.tsx:238", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/scoring/ScoringEntryListPage.tsx:238"}, "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-244d37cdb31b08c6", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/scoring/components/ScoringEntryCard.tsx:125", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/scoring/components/ScoringEntryCard.tsx:125"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c3d7b20043c3b1b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/scoring/components/ClassEntryRow.tsx:79", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/scoring/components/ClassEntryRow.tsx:79"}, "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-7f3d3052903dbfd6", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/secretary/SecretaryDashboardPage/DashboardQ", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/secretary/SecretaryDashboardPage/DashboardQuickLinks.tsx:33"}, "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-22b81ca84cf7e52a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/secretary/SecretaryDashboardPage/ShowPhaseC", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/secretary/SecretaryDashboardPage/ShowPhaseCard.tsx:36"}, "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-328af0edeb520eaf", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/secretary/SecretaryDashboardPage/AttentionN", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/secretary/SecretaryDashboardPage/AttentionNeededStrip.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-3ae3587cc9d84acf", "name": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/pages/secretary/ShowCreationWizard/saveShowAtomicOnline.ts:66", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/pages/secretary/ShowCreationWizard/saveShowAtomicOnline.ts:66"}, "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-fc7b382f36bfc545", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/onboarding/steps/StepDogs.tsx:77", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/onboarding/steps/StepDogs.tsx:77"}, "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-5e10cddade794c43", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/ClassDetailsPage/SecretaryRunSheet/RunSheet", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/ClassDetailsPage/SecretaryRunSheet/RunSheetRow.tsx:83"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1c73ebb2e7db6c9", "name": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/hooks/useEntryManagementActions.ts:589", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/hooks/useEntryManagementActions.ts:589"}, "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-d348af9216ffbfca", "name": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/hooks/useDogStoreCompat.ts:98", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/hooks/useDogStoreCompat.ts:98"}, "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-be636910c9c6b757", "name": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/hooks/useEmailStatus.ts:22", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/hooks/useEmailStatus.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-553c5fc7a06765e6", "name": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/hooks/queries/useShowResults.ts:37", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/hooks/queries/useShowResults.ts:37"}, "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-06e7763583dc964f", "name": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/services/LoggingService.ts:159", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/services/LoggingService.ts:159"}, "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-53b0517e782413a9", "name": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/services/mappers/showMappers.ts:40", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/services/mappers/showMappers.ts:40"}, "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-246d7d8f70afad03", "name": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/services/database/show-incidents.ts:31", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/services/database/show-incidents.ts:31"}, "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-cdcfb98ce189bb02", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/magazine/landing/sections/StickyNav.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/magazine/landing/sections/StickyNav.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-da88195d56b3c729", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/at-show/AtShowClassListPage.tsx:176", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/at-show/AtShowClassListPage.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-46117668d5058379", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/premium/LandingPageCard.tsx:67", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/premium/LandingPageCard.tsx:67"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f0e723b4d51ae02", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/messages/components/ThreadListItem.tsx:2", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/messages/components/ThreadListItem.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-6fe51606e7038811", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/payments/ClubPaymentsCard.tsx:163", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/payments/ClubPaymentsCard.tsx:163"}, "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-bddf7366c44a440a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/pipeline/components/TrialPipelineCard.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/pipeline/components/TrialPipelineCard.tsx:29"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b7ae290cda39874b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/pipeline/components/OverrideList.tsx:46", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/pipeline/components/OverrideList.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-129978dba0f0cb3b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/show-map/ShowMapStructureCells.tsx:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/show-map/ShowMapStructureCells.tsx:111"}, "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-cc08455252ef84d2", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/show-map/ShowMapStructureTable.tsx:400", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/show-map/ShowMapStructureTable.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-363abdb3db246adb", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/show-map/ShowMapSortableEntryRow.tsx:116", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/show-map/ShowMapSortableEntryRow.tsx:116"}, "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-45cdbdbd3e017ff6", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/show-map/ShowMapRunningNowStrip.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/show-map/ShowMapRunningNowStrip.tsx:32"}, "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-0980e4cdfa419d29", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-e2e-suite-map.js:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-e2e-suite-map.js:38"}, "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-d1144fa01ee36272", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrate-logging-v3.js:317", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrate-logging-v3.js:317"}, "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-0b1adfcbb90e1878", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrate-logging-v2.js:146", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrate-logging-v2.js:146"}, "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-7800fde836925e8a", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrate-logging.js:139", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrate-logging.js:139"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3cd79dcb6f82425f", "name": "TODO/FIXME marker in shipping code \u2014 scripts/qa/code-quality-ratchet.test.ts:122", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/qa/code-quality-ratchet.test.ts:122"}, "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-5b78cf7d2b36870e", "name": "Stray `console.log` in TS/JS \u2014 scripts/qa/code-quality-ratchet.ts:225", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/qa/code-quality-ratchet.ts:225"}, "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-5d5a2ec49f9e76d0", "name": "Stray `console.log` in TS/JS \u2014 scripts/qa/rls-smoke/rls-recursion-smoke.ts:146", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/qa/rls-smoke/rls-recursion-smoke.ts:146"}, "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-aab8dbf6045dc85f", "name": "Stray `console.log` in TS/JS \u2014 scripts/qa/mutation/run-mutation-targets.ts:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/qa/mutation/run-mutation-targets.ts:6"}, "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-7ea099331fb8dedc", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/email/src/templates/MonogramConfirmationEmail.tsx:167", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/email/src/templates/MonogramConfirmationEmail.tsx:167"}, "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-2154b0637868200d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/email/src/templates/GazetteConfirmationEmail.tsx:168", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/email/src/templates/GazetteConfirmationEmail.tsx:168"}, "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-5027b30793ffc992", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/email/src/templates/HeritageConfirmationEmail.tsx:142", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/email/src/templates/HeritageConfirmationEmail.tsx:142"}, "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-0f0aa8ebd0bd8191", "name": "Custom React Flow node registered without explicit width/height \u2014 packages/replication/src/conflict/ConflictManager.ts:1", "shortDescription": {"text": "Custom React Flow node registered without explicit width/height \u2014 packages/replication/src/conflict/ConflictManager.ts:183"}, "fullDescription": {"text": "When you register a custom node type via `nodeTypes`, the RFNode object you build must include `width` and `height` props. Without them, MiniMap renders ZERO mini-nodes for that type and `fitView` underestimates the bounds (cuts off lane labels, etc.). Add `width: \u2026, height: \u2026` to the node object. See P-I.\n\nWhy: P-I in CHECKLIST.md \u2014 RF MiniMap + fitView need explicit dims on custom nodes.\nRule id: fq.rfnode.no-dims"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fb79236d7a67282c", "name": "Stray `console.log` in TS/JS \u2014 packages/core/src/utils/typeGuards.ts:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/utils/typeGuards.ts:15"}, "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-125839c1ae075ebb", "name": "Stray `console.log` in TS/JS \u2014 packages/core/src/utils/logger.ts:80", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/utils/logger.ts:80"}, "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-e2ad61691949e9d9", "name": "Stray `console.log` in TS/JS \u2014 packages/scoring-ui/src/index.ts:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scoring-ui/src/index.ts:15"}, "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-d2ec876dd5e94662", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/UKC/UKCObedienceLive", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/UKC/UKCObedienceLiveScoresheet.tsx:137"}, "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-70772b1b7958125c", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/UKC/UKCRallyLiveScor", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/UKC/UKCRallyLiveScoresheet.tsx:126"}, "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-69309c13b2903734", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/UKC/UKCNoseworkLiveS", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/UKC/UKCNoseworkLiveScoresheet.tsx:179"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76d2d8d5c2c2c8de", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/ASCA/ASCAScentDetect", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/ASCA/ASCAScentDetectionLiveScoresheet.tsx:138"}, "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-0cc08d01fc21c4e2", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/AKC/AKCFastCatLiveSc", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/AKC/AKCFastCatLiveScoresheet.tsx:143"}, "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-755a303ba23fadd8", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/AKC/AKCScentWorkLive", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/AKC/AKCScentWorkLiveScoresheet.tsx:139"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47f4d1edce1c14a6", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/AKC/AKCNationalsLive", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/AKC/AKCNationalsLiveScoresheet.tsx:216"}, "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-5d47f24e486eb78f", "name": "Stray `console.log` in TS/JS \u2014 packages/scoring-ui/src/hooks/useSwipeGesture.ts:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scoring-ui/src/hooks/useSwipeGesture.ts:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3abd1baec4ab1f6e", "name": "Stray `console.log` in TS/JS \u2014 packages/scoring-ui/src/hooks/useLongPress.ts:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scoring-ui/src/hooks/useLongPress.ts:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c798f34e2acd06db", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/push-trigger-announcement/index.ts:126", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/push-trigger-announcement/index.ts:126"}, "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-3d55657dc95ca7a0", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/admin-generate-reset-link/index.ts:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/admin-generate-reset-link/index.ts:62"}, "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-c856c31d43993575", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/ask-myk9q/index.ts:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/ask-myk9q/index.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-ade3a3fc79d80d48", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/send-email/index.ts:168", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/send-email/index.ts:168"}, "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-35f0ba9df8429d95", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/validate-passcode/index.ts:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/validate-passcode/index.ts:122"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-41255b497971ac70", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/admin-delete-user/index.ts:91", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/admin-delete-user/index.ts:91"}, "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-75110939d1c6519c", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/send-registration-email/index.ts:283", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/send-registration-email/index.ts:283"}, "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-ae7612d39dd21360", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/send-auth-email/index.ts:147", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/send-auth-email/index.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-ec3dd7d6600b3a09", "name": "Insecure pattern 'node_child_process' in apps/myk9show/package.json:55", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/package.json:55"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0e3000b4cee6b9e0", "name": "Possible secret in apps/myk9show/scripts/create-secretary-test-user.js", "shortDescription": {"text": "Possible secret in apps/myk9show/scripts/create-secretary-test-user.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-1cef01f581ce550e", "name": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/get-ts-errors.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/get-ts-errors.js:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9bc818399f271bcf", "name": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/monitor-type-safety.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/monitor-type-safety.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8b1ba891cd5d0350", "name": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/complexity-analysis.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/complexity-analysis.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9fe961c53c30d5a", "name": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/lint-changed.js:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/lint-changed.js:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-59e7a972e14ffde1", "name": "Possible secret in apps/myk9show/scripts/test-auth.js", "shortDescription": {"text": "Possible secret in apps/myk9show/scripts/test-auth.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-9f0f170523e7c133", "name": "Possible secret in apps/myk9show/scripts/create-working-test-users.js", "shortDescription": {"text": "Possible secret in apps/myk9show/scripts/create-working-test-users.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-a3cb65c04039ae83", "name": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/quality-dashboard.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/quality-dashboard.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-20ee9e1884b78ed8", "name": "Possible secret in apps/myk9show/scripts/create-test-users.js", "shortDescription": {"text": "Possible secret in apps/myk9show/scripts/create-test-users.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-3353f1849195aac0", "name": "Possible secret in apps/myk9show/scripts/create-test-user.js", "shortDescription": {"text": "Possible secret in apps/myk9show/scripts/create-test-user.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-66e63441cfceb125", "name": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/auto-cleanup-after-test.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/auto-cleanup-after-test.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f9df988db766d9d1", "name": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/cross-browser-test-runner.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/cross-browser-test-runner.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c8988956bb18284c", "name": "Possible secret in apps/myk9show/scripts/create-fresh-user.js", "shortDescription": {"text": "Possible secret in apps/myk9show/scripts/create-fresh-user.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-c5dcd93c5b3bd999", "name": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/validate-migration-setup.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/validate-migration-setup.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bcd510a7ab6f746d", "name": "Possible secret in apps/myk9show/scripts/create-playwright-test-user.js", "shortDescription": {"text": "Possible secret in apps/myk9show/scripts/create-playwright-test-user.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-fe5a87cfc1eb6a98", "name": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/check-types.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/check-types.js:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-54e78e510a0c072f", "name": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/run-load-tests-full.mjs:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/run-load-tests-full.mjs:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ad466a323872c45", "name": "Possible secret in apps/myk9show/scripts/setup-e2e-test-users.js", "shortDescription": {"text": "Possible secret in apps/myk9show/scripts/setup-e2e-test-users.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-d5e21de07b867d9b", "name": "Insecure pattern 'local_storage_auth_token' in apps/myk9show/src/config/security.ts:200", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in apps/myk9show/src/config/security.ts:200"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b669b6fdd2cb72f1", "name": "Possible secret in apps/myk9show/src/test/config/test-config.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/config/test-config.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-a20d6fbde1f6dc17", "name": "Possible secret in apps/myk9show/src/test/load/LoadTestRunner.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/load/LoadTestRunner.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-8bed0d7dc2b222a5", "name": "Possible secret in apps/myk9show/src/test/load/artillery-config.yml", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/load/artillery-config.yml"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-1eefe4b48e4c83f4", "name": "Possible secret in apps/myk9show/src/test/load/load-test-processor.js", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/load/load-test-processor.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-87cee1a5408a3dbb", "name": "Possible secret in apps/myk9show/src/test/e2e/show-details-issue.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/show-details-issue.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-d3ff39a7797a81c0", "name": "Possible secret in apps/myk9show/src/test/e2e/classes-page-ui.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/classes-page-ui.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-246dd51141767f26", "name": "Possible secret in apps/myk9show/src/test/e2e/my-entries-page-ui.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/my-entries-page-ui.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-5d271bd42665867c", "name": "Possible secret in apps/myk9show/src/test/e2e/real-auth-browse-shows.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/real-auth-browse-shows.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-eb666617078a022f", "name": "Possible secret in apps/myk9show/src/test/e2e/complete-user-journey.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/complete-user-journey.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-7147630447c83e40", "name": "Possible secret in apps/myk9show/src/test/e2e/playwright-real-auth.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/playwright-real-auth.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-3b31852d9a9c562c", "name": "Possible secret in apps/myk9show/src/test/e2e/trials-page-ui.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/trials-page-ui.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-643be3f86f13de55", "name": "Possible secret in apps/myk9show/src/test/e2e/shows-page-ui-improvements.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/shows-page-ui-improvements.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-4d2323ab4a27c1e0", "name": "Possible secret in apps/myk9show/src/test/e2e/uat/shared/auth.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/uat/shared/auth.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-6679ff9b5635c3b1", "name": "Possible secret in apps/myk9show/src/test/e2e/helpers/testUsers.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-c4696222ff61472b", "name": "Possible secret in apps/myk9show/src/test/e2e/registration/singleDogSingleClass.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/registration/singleDogSingleClass.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-731a810caa33b3f8", "name": "Possible secret in apps/myk9show/src/test/e2e/registration/secretaryExistingUsers.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/registration/secretaryExistingUsers.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-4c8503f48750130a", "name": "Possible secret in apps/myk9show/src/test/e2e/entities/showWizardUI.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/showWizardUI.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-6d5c94e712956318", "name": "Possible secret in apps/myk9show/src/test/e2e/entities/entriesUI.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/entriesUI.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-f37aa84988b8ffcd", "name": "Possible secret in apps/myk9show/src/test/e2e/entities/classesUI.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/classesUI.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-80f1ab83b7a27a75", "name": "Possible secret in apps/myk9show/src/test/e2e/entities/showsUI.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/showsUI.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-bfd3e5178eb565c0", "name": "Possible secret in apps/myk9show/src/test/e2e/entities/registrationUI.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/registrationUI.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-7275e9d267b21026", "name": "Possible secret in apps/myk9show/src/test/e2e/entities/clubsUI.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/clubsUI.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-a115594a60aef4cb", "name": "Possible secret in apps/myk9show/src/test/e2e/entities/secretaryEntryCreationUI.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/secretaryEntryCreationUI.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-e45f430c58e7b705", "name": "Possible secret in apps/myk9show/src/test/e2e/entities/reportsUI.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/reportsUI.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-d8529dc7a8d96d25", "name": "Possible secret in apps/myk9show/src/test/e2e/entities/trialsUI.spec.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/trialsUI.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-286bde353f296bc0", "name": "Insecure pattern 'dangerous_innerhtml' in apps/myk9show/src/utils/sanitization.tsx:87", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/myk9show/src/utils/sanitization.tsx:87"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d3e2931f104f8a9", "name": "Insecure pattern 'direct_innerhtml_assignment' in apps/myk9show/src/components/common/virtual/VirtualScrollList.tsx:341", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in apps/myk9show/src/components/common/virtual/VirtualScrollList.tsx:341"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a959097e37ed8f40", "name": "Insecure pattern 'document_write' in apps/myk9show/src/components/secretary/ShowAccessCodesCard.tsx:125", "shortDescription": {"text": "Insecure pattern 'document_write' in apps/myk9show/src/components/secretary/ShowAccessCodesCard.tsx:125"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0d39a581b417f168", "name": "Insecure pattern 'document_write' in apps/myk9show/src/components/entries/EntryReceipt.tsx:237", "shortDescription": {"text": "Insecure pattern 'document_write' in apps/myk9show/src/components/entries/EntryReceipt.tsx:237"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-95aca252cabc2dce", "name": "Insecure pattern 'local_storage_auth_token' in apps/myk9show/src/components/preferences/__tests__/DataSettings.test.tsx:", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in apps/myk9show/src/components/preferences/__tests__/DataSettings.test.tsx:62"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-945dd0a12489fccd", "name": "Insecure pattern 'dangerous_innerhtml' in apps/myk9show/src/pages/LegalPage.tsx:61", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/myk9show/src/pages/LegalPage.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": 1.0}}, {"id": "scanner-eaf01ff3a0687a94", "name": "Possible secret in apps/myk9show/src/hooks/useSecurityValidation.ts", "shortDescription": {"text": "Possible secret in apps/myk9show/src/hooks/useSecurityValidation.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-5e634ea0bb2b532d", "name": "Insecure pattern 'local_storage_auth_token' in apps/myk9show/src/services/deployment/ProductionMonitoringService.ts:480", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in apps/myk9show/src/services/deployment/ProductionMonitoringService.ts:480"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a531bc1c99ebc543", "name": "Insecure pattern 'document_write' in apps/myk9show/src/features/pipeline/print/print-service.ts:40", "shortDescription": {"text": "Insecure pattern 'document_write' in apps/myk9show/src/features/pipeline/print/print-service.ts:40"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-985b9d08b30ca54c", "name": "Insecure pattern 'direct_innerhtml_assignment' in apps/myk9show/src/features/admin-help/components/PageFlowDiagram.tsx:5", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in apps/myk9show/src/features/admin-help/components/PageFlowDiagram.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-483c2c1a80842f7f", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/option-b-prototype.html:380", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/option-b-prototype.html:380"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a5d2193bfdc5bd3b", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/archive/design_handoff_landing_page/design/page.js:14", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/archive/design_handoff_landing_page/design/page.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e750174e946961d7", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/design/prototype/components.jsx:10", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/design/prototype/components.jsx:10"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-39a13652c33ce555", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/plans/design_handoff_premiums/image-slot.js:235", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/plans/design_handoff_premiums/image-slot.js:235"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bb2642a4fd18136b", "name": "Insecure pattern 'node_child_process' in scripts/migrate-logging.js:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/migrate-logging.js:3"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db46e1e4c9286e8b", "name": "Insecure pattern 'node_child_process' in scripts/qa/db-drift/function-inventory.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/qa/db-drift/function-inventory.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-741e85643913daf5", "name": "Insecure pattern 'node_child_process' in scripts/qa/mutation/run-mutation-targets.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/qa/mutation/run-mutation-targets.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-22c0768387089251", "name": "Insecure pattern 'dangerous_innerhtml' in .claude/skills/code-review-extensions/SKILL.md:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in .claude/skills/code-review-extensions/SKILL.md:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c1b561c62fff4056", "name": "Insecure pattern 'dangerous_innerhtml' in .claude/skills/security-audit/SKILL.md:65", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in .claude/skills/security-audit/SKILL.md:65"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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/upload-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f2b03f3b9878fafa", "name": "Very large file: apps/myk9show/src/services/replication/__tests__/ReplicatedShowsTable.test.ts (1753 lines)", "shortDescription": {"text": "Very large file: apps/myk9show/src/services/replication/__tests__/ReplicatedShowsTable.test.ts (1753 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-3e4aefa30e71dd29", "name": "Very large file: apps/myk9show/src/services/replication/__tests__/ReplicatedEntriesTable.test.ts (1739 lines)", "shortDescription": {"text": "Very large file: apps/myk9show/src/services/replication/__tests__/ReplicatedEntriesTable.test.ts (1739 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-778a9d44dda009cb", "name": "Very large file: packages/supabase/src/types/database.types.ts (9056 lines)", "shortDescription": {"text": "Very large file: packages/supabase/src/types/database.types.ts (9056 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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a37210227f28b23", "name": "Node manifest has dependencies but no lockfile: apps/myk9show/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/myk9show/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3f0660eb05cee4bd", "name": "Node manifest has dependencies but no lockfile: apps/myk9show/scripts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/myk9show/scripts/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-518be022aa65dde7", "name": "Node manifest has dependencies but no lockfile: packages/pwa-update/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/pwa-update/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-172dcdf252860fa6", "name": "Node manifest has dependencies but no lockfile: packages/notifications/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/notifications/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2715e03ca941afb5", "name": "Node manifest has dependencies but no lockfile: packages/email/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/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": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-50575d6279dff225", "name": "Node manifest has dependencies but no lockfile: packages/replication/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/replication/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-50218c90b43393bb", "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": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0c1e393903b00c08", "name": "Node manifest has dependencies but no lockfile: packages/scoring/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/scoring/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3f5eb5a4d7270c68", "name": "Node manifest has dependencies but no lockfile: packages/test-utils/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/test-utils/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ef2d42ca684ac456", "name": "Node manifest has dependencies but no lockfile: packages/secretary/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/secretary/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ffb0f8c7b909c0bc", "name": "Node manifest has dependencies but no lockfile: packages/supabase/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/supabase/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28e92806c0db3cd2", "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": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f5c1d0de04984b0d", "name": "Node manifest has dependencies but no lockfile: packages/ringside/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/ringside/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1ae3358a1764f35f", "name": "Node manifest has dependencies but no lockfile: packages/scoring-ui/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/scoring-ui/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 545 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 1037 placeholder/mock markers across 394 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "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 license, lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10b1c644a63733d3", "name": "Agent authority lacks a verifier contract: .claude/commands/impeccable-sweep.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/impeccable-sweep.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-47b71897f33be8c4", "name": "Agent authority lacks a verifier contract: .claude/skills/playwright-cli/references/storage-state.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/playwright-cli/references/storage-state.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce349b621e2986b5", "name": "Agent authority lacks a verifier contract: .claude/skills/playwright-cli/references/running-code.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/playwright-cli/references/running-code.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72a82bcfa89e6a5c", "name": "Agent authority lacks a verifier contract: .claude/skills/playwright-cli/references/request-mocking.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/playwright-cli/references/request-mocking.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-51f746b1adaac473", "name": "Agent authority lacks a verifier contract: .claude/skills/harden/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/harden/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-527f1392a1d8eb9e", "name": "Agent authority lacks a verifier contract: .claude/skills/writing-concisely/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/writing-concisely/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d8597329ec8115c7", "name": "Agent authority lacks a verifier contract: .claude/skills/cleanup/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/cleanup/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-909eb64265cce1c7", "name": "Agent authority lacks a verifier contract: .codex/hooks.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/hooks.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-739c771661fdd4fb", "name": "Commented-code block (5 lines) in apps/myk9show/secretary-walk.mjs:12", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/secretary-walk.mjs:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-359e8237d7607557", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/api/og-show-image.tsx:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/api/og-show-image.tsx:91"}, "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-2d1003dd5f58cede", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/scripts/fix-rbac-function.js:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/scripts/fix-rbac-function.js:50"}, "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-95fc413660d138bb", "name": "Legacy-named symbol `peopleSidebarOld` in apps/myk9show/scripts/rename-user-components.js:57", "shortDescription": {"text": "Legacy-named symbol `peopleSidebarOld` in apps/myk9show/scripts/rename-user-components.js:57"}, "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-17dbe63c465b08e0", "name": "Commented-code block (6 lines) in apps/myk9show/scripts/run-load-tests-full.mjs:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/scripts/run-load-tests-full.mjs: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-94991bf7b1109183", "name": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/stripe-refund-entry/index.ts:144", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/stripe-refund-entry/index.ts:144"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-686a65a028e243d0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/supabase/functions/send-email/index.ts:168", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/supabase/functions/send-email/index.ts:168"}, "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-4bc589bf2e0231bd", "name": "Commented-code block (6 lines) in apps/myk9show/supabase/functions/stripe-webhook/index.ts:375", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/supabase/functions/stripe-webhook/index.ts:375"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-732d9313dee1c9ed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/supabase/functions/stripe-webhook/index.ts:824", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/supabase/functions/stripe-webhook/index.ts:824"}, "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-df07631fa3ef2ecb", "name": "Commented-code block (6 lines) in apps/myk9show/supabase/functions/stripe-connect-onboard/index.ts:135", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/supabase/functions/stripe-connect-onboard/index.ts:135"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-883833401aef3db0", "name": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/stripe-checkout/index.ts:226", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/stripe-checkout/index.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-82d26e3f5c7de25e", "name": "Commented-code block (9 lines) in apps/myk9show/supabase/functions/cron-process-payouts/index.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in apps/myk9show/supabase/functions/cron-process-payouts/index.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-63b67b3b87424fef", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/supabase/functions/cron-waitlist-expiration/index.ts:300", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/supabase/functions/cron-waitlist-expiration/index.ts:300"}, "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-30362307ea9f8d1a", "name": "Commented-code block (11 lines) in apps/myk9show/supabase/functions/_shared/payoutCalc.ts:13", "shortDescription": {"text": "Commented-code block (11 lines) in apps/myk9show/supabase/functions/_shared/payoutCalc.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-06a6a076f314e898", "name": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/_shared/entryFromCartItem.test.ts:22", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/_shared/entryFromCartItem.test.ts: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-844371694ed65507", "name": "Commented-code block (6 lines) in apps/myk9show/supabase/functions/_shared/authoritativeFee.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/supabase/functions/_shared/authoritativeFee.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-2e32bcbf5920a4c1", "name": "Commented-code block (7 lines) in apps/myk9show/supabase/functions/_shared/entryFromCartItem.ts:13", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/supabase/functions/_shared/entryFromCartItem.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-adc981d1dde63d29", "name": "Commented-code block (7 lines) in apps/myk9show/supabase/functions/_shared/refundReuse.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/supabase/functions/_shared/refundReuse.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-e5bd8d269d8f65b3", "name": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/_shared/alertAdmin.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/_shared/alertAdmin.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-09dd8e1817cf17a8", "name": "Commented-code block (7 lines) in apps/myk9show/supabase/functions/_shared/sessionCartGuard.test.ts:53", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/supabase/functions/_shared/sessionCartGuard.test.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-9f967c27d35f63e6", "name": "Commented-code block (8 lines) in apps/myk9show/supabase/functions/_shared/sessionCartGuard.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/supabase/functions/_shared/sessionCartGuard.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-00a2ef5f7d8021bc", "name": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/_shared/premiumPrices.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/_shared/premiumPrices.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-9fbc3ac1addf9707", "name": "Commented-code block (5 lines) in apps/myk9show/public/theme-init.js:18", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/public/theme-init.js: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-8d96da95ee6ada1b", "name": "Commented-code block (8 lines) in apps/myk9show/src/App.tsx:80", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/src/App.tsx: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-011ad68402054a59", "name": "Legacy-named symbol `convertShowJudgeToLegacy` in apps/myk9show/src/types/judge-types.ts:21", "shortDescription": {"text": "Legacy-named symbol `convertShowJudgeToLegacy` in apps/myk9show/src/types/judge-types.ts:21"}, "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-ca93b886c7ac763a", "name": "Commented-code block (7 lines) in apps/myk9show/src/config/features.ts:27", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/config/features.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a218046c7dcf3c9", "name": "Commented-code block (7 lines) in apps/myk9show/src/test/setup.ts:121", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/test/setup.ts:121"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-196fce843cd28e22", "name": "Commented-code block (8 lines) in apps/myk9show/src/test/security/PrivilegeEscalation.test.ts:36", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/src/test/security/PrivilegeEscalation.test.ts: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-4b83978745b8fe4e", "name": "Commented-code block (5 lines) in apps/myk9show/src/test/stores/phase5-support-systems.test.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/stores/phase5-support-systems.test.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8245640a90a823c", "name": "Commented-code block (7 lines) in apps/myk9show/src/test/auth/useAuth.test.ts:26", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/test/auth/useAuth.test.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-db36036f36a0bcfd", "name": "Commented-code block (7 lines) in apps/myk9show/src/test/mocks/zustandReset.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/test/mocks/zustandReset.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-42309e101ca0f78d", "name": "Commented-code block (5 lines) in apps/myk9show/src/test/components/analytics/EnhancedAnalyticsDashboard.test.tsx:561", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/components/analytics/EnhancedAnalyticsDashboard.test.tsx:561"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-33d786122c687a5b", "name": "Commented-code block (5 lines) in apps/myk9show/src/test/components/entries/management/EntryFiltersCard.integration.test", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/components/entries/management/EntryFiltersCard.integration.test.tsx: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-5839703c19a26138", "name": "Commented-code block (6 lines) in apps/myk9show/src/test/load/DatabaseLoadTests.ts:439", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/test/load/DatabaseLoadTests.ts:439"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be352cbc75e4826e", "name": "Commented-code block (8 lines) in apps/myk9show/src/test/pages/ShowDetailsPage.test.tsx:594", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/src/test/pages/ShowDetailsPage.test.tsx:594"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2170fdbf10e7529a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/test/services/MonitoringService.test.ts:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/test/services/MonitoringService.test.ts:64"}, "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-4e29aa7064420805", "name": "Commented-code block (5 lines) in apps/myk9show/src/test/services/database/queries/armbandQueries.replication.test.ts:16", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/services/database/queries/armbandQueries.replication.test.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-571f62625b580202", "name": "Legacy-named symbol `addUserLegacy` in apps/myk9show/src/test/store/peopleStore.test.tsx:548", "shortDescription": {"text": "Legacy-named symbol `addUserLegacy` in apps/myk9show/src/test/store/peopleStore.test.tsx:548"}, "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-0f9e650d371602c1", "name": "Commented-code block (10 lines) in apps/myk9show/src/test/e2e/show-presence.spec.ts:83", "shortDescription": {"text": "Commented-code block (10 lines) in apps/myk9show/src/test/e2e/show-presence.spec.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-eed3c670ec53a26f", "name": "Commented-code block (7 lines) in apps/myk9show/src/test/e2e/uat/shared/secretaryData.ts:27", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/test/e2e/uat/shared/secretaryData.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d3e0dba429282382", "name": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/show/showConflictSurfacing.spec.ts:71", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/show/showConflictSurfacing.spec.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-b4b76b010d69eae6", "name": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/showWizardUI.spec.ts:77", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/showWizardUI.spec.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-5a9f41d8ae50d070", "name": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/entriesUI.spec.ts:136", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/entriesUI.spec.ts:136"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6daa2969924e35c7", "name": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/classesUI.spec.ts:322", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/classesUI.spec.ts:322"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1b960dfd3046521", "name": "Commented-code block (6 lines) in apps/myk9show/src/test/e2e/entities/showsUI.spec.ts:157", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/test/e2e/entities/showsUI.spec.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-f21312c5b5adc484", "name": "Commented-code block (7 lines) in apps/myk9show/src/test/e2e/entities/dogsUI.spec.ts:646", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/test/e2e/entities/dogsUI.spec.ts:646"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9bcd521a4dad5af", "name": "Commented-code block (6 lines) in apps/myk9show/src/test/e2e/entities/registrationUI.spec.ts:157", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/test/e2e/entities/registrationUI.spec.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-c4eb4848fd36a2bc", "name": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/peopleUI.spec.ts:190", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/peopleUI.spec.ts:190"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a3af6546fca5b4ff", "name": "Commented-code block (7 lines) in apps/myk9show/src/test/e2e/entities/reportsUI.spec.ts:89", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/test/e2e/entities/reportsUI.spec.ts: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-7b85f2b2bcaeffb2", "name": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/trialsUI.spec.ts:343", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/trialsUI.spec.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-16e924ab2fc4896b", "name": "Commented-code block (6 lines) in apps/myk9show/src/utils/enrollmentGrouping.ts:82", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/utils/enrollmentGrouping.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-f1705fb5a0079fa0", "name": "Commented-code block (9 lines) in apps/myk9show/src/utils/stateLoggingMiddleware.ts:293", "shortDescription": {"text": "Commented-code block (9 lines) in apps/myk9show/src/utils/stateLoggingMiddleware.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-0f55bcc2267938a5", "name": "Commented-code block (5 lines) in apps/myk9show/src/utils/enrollmentGrouping.test.ts:246", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/utils/enrollmentGrouping.test.ts:246"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10622a04dae27f85", "name": "Commented-code block (5 lines) in apps/myk9show/src/utils/site-admin-browse-shows.test.ts:206", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/utils/site-admin-browse-shows.test.ts:206"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47ca94bceb86acac", "name": "Commented-code block (7 lines) in apps/myk9show/src/components/layout/sidebar/unifiedSidebarConfig.ts:101", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/components/layout/sidebar/unifiedSidebarConfig.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-f76ad64e3dfaa074", "name": "Commented-code block (7 lines) in apps/myk9show/src/components/schedule/ScheduleTimeline.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/components/schedule/ScheduleTimeline.tsx: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-04bc32a4b831d8a4", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/subscription/SubscriptionManager.tsx:56", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/subscription/SubscriptionManager.tsx:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ecea91aac5fb4f6f", "name": "Commented-code block (6 lines) in apps/myk9show/src/components/common/FilterBar/FilterPill.tsx:62", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/common/FilterBar/FilterPill.tsx: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-760ae0462276b684", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/pwa/PWAInstallBanner.tsx:24", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/pwa/PWAInstallBanner.tsx:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04f8e1ab4d1d8993", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/ShowStatusPill.tsx:68", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/ShowStatusPill.tsx:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8cdb06639fc3649", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/browse/ShowBulkActionsBar.tsx:42", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/browse/ShowBulkActionsBar.tsx: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-dbe0816068cc86b9", "name": "Commented-code block (6 lines) in apps/myk9show/src/components/shows/RegistrationWorkflow/ConfirmationStep.tsx:80", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/shows/RegistrationWorkflow/ConfirmationStep.tsx: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-36bf2e0a57eaf8da", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/RegistrationWorkflow/DogSelectionStepEnhanced.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/RegistrationWorkflow/DogSelectionStepEnhanced.tsx:393"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-065f986117f9c5c7", "name": "Commented-code block (6 lines) in apps/myk9show/src/components/shows/RegistrationWorkflow/WorkflowStepContent.tsx:107", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/shows/RegistrationWorkflow/WorkflowStepContent.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-79d18ed8230ad693", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/RegistrationWorkflow/__tests__/ConfirmationStep.ema", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/RegistrationWorkflow/__tests__/ConfirmationStep.email.test.tsx:132"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80c30b26c61be015", "name": "Commented-code block (6 lines) in apps/myk9show/src/components/shows/wizard/steps/ReviewStep.tsx:62", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/shows/wizard/steps/ReviewStep.tsx: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-d5ef3edd6647b459", "name": "Commented-code block (6 lines) in apps/myk9show/src/components/shows/overview/MoreFromClub.tsx:11", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/shows/overview/MoreFromClub.tsx:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a2bd024d2557d8f", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/overview/ShowOfficials.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/overview/ShowOfficials.tsx: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-69963b86568f3482", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/tabs/ShowOverviewTab.tsx:109", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/tabs/ShowOverviewTab.tsx:109"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-65b5b1bf1357ae94", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/classes/ClassResultsTable/useRunOrderPreset.ts:32", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/classes/ClassResultsTable/useRunOrderPreset.ts:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8cf76930c4058fab", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/panels/edit/ShowEditPanel.helpers.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/panels/edit/ShowEditPanel.helpers.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7baafddaa32b0216", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/panels/edit/ShowEditPanel.tsx:36", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/panels/edit/ShowEditPanel.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-ed9d9dc9a5d54a58", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/panels/edit/JudgeQualificationPanel.tsx:90", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/panels/edit/JudgeQualificationPanel.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-d592891be170748c", "name": "Commented-code block (6 lines) in apps/myk9show/src/components/panels/edit/AddDogPanel/validation.test.ts:81", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/panels/edit/AddDogPanel/validation.test.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-c9463cbb860fcb3e", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/panels/edit/AddDogPanel/index.tsx:35", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/panels/edit/AddDogPanel/index.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-f97eebf50f26bd48", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/landing/v2/WaitlistFormLanding.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/landing/v2/WaitlistFormLanding.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-8e6e6b3e77201c54", "name": "Commented-code block (6 lines) in apps/myk9show/src/components/secretary/ShowAccessCodesCard.tsx:159", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/secretary/ShowAccessCodesCard.tsx: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-734bb03f6b0ce475", "name": "Commented-code block (6 lines) in apps/myk9show/src/components/secretary/ShowAccessCodesCard.test.tsx:34", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/secretary/ShowAccessCodesCard.test.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-87af5911950258ad", "name": "Commented-code block (11 lines) in apps/myk9show/src/components/entries/EntryEditDialog.tsx:102", "shortDescription": {"text": "Commented-code block (11 lines) in apps/myk9show/src/components/entries/EntryEditDialog.tsx: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-5e3305985a8e5187", "name": "Commented-code block (5 lines) in apps/myk9show/src/components/reports/labels/ResultLabelCell.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/reports/labels/ResultLabelCell.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-df4b81544e43251a", "name": "Legacy-named symbol `isLegacy` in apps/myk9show/src/components/rbac/RBACMigrationStatus.tsx:39", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in apps/myk9show/src/components/rbac/RBACMigrationStatus.tsx:39"}, "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-910df0d091694fbe", "name": "Commented-code block (7 lines) in apps/myk9show/src/providers/StoreProvider.tsx:255", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/providers/StoreProvider.tsx:255"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d61bed147acb22b2", "name": "Commented-code block (6 lines) in apps/myk9show/src/providers/ReplicationSyncProvider.tsx:477", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/providers/ReplicationSyncProvider.tsx:477"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10b6decf77694bdc", "name": "Commented-code block (5 lines) in apps/myk9show/src/providers/__tests__/ReplicationSyncProvider.authGuard.test.tsx:158", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/providers/__tests__/ReplicationSyncProvider.authGuard.test.tsx:158"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-530ed6ef3ac7fd15", "name": "Commented-code block (11 lines) in apps/myk9show/src/lib/offlineHandler.ts:453", "shortDescription": {"text": "Commented-code block (11 lines) in apps/myk9show/src/lib/offlineHandler.ts:453"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf585809d8c1bf91", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/lib/searchCache.ts:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/lib/searchCache.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-9273c7f6c86205ac", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/lib/networkUtils.ts:144", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/lib/networkUtils.ts:144"}, "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-e585ae1f0e2cae81", "name": "Commented-code block (8 lines) in apps/myk9show/src/lib/reports/__tests__/reportStyles.test.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/src/lib/reports/__tests__/reportStyles.test.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-3c381d42066768e6", "name": "Commented-code block (6 lines) in apps/myk9show/src/pages/RegistrationWizardPage.tsx:86", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/pages/RegistrationWizardPage.tsx:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3317741cd8acfbd7", "name": "Commented-code block (5 lines) in apps/myk9show/src/pages/ShowDetailsPage.tsx:459", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/ShowDetailsPage.tsx:459"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44c7609ca277fc07", "name": "Commented-code block (6 lines) in apps/myk9show/src/pages/__tests__/RegistrationWizardPage.draftLoad.test.tsx:169", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/pages/__tests__/RegistrationWizardPage.draftLoad.test.tsx:169"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d066c6ee385b18e", "name": "Commented-code block (5 lines) in apps/myk9show/src/pages/MyEntriesPage/index.tsx:442", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/MyEntriesPage/index.tsx:442"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba21c378649404fe", "name": "Commented-code block (5 lines) in apps/myk9show/src/pages/scoring/ScoringEntryListPage.tsx:178", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/scoring/ScoringEntryListPage.tsx:178"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e432f7d67f2d8f7", "name": "Commented-code block (5 lines) in apps/myk9show/src/pages/secretary/ShowWorkbenchShowDeskPage.tsx:198", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/secretary/ShowWorkbenchShowDeskPage.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-a7c9d2a3f70b04e1", "name": "Commented-code block (6 lines) in apps/myk9show/src/pages/secretary/__tests__/ShowCreationWizardPage.success.test.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/pages/secretary/__tests__/ShowCreationWizardPage.success.test.tsx: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-1df18a7c5ef48741", "name": "Commented-code block (5 lines) in apps/myk9show/src/pages/secretary/SecretaryDashboardPage/TasksTab.tsx:18", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/secretary/SecretaryDashboardPage/TasksTab.tsx: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-41a674dced66d7fd", "name": "Commented-code block (9 lines) in apps/myk9show/src/pages/secretary/SecretaryDashboardPage/MyShowsSection.tsx:8", "shortDescription": {"text": "Commented-code block (9 lines) in apps/myk9show/src/pages/secretary/SecretaryDashboardPage/MyShowsSection.tsx: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-67f3615e2fddf614", "name": "Commented-code block (6 lines) in apps/myk9show/src/pages/secretary/SecretaryDashboardPage/__tests__/AttentionNeededStri", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/pages/secretary/SecretaryDashboardPage/__tests__/AttentionNeededStrip.test.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-a9a7841f23f4117c", "name": "Commented-code block (8 lines) in apps/myk9show/src/pages/secretary/WaitlistManagementPage/useWaitlistManagementData.ts:", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/src/pages/secretary/WaitlistManagementPage/useWaitlistManagementData.ts:142"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-72591788d8286b05", "name": "Commented-code block (6 lines) in apps/myk9show/src/pages/secretary/VolunteerSchedulingPage/index.tsx:46", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/pages/secretary/VolunteerSchedulingPage/index.tsx:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a8601e5fc5977254", "name": "Legacy-named symbol `addShowLegacy` in apps/myk9show/src/pages/secretary/ShowCreationWizard/saveShowAtomicOnline.ts:163", "shortDescription": {"text": "Legacy-named symbol `addShowLegacy` in apps/myk9show/src/pages/secretary/ShowCreationWizard/saveShowAtomicOnline.ts:163"}, "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-627d5f459fbd1104", "name": "Commented-code block (7 lines) in apps/myk9show/src/pages/secretary/ShowCreationWizard/saveShowAtomicOnline.ts:77", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/pages/secretary/ShowCreationWizard/saveShowAtomicOnline.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-ba92d5c3b1bf88c9", "name": "Commented-code block (5 lines) in apps/myk9show/src/pages/secretary/ShowCreationWizard/useShowCreationWizardActions.ts:2", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/secretary/ShowCreationWizard/useShowCreationWizardActions.ts:240"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d6c8c8d7af2fc55", "name": "Legacy-named symbol `addShowLegacy` in apps/myk9show/src/pages/secretary/ShowCreationWizard/__tests__/saveShowAtomicOnli", "shortDescription": {"text": "Legacy-named symbol `addShowLegacy` in apps/myk9show/src/pages/secretary/ShowCreationWizard/__tests__/saveShowAtomicOnline.test.ts:31"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d88e6825b2f78555", "name": "Commented-code block (7 lines) in apps/myk9show/src/pages/secretary/ReportsPage/ReportControlsBar.tsx:17", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/pages/secretary/ReportsPage/ReportControlsBar.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-361af1c8272a1b09", "name": "Commented-code block (5 lines) in apps/myk9show/src/pages/secretary/ReportsPage/__tests__/ReportControlsBar.test.tsx:171", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/secretary/ReportsPage/__tests__/ReportControlsBar.test.tsx:171"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c6af5368094b938", "name": "Legacy-named symbol `createEntryLegacy` in apps/myk9show/src/hooks/useEntryStoreCompat.ts:319", "shortDescription": {"text": "Legacy-named symbol `createEntryLegacy` in apps/myk9show/src/hooks/useEntryStoreCompat.ts:319"}, "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-af501120b335aa3a", "name": "Commented-code block (7 lines) in apps/myk9show/src/hooks/useExhibitorProfile.ts:132", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/hooks/useExhibitorProfile.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-6f2a65c3875f89e8", "name": "Legacy-named symbol `addShowLegacy` in apps/myk9show/src/hooks/useShowStoreCompat.ts:82", "shortDescription": {"text": "Legacy-named symbol `addShowLegacy` in apps/myk9show/src/hooks/useShowStoreCompat.ts:82"}, "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-e32aa01f22696ab0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/hooks/useRoutePrefetch.ts:133", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/hooks/useRoutePrefetch.ts:133"}, "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-188c792ca526da18", "name": "Commented-code block (6 lines) in apps/myk9show/src/hooks/useDogStoreCompat.ts:79", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/hooks/useDogStoreCompat.ts:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-65f3d1bb45f13e1e", "name": "Commented-code block (5 lines) in apps/myk9show/src/hooks/useEntryManagementData.ts:146", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/hooks/useEntryManagementData.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-c9c5d6381a7c54dd", "name": "Legacy-named symbol `addClassLegacy` in apps/myk9show/src/hooks/useClassStoreCompat.ts:198", "shortDescription": {"text": "Legacy-named symbol `addClassLegacy` in apps/myk9show/src/hooks/useClassStoreCompat.ts:198"}, "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-f5105ca4655ed290", "name": "Legacy-named symbol `updateShowLegacy` in apps/myk9show/src/hooks/useRealTimeUpdates.ts:22", "shortDescription": {"text": "Legacy-named symbol `updateShowLegacy` in apps/myk9show/src/hooks/useRealTimeUpdates.ts:22"}, "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-6c2c8a5d4ac9c056", "name": "Legacy-named symbol `addUserLegacy` in apps/myk9show/src/hooks/useUserStoreCompat.ts:114", "shortDescription": {"text": "Legacy-named symbol `addUserLegacy` in apps/myk9show/src/hooks/useUserStoreCompat.ts:114"}, "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-6634ed8953213ac9", "name": "Commented-code block (6 lines) in apps/myk9show/src/hooks/__tests__/useDogStoreCompat.test.ts:186", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/hooks/__tests__/useDogStoreCompat.test.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-6f5e2e93fa1944e4", "name": "Commented-code block (5 lines) in apps/myk9show/src/hooks/__tests__/usePushSubscription.test.ts:69", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/hooks/__tests__/usePushSubscription.test.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-a26c2e2ddd8ab8ee", "name": "Commented-code block (13 lines) in apps/myk9show/src/hooks/queries/useUserRoles.ts:5", "shortDescription": {"text": "Commented-code block (13 lines) in apps/myk9show/src/hooks/queries/useUserRoles.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-e5dc7678a4e6c493", "name": "Commented-code block (6 lines) in apps/myk9show/src/hooks/queries/useJudgeDatabase.ts:42", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/hooks/queries/useJudgeDatabase.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-da092a74e432232d", "name": "Commented-code block (8 lines) in apps/myk9show/src/hooks/queries/useDogsDatabase.ts:41", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/src/hooks/queries/useDogsDatabase.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-c2a9143477869782", "name": "Commented-code block (5 lines) in apps/myk9show/src/hooks/queries/useJudgeAssignments.ts:188", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/hooks/queries/useJudgeAssignments.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-b0777d71aa2c1e88", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/SystemHealthService.ts:249", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/SystemHealthService.ts:249"}, "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-4b9d438b7ddd5630", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/askqService.ts:29", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/askqService.ts:29"}, "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-8ae88024e5e3a1e1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/LoggingService.ts:145", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/LoggingService.ts:145"}, "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-44027bb0e6db0c15", "name": "Commented-code block (5 lines) in apps/myk9show/src/services/__tests__/titleEngine.test.ts:694", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/__tests__/titleEngine.test.ts:694"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ca50a25f7c0aaed", "name": "Commented-code block (5 lines) in apps/myk9show/src/services/replication/ReplicatedClassesTable.ts:341", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/replication/ReplicatedClassesTable.ts:341"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4c51e286d8d4e07", "name": "Commented-code block (5 lines) in apps/myk9show/src/services/replication/ReplicatedEntriesTable.ts:126", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/replication/ReplicatedEntriesTable.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-0532b065993b273a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/replication/__tests__/ReplicatedEntriesTable.te", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/replication/__tests__/ReplicatedEntriesTable.test.ts:1072"}, "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-deb70673d3f0b97c", "name": "Commented-code block (5 lines) in apps/myk9show/src/services/mappers/classMappers.ts:397", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/mappers/classMappers.ts:397"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fbfe855920c0d01b", "name": "Commented-code block (5 lines) in apps/myk9show/src/services/mappers/entryMappers.ts:295", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/mappers/entryMappers.ts:295"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46532c1cc8a9e1ae", "name": "Commented-code block (5 lines) in apps/myk9show/src/services/mappers/trialMappers.ts:155", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/mappers/trialMappers.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-ab3bc3cb29b6aadb", "name": "Commented-code block (5 lines) in apps/myk9show/src/services/mappers/showMappers.ts:36", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/mappers/showMappers.ts: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-5116cd80104676f3", "name": "Legacy-named symbol `template_copy` in apps/myk9show/src/services/templates/templateVersioning.ts:57", "shortDescription": {"text": "Legacy-named symbol `template_copy` in apps/myk9show/src/services/templates/templateVersioning.ts:57"}, "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-d86fbc27c30bbc5b", "name": "Commented-code block (5 lines) in apps/myk9show/src/services/database/entries/userEntriesReplication.ts:72", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/database/entries/userEntriesReplication.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-0c48ddb3ddb3df9b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/deployment/CDNService.ts:381", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/deployment/CDNService.ts:381"}, "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-d1babb1c8a072ac7", "name": "Commented-code block (5 lines) in apps/myk9show/src/context/ThemeContext.tsx:23", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/context/ThemeContext.tsx:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d29605725d4203e3", "name": "Commented-code block (6 lines) in apps/myk9show/src/context/themeClasses.test.ts:27", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/context/themeClasses.test.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6197024a75d6e9ed", "name": "Legacy-named symbol `addShowLegacy` in apps/myk9show/src/store/showStore.ts:196", "shortDescription": {"text": "Legacy-named symbol `addShowLegacy` in apps/myk9show/src/store/showStore.ts:196"}, "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-179a5b5581423dfc", "name": "Legacy-named symbol `addUserLegacy` in apps/myk9show/src/store/userStore.ts:59", "shortDescription": {"text": "Legacy-named symbol `addUserLegacy` in apps/myk9show/src/store/userStore.ts:59"}, "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-f3cc728d4f564fa1", "name": "Commented-code block (6 lines) in apps/myk9show/src/store/userStore.ts:109", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/store/userStore.ts:109"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3791fc7218e0c796", "name": "Legacy-named symbol `createEntryLegacy` in apps/myk9show/src/store/entryTypes.ts:113", "shortDescription": {"text": "Legacy-named symbol `createEntryLegacy` in apps/myk9show/src/store/entryTypes.ts:113"}, "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-c12c636137d6a077", "name": "Legacy-named symbol `addTrialLegacy` in apps/myk9show/src/store/trial-store-types.ts:96", "shortDescription": {"text": "Legacy-named symbol `addTrialLegacy` in apps/myk9show/src/store/trial-store-types.ts:96"}, "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-869c3dce06bf15f4", "name": "Commented-code block (8 lines) in apps/myk9show/src/store/cartStore.helpers.ts:9", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/src/store/cartStore.helpers.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-924ce9e66ada6ce1", "name": "Legacy-named symbol `addDogLegacy` in apps/myk9show/src/store/dogStore.ts:98", "shortDescription": {"text": "Legacy-named symbol `addDogLegacy` in apps/myk9show/src/store/dogStore.ts:98"}, "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-310fbc6122e2323a", "name": "Commented-code block (8 lines) in apps/myk9show/src/store/announcementStore.ts:86", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/src/store/announcementStore.ts:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17d72c8b3fb0c6be", "name": "Legacy-named symbol `addClassLegacy` in apps/myk9show/src/store/classStore.types.ts:97", "shortDescription": {"text": "Legacy-named symbol `addClassLegacy` in apps/myk9show/src/store/classStore.types.ts:97"}, "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-0d5bd71f20650389", "name": "Legacy-named symbol `createEntryLegacy` in apps/myk9show/src/store/entry-store-types.ts:173", "shortDescription": {"text": "Legacy-named symbol `createEntryLegacy` in apps/myk9show/src/store/entry-store-types.ts:173"}, "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-7064ca839e0df1de", "name": "Legacy-named symbol `addClassLegacy` in apps/myk9show/src/store/classStore.ts:391", "shortDescription": {"text": "Legacy-named symbol `addClassLegacy` in apps/myk9show/src/store/classStore.ts:391"}, "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-068f655518044b6c", "name": "Legacy-named symbol `addTrialLegacy` in apps/myk9show/src/store/trialStore.ts:294", "shortDescription": {"text": "Legacy-named symbol `addTrialLegacy` in apps/myk9show/src/store/trialStore.ts:294"}, "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-1aaab08e94f29a27", "name": "Legacy-named symbol `addClassLegacy` in apps/myk9show/src/store/class-store-types.ts:100", "shortDescription": {"text": "Legacy-named symbol `addClassLegacy` in apps/myk9show/src/store/class-store-types.ts:100"}, "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-a9ae22caf3505691", "name": "Commented-code block (7 lines) in apps/myk9show/src/store/templateStore.ts:493", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/store/templateStore.ts:493"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4aeec24a01ccdade", "name": "Legacy-named symbol `createEntryLegacy` in apps/myk9show/src/store/entry-store-legacy.ts:25", "shortDescription": {"text": "Legacy-named symbol `createEntryLegacy` in apps/myk9show/src/store/entry-store-legacy.ts:25"}, "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-58b85fe6351a4dad", "name": "Commented-code block (5 lines) in apps/myk9show/src/store/cartStore.ts:507", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/store/cartStore.ts:507"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-274fa707fccf998f", "name": "Legacy-named symbol `cs_test_old` in apps/myk9show/src/store/cartStore.test.ts:123", "shortDescription": {"text": "Legacy-named symbol `cs_test_old` in apps/myk9show/src/store/cartStore.test.ts:123"}, "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-a2ca17fe8dc8b6b3", "name": "Commented-code block (5 lines) in apps/myk9show/src/store/__tests__/showStore.replicatedToShow.test.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/store/__tests__/showStore.replicatedToShow.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-8e0799160c992fb8", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/magazine/tokens.ts:41", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/magazine/tokens.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-7024d7cbfc3ccd9e", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/magazine/email/buildConfirmationProps.ts:182", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/magazine/email/buildConfirmationProps.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-d5ef18ff71c4507f", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/magazine/landing/__tests__/useMagazineLandingData.test.ts:2", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/magazine/landing/__tests__/useMagazineLandingData.test.ts:231"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-388e1d0565bf703b", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/magazine/wizard/MagazineEntryReceived.tsx:84", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/magazine/wizard/MagazineEntryReceived.tsx: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-67de5fef89ffa01f", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/at-show/AtShowScoresheetPage.tsx:47", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/at-show/AtShowScoresheetPage.tsx: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-650f9e2cabdb30e5", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/at-show/AtShowClassListPage.tsx:88", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/at-show/AtShowClassListPage.tsx: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-8e8ff596661a75f2", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/at-show/useAtShowEntryListActions.ts:112", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/at-show/useAtShowEntryListActions.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-9e83a938be24d50a", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/at-show/atShowDataAdapter.ts:106", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/at-show/atShowDataAdapter.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-4cbb3f0d491dc230", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/at-show/AtShowEntryListPage.tsx:62", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/at-show/AtShowEntryListPage.tsx: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-09fb26c710bc0a6e", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/at-show/slots/ClassDetailsPopoverSlot.tsx:129", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/at-show/slots/ClassDetailsPopoverSlot.tsx:129"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c25f323c5db978cc", "name": "Commented-code block (8 lines) in apps/myk9show/src/features/poster/entry-blank/sections/pdfPrimitives.tsx:3", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/src/features/poster/entry-blank/sections/pdfPrimitives.tsx: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-06557281a1e80bcb", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/poster/landing/PosterLandingPage.tsx:70", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/poster/landing/PosterLandingPage.tsx:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e21e71c87e46e6f4", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/poster/landing/__tests__/usePosterLandingData.test.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/poster/landing/__tests__/usePosterLandingData.test.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f697e3ac2abf1bfd", "name": "Commented-code block (7 lines) in apps/myk9show/src/features/fieldGuide/entry-blank/__tests__/FieldGuideEntryBlankDocume", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/features/fieldGuide/entry-blank/__tests__/FieldGuideEntryBlankDocument.test.tsx: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-d9d94eba2042ead2", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/fieldGuide/landing/useFieldGuideLandingData.ts:137", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/fieldGuide/landing/useFieldGuideLandingData.ts:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b14e027dcb07202", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/fieldGuide/wizard/FieldGuideEntryReceived.tsx:13", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/fieldGuide/wizard/FieldGuideEntryReceived.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ace483403600a34", "name": "Commented-code block (8 lines) in apps/myk9show/src/features/show-live-sync/useShowLiveSync.ts:53", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/src/features/show-live-sync/useShowLiveSync.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-17108c190e351f01", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/show-workbench/useJudgeHospitalityReminderCount.ts:20", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-workbench/useJudgeHospitalityReminderCount.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-d169f14ecbf8e9ed", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/show-workbench/TasksNotesCard.tsx:25", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-workbench/TasksNotesCard.tsx: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-e10d66f6eae541f6", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/show-workbench/judgeHospitality.ts:38", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-workbench/judgeHospitality.ts:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c004fc9bd54a49f", "name": "Commented-code block (7 lines) in apps/myk9show/src/features/show-workbench/setupReadinessSignals.ts:19", "shortDescription": {"text": "Commented-code block (7 lines) in apps/myk9show/src/features/show-workbench/setupReadinessSignals.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-3932a0a811baa749", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/show-workbench/__tests__/announcementPushFunctionContract.t", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-workbench/__tests__/announcementPushFunctionContract.test.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-886766e1f2190494", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/gazette/components/GazetteDropCap.tsx:32", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/gazette/components/GazetteDropCap.tsx:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab59763483a1b03b", "name": "Commented-code block (13 lines) in apps/myk9show/src/features/premium/__tests__/renderTimeBenchmark.test.ts:1", "shortDescription": {"text": "Commented-code block (13 lines) in apps/myk9show/src/features/premium/__tests__/renderTimeBenchmark.test.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-9a345631b0b94f0f", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/premium/pdf/pdfTokens.ts:104", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/premium/pdf/pdfTokens.ts:104"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a6c4c3b9460769c", "name": "Commented-code block (10 lines) in apps/myk9show/src/features/premium/pdf/pdfFonts.ts:103", "shortDescription": {"text": "Commented-code block (10 lines) in apps/myk9show/src/features/premium/pdf/pdfFonts.ts:103"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-031354fe077c1a92", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/premium/pdf/__tests__/bodyContractInvariants.test.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/premium/pdf/__tests__/bodyContractInvariants.test.tsx: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-2c60771329b2eab1", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/premium/pdf/bodies/GazetteBody.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/premium/pdf/bodies/GazetteBody.tsx: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-e482c92dd0875f5a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/features/organization-forms/officialPdfDownload.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/features/organization-forms/officialPdfDownload.ts:13"}, "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-d296de44a90a6609", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/messages/pages/ChatPage.tsx:32", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/messages/pages/ChatPage.tsx:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d967b0e017ede6f2", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/messages/pages/SecretaryMessagesPage.tsx:37", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/messages/pages/SecretaryMessagesPage.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-d0a016cb601e7551", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/messages/pages/__tests__/SecretaryMessagesPage.test.tsx:139", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/messages/pages/__tests__/SecretaryMessagesPage.test.tsx: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-ad5242fc8ad25d81", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/payments/onlineEntryGate.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/payments/onlineEntryGate.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-74ddd5d9f59b3b26", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/show-presence/useShowPresence.ts:106", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-presence/useShowPresence.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-3c5df49bdf5d62f8", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/useShowMapRunOrderAutoSort.ts:128", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/useShowMapRunOrderAutoSort.ts: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-43808aa3ddd02595", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/ShowDeskAdaptiveHeader.tsx:38", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/ShowDeskAdaptiveHeader.tsx:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f5e491b8c8c10584", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/ShowMapStructureCells.tsx:24", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/ShowMapStructureCells.tsx:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5db298484d0871f", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/useShowMapWorkbenchState.ts:40", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/useShowMapWorkbenchState.ts:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8063867f9c27b5e", "name": "Commented-code block (10 lines) in apps/myk9show/src/features/show-map/showMapActions.ts:124", "shortDescription": {"text": "Commented-code block (10 lines) in apps/myk9show/src/features/show-map/showMapActions.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-03a704273e48e16c", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/ShowDeskCloseoutSection.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/ShowDeskCloseoutSection.tsx:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a74e1b6f238579d3", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/ShowMapStructureTable.tsx:133", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/ShowMapStructureTable.tsx:133"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd790aaf1570d97f", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/showMapTree.ts:220", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/showMapTree.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-540c13aca4c781d3", "name": "Commented-code block (8 lines) in apps/myk9show/src/features/show-map/useShowMapReorderMode.ts:45", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/src/features/show-map/useShowMapReorderMode.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-06526222066542f3", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/ShowMapSortableEntryRow.tsx:25", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/ShowMapSortableEntryRow.tsx: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-67d15777d41f4d29", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/showMapReorderMode.ts:32", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/showMapReorderMode.ts:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2172909e91d83ea6", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/ShowMapTab.tsx:148", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/ShowMapTab.tsx:148"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad0b15706a3e725e", "name": "Commented-code block (8 lines) in apps/myk9show/src/features/show-map/showDeskActionable.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/myk9show/src/features/show-map/showDeskActionable.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-abeedde141c2425f", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/ShowDeskPanel.tsx:70", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/ShowDeskPanel.tsx:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c8c53584d3213ac", "name": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/ShowDeskToolsSheet.tsx:36", "shortDescription": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/ShowDeskToolsSheet.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-bf82fa23ecf8c1a0", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/__tests__/ShowMapTab.test.tsx:463", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/__tests__/ShowMapTab.test.tsx:463"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b10e102f622d9784", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/__tests__/showMapActions.test.ts:1311", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/__tests__/showMapActions.test.ts:1311"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02dcab7e5c9db1e5", "name": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/__tests__/showMapReorderMode.test.ts:119", "shortDescription": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/__tests__/showMapReorderMode.test.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-990d0c6f437ab088", "name": "Commented-code block (7 lines) in docs/archive/design_handoff_landing_page/design/tweaks-panel.jsx:12", "shortDescription": {"text": "Commented-code block (7 lines) in docs/archive/design_handoff_landing_page/design/tweaks-panel.jsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb132e41e2c68d98", "name": "Commented-code block (5 lines) in docs/archive/design_handoff_landing_page/source/WaitlistForm.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/archive/design_handoff_landing_page/source/WaitlistForm.tsx: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-6314643c9f5ba17b", "name": "Commented-code block (9 lines) in docs/design/prototype/secretary.jsx:5", "shortDescription": {"text": "Commented-code block (9 lines) in docs/design/prototype/secretary.jsx: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-c79d61762f3ff7a2", "name": "Commented-code block (6 lines) in docs/design/prototype/tweaks-panel.jsx:12", "shortDescription": {"text": "Commented-code block (6 lines) in docs/design/prototype/tweaks-panel.jsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c42689b7cdc08186", "name": "Commented-code block (5 lines) in docs/design/prototype/scentwork-secretary.jsx:173", "shortDescription": {"text": "Commented-code block (5 lines) in docs/design/prototype/scentwork-secretary.jsx:173"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5b76312329f2dc4f", "name": "Commented-code block (6 lines) in docs/design/prototype/design-canvas.jsx:2", "shortDescription": {"text": "Commented-code block (6 lines) in docs/design/prototype/design-canvas.jsx: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-9fa3bc3aeb0cb19a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/design/prototype/design-canvas.jsx:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/design/prototype/design-canvas.jsx: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-2ca06cd6f7e7404c", "name": "Commented-code block (6 lines) in docs/design/prototype/scentwork-exhibitor.jsx:9", "shortDescription": {"text": "Commented-code block (6 lines) in docs/design/prototype/scentwork-exhibitor.jsx: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-573293d114e5dce9", "name": "Commented-code block (7 lines) in docs/plans/design_handoff_premiums/tweaks-panel.jsx:12", "shortDescription": {"text": "Commented-code block (7 lines) in docs/plans/design_handoff_premiums/tweaks-panel.jsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f06b14cf0a19440", "name": "Commented-code block (5 lines) in docs/plans/design_handoff_premiums/image-slot.js:60", "shortDescription": {"text": "Commented-code block (5 lines) in docs/plans/design_handoff_premiums/image-slot.js: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-282eda66afc13f7e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/plans/design_handoff_premiums/image-slot.js:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/plans/design_handoff_premiums/image-slot.js:62"}, "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-70482659931f3a8f", "name": "Commented-code block (6 lines) in docs/plans/design_handoff_premiums/design-canvas.jsx:2", "shortDescription": {"text": "Commented-code block (6 lines) in docs/plans/design_handoff_premiums/design-canvas.jsx: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-ce31bd1e24c4afb4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/plans/design_handoff_premiums/design-canvas.jsx:117", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/plans/design_handoff_premiums/design-canvas.jsx:117"}, "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-627751038b6124a1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/qa/rls-smoke/rls-recursion-smoke.ts:122", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/qa/rls-smoke/rls-recursion-smoke.ts:122"}, "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-59015a46cefd0dd3", "name": "Commented-code block (5 lines) in packages/email/src/fieldGuideTokens.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/email/src/fieldGuideTokens.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-5008de6e742ef38a", "name": "Commented-code block (5 lines) in packages/email/src/posterTokens.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/email/src/posterTokens.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-d85c456732b3abdc", "name": "Commented-code block (5 lines) in packages/email/src/monogramTokens.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/email/src/monogramTokens.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-e534d79db7fe9253", "name": "Commented-code block (5 lines) in packages/email/src/bannerTokens.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/email/src/bannerTokens.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-a5058cba366ffe4d", "name": "Commented-code block (6 lines) in packages/email/src/magazineTokens.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in packages/email/src/magazineTokens.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-99170d4f7b2fd3a4", "name": "Commented-code block (6 lines) in packages/email/src/templates/MagazineConfirmationEmail.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in packages/email/src/templates/MagazineConfirmationEmail.tsx:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a276d088a298b26", "name": "Commented-code block (6 lines) in packages/replication/src/syncReplicatedTable.ts:132", "shortDescription": {"text": "Commented-code block (6 lines) in packages/replication/src/syncReplicatedTable.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-e562e2f15c6256c3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/replication/src/syncReplicatedTable.ts:72", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/replication/src/syncReplicatedTable.ts:72"}, "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-f8c16ee54a8da3f7", "name": "Commented-code block (5 lines) in packages/replication/src/syncReplicatedTable.test.ts:673", "shortDescription": {"text": "Commented-code block (5 lines) in packages/replication/src/syncReplicatedTable.test.ts:673"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01d4f238c076e956", "name": "Commented-code block (5 lines) in packages/replication/src/MutationManager.stress.test.ts:209", "shortDescription": {"text": "Commented-code block (5 lines) in packages/replication/src/MutationManager.stress.test.ts:209"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad83b3ceacb6ea5d", "name": "Legacy-named symbol `replication_mutation_backup` in packages/replication/src/mutation-backup.ts:3", "shortDescription": {"text": "Legacy-named symbol `replication_mutation_backup` in packages/replication/src/mutation-backup.ts:3"}, "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-753a5923a2b34740", "name": "Legacy-named symbol `replication_mutation_backup` in packages/replication/src/MutationManager.replay.test.ts:11", "shortDescription": {"text": "Legacy-named symbol `replication_mutation_backup` in packages/replication/src/MutationManager.replay.test.ts:11"}, "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-df85474edb73aa98", "name": "Legacy-named symbol `replication_mutation_backup` in packages/replication/src/MutationManager.test.ts:357", "shortDescription": {"text": "Legacy-named symbol `replication_mutation_backup` in packages/replication/src/MutationManager.test.ts:357"}, "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-d7e9e94400d4a06e", "name": "Commented-code block (6 lines) in packages/replication/src/core/ReplicatedTableCache.ts:446", "shortDescription": {"text": "Commented-code block (6 lines) in packages/replication/src/core/ReplicatedTableCache.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-35b3b69d60722564", "name": "Commented-code block (5 lines) in packages/replication/src/core/ReplicatedTable.test.ts:377", "shortDescription": {"text": "Commented-code block (5 lines) in packages/replication/src/core/ReplicatedTable.test.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-d3a6b2799b51364d", "name": "Commented-code block (8 lines) in packages/replication/src/core/DatabaseManager.multi-tab.test.ts:155", "shortDescription": {"text": "Commented-code block (8 lines) in packages/replication/src/core/DatabaseManager.multi-tab.test.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-dd12e3009ce6ec7a", "name": "Commented-code block (6 lines) in packages/replication/src/core/ReplicatedTableCache.test.ts:60", "shortDescription": {"text": "Commented-code block (6 lines) in packages/replication/src/core/ReplicatedTableCache.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-9f94df1f280761dc", "name": "Commented-code block (7 lines) in packages/replication/src/core/ReplicatedTable.subscription.test.ts:52", "shortDescription": {"text": "Commented-code block (7 lines) in packages/replication/src/core/ReplicatedTable.subscription.test.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-e7fe28d18cb53c89", "name": "Commented-code block (7 lines) in packages/ui/src/__tests__/tokens-v2.test.ts:70", "shortDescription": {"text": "Commented-code block (7 lines) in packages/ui/src/__tests__/tokens-v2.test.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-09ea3bd522d87ec5", "name": "Commented-code block (5 lines) in packages/test-utils/src/setup/vitest.setup.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in packages/test-utils/src/setup/vitest.setup.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-25cabc13ab82f31c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/supabase/src/client.ts:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/supabase/src/client.ts:35"}, "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-f1b5aac3df62c25f", "name": "Commented-code block (6 lines) in packages/core/src/utils/passcodes.test.ts:140", "shortDescription": {"text": "Commented-code block (6 lines) in packages/core/src/utils/passcodes.test.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-2f0f00c7c2297203", "name": "Commented-code block (5 lines) in packages/ringside/tailwind.config.js:33", "shortDescription": {"text": "Commented-code block (5 lines) in packages/ringside/tailwind.config.js: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-a7d31f9124d02fb9", "name": "Commented-code block (7 lines) in packages/ringside/src/index.ts:127", "shortDescription": {"text": "Commented-code block (7 lines) in packages/ringside/src/index.ts:127"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-580c1a109e5b77cf", "name": "Commented-code block (5 lines) in packages/ringside/src/pages/EntryList/CombinedEntryListPage.tsx:132", "shortDescription": {"text": "Commented-code block (5 lines) in packages/ringside/src/pages/EntryList/CombinedEntryListPage.tsx:132"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b71cb0f4a59b344", "name": "Commented-code block (6 lines) in packages/ringside/src/pages/EntryList/index.ts:56", "shortDescription": {"text": "Commented-code block (6 lines) in packages/ringside/src/pages/EntryList/index.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-163a789dfc8de856", "name": "Commented-code block (6 lines) in packages/ringside/src/pages/EntryList/SortableEntryCardComponents.tsx:28", "shortDescription": {"text": "Commented-code block (6 lines) in packages/ringside/src/pages/EntryList/SortableEntryCardComponents.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-a94d683fbf0e57d6", "name": "Commented-code block (5 lines) in packages/ringside/src/pages/EntryList/EntryListPage.tsx:130", "shortDescription": {"text": "Commented-code block (5 lines) in packages/ringside/src/pages/EntryList/EntryListPage.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-cb33b33ee34b8843", "name": "Commented-code block (6 lines) in packages/ringside/src/pages/EntryList/hooks/useEntryListData.test.tsx:266", "shortDescription": {"text": "Commented-code block (6 lines) in packages/ringside/src/pages/EntryList/hooks/useEntryListData.test.tsx:266"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9cf53750a8c847de", "name": "Commented-code block (13 lines) in packages/ringside/src/pages/EntryList/hooks/useEntryListData.ts:186", "shortDescription": {"text": "Commented-code block (13 lines) in packages/ringside/src/pages/EntryList/hooks/useEntryListData.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-28e092a4c3d6a2e5", "name": "Commented-code block (11 lines) in packages/ringside/src/pages/ClassList/hooks/useClassRealtime.ts:110", "shortDescription": {"text": "Commented-code block (11 lines) in packages/ringside/src/pages/ClassList/hooks/useClassRealtime.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-d64cf05568682dba", "name": "Commented-code block (6 lines) in packages/ringside/src/pages/ClassList/hooks/useFavoriteClasses.test.ts:107", "shortDescription": {"text": "Commented-code block (6 lines) in packages/ringside/src/pages/ClassList/hooks/useFavoriteClasses.test.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-644783297136db97", "name": "Commented-code block (5 lines) in packages/scoring-ui/src/hooks/useStopwatch.ts:60", "shortDescription": {"text": "Commented-code block (5 lines) in packages/scoring-ui/src/hooks/useStopwatch.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-76272a06fc3717b0", "name": "Commented-code block (7 lines) in supabase/functions/push-trigger-announcement/index.ts:38", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/push-trigger-announcement/index.ts:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fcf33dc99282290e", "name": "Commented-code block (5 lines) in supabase/functions/send-confirmation-email/dispatch-helpers.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/send-confirmation-email/dispatch-helpers.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-205dc185f9b14c4e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-confirmation-email/index.ts:585", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-confirmation-email/index.ts:585"}, "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-5104276a6806826d", "name": "Commented-code block (5 lines) in supabase/functions/send-confirmation-email/monogram-email.test.ts:71", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/send-confirmation-email/monogram-email.test.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-f963699acdd6bc37", "name": "Commented-code block (11 lines) in supabase/functions/send-confirmation-email/poster-email.ts:11", "shortDescription": {"text": "Commented-code block (11 lines) in supabase/functions/send-confirmation-email/poster-email.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4300844c7249f9d2", "name": "Commented-code block (5 lines) in supabase/functions/send-confirmation-email/dispatch-helpers.test.ts:38", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/send-confirmation-email/dispatch-helpers.test.ts:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0fbc88e1e076ed8", "name": "Commented-code block (6 lines) in supabase/functions/send-confirmation-email/magazine-email.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in supabase/functions/send-confirmation-email/magazine-email.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0629b6dfbfdbe3e6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-results/index.ts:52", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-results/index.ts:52"}, "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-49a01b0377647e11", "name": "Commented-code block (5 lines) in supabase/functions/push-trigger-chat-message/index.ts:25", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/push-trigger-chat-message/index.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-c1271390aecd5f5b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-email/index.ts:152", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-email/index.ts:152"}, "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-6b6308a40414bac5", "name": "Commented-code block (5 lines) in supabase/functions/validate-passcode/index.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/validate-passcode/index.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-5513ee8b7ccbbf97", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-waitlist-invite/index.ts:136", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-waitlist-invite/index.ts:136"}, "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-722f58ba612c465a", "name": "Commented-code block (5 lines) in supabase/functions/send-targeted-message/targeted-message-handler.ts:258", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/send-targeted-message/targeted-message-handler.ts:258"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-966d9c23a8ac68a0", "name": "Commented-code block (5 lines) in supabase/functions/send-targeted-message/targeting.ts:114", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/send-targeted-message/targeting.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-c2fd408fca2f01c6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-registration-email/index.ts:266", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-registration-email/index.ts:266"}, "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-c4af82aedb79c105", "name": "Commented-code block (5 lines) in supabase/functions/_shared/http/handler.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/_shared/http/handler.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-ffab769bd7cc41f9", "name": "Commented-code block (5 lines) in supabase/functions/_shared/http/__tests__/handler.test.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/_shared/http/__tests__/handler.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-0b9a07071c170846", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/_shared/askq/promptBuilder.ts:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/_shared/askq/promptBuilder.ts:21"}, "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-9a4850d5fbbc29bd", "name": "59 env vars used in code but missing from .env.example", "shortDescription": {"text": "59 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ANALYZE_BUNDLE`, `BASE_URL`, `CI`, `CLEAN_TEST_ARTIFACTS`, `DEV`, `E2E_ADMIN_EMAIL`, `E2E_ADMIN_PASSWORD`, `E2E_SECRETARY_EMAIL` + 51 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-ccd1a15f4d62e14d", "name": "Frontend route `/at-show` has no Link/navigate to it \u2014 apps/myk9show/src/App.tsx", "shortDescription": {"text": "Frontend route `/at-show` has no Link/navigate to it \u2014 apps/myk9show/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b910ab09294491f4", "name": "Frontend route `/login` has no Link/navigate to it \u2014 apps/myk9show/src/App.tsx", "shortDescription": {"text": "Frontend route `/login` has no Link/navigate to it \u2014 apps/myk9show/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-85cf8e402736ae46", "name": "Frontend route `/auth/callback` has no Link/navigate to it \u2014 apps/myk9show/src/App.tsx", "shortDescription": {"text": "Frontend route `/auth/callback` has no Link/navigate to it \u2014 apps/myk9show/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-352fdf6fcd157fff", "name": "Frontend route `/shows/:id/*` has no Link/navigate to it \u2014 apps/myk9show/src/pages/secretary/__tests__/ResultsSubmission", "shortDescription": {"text": "Frontend route `/shows/:id/*` has no Link/navigate to it \u2014 apps/myk9show/src/pages/secretary/__tests__/ResultsSubmissionPage.test.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74683a4ac361601d", "name": "Frontend route `/people/:id` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/people/:id` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-59425efd19af605c", "name": "Frontend route `/users/:id` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/users/:id` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d50239271fddc6bf", "name": "Frontend route `/secretary/shows/:showId/*` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/shows/:showId/*` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9201cb605bd787f9", "name": "Frontend route `/shows/:id/show-desk` has no Link/navigate to it \u2014 apps/myk9show/src/test/routes/canonicalShowRoutes.tes", "shortDescription": {"text": "Frontend route `/shows/:id/show-desk` has no Link/navigate to it \u2014 apps/myk9show/src/test/routes/canonicalShowRoutes.test.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-40c18d9004c07b3e", "name": "Frontend route `/shows/:showId/*` has no Link/navigate to it \u2014 apps/myk9show/src/components/navigation/ShowContextNav.te", "shortDescription": {"text": "Frontend route `/shows/:showId/*` has no Link/navigate to it \u2014 apps/myk9show/src/components/navigation/ShowContextNav.test.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab3cc3a8dd81970b", "name": "Frontend route `/shows/:showId/register` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/shows/:showId/register` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-afffdf1f11c2b28b", "name": "Frontend route `/shows/:showId/trials/:trialId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/shows/:showId/trials/:trialId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f922ee5e99702bd6", "name": "Frontend route `/trials/:trialId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/trials/:trialId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-392cec7c96488a0b", "name": "Frontend route `/shows/:showId/trials/:trialId/classes/:classId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/p", "shortDescription": {"text": "Frontend route `/shows/:showId/trials/:trialId/classes/:classId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e90a86b05660c121", "name": "Frontend route `/shows/:showId/trials/:trialId/classes/:classId/results` has no Link/navigate to it \u2014 apps/myk9show/src/", "shortDescription": {"text": "Frontend route `/shows/:showId/trials/:trialId/classes/:classId/results` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68d1172b9a87db2b", "name": "Frontend route `/classes/:classId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/classes/:classId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2f4a98e66919daff", "name": "Frontend route `/browse-shows` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/browse-shows` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d490f9874259146b", "name": "Frontend route `/exhibitor/show-day` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/exhibitor/show-day` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4bd00ef099418c6e", "name": "Frontend route `/exhibitor/profile` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/exhibitor/profile` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4d460da51edc7766", "name": "Frontend route `/exhibitor/account` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/exhibitor/account` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2239e39e0880c016", "name": "Frontend route `/exhibitor/check-in/:entryId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/exhibitor/check-in/:entryId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a801871fb7356050", "name": "Frontend route `/settings` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/settings` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b4e330c4b2def64", "name": "Frontend route `/checkout/success` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/checkout/success` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bcb894b9de8f8864", "name": "Frontend route `/checkout/cancel` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/checkout/cancel` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e4ae50db151c3183", "name": "Frontend route `/dogs/:id` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/dogs/:id` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb62a31a807a467a", "name": "Frontend route `/clubs/:id` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/clubs/:id` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ba783f4d0d8f9074", "name": "Frontend route `/preferences` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/preferences` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-716b5ad8f5147bf6", "name": "Frontend route `/registration` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/registration` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c62cf20080008381", "name": "Frontend route `/tv/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/tv/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ef03e76a5de10da3", "name": "Frontend route `/messages/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx", "shortDescription": {"text": "Frontend route `/messages/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-afde1a37eb6a9df9", "name": "Frontend route `/admin/templates/:templateId/edit` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx", "shortDescription": {"text": "Frontend route `/admin/templates/:templateId/edit` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-22e91109b63b0fb0", "name": "Frontend route `/admin/templates/:templateId/test` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx", "shortDescription": {"text": "Frontend route `/admin/templates/:templateId/test` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8e5c91d993b4c3b2", "name": "Frontend route `/admin/settings` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx", "shortDescription": {"text": "Frontend route `/admin/settings` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3d0e5cc0db672097", "name": "Frontend route `/admin/permissions/roles/:roleId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx", "shortDescription": {"text": "Frontend route `/admin/permissions/roles/:roleId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2624f88feff4991d", "name": "Frontend route `/admin/permissions/roles/:roleId/clone` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoute", "shortDescription": {"text": "Frontend route `/admin/permissions/roles/:roleId/clone` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7accdb7959c26772", "name": "Frontend route `/admin/permissions/users` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx", "shortDescription": {"text": "Frontend route `/admin/permissions/users` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1e157adb4fe79ca7", "name": "Frontend route `/admin/permissions/audit` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx", "shortDescription": {"text": "Frontend route `/admin/permissions/audit` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-26fe47127f3bde7d", "name": "Frontend route `/admin/performance` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx", "shortDescription": {"text": "Frontend route `/admin/performance` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3c04bc71878be56d", "name": "Frontend route `/admin/data-lifecycle` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx", "shortDescription": {"text": "Frontend route `/admin/data-lifecycle` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6edd66ae6b8a9a2d", "name": "Frontend route `/admin/load-testing` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx", "shortDescription": {"text": "Frontend route `/admin/load-testing` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-78418568089e97a8", "name": "Frontend route `/admin/analytics` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx", "shortDescription": {"text": "Frontend route `/admin/analytics` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-adc8bdce065c5c2a", "name": "Frontend route `/secretary` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f6d160b05457e7c3", "name": "Frontend route `/secretary/pipeline/:trialId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/pipeline/:trialId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c1e8863a2913c154", "name": "Frontend route `/secretary/create-show` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/create-show` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-539157e04e532f43", "name": "Frontend route `/secretary/run-order` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/run-order` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bdd597b1da6dca52", "name": "Frontend route `/secretary/day-of` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/day-of` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ed8707c261114a01", "name": "Frontend route `/secretary/check-in` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/check-in` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3bbd4a0486c54650", "name": "Frontend route `/secretary/entries/:showId?` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/entries/:showId?` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6bbd8ed9dee4e6c6", "name": "Frontend route `/secretary/reports` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/reports` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-301a665a47240436", "name": "Frontend route `/secretary/results-control` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/results-control` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1942ff2271922257", "name": "Frontend route `/secretary/results-submission` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/results-submission` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3982ca1d4d5dd536", "name": "Frontend route `/secretary/register/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/register/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e554a852785b01d1", "name": "Frontend route `/secretary/volunteer-scheduling` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.t", "shortDescription": {"text": "Frontend route `/secretary/volunteer-scheduling` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f5ae9b04f0046454", "name": "Frontend route `/secretary/tasks` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/tasks` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-115915c6bc34698e", "name": "Frontend route `/secretary/shows/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/shows/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7100e6d409f47d64", "name": "Frontend route `/secretary/shows/:showId/edit` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/shows/:showId/edit` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-02dc2475e5049f03", "name": "Frontend route `/trials/:trialId/classes/create` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.t", "shortDescription": {"text": "Frontend route `/trials/:trialId/classes/create` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5020dfc001357981", "name": "Frontend route `/trials/:trialId/classes` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/trials/:trialId/classes` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf00fe684f9487e0", "name": "Frontend route `/shows/:showId/trials/:trialId/classes/:classId/secretary` has no Link/navigate to it \u2014 apps/myk9show/sr", "shortDescription": {"text": "Frontend route `/shows/:showId/trials/:trialId/classes/:classId/secretary` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-234f657ea66e437d", "name": "Frontend route `/secretary/messages/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/secretary/messages/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-04e52afadb23c0a5", "name": "Frontend route `/users` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx", "shortDescription": {"text": "Frontend route `/users` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0fbbd085cb2c51b3", "name": "Frontend route `/scoring/classes/:classId/entries` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes", "shortDescription": {"text": "Frontend route `/scoring/classes/:classId/entries` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4e83a5b37fa6f899", "name": "Frontend route `/scoring/classes/:classId/entries/:entryId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secret", "shortDescription": {"text": "Frontend route `/scoring/classes/:classId/entries/:entryId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5c09d9b3df5a93cc", "name": "Frontend route `/at-show/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/features/show-today/ShowTodayBanner.tes", "shortDescription": {"text": "Frontend route `/at-show/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/features/show-today/ShowTodayBanner.test.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa9bdd3d8405c782", "name": "Frontend route `/at-show/:showId/class/:classId` has no Link/navigate to it \u2014 apps/myk9show/src/features/at-show/AtShowC", "shortDescription": {"text": "Frontend route `/at-show/:showId/class/:classId` has no Link/navigate to it \u2014 apps/myk9show/src/features/at-show/AtShowClassListPage.test.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ed0745ec07a817d", "name": "Frontend route `/at-show/:showId/class/:classIdA/:classIdB` has no Link/navigate to it \u2014 apps/myk9show/src/features/at-s", "shortDescription": {"text": "Frontend route `/at-show/:showId/class/:classIdA/:classIdB` has no Link/navigate to it \u2014 apps/myk9show/src/features/at-show/AtShowClassListPage.test.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9f417c922bf04e03", "name": "Frontend route `/at-show/:showId/class/:classId/score/:entryId` has no Link/navigate to it \u2014 apps/myk9show/src/features/", "shortDescription": {"text": "Frontend route `/at-show/:showId/class/:classId/score/:entryId` has no Link/navigate to it \u2014 apps/myk9show/src/features/at-show/AtShowScoresheetPage.test.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b44961052bfcb404", "name": "Frontend route `/shows/:id/results-control` has no Link/navigate to it \u2014 apps/myk9show/src/pages/secretary/__tests__/Res", "shortDescription": {"text": "Frontend route `/shows/:id/results-control` has no Link/navigate to it \u2014 apps/myk9show/src/pages/secretary/__tests__/ResultsControlPage.test.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a9447a736b6ed760", "name": "Frontend route `/about` has no Link/navigate to it \u2014 apps/myk9show/src/hooks/animations/usePageTransition.ts", "shortDescription": {"text": "Frontend route `/about` has no Link/navigate to it \u2014 apps/myk9show/src/hooks/animations/usePageTransition.ts"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6277f8ed14db36e7", "name": "Dangling fetch: POST https://api.resend.com/emails (apps/myk9show/supabase/functions/send-email/index.ts:168)", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/emails (apps/myk9show/supabase/functions/send-email/index.ts:168)"}, "fullDescription": {"text": "`apps/myk9show/supabase/functions/send-email/index.ts:168` calls `POST https://api.resend.com/emails` 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.resend.com/emails`\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-1b64e58769032dc8", "name": "Dangling fetch: POST https://api.resend.com/emails (apps/myk9show/supabase/functions/cron-process-payouts/index.ts:52)", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/emails (apps/myk9show/supabase/functions/cron-process-payouts/index.ts:52)"}, "fullDescription": {"text": "`apps/myk9show/supabase/functions/cron-process-payouts/index.ts:52` calls `POST https://api.resend.com/emails` 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.resend.com/emails`\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-bf7de0ed67f4951f", "name": "Dangling fetch: POST https://api.resend.com/emails (apps/myk9show/supabase/functions/_shared/alertAdmin.ts:16)", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/emails (apps/myk9show/supabase/functions/_shared/alertAdmin.ts:16)"}, "fullDescription": {"text": "`apps/myk9show/supabase/functions/_shared/alertAdmin.ts:16` calls `POST https://api.resend.com/emails` 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.resend.com/emails`\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-9aaae30096bb7a7e", "name": "Dangling fetch: GET /api/shows/search?q=${encodeURIComponent(searchTerm)} (apps/myk9show/src/test/load/playwright-load-t", "shortDescription": {"text": "Dangling fetch: GET /api/shows/search?q=${encodeURIComponent(searchTerm)} (apps/myk9show/src/test/load/playwright-load-tests.spec.ts:496)"}, "fullDescription": {"text": "`apps/myk9show/src/test/load/playwright-load-tests.spec.ts:496` calls `GET /api/shows/search?q=${encodeURIComponent(searchTerm)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/shows/search`\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-8ccc284c21ff02b2", "name": "Dangling fetch: POST /api/save-templates (apps/myk9show/src/utils/saveTemplatesAPI.ts:17)", "shortDescription": {"text": "Dangling fetch: POST /api/save-templates (apps/myk9show/src/utils/saveTemplatesAPI.ts:17)"}, "fullDescription": {"text": "`apps/myk9show/src/utils/saveTemplatesAPI.ts:17` calls `POST /api/save-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/save-templates`\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-5acfcde734610375", "name": "Dangling fetch: POST /api/dogs/search (apps/myk9show/src/lib/searchCache.ts:59)", "shortDescription": {"text": "Dangling fetch: POST /api/dogs/search (apps/myk9show/src/lib/searchCache.ts:59)"}, "fullDescription": {"text": "`apps/myk9show/src/lib/searchCache.ts:59` calls `POST /api/dogs/search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/dogs/search`\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-79d8891918802f4c", "name": "Dangling fetch: POST /api/people/search (apps/myk9show/src/lib/searchCache.ts:77)", "shortDescription": {"text": "Dangling fetch: POST /api/people/search (apps/myk9show/src/lib/searchCache.ts:77)"}, "fullDescription": {"text": "`apps/myk9show/src/lib/searchCache.ts:77` calls `POST /api/people/search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/people/search`\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-5a71298690a080ec", "name": "Dangling fetch: POST /api/shows/search (apps/myk9show/src/lib/searchCache.ts:95)", "shortDescription": {"text": "Dangling fetch: POST /api/shows/search (apps/myk9show/src/lib/searchCache.ts:95)"}, "fullDescription": {"text": "`apps/myk9show/src/lib/searchCache.ts:95` calls `POST /api/shows/search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/shows/search`\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-b16ecaa9e79ea63d", "name": "Dangling fetch: GET /api/dogs/${dogId} (apps/myk9show/src/hooks/useRoutePrefetch.ts:133)", "shortDescription": {"text": "Dangling fetch: GET /api/dogs/${dogId} (apps/myk9show/src/hooks/useRoutePrefetch.ts:133)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:133` calls `GET /api/dogs/${dogId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/dogs/<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-870957a517b81a25", "name": "Dangling fetch: GET /api/dogs/${dogId}/health-records (apps/myk9show/src/hooks/useRoutePrefetch.ts:137)", "shortDescription": {"text": "Dangling fetch: GET /api/dogs/${dogId}/health-records (apps/myk9show/src/hooks/useRoutePrefetch.ts:137)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:137` calls `GET /api/dogs/${dogId}/health-records` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/dogs/<p>/health-records`\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-848547feaf91a74e", "name": "Dangling fetch: GET /api/dogs/${dogId}/registrations (apps/myk9show/src/hooks/useRoutePrefetch.ts:141)", "shortDescription": {"text": "Dangling fetch: GET /api/dogs/${dogId}/registrations (apps/myk9show/src/hooks/useRoutePrefetch.ts:141)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:141` calls `GET /api/dogs/${dogId}/registrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/dogs/<p>/registrations`\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-4e2ac4c87deec238", "name": "Dangling fetch: GET /api/people/${personId} (apps/myk9show/src/hooks/useRoutePrefetch.ts:148)", "shortDescription": {"text": "Dangling fetch: GET /api/people/${personId} (apps/myk9show/src/hooks/useRoutePrefetch.ts:148)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:148` calls `GET /api/people/${personId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/people/<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-a4dd79dfce296bea", "name": "Dangling fetch: GET /api/people/${personId}/dogs (apps/myk9show/src/hooks/useRoutePrefetch.ts:152)", "shortDescription": {"text": "Dangling fetch: GET /api/people/${personId}/dogs (apps/myk9show/src/hooks/useRoutePrefetch.ts:152)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:152` calls `GET /api/people/${personId}/dogs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/people/<p>/dogs`\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-ab7e77870873511d", "name": "Dangling fetch: GET /api/shows/${showId} (apps/myk9show/src/hooks/useRoutePrefetch.ts:159)", "shortDescription": {"text": "Dangling fetch: GET /api/shows/${showId} (apps/myk9show/src/hooks/useRoutePrefetch.ts:159)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:159` calls `GET /api/shows/${showId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/shows/<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-4f8ee591105e5cd8", "name": "Dangling fetch: GET /api/shows/${showId}/classes (apps/myk9show/src/hooks/useRoutePrefetch.ts:163)", "shortDescription": {"text": "Dangling fetch: GET /api/shows/${showId}/classes (apps/myk9show/src/hooks/useRoutePrefetch.ts:163)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:163` calls `GET /api/shows/${showId}/classes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/shows/<p>/classes`\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-a533397ee7d97e5d", "name": "Dangling fetch: GET /api/shows/${showId}/entries (apps/myk9show/src/hooks/useRoutePrefetch.ts:167)", "shortDescription": {"text": "Dangling fetch: GET /api/shows/${showId}/entries (apps/myk9show/src/hooks/useRoutePrefetch.ts:167)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:167` calls `GET /api/shows/${showId}/entries` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/shows/<p>/entries`\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-e24bfd146e1c6937", "name": "Dangling fetch: GET /api/shows (apps/myk9show/src/hooks/useRoutePrefetch.ts:174)", "shortDescription": {"text": "Dangling fetch: GET /api/shows (apps/myk9show/src/hooks/useRoutePrefetch.ts:174)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:174` calls `GET /api/shows` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/shows`\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-1f975f5ad0950d6c", "name": "Dangling fetch: GET /api/dogs (apps/myk9show/src/hooks/useRoutePrefetch.ts:181)", "shortDescription": {"text": "Dangling fetch: GET /api/dogs (apps/myk9show/src/hooks/useRoutePrefetch.ts:181)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:181` calls `GET /api/dogs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/dogs`\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-b4684f83a51bbef6", "name": "Dangling fetch: GET /api/people (apps/myk9show/src/hooks/useRoutePrefetch.ts:188)", "shortDescription": {"text": "Dangling fetch: GET /api/people (apps/myk9show/src/hooks/useRoutePrefetch.ts:188)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:188` calls `GET /api/people` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/people`\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-7feaa87bfdce3a92", "name": "Dangling fetch: GET /api/admin/stats (apps/myk9show/src/hooks/useRoutePrefetch.ts:195)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/stats (apps/myk9show/src/hooks/useRoutePrefetch.ts:195)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:195` calls `GET /api/admin/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/stats`\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-7664b9c3295314aa", "name": "Dangling fetch: GET /api/admin/recent-activity (apps/myk9show/src/hooks/useRoutePrefetch.ts:199)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/recent-activity (apps/myk9show/src/hooks/useRoutePrefetch.ts:199)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:199` calls `GET /api/admin/recent-activity` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/recent-activity`\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-7b184adc30928ab3", "name": "Dangling fetch: GET /api/judge/assignments (apps/myk9show/src/hooks/useRoutePrefetch.ts:206)", "shortDescription": {"text": "Dangling fetch: GET /api/judge/assignments (apps/myk9show/src/hooks/useRoutePrefetch.ts:206)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:206` calls `GET /api/judge/assignments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/judge/assignments`\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-ac3bb2552234645a", "name": "Dangling fetch: GET /api/judge/schedule (apps/myk9show/src/hooks/useRoutePrefetch.ts:210)", "shortDescription": {"text": "Dangling fetch: GET /api/judge/schedule (apps/myk9show/src/hooks/useRoutePrefetch.ts:210)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:210` calls `GET /api/judge/schedule` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/judge/schedule`\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-2ecfbf27b918cb56", "name": "Dangling fetch: GET /api/secretary/shows (apps/myk9show/src/hooks/useRoutePrefetch.ts:217)", "shortDescription": {"text": "Dangling fetch: GET /api/secretary/shows (apps/myk9show/src/hooks/useRoutePrefetch.ts:217)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:217` calls `GET /api/secretary/shows` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/secretary/shows`\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-a6ddeb3cd19ce1ef", "name": "Dangling fetch: GET /api/secretary/pending-entries (apps/myk9show/src/hooks/useRoutePrefetch.ts:221)", "shortDescription": {"text": "Dangling fetch: GET /api/secretary/pending-entries (apps/myk9show/src/hooks/useRoutePrefetch.ts:221)"}, "fullDescription": {"text": "`apps/myk9show/src/hooks/useRoutePrefetch.ts:221` calls `GET /api/secretary/pending-entries` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/secretary/pending-entries`\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-4e1f76e90b51b929", "name": "Dangling fetch: GET /api/health/database (apps/myk9show/src/services/SystemHealthService.ts:249)", "shortDescription": {"text": "Dangling fetch: GET /api/health/database (apps/myk9show/src/services/SystemHealthService.ts:249)"}, "fullDescription": {"text": "`apps/myk9show/src/services/SystemHealthService.ts:249` calls `GET /api/health/database` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/health/database`\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-3b716376943f865f", "name": "Dangling fetch: GET /api/health/ping (apps/myk9show/src/services/SystemHealthService.ts:307)", "shortDescription": {"text": "Dangling fetch: GET /api/health/ping (apps/myk9show/src/services/SystemHealthService.ts:307)"}, "fullDescription": {"text": "`apps/myk9show/src/services/SystemHealthService.ts:307` calls `GET /api/health/ping` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/health/ping`\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-a9236b049a9dd537", "name": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-confirmation-email/index.ts:585)", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-confirmation-email/index.ts:585)"}, "fullDescription": {"text": "`supabase/functions/send-confirmation-email/index.ts:585` calls `POST https://api.resend.com/emails` 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.resend.com/emails`\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-3ded9516aac28e3b", "name": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-results/index.ts:52)", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-results/index.ts:52)"}, "fullDescription": {"text": "`supabase/functions/send-results/index.ts:52` calls `POST https://api.resend.com/emails` 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.resend.com/emails`\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-81f2a3f550dd11f9", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (supabase/functions/generate-premium/index.ts:358)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (supabase/functions/generate-premium/index.ts:358)"}, "fullDescription": {"text": "`supabase/functions/generate-premium/index.ts:358` calls `POST https://api.anthropic.com/v1/messages` 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.anthropic.com/v1/messages`\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-affff8dd5066ed6b", "name": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-email/index.ts:152)", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-email/index.ts:152)"}, "fullDescription": {"text": "`supabase/functions/send-email/index.ts:152` calls `POST https://api.resend.com/emails` 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.resend.com/emails`\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-9eaab914cea953ed", "name": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-waitlist-invite/index.ts:136)", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-waitlist-invite/index.ts:136)"}, "fullDescription": {"text": "`supabase/functions/send-waitlist-invite/index.ts:136` calls `POST https://api.resend.com/emails` 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.resend.com/emails`\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-02ad92b36d1fec6e", "name": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-registration-email/index.ts:266)", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-registration-email/index.ts:266)"}, "fullDescription": {"text": "`supabase/functions/send-registration-email/index.ts:266` calls `POST https://api.resend.com/emails` 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.resend.com/emails`\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-2034534de3d265b3", "name": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-auth-email/index.ts:130)", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-auth-email/index.ts:130)"}, "fullDescription": {"text": "`supabase/functions/send-auth-email/index.ts:130` calls `POST https://api.resend.com/emails` 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.resend.com/emails`\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-702f271ded601b68", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (supabase/functions/_shared/askq/promptBuilder.ts:21)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (supabase/functions/_shared/askq/promptBuilder.ts:21)"}, "fullDescription": {"text": "`supabase/functions/_shared/askq/promptBuilder.ts:21` calls `POST https://api.anthropic.com/v1/messages` 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.anthropic.com/v1/messages`\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-095e4469a4585fb9", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (supabase/functions/_shared/askq/promptBuilder.ts:51)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (supabase/functions/_shared/askq/promptBuilder.ts:51)"}, "fullDescription": {"text": "`supabase/functions/_shared/askq/promptBuilder.ts:51` calls `POST https://api.anthropic.com/v1/messages` 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.anthropic.com/v1/messages`\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-d5c3330fff0b3fc6", "name": "Unused endpoint: USE /api/save-templates", "shortDescription": {"text": "Unused endpoint: USE /api/save-templates"}, "fullDescription": {"text": "`apps/myk9show/vite-plugins/saveTemplatesPlugin.js` declares `USE /api/save-templates` 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/17965"}, "properties": {"repository": "rbeezley/myk9-platform", "repoUrl": "https://github.com/rbeezley/myk9-platform", "branch": "main"}, "results": [{"ruleId": "scanner-8c60b0322b722407", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-test-profiles.js:59"}, "properties": {"repobilityId": "54147d62f8ee6766", "scanner": "scanner-primary", "fingerprint": "8c60b0322b722407", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f8c8a01b98e0fe67", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-secretary-test-user.js:35"}, "properties": {"repobilityId": "f7886e83a8d1f34c", "scanner": "scanner-primary", "fingerprint": "f8c8a01b98e0fe67", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2be4fa2341c55bed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/get-ts-errors.js:3"}, "properties": {"repobilityId": "b76e711f3fd16fdb", "scanner": "scanner-primary", "fingerprint": "2be4fa2341c55bed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b4bdce9572c5030f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/monitor-type-safety.js:29"}, "properties": {"repobilityId": "4d619a5651380ce3", "scanner": "scanner-primary", "fingerprint": "b4bdce9572c5030f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dde369175ecd916d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/dependency-audit.js:96"}, "properties": {"repobilityId": "f1cfc51ed1361f58", "scanner": "scanner-primary", "fingerprint": "dde369175ecd916d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2a79c4a79137ae8b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/complexity-analysis.js:37"}, "properties": {"repobilityId": "a3f1f4c78223decd", "scanner": "scanner-primary", "fingerprint": "2a79c4a79137ae8b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-af9aa941a11bd7ab", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/lint-changed.js:44"}, "properties": {"repobilityId": "02154ca73f3c7fab", "scanner": "scanner-primary", "fingerprint": "af9aa941a11bd7ab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0b80876b61d413ec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/test-auth.js:10"}, "properties": {"repobilityId": "d64f0c1cebbea359", "scanner": "scanner-primary", "fingerprint": "0b80876b61d413ec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3be141e862696516", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-working-test-users.js:20"}, "properties": {"repobilityId": "3b39785ee4a702b8", "scanner": "scanner-primary", "fingerprint": "3be141e862696516", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ee1b319c4ad1eae6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/check-bundle-budget.js:120"}, "properties": {"repobilityId": "37a88f6ce671cc6e", "scanner": "scanner-primary", "fingerprint": "ee1b319c4ad1eae6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d4d102517c9492e2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/quality-dashboard.js:39"}, "properties": {"repobilityId": "552faeb9fb9e01bb", "scanner": "scanner-primary", "fingerprint": "d4d102517c9492e2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9c6f051daa9833c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-test-users.js:29"}, "properties": {"repobilityId": "e42b130995f7a81c", "scanner": "scanner-primary", "fingerprint": "9c6f051daa9833c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-42464b6646da9a78", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/analyze-bundle.js:62"}, "properties": {"repobilityId": "9bd7e228efd2aeb2", "scanner": "scanner-primary", "fingerprint": "42464b6646da9a78", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0e6557e841ba0855", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-test-user.js:38"}, "properties": {"repobilityId": "37428a0a140bb1d8", "scanner": "scanner-primary", "fingerprint": "0e6557e841ba0855", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2b76af90ab582cf0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/auto-cleanup-after-test.js:14"}, "properties": {"repobilityId": "eaed59b614e98c31", "scanner": "scanner-primary", "fingerprint": "2b76af90ab582cf0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b0b7ad1965491c09", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/cross-browser-test-runner.js:37"}, "properties": {"repobilityId": "f24b03133e9b3120", "scanner": "scanner-primary", "fingerprint": "b0b7ad1965491c09", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e29a1932a783047b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-fresh-user.js:13"}, "properties": {"repobilityId": "df53e09730408753", "scanner": "scanner-primary", "fingerprint": "e29a1932a783047b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-54c5ad56861215aa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/validate-migration-setup.js:12"}, "properties": {"repobilityId": "c477d42046eff1c4", "scanner": "scanner-primary", "fingerprint": "54c5ad56861215aa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9d6957a3dff04e65", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/create-playwright-test-user.js:35"}, "properties": {"repobilityId": "fefd2e23fea4f8b1", "scanner": "scanner-primary", "fingerprint": "9d6957a3dff04e65", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8a345da0b7ec4d51", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/apply-migration.js:28"}, "properties": {"repobilityId": "f70c1b4764b5824e", "scanner": "scanner-primary", "fingerprint": "8a345da0b7ec4d51", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8fed522c4045de15", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/migrate-to-singular-tables.ts:182"}, "properties": {"repobilityId": "f74fbd2c7dab115f", "scanner": "scanner-primary", "fingerprint": "8fed522c4045de15", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-efe0c4a67d995023", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/check-types.js:15"}, "properties": {"repobilityId": "d28850609a69bc09", "scanner": "scanner-primary", "fingerprint": "efe0c4a67d995023", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c14cbfcb8d362130", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/fix-rbac-function.js:9"}, "properties": {"repobilityId": "4b0fded8b42a5906", "scanner": "scanner-primary", "fingerprint": "c14cbfcb8d362130", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8cfd92bd5e563d1d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/document-current-state.ts:41"}, "properties": {"repobilityId": "34d6b5c3dc662a5e", "scanner": "scanner-primary", "fingerprint": "8cfd92bd5e563d1d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fc0c11e8cdccc5ac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/rename-user-components.js:15"}, "properties": {"repobilityId": "027078bd62d0b053", "scanner": "scanner-primary", "fingerprint": "fc0c11e8cdccc5ac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-de7de49ee3c13d5f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/scripts/setup-e2e-test-users.js:132"}, "properties": {"repobilityId": "fa11011650fab2f1", "scanner": "scanner-primary", "fingerprint": "de7de49ee3c13d5f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4af5e413116bc1b8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/stripe-refund-entry/index.ts:177"}, "properties": {"repobilityId": "d87c8605f53951ce", "scanner": "scanner-primary", "fingerprint": "4af5e413116bc1b8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7358e1af35f03a90", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/send-email/index.ts:189"}, "properties": {"repobilityId": "ac2e7cb693934b0d", "scanner": "scanner-primary", "fingerprint": "7358e1af35f03a90", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-02cc7622dc71b11d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/stripe-webhook/index.ts:98"}, "properties": {"repobilityId": "9eb1180f9f97b4a8", "scanner": "scanner-primary", "fingerprint": "02cc7622dc71b11d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-546bd05c6a6f79cf", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/supabase/functions/stripe-connect-onboard/index.ts:135"}, "properties": {"repobilityId": "3ebbfc82dcdc0b20", "scanner": "scanner-primary", "fingerprint": "546bd05c6a6f79cf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e07f18ef02082e42", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/stripe-connect-onboard/index.ts:185"}, "properties": {"repobilityId": "5df9bb9e2ac302cd", "scanner": "scanner-primary", "fingerprint": "e07f18ef02082e42", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a43506b3d4323d74", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/stripe-checkout/index.ts:258"}, "properties": {"repobilityId": "beb9e6f5c70c88fc", "scanner": "scanner-primary", "fingerprint": "a43506b3d4323d74", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b19c6692bcca85eb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/cron-process-payouts/index.ts:48"}, "properties": {"repobilityId": "31398ece7725c8d9", "scanner": "scanner-primary", "fingerprint": "b19c6692bcca85eb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-90ef7cb666410553", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/cron-waitlist-expiration/index.ts:109"}, "properties": {"repobilityId": "92e0c0be296f8b78", "scanner": "scanner-primary", "fingerprint": "90ef7cb666410553", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3d6ce434162643f5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/supabase/functions/_shared/alertAdmin.ts:12"}, "properties": {"repobilityId": "8b9a07aaad27575a", "scanner": "scanner-primary", "fingerprint": "3d6ce434162643f5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e0d784db33134afa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/phase3-4-quick-validation.test.ts:18"}, "properties": {"repobilityId": "7fb42c0031a57b7f", "scanner": "scanner-primary", "fingerprint": "e0d784db33134afa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4235553168e235e8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/phase3-5-payment-processing.test.ts:277"}, "properties": {"repobilityId": "3c29427c932c3f0f", "scanner": "scanner-primary", "fingerprint": "4235553168e235e8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a73bf0025f39cc02", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/unit/entryStore.test.ts:579"}, "properties": {"repobilityId": "6f982db267e605fb", "scanner": "scanner-primary", "fingerprint": "a73bf0025f39cc02", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2f1b9cc0a28ae5b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/performance/performance.spec.ts:126"}, "properties": {"repobilityId": "c447134431ee5157", "scanner": "scanner-primary", "fingerprint": "2f1b9cc0a28ae5b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8259ff3634a4af47", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/performance/templatePerformance.test.ts:26"}, "properties": {"repobilityId": "f1ff618d027034c3", "scanner": "scanner-primary", "fingerprint": "8259ff3634a4af47", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ac26b6329321d761", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/components/RegistrationWorkflow.simple.test.tsx:131"}, "properties": {"repobilityId": "b5d2cfb2388866c2", "scanner": "scanner-primary", "fingerprint": "ac26b6329321d761", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4759bb7f276ba635", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/load/playwright-load-tests.spec.ts:47"}, "properties": {"repobilityId": "1c66d469d9c07c2b", "scanner": "scanner-primary", "fingerprint": "4759bb7f276ba635", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6476c84c101d7a78", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/load/k6-load-tests.js:160"}, "properties": {"repobilityId": "1860b27d7eaba064", "scanner": "scanner-primary", "fingerprint": "6476c84c101d7a78", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5932e54bf82951ac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/load/load-test-processor.js:61"}, "properties": {"repobilityId": "234562051dc1ea3a", "scanner": "scanner-primary", "fingerprint": "5932e54bf82951ac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a9a22159143aba8f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/hooks/queries/simplified-react-query.test.ts:98"}, "properties": {"repobilityId": "d540703de7bb45a8", "scanner": "scanner-primary", "fingerprint": "a9a22159143aba8f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fc4d36b699741560", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/phase2-quick-test.spec.ts:14"}, "properties": {"repobilityId": "06bfa5cf8fa95fab", "scanner": "scanner-primary", "fingerprint": "fc4d36b699741560", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-303b842ad36e0f90", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/auth-test.spec.ts:10"}, "properties": {"repobilityId": "32058e8675a844c1", "scanner": "scanner-primary", "fingerprint": "303b842ad36e0f90", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-81bf716a9f4b12aa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/show-details-issue.spec.ts:22"}, "properties": {"repobilityId": "4e8adfb9ef9ef286", "scanner": "scanner-primary", "fingerprint": "81bf716a9f4b12aa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fb52b565c39e47fb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/show-details-performance.spec.ts:29"}, "properties": {"repobilityId": "ffb43e4ca86e529c", "scanner": "scanner-primary", "fingerprint": "fb52b565c39e47fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9a7468c509cce987", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/authentication-validation.spec.ts:147"}, "properties": {"repobilityId": "3c26b2bd7bcddfd4", "scanner": "scanner-primary", "fingerprint": "9a7468c509cce987", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8a5c61a2b68f9561", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/database-record-validation.spec.ts:45"}, "properties": {"repobilityId": "7362ce308168152d", "scanner": "scanner-primary", "fingerprint": "8a5c61a2b68f9561", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5764bc8bfadce6f9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/test-user-edit-panel-authenticated.spec.ts:10"}, "properties": {"repobilityId": "6964fc4102516188", "scanner": "scanner-primary", "fingerprint": "5764bc8bfadce6f9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7056bd5081c4e9dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-show-edit.spec.ts:16"}, "properties": {"repobilityId": "befb07615f04a123", "scanner": "scanner-primary", "fingerprint": "7056bd5081c4e9dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1e64868b45b2b74d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-show-add-button.spec.ts:14"}, "properties": {"repobilityId": "7faad469dd9d72b8", "scanner": "scanner-primary", "fingerprint": "1e64868b45b2b74d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b654ae51f090ed47", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/test-user-edit-panel.spec.ts:6"}, "properties": {"repobilityId": "60c1a6854363e22a", "scanner": "scanner-primary", "fingerprint": "b654ae51f090ed47", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3dd976297d3bdb89", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/a11y-smoke.spec.ts:100"}, "properties": {"repobilityId": "18ec986d3d25f605", "scanner": "scanner-primary", "fingerprint": "3dd976297d3bdb89", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bdef7be6a3d0dece", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/simple-show-edit-debug.spec.ts:5"}, "properties": {"repobilityId": "7ba16e5136705594", "scanner": "scanner-primary", "fingerprint": "bdef7be6a3d0dece", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-803bc4b5da2ba438", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/phase5-simple-integration.spec.ts:25"}, "properties": {"repobilityId": "cd0517e40d91c0c5", "scanner": "scanner-primary", "fingerprint": "803bc4b5da2ba438", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-68ba3f71b2e5d3ea", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/people-page-ui.spec.ts:279"}, "properties": {"repobilityId": "f7650b0b287feff1", "scanner": "scanner-primary", "fingerprint": "68ba3f71b2e5d3ea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fd2d362dc0094c2a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/real-auth-browse-shows.spec.ts:12"}, "properties": {"repobilityId": "c7ae5ada417f201a", "scanner": "scanner-primary", "fingerprint": "fd2d362dc0094c2a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-64272ba45bdde971", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser-compatibility.spec.ts:262"}, "properties": {"repobilityId": "f6b19b153698903b", "scanner": "scanner-primary", "fingerprint": "64272ba45bdde971", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-685731ff4ad7633f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/complete-user-journey.spec.ts:25"}, "properties": {"repobilityId": "54a5bd0a60be8b09", "scanner": "scanner-primary", "fingerprint": "685731ff4ad7633f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a20aea34d9d9ad0d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/test-user-profile-edit.spec.ts:10"}, "properties": {"repobilityId": "a7632e5bd8537252", "scanner": "scanner-primary", "fingerprint": "a20aea34d9d9ad0d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ae607771eb86e0ec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-user-flow.spec.ts:10"}, "properties": {"repobilityId": "70569ff2210367e9", "scanner": "scanner-primary", "fingerprint": "ae607771eb86e0ec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8bd1d7977eef601e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/simple-connectivity.spec.ts:6"}, "properties": {"repobilityId": "fadb3abf26b010d3", "scanner": "scanner-primary", "fingerprint": "8bd1d7977eef601e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-11a91cd8d83e51a2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/show-details-sidebar-navigation.spec.ts:21"}, "properties": {"repobilityId": "574b609063f47791", "scanner": "scanner-primary", "fingerprint": "11a91cd8d83e51a2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d537e11a894756bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-authentication.spec.ts:11"}, "properties": {"repobilityId": "c11ad723deebe1e9", "scanner": "scanner-primary", "fingerprint": "d537e11a894756bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e861b79fb6d50802", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/debug-role-assignment.spec.ts:8"}, "properties": {"repobilityId": "df91076eb43efd68", "scanner": "scanner-primary", "fingerprint": "e861b79fb6d50802", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a712731081fce646", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/phase5-complete-integration.spec.ts:36"}, "properties": {"repobilityId": "bf2b2b184b7d761f", "scanner": "scanner-primary", "fingerprint": "a712731081fce646", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-07afdf024f59937f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser/basic-functionality.spec.ts:13"}, "properties": {"repobilityId": "69f7796c27187e1a", "scanner": "scanner-primary", "fingerprint": "07afdf024f59937f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8e3258a4f7e06d78", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser/performance.spec.ts:59"}, "properties": {"repobilityId": "ae18f9a3d44f147c", "scanner": "scanner-primary", "fingerprint": "8e3258a4f7e06d78", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5c9b407686819629", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser/quirks.spec.ts:48"}, "properties": {"repobilityId": "67f6e3b9e94619d5", "scanner": "scanner-primary", "fingerprint": "5c9b407686819629", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3edc42945266b7b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/cross-browser/functionality.spec.ts:34"}, "properties": {"repobilityId": "fbf6c20a5d18034a", "scanner": "scanner-primary", "fingerprint": "3edc42945266b7b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c925243313267819", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/show/phase4CrossRoleSeams.spec.ts:182"}, "properties": {"repobilityId": "1b7dc17fd91629ca", "scanner": "scanner-primary", "fingerprint": "c925243313267819", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e574805a641d9a46", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/registration/entryCreationCore.spec.ts:14"}, "properties": {"repobilityId": "8ef469a5d8516b5b", "scanner": "scanner-primary", "fingerprint": "e574805a641d9a46", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a176b545739e3ec6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/clubCRUD.spec.ts:12"}, "properties": {"repobilityId": "af032d1f6d84a296", "scanner": "scanner-primary", "fingerprint": "a176b545739e3ec6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-000bc150f682fcec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/trialCRUD.spec.ts:12"}, "properties": {"repobilityId": "0d71f9c8fa0a6891", "scanner": "scanner-primary", "fingerprint": "000bc150f682fcec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1df55ec202cbd7c4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/classCRUD.spec.ts:12"}, "properties": {"repobilityId": "b121a4f03cf62d98", "scanner": "scanner-primary", "fingerprint": "1df55ec202cbd7c4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-53b8489e2cb791d9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/showCRUD.spec.ts:12"}, "properties": {"repobilityId": "d68bb4057fcbe498", "scanner": "scanner-primary", "fingerprint": "53b8489e2cb791d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8be31c89af441c4a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/test/e2e/entities/peopleCRUD.spec.ts:12"}, "properties": {"repobilityId": "d46fbcc8144ecdd1", "scanner": "scanner-primary", "fingerprint": "8be31c89af441c4a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-55d8a5e17f14cf33", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/utils/show-management-tracking.ts:133"}, "properties": {"repobilityId": "313310d501785fc8", "scanner": "scanner-primary", "fingerprint": "55d8a5e17f14cf33", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0613d766c749fd41", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/myk9show/src/utils/sanitization.tsx:87"}, "properties": {"repobilityId": "deb0011cafe93f08", "scanner": "scanner-primary", "fingerprint": "0613d766c749fd41", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5b99509b2664ec53", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/layout/AppHeader.tsx:194"}, "properties": {"repobilityId": "1f828e33ea19af28", "scanner": "scanner-primary", "fingerprint": "5b99509b2664ec53", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-75f2ca63a7ef72d2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/layout/record/AssociationCard.tsx:41"}, "properties": {"repobilityId": "575b4257df3b2464", "scanner": "scanner-primary", "fingerprint": "75f2ca63a7ef72d2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0b5ab9705cf47948", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/UserEnhancedSidebar.tsx:178"}, "properties": {"repobilityId": "b40675efd4f43963", "scanner": "scanner-primary", "fingerprint": "0b5ab9705cf47948", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f7b0f94080e2f636", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/DogCard.tsx:118"}, "properties": {"repobilityId": "e8bc873773d83279", "scanner": "scanner-primary", "fingerprint": "f7b0f94080e2f636", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-97fe742e40f761e4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/browse/PeopleListView.tsx:92"}, "properties": {"repobilityId": "326a59c880f0efa6", "scanner": "scanner-primary", "fingerprint": "97fe742e40f761e4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-67d6c73982ecde7e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/browse/PeopleTableView.tsx:52"}, "properties": {"repobilityId": "473d15472dd83d18", "scanner": "scanner-primary", "fingerprint": "67d6c73982ecde7e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-19eecc8b16052a93", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/UserDetails/UserDetailsView.tsx:181"}, "properties": {"repobilityId": "f0ffd24714aa54e1", "scanner": "scanner-primary", "fingerprint": "19eecc8b16052a93", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-48f56bcb88836988", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/users/UserDetails/ContactInformationCard.tsx:41"}, "properties": {"repobilityId": "9d1bcc6fcf651bb2", "scanner": "scanner-primary", "fingerprint": "48f56bcb88836988", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a174c2a6feb5d415", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/notifications/MessageCenterPanel.tsx:361"}, "properties": {"repobilityId": "1ef51fe3e8661ac2", "scanner": "scanner-primary", "fingerprint": "a174c2a6feb5d415", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f7818cb3cc7c6063", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/live/EntryRow.tsx:51"}, "properties": {"repobilityId": "39b4f86101409dbd", "scanner": "scanner-primary", "fingerprint": "f7818cb3cc7c6063", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cbc8fe622a698fa6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/MultiSelectPopover.tsx:43"}, "properties": {"repobilityId": "11f6d78671305302", "scanner": "scanner-primary", "fingerprint": "cbc8fe622a698fa6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d1f6bf6bdafef93f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/browse/DogsTableView.tsx:72"}, "properties": {"repobilityId": "62052dc549b5d257", "scanner": "scanner-primary", "fingerprint": "d1f6bf6bdafef93f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-08be1e8a913c5609", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/DogDetailsMain/sidebar/RegistrationsCard.tsx:46"}, "properties": {"repobilityId": "dfaaa3d64b56825b", "scanner": "scanner-primary", "fingerprint": "08be1e8a913c5609", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4f10dfdd7586a6c7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/DogDetailsMain/sidebar/TitleProgressCard.tsx:39"}, "properties": {"repobilityId": "b45a073195225162", "scanner": "scanner-primary", "fingerprint": "4f10dfdd7586a6c7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e3198b310c864f90", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/dogs/DogDetails/TitleTracking/TitleProgressCard.tsx:33"}, "properties": {"repobilityId": "ca4c4f74a736f6b1", "scanner": "scanner-primary", "fingerprint": "e3198b310c864f90", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-19b54ff2c3ec919c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/sync/ConflictNotificationCenter.tsx:359"}, "properties": {"repobilityId": "549edae8e8c5f70e", "scanner": "scanner-primary", "fingerprint": "19b54ff2c3ec919c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5be25dbb944c5abd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/DogStripCard.tsx:34"}, "properties": {"repobilityId": "b7dadd44295ba8c9", "scanner": "scanner-primary", "fingerprint": "5be25dbb944c5abd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b6040bff3d915c6c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/StickyShowBar.tsx:70"}, "properties": {"repobilityId": "40349630ef3237b0", "scanner": "scanner-primary", "fingerprint": "b6040bff3d915c6c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-eb0ce6a12e4d3d44", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/ResultRow.tsx:36"}, "properties": {"repobilityId": "d8e4f1073e411a44", "scanner": "scanner-primary", "fingerprint": "eb0ce6a12e4d3d44", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f076e5547b713cae", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/ShowDayHero.tsx:130"}, "properties": {"repobilityId": "0855e2820da05e3c", "scanner": "scanner-primary", "fingerprint": "f076e5547b713cae", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3967937b7e76a9de", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/CheckInStatusMenu.tsx:170"}, "properties": {"repobilityId": "f7674129e9a48913", "scanner": "scanner-primary", "fingerprint": "3967937b7e76a9de", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6cf22c9e4558604f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/TitleProgressCard.tsx:34"}, "properties": {"repobilityId": "55739cc2cbb3c9d9", "scanner": "scanner-primary", "fingerprint": "6cf22c9e4558604f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d98a2448571b945f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/exhibitor/EntryRow.tsx:52"}, "properties": {"repobilityId": "53c12ac29ae312cb", "scanner": "scanner-primary", "fingerprint": "d98a2448571b945f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3f139492910694ec", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/judges/JudgeScoringInterface.tsx:240"}, "properties": {"repobilityId": "c536c9123e4c47d4", "scanner": "scanner-primary", "fingerprint": "3f139492910694ec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f4622e3e67195815", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/StatusPickerDialog.tsx:58"}, "properties": {"repobilityId": "a42629087f3a9ee3", "scanner": "scanner-primary", "fingerprint": "f4622e3e67195815", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cb10e3340143e833", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/SearchPerformanceMonitor.tsx:169"}, "properties": {"repobilityId": "b3bafa93e08e25e1", "scanner": "scanner-primary", "fingerprint": "cb10e3340143e833", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d17f3a944eb52f4c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/CheckInManagementOverlay.tsx:170"}, "properties": {"repobilityId": "0313dcc3192ffed0", "scanner": "scanner-primary", "fingerprint": "d17f3a944eb52f4c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-51d31f6f56879f88", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/RecentSearches.tsx:95"}, "properties": {"repobilityId": "2ef696591aafd3d9", "scanner": "scanner-primary", "fingerprint": "51d31f6f56879f88", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6879f8e61065b314", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/ViewPicker.tsx:101"}, "properties": {"repobilityId": "ce7b3d8e9f08567d", "scanner": "scanner-primary", "fingerprint": "6879f8e61065b314", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-800236935e5d016c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/BrowseCard.tsx:33"}, "properties": {"repobilityId": "3047bfce984a06dd", "scanner": "scanner-primary", "fingerprint": "800236935e5d016c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a89ea0832a0cd353", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/common/EntitySidebar.tsx:81"}, "properties": {"repobilityId": "dc017b660487176e", "scanner": "scanner-primary", "fingerprint": "a89ea0832a0cd353", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-44a114955f5420df", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/pwa/PWAInstallBanner.tsx:55"}, "properties": {"repobilityId": "ce9467e844424766", "scanner": "scanner-primary", "fingerprint": "44a114955f5420df", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-15d32f9f221dcf6f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowCardVertical.tsx:58"}, "properties": {"repobilityId": "190c724e207d6f18", "scanner": "scanner-primary", "fingerprint": "15d32f9f221dcf6f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-57ececff1cc44bc8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowDetails/ShowGroupedSidebar.tsx:114"}, "properties": {"repobilityId": "25c8ea50ff74a3e3", "scanner": "scanner-primary", "fingerprint": "57ececff1cc44bc8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-feb0a5ac1c10a44c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowDetails/TrialsList.tsx:99"}, "properties": {"repobilityId": "0e5c8aea6de41804", "scanner": "scanner-primary", "fingerprint": "feb0a5ac1c10a44c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6032812b939a170a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowDetails/ShowMainCard.tsx:48"}, "properties": {"repobilityId": "2cc7078af85fa0c0", "scanner": "scanner-primary", "fingerprint": "6032812b939a170a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ded817e568ed3216", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/browse/ShowCardHorizontal.tsx:74"}, "properties": {"repobilityId": "8bc775ff482779cd", "scanner": "scanner-primary", "fingerprint": "ded817e568ed3216", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-417450e5ead36e2a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/browse/ShowsTableView.tsx:70"}, "properties": {"repobilityId": "c4f5a6077e89ea67", "scanner": "scanner-primary", "fingerprint": "417450e5ead36e2a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-50f41bba1dfecdcc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/ShowCalendar/ShowCalendar.tsx:148"}, "properties": {"repobilityId": "03911687ed9c73db", "scanner": "scanner-primary", "fingerprint": "50f41bba1dfecdcc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2a3da51f0418f0a9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/RegistrationWorkflow/HandlerAssignmentStep.tsx:177"}, "properties": {"repobilityId": "b9facc47055ee744", "scanner": "scanner-primary", "fingerprint": "2a3da51f0418f0a9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-374fd4f5575325d0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/RegistrationWorkflow/DogSelectionStepEnhanced.tsx:190"}, "properties": {"repobilityId": "d57909454790e874", "scanner": "scanner-primary", "fingerprint": "374fd4f5575325d0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6c04d7cdb240a631", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/RegistrationWorkflow/InlineHandlerSection.tsx:106"}, "properties": {"repobilityId": "f2f07fdd9a88a0ad", "scanner": "scanner-primary", "fingerprint": "6c04d7cdb240a631", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c4525249542e022c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/wizard/steps/ClassSelectionStep.tsx:367"}, "properties": {"repobilityId": "1e618d4f905e2b9f", "scanner": "scanner-primary", "fingerprint": "c4525249542e022c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b8595d7f81948cca", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/wizard/steps/CloneFromShowCombobox.tsx:148"}, "properties": {"repobilityId": "4903151b44aa71f8", "scanner": "scanner-primary", "fingerprint": "b8595d7f81948cca", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-42f78723b55a579d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/tabs/DogEntriesSection.tsx:79"}, "properties": {"repobilityId": "f982baaee437ea6b", "scanner": "scanner-primary", "fingerprint": "42f78723b55a579d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6b5eba00e8b901b4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/tabs/WhereToBe.tsx:78"}, "properties": {"repobilityId": "0ff4839b50096265", "scanner": "scanner-primary", "fingerprint": "6b5eba00e8b901b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ae6b4d2236941365", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/shows/tabs/TrialsTab.tsx:240"}, "properties": {"repobilityId": "599a13c1b4392ab8", "scanner": "scanner-primary", "fingerprint": "ae6b4d2236941365", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8433fcb97eedc520", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/cart/CartPreviewPanel.tsx:216"}, "properties": {"repobilityId": "056d6e8958d56818", "scanner": "scanner-primary", "fingerprint": "8433fcb97eedc520", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-753d2bef17fc90b5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/cart/CartItemCard.tsx:54"}, "properties": {"repobilityId": "fc471d1513ab1272", "scanner": "scanner-primary", "fingerprint": "753d2bef17fc90b5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5de9c60fe9e02109", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/classes/ClassesTableView.tsx:20"}, "properties": {"repobilityId": "7b3afa72bbb9270b", "scanner": "scanner-primary", "fingerprint": "5de9c60fe9e02109", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-da36c80d3300afdd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/classes/ClassWarningBanners.tsx:38"}, "properties": {"repobilityId": "658ead4082332356", "scanner": "scanner-primary", "fingerprint": "da36c80d3300afdd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4776d0eb7e8760f1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/classes/ClassGroupedSidebar.tsx:140"}, "properties": {"repobilityId": "be8f3f830e24028f", "scanner": "scanner-primary", "fingerprint": "4776d0eb7e8760f1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f2ff478911d439ef", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/classes/ClassResultsTable/EntryCard.tsx:39"}, "properties": {"repobilityId": "86979bf11709a3d5", "scanner": "scanner-primary", "fingerprint": "f2ff478911d439ef", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-18e71867ba380b67", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/templates/DirectSaveTemplatesDialog.tsx:86"}, "properties": {"repobilityId": "e0094b55fba023c8", "scanner": "scanner-primary", "fingerprint": "18e71867ba380b67", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bfd442989ed93db1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/templates/secretary/ClassScheduleView.tsx:294"}, "properties": {"repobilityId": "ccbed58a1d6612e3", "scanner": "scanner-primary", "fingerprint": "bfd442989ed93db1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-42a665140ff46844", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/templates/secretary/SimpleClassSelector.tsx:505"}, "properties": {"repobilityId": "95fc5156fa9bb3d1", "scanner": "scanner-primary", "fingerprint": "42a665140ff46844", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8a4d1f34c4101bf8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/admin/users/UserTable/index.tsx:193"}, "properties": {"repobilityId": "94f83a8b2b9a3988", "scanner": "scanner-primary", "fingerprint": "8a4d1f34c4101bf8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-15cc6079507efac1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/admin/permissions/PermissionInheritanceView.tsx:191"}, "properties": {"repobilityId": "64cdfcb49cf80896", "scanner": "scanner-primary", "fingerprint": "15cc6079507efac1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f6f009e3a38dc57e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/admin/DataLifecycleManagement/DeletedEntitySection.tsx:106"}, "properties": {"repobilityId": "1dcc5c1df1d0b2e8", "scanner": "scanner-primary", "fingerprint": "f6f009e3a38dc57e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e748b01eea2249ca", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/scoring/PlacementRecalculationAlert.tsx:496"}, "properties": {"repobilityId": "dcadcdda1217b9a5", "scanner": "scanner-primary", "fingerprint": "e748b01eea2249ca", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f070e4c5f57e9cae", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/scoring/LiveScoreUpdates.tsx:426"}, "properties": {"repobilityId": "b4374600562058ef", "scanner": "scanner-primary", "fingerprint": "f070e4c5f57e9cae", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9ed3f2b5ce60cdeb", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/components/landing/v2/WaitlistFormLanding.tsx:59"}, "properties": {"repobilityId": "2d428a013bb475ab", "scanner": "scanner-primary", "fingerprint": "9ed3f2b5ce60cdeb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ee15572fa93e51b2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/optimistic/ProgressOverlay.tsx:204"}, "properties": {"repobilityId": "8de87fecbad1328e", "scanner": "scanner-primary", "fingerprint": "ee15572fa93e51b2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cbb483b626cfa0e6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/entries/management/EntriesTableView.tsx:31"}, "properties": {"repobilityId": "038e002910b943fc", "scanner": "scanner-primary", "fingerprint": "cbb483b626cfa0e6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8917dcc94abb7385", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/trials/TrialSidebar.tsx:100"}, "properties": {"repobilityId": "17bc46ed1aacd70f", "scanner": "scanner-primary", "fingerprint": "8917dcc94abb7385", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-40e7f6c3a05bc86c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/clubs/members/MemberList.tsx:86"}, "properties": {"repobilityId": "ecc327ffb9696cd8", "scanner": "scanner-primary", "fingerprint": "40e7f6c3a05bc86c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-269ed0f606d9c2b6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/volunteers/AssignVolunteerPopover.tsx:69"}, "properties": {"repobilityId": "a5ba3431cb784b0a", "scanner": "scanner-primary", "fingerprint": "269ed0f606d9c2b6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a2a1ad30201b8634", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/preferences/PreferencesDialog.tsx:312"}, "properties": {"repobilityId": "521ce5d4f338c379", "scanner": "scanner-primary", "fingerprint": "a2a1ad30201b8634", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e5719464066d5afc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/components/preferences/DeviceManager.tsx:192"}, "properties": {"repobilityId": "817e690158860d22", "scanner": "scanner-primary", "fingerprint": "e5719464066d5afc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-84b0d95a66bb4a90", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/RegistrationWizardPage.tsx:609"}, "properties": {"repobilityId": "29e9aa5951e10a4b", "scanner": "scanner-primary", "fingerprint": "84b0d95a66bb4a90", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-99874d9e5a33a043", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/SmartSignInPage.tsx:306"}, "properties": {"repobilityId": "81d0e5fc17fc9e80", "scanner": "scanner-primary", "fingerprint": "99874d9e5a33a043", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4235fde5e0ec3384", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/AlertsPage.tsx:163"}, "properties": {"repobilityId": "ccf03eaee8b5645d", "scanner": "scanner-primary", "fingerprint": "4235fde5e0ec3384", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7b9532543313f859", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/ShowDetailsPrototype.tsx:367"}, "properties": {"repobilityId": "627f0497800a34fc", "scanner": "scanner-primary", "fingerprint": "7b9532543313f859", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e548e1bbaae84f0e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/myk9show/src/pages/LegalPage.tsx:61"}, "properties": {"repobilityId": "b9b3b59d99335a82", "scanner": "scanner-primary", "fingerprint": "e548e1bbaae84f0e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-95fbcc6feaca5431", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/MyEntriesPage/index.tsx:558"}, "properties": {"repobilityId": "19bf89037dd43346", "scanner": "scanner-primary", "fingerprint": "95fbcc6feaca5431", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5530e632259d138b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/scoring/ScoringEntryListPage.tsx:238"}, "properties": {"repobilityId": "150253f4f368eabc", "scanner": "scanner-primary", "fingerprint": "5530e632259d138b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-244d37cdb31b08c6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/scoring/components/ScoringEntryCard.tsx:125"}, "properties": {"repobilityId": "467e0a59ab77e41f", "scanner": "scanner-primary", "fingerprint": "244d37cdb31b08c6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7c3d7b20043c3b1b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/scoring/components/ClassEntryRow.tsx:79"}, "properties": {"repobilityId": "d75b7fc72e7ba082", "scanner": "scanner-primary", "fingerprint": "7c3d7b20043c3b1b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7f3d3052903dbfd6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/secretary/SecretaryDashboardPage/DashboardQuickLinks.tsx:33"}, "properties": {"repobilityId": "936756f91653854a", "scanner": "scanner-primary", "fingerprint": "7f3d3052903dbfd6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-22b81ca84cf7e52a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/secretary/SecretaryDashboardPage/ShowPhaseCard.tsx:36"}, "properties": {"repobilityId": "80457fa0ff257a4f", "scanner": "scanner-primary", "fingerprint": "22b81ca84cf7e52a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-328af0edeb520eaf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/secretary/SecretaryDashboardPage/AttentionNeededStrip.tsx:96"}, "properties": {"repobilityId": "6d75821a56cf3cbf", "scanner": "scanner-primary", "fingerprint": "328af0edeb520eaf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3ae3587cc9d84acf", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/pages/secretary/ShowCreationWizard/saveShowAtomicOnline.ts:66"}, "properties": {"repobilityId": "08231859360c8a81", "scanner": "scanner-primary", "fingerprint": "3ae3587cc9d84acf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-fc7b382f36bfc545", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/onboarding/steps/StepDogs.tsx:77"}, "properties": {"repobilityId": "13f621ea25d5d50d", "scanner": "scanner-primary", "fingerprint": "fc7b382f36bfc545", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5e10cddade794c43", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/pages/ClassDetailsPage/SecretaryRunSheet/RunSheetRow.tsx:83"}, "properties": {"repobilityId": "319e6aa0e4ebb60b", "scanner": "scanner-primary", "fingerprint": "5e10cddade794c43", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e1c73ebb2e7db6c9", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/hooks/useEntryManagementActions.ts:589"}, "properties": {"repobilityId": "13ea99eede5914f8", "scanner": "scanner-primary", "fingerprint": "e1c73ebb2e7db6c9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d348af9216ffbfca", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/hooks/useDogStoreCompat.ts:98"}, "properties": {"repobilityId": "810bb7f711b26da4", "scanner": "scanner-primary", "fingerprint": "d348af9216ffbfca", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-be636910c9c6b757", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/hooks/useEmailStatus.ts:22"}, "properties": {"repobilityId": "61722bde2242df45", "scanner": "scanner-primary", "fingerprint": "be636910c9c6b757", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-553c5fc7a06765e6", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/hooks/queries/useShowResults.ts:37"}, "properties": {"repobilityId": "cd58adf4ce492ca3", "scanner": "scanner-primary", "fingerprint": "553c5fc7a06765e6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-06e7763583dc964f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/myk9show/src/services/LoggingService.ts:159"}, "properties": {"repobilityId": "bb824a32d64f272f", "scanner": "scanner-primary", "fingerprint": "06e7763583dc964f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-53b0517e782413a9", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/services/mappers/showMappers.ts:40"}, "properties": {"repobilityId": "a54066359760c22f", "scanner": "scanner-primary", "fingerprint": "53b0517e782413a9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-246d7d8f70afad03", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/myk9show/src/services/database/show-incidents.ts:31"}, "properties": {"repobilityId": "3d68a2f12c4a9286", "scanner": "scanner-primary", "fingerprint": "246d7d8f70afad03", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cdcfb98ce189bb02", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/magazine/landing/sections/StickyNav.tsx:88"}, "properties": {"repobilityId": "1a18ee9fd3642795", "scanner": "scanner-primary", "fingerprint": "cdcfb98ce189bb02", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-da88195d56b3c729", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/at-show/AtShowClassListPage.tsx:176"}, "properties": {"repobilityId": "4c5589c39520ba32", "scanner": "scanner-primary", "fingerprint": "da88195d56b3c729", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-46117668d5058379", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/premium/LandingPageCard.tsx:67"}, "properties": {"repobilityId": "6a14a07b3099cf2f", "scanner": "scanner-primary", "fingerprint": "46117668d5058379", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8f0e723b4d51ae02", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/messages/components/ThreadListItem.tsx:26"}, "properties": {"repobilityId": "59ea80c3317a8ded", "scanner": "scanner-primary", "fingerprint": "8f0e723b4d51ae02", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6fe51606e7038811", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/payments/ClubPaymentsCard.tsx:163"}, "properties": {"repobilityId": "662393475d6b9528", "scanner": "scanner-primary", "fingerprint": "6fe51606e7038811", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bddf7366c44a440a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/pipeline/components/TrialPipelineCard.tsx:29"}, "properties": {"repobilityId": "a13d1572c9ebd0e4", "scanner": "scanner-primary", "fingerprint": "bddf7366c44a440a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b7ae290cda39874b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/pipeline/components/OverrideList.tsx:46"}, "properties": {"repobilityId": "c36bc0f1491328d5", "scanner": "scanner-primary", "fingerprint": "b7ae290cda39874b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-129978dba0f0cb3b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/show-map/ShowMapStructureCells.tsx:111"}, "properties": {"repobilityId": "7a042aea25907bc7", "scanner": "scanner-primary", "fingerprint": "129978dba0f0cb3b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cc08455252ef84d2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/show-map/ShowMapStructureTable.tsx:400"}, "properties": {"repobilityId": "6c075e72a30ff048", "scanner": "scanner-primary", "fingerprint": "cc08455252ef84d2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-363abdb3db246adb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/show-map/ShowMapSortableEntryRow.tsx:116"}, "properties": {"repobilityId": "d45c2e55f1a05003", "scanner": "scanner-primary", "fingerprint": "363abdb3db246adb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-45cdbdbd3e017ff6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/myk9show/src/features/show-map/ShowMapRunningNowStrip.tsx:32"}, "properties": {"repobilityId": "e1eb68c47473f502", "scanner": "scanner-primary", "fingerprint": "45cdbdbd3e017ff6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0980e4cdfa419d29", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-e2e-suite-map.js:38"}, "properties": {"repobilityId": "fd87d3643271365e", "scanner": "scanner-primary", "fingerprint": "0980e4cdfa419d29", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d1144fa01ee36272", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrate-logging-v3.js:317"}, "properties": {"repobilityId": "618877930dd422f6", "scanner": "scanner-primary", "fingerprint": "d1144fa01ee36272", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0b1adfcbb90e1878", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrate-logging-v2.js:146"}, "properties": {"repobilityId": "23fed051ecabbaf5", "scanner": "scanner-primary", "fingerprint": "0b1adfcbb90e1878", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7800fde836925e8a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrate-logging.js:139"}, "properties": {"repobilityId": "3b930c00082cf8ca", "scanner": "scanner-primary", "fingerprint": "7800fde836925e8a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3cd79dcb6f82425f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/qa/code-quality-ratchet.test.ts:122"}, "properties": {"repobilityId": "79f31d7c05ffa056", "scanner": "scanner-primary", "fingerprint": "3cd79dcb6f82425f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5b78cf7d2b36870e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/qa/code-quality-ratchet.ts:225"}, "properties": {"repobilityId": "177a18dbd365306c", "scanner": "scanner-primary", "fingerprint": "5b78cf7d2b36870e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5d5a2ec49f9e76d0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/qa/rls-smoke/rls-recursion-smoke.ts:146"}, "properties": {"repobilityId": "97ac392e93d7f9b9", "scanner": "scanner-primary", "fingerprint": "5d5a2ec49f9e76d0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aab8dbf6045dc85f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/qa/mutation/run-mutation-targets.ts:6"}, "properties": {"repobilityId": "84eb77de5f92a22b", "scanner": "scanner-primary", "fingerprint": "aab8dbf6045dc85f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7ea099331fb8dedc", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/email/src/templates/MonogramConfirmationEmail.tsx:167"}, "properties": {"repobilityId": "de75b6dc8d33381e", "scanner": "scanner-primary", "fingerprint": "7ea099331fb8dedc", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2154b0637868200d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/email/src/templates/GazetteConfirmationEmail.tsx:168"}, "properties": {"repobilityId": "a00107500abe6641", "scanner": "scanner-primary", "fingerprint": "2154b0637868200d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5027b30793ffc992", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/email/src/templates/HeritageConfirmationEmail.tsx:142"}, "properties": {"repobilityId": "7cb2adc5597e34ea", "scanner": "scanner-primary", "fingerprint": "5027b30793ffc992", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0f0aa8ebd0bd8191", "level": "warning", "message": {"text": "Custom React Flow node registered without explicit width/height \u2014 packages/replication/src/conflict/ConflictManager.ts:183"}, "properties": {"repobilityId": "ca621c5657d57e68", "scanner": "scanner-primary", "fingerprint": "0f0aa8ebd0bd8191", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.rfnode.no-dims"]}}, {"ruleId": "scanner-fb79236d7a67282c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/utils/typeGuards.ts:15"}, "properties": {"repobilityId": "b17345936a85e319", "scanner": "scanner-primary", "fingerprint": "fb79236d7a67282c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-125839c1ae075ebb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/utils/logger.ts:80"}, "properties": {"repobilityId": "48ea8c0d428cd0ee", "scanner": "scanner-primary", "fingerprint": "125839c1ae075ebb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e2ad61691949e9d9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scoring-ui/src/index.ts:15"}, "properties": {"repobilityId": "55bfbe021f7c7644", "scanner": "scanner-primary", "fingerprint": "e2ad61691949e9d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d2ec876dd5e94662", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/UKC/UKCObedienceLiveScoresheet.tsx:137"}, "properties": {"repobilityId": "06cdd02a3f88a81a", "scanner": "scanner-primary", "fingerprint": "d2ec876dd5e94662", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-70772b1b7958125c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/UKC/UKCRallyLiveScoresheet.tsx:126"}, "properties": {"repobilityId": "a0c901ef179c4ccb", "scanner": "scanner-primary", "fingerprint": "70772b1b7958125c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-69309c13b2903734", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/UKC/UKCNoseworkLiveScoresheet.tsx:179"}, "properties": {"repobilityId": "ef0182a2e5ab4fde", "scanner": "scanner-primary", "fingerprint": "69309c13b2903734", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-76d2d8d5c2c2c8de", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/ASCA/ASCAScentDetectionLiveScoresheet.tsx:138"}, "properties": {"repobilityId": "cf1abd5f38899bdf", "scanner": "scanner-primary", "fingerprint": "76d2d8d5c2c2c8de", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0cc08d01fc21c4e2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/AKC/AKCFastCatLiveScoresheet.tsx:143"}, "properties": {"repobilityId": "a1ce9286aa8685c0", "scanner": "scanner-primary", "fingerprint": "0cc08d01fc21c4e2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-755a303ba23fadd8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/AKC/AKCScentWorkLiveScoresheet.tsx:139"}, "properties": {"repobilityId": "34e1b8086e57c803", "scanner": "scanner-primary", "fingerprint": "755a303ba23fadd8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-47f4d1edce1c14a6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/scoring-ui/src/components/scoresheets/AKC/AKCNationalsLiveScoresheet.tsx:216"}, "properties": {"repobilityId": "89b6b4c49839d143", "scanner": "scanner-primary", "fingerprint": "47f4d1edce1c14a6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5d47f24e486eb78f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scoring-ui/src/hooks/useSwipeGesture.ts:14"}, "properties": {"repobilityId": "c7538026e17ed860", "scanner": "scanner-primary", "fingerprint": "5d47f24e486eb78f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3abd1baec4ab1f6e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scoring-ui/src/hooks/useLongPress.ts:14"}, "properties": {"repobilityId": "cc46cff56f119349", "scanner": "scanner-primary", "fingerprint": "3abd1baec4ab1f6e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c798f34e2acd06db", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/push-trigger-announcement/index.ts:126"}, "properties": {"repobilityId": "662f6b7db0bf841e", "scanner": "scanner-primary", "fingerprint": "c798f34e2acd06db", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3d55657dc95ca7a0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/admin-generate-reset-link/index.ts:62"}, "properties": {"repobilityId": "e397ab2a8690c7a4", "scanner": "scanner-primary", "fingerprint": "3d55657dc95ca7a0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c856c31d43993575", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/ask-myk9q/index.ts:54"}, "properties": {"repobilityId": "7acef4aa3c4257ff", "scanner": "scanner-primary", "fingerprint": "c856c31d43993575", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ade3a3fc79d80d48", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/send-email/index.ts:168"}, "properties": {"repobilityId": "6678deaa66491fad", "scanner": "scanner-primary", "fingerprint": "ade3a3fc79d80d48", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-35f0ba9df8429d95", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/validate-passcode/index.ts:122"}, "properties": {"repobilityId": "b3e4e255684c1f60", "scanner": "scanner-primary", "fingerprint": "35f0ba9df8429d95", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41255b497971ac70", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/admin-delete-user/index.ts:91"}, "properties": {"repobilityId": "841b423ea8cdd264", "scanner": "scanner-primary", "fingerprint": "41255b497971ac70", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-75110939d1c6519c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/send-registration-email/index.ts:283"}, "properties": {"repobilityId": "428876fcc3ba7e05", "scanner": "scanner-primary", "fingerprint": "75110939d1c6519c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ae7612d39dd21360", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/send-auth-email/index.ts:147"}, "properties": {"repobilityId": "7dca5fc25cab8e1e", "scanner": "scanner-primary", "fingerprint": "ae7612d39dd21360", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec3dd7d6600b3a09", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/package.json:55"}, "properties": {"repobilityId": "1ab002adc483039c", "scanner": "scanner-primary", "fingerprint": "ec3dd7d6600b3a09", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/package.json"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-0e3000b4cee6b9e0", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-secretary-test-user.js"}, "properties": {"repobilityId": "6c5a848abece814b", "scanner": "scanner-primary", "fingerprint": "0e3000b4cee6b9e0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-secretary-test-user.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-1cef01f581ce550e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/get-ts-errors.js:1"}, "properties": {"repobilityId": "7959727785c13b49", "scanner": "scanner-primary", "fingerprint": "1cef01f581ce550e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/get-ts-errors.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9bc818399f271bcf", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/monitor-type-safety.js:8"}, "properties": {"repobilityId": "e915560b28c72934", "scanner": "scanner-primary", "fingerprint": "9bc818399f271bcf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/monitor-type-safety.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-8b1ba891cd5d0350", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/complexity-analysis.js:10"}, "properties": {"repobilityId": "208ad4197f56ad0a", "scanner": "scanner-primary", "fingerprint": "8b1ba891cd5d0350", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/complexity-analysis.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-b9fe961c53c30d5a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/lint-changed.js:2"}, "properties": {"repobilityId": "d712cf732963d757", "scanner": "scanner-primary", "fingerprint": "b9fe961c53c30d5a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/lint-changed.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-59e7a972e14ffde1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/test-auth.js"}, "properties": {"repobilityId": "e4448c541cdad473", "scanner": "scanner-primary", "fingerprint": "59e7a972e14ffde1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/test-auth.js"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-9f0f170523e7c133", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-working-test-users.js"}, "properties": {"repobilityId": "d0c947309d6a0c0d", "scanner": "scanner-primary", "fingerprint": "9f0f170523e7c133", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-working-test-users.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-9f0f170523e7c133", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-working-test-users.js"}, "properties": {"repobilityId": "d0c947309d6a0c0d", "scanner": "scanner-primary", "fingerprint": "9f0f170523e7c133", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-working-test-users.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-9f0f170523e7c133", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-working-test-users.js"}, "properties": {"repobilityId": "d0c947309d6a0c0d", "scanner": "scanner-primary", "fingerprint": "9f0f170523e7c133", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-working-test-users.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-9f0f170523e7c133", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-working-test-users.js"}, "properties": {"repobilityId": "d0c947309d6a0c0d", "scanner": "scanner-primary", "fingerprint": "9f0f170523e7c133", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-working-test-users.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-a3cb65c04039ae83", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/quality-dashboard.js:10"}, "properties": {"repobilityId": "4fa95bb4fcccd751", "scanner": "scanner-primary", "fingerprint": "a3cb65c04039ae83", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/quality-dashboard.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-20ee9e1884b78ed8", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-test-users.js"}, "properties": {"repobilityId": "43d4932fd37463cf", "scanner": "scanner-primary", "fingerprint": "20ee9e1884b78ed8", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-test-users.js"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-20ee9e1884b78ed8", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-test-users.js"}, "properties": {"repobilityId": "43d4932fd37463cf", "scanner": "scanner-primary", "fingerprint": "20ee9e1884b78ed8", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-test-users.js"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-20ee9e1884b78ed8", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-test-users.js"}, "properties": {"repobilityId": "43d4932fd37463cf", "scanner": "scanner-primary", "fingerprint": "20ee9e1884b78ed8", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-test-users.js"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-20ee9e1884b78ed8", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-test-users.js"}, "properties": {"repobilityId": "43d4932fd37463cf", "scanner": "scanner-primary", "fingerprint": "20ee9e1884b78ed8", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-test-users.js"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-20ee9e1884b78ed8", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-test-users.js"}, "properties": {"repobilityId": "43d4932fd37463cf", "scanner": "scanner-primary", "fingerprint": "20ee9e1884b78ed8", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-test-users.js"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-3353f1849195aac0", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-test-user.js"}, "properties": {"repobilityId": "94b734e21dc3076d", "scanner": "scanner-primary", "fingerprint": "3353f1849195aac0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-test-user.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-66e63441cfceb125", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/auto-cleanup-after-test.js:8"}, "properties": {"repobilityId": "5ef4272814d9abd1", "scanner": "scanner-primary", "fingerprint": "66e63441cfceb125", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/auto-cleanup-after-test.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-f9df988db766d9d1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/cross-browser-test-runner.js:8"}, "properties": {"repobilityId": "ed234ae8486c5d63", "scanner": "scanner-primary", "fingerprint": "f9df988db766d9d1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/cross-browser-test-runner.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-c8988956bb18284c", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-fresh-user.js"}, "properties": {"repobilityId": "7fdcf6c5d571ca4e", "scanner": "scanner-primary", "fingerprint": "c8988956bb18284c", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-fresh-user.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-c5dcd93c5b3bd999", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/validate-migration-setup.js:10"}, "properties": {"repobilityId": "f11c9a940e8ccdbc", "scanner": "scanner-primary", "fingerprint": "c5dcd93c5b3bd999", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/validate-migration-setup.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-bcd510a7ab6f746d", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/create-playwright-test-user.js"}, "properties": {"repobilityId": "2fecd9beaa345a40", "scanner": "scanner-primary", "fingerprint": "bcd510a7ab6f746d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/create-playwright-test-user.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-fe5a87cfc1eb6a98", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/check-types.js:1"}, "properties": {"repobilityId": "bb6407110f815cde", "scanner": "scanner-primary", "fingerprint": "fe5a87cfc1eb6a98", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/check-types.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-54e78e510a0c072f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/myk9show/scripts/run-load-tests-full.mjs:10"}, "properties": {"repobilityId": "da8721cb5ae154ce", "scanner": "scanner-primary", "fingerprint": "54e78e510a0c072f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/run-load-tests-full.mjs"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-0ad466a323872c45", "level": "error", "message": {"text": "Possible secret in apps/myk9show/scripts/setup-e2e-test-users.js"}, "properties": {"repobilityId": "1a0b29a1b719056d", "scanner": "scanner-primary", "fingerprint": "0ad466a323872c45", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/setup-e2e-test-users.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-d5e21de07b867d9b", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in apps/myk9show/src/config/security.ts:200"}, "properties": {"repobilityId": "51aa049f8ab99368", "scanner": "scanner-primary", "fingerprint": "d5e21de07b867d9b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/config/security.ts"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-b669b6fdd2cb72f1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/config/test-config.ts"}, "properties": {"repobilityId": "79df4970e1713ba4", "scanner": "scanner-primary", "fingerprint": "b669b6fdd2cb72f1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/config/test-config.ts"}, "region": {"startLine": 263}}}]}, {"ruleId": "scanner-b669b6fdd2cb72f1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/config/test-config.ts"}, "properties": {"repobilityId": "79df4970e1713ba4", "scanner": "scanner-primary", "fingerprint": "b669b6fdd2cb72f1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/config/test-config.ts"}, "region": {"startLine": 268}}}]}, {"ruleId": "scanner-b669b6fdd2cb72f1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/config/test-config.ts"}, "properties": {"repobilityId": "79df4970e1713ba4", "scanner": "scanner-primary", "fingerprint": "b669b6fdd2cb72f1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/config/test-config.ts"}, "region": {"startLine": 273}}}]}, {"ruleId": "scanner-b669b6fdd2cb72f1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/config/test-config.ts"}, "properties": {"repobilityId": "79df4970e1713ba4", "scanner": "scanner-primary", "fingerprint": "b669b6fdd2cb72f1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/config/test-config.ts"}, "region": {"startLine": 278}}}]}, {"ruleId": "scanner-a20d6fbde1f6dc17", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/load/LoadTestRunner.ts"}, "properties": {"repobilityId": "8f7d3bfc1ca94172", "scanner": "scanner-primary", "fingerprint": "a20d6fbde1f6dc17", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/load/LoadTestRunner.ts"}, "region": {"startLine": 405}}}]}, {"ruleId": "scanner-8bed0d7dc2b222a5", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/load/artillery-config.yml"}, "properties": {"repobilityId": "4e9f06e8ee631c39", "scanner": "scanner-primary", "fingerprint": "8bed0d7dc2b222a5", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/load/artillery-config.yml"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-8bed0d7dc2b222a5", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/load/artillery-config.yml"}, "properties": {"repobilityId": "4e9f06e8ee631c39", "scanner": "scanner-primary", "fingerprint": "8bed0d7dc2b222a5", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/load/artillery-config.yml"}, "region": {"startLine": 220}}}]}, {"ruleId": "scanner-1eefe4b48e4c83f4", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/load/load-test-processor.js"}, "properties": {"repobilityId": "b77d94959b4d2517", "scanner": "scanner-primary", "fingerprint": "1eefe4b48e4c83f4", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/load/load-test-processor.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-87cee1a5408a3dbb", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/show-details-issue.spec.ts"}, "properties": {"repobilityId": "9465dc9027eb2731", "scanner": "scanner-primary", "fingerprint": "87cee1a5408a3dbb", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/show-details-issue.spec.ts"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-d3ff39a7797a81c0", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/classes-page-ui.spec.ts"}, "properties": {"repobilityId": "2dbeb66d51e080ba", "scanner": "scanner-primary", "fingerprint": "d3ff39a7797a81c0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/classes-page-ui.spec.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-d3ff39a7797a81c0", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/classes-page-ui.spec.ts"}, "properties": {"repobilityId": "2dbeb66d51e080ba", "scanner": "scanner-primary", "fingerprint": "d3ff39a7797a81c0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/classes-page-ui.spec.ts"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-246dd51141767f26", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/my-entries-page-ui.spec.ts"}, "properties": {"repobilityId": "0c947b9ffd95219c", "scanner": "scanner-primary", "fingerprint": "246dd51141767f26", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/my-entries-page-ui.spec.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-5d271bd42665867c", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/real-auth-browse-shows.spec.ts"}, "properties": {"repobilityId": "53958927e5e2674b", "scanner": "scanner-primary", "fingerprint": "5d271bd42665867c", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/real-auth-browse-shows.spec.ts"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-eb666617078a022f", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/complete-user-journey.spec.ts"}, "properties": {"repobilityId": "52cfa1fc06a9bc68", "scanner": "scanner-primary", "fingerprint": "eb666617078a022f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/complete-user-journey.spec.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-7147630447c83e40", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/playwright-real-auth.spec.ts"}, "properties": {"repobilityId": "851a555777072be7", "scanner": "scanner-primary", "fingerprint": "7147630447c83e40", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/playwright-real-auth.spec.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-3b31852d9a9c562c", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/trials-page-ui.spec.ts"}, "properties": {"repobilityId": "86fe6737f195e503", "scanner": "scanner-primary", "fingerprint": "3b31852d9a9c562c", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/trials-page-ui.spec.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-643be3f86f13de55", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/shows-page-ui-improvements.spec.ts"}, "properties": {"repobilityId": "a3f67e575248c0f1", "scanner": "scanner-primary", "fingerprint": "643be3f86f13de55", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/shows-page-ui-improvements.spec.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-4d2323ab4a27c1e0", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/uat/shared/auth.ts"}, "properties": {"repobilityId": "57f0e15ceb31fc1e", "scanner": "scanner-primary", "fingerprint": "4d2323ab4a27c1e0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/uat/shared/auth.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-6679ff9b5635c3b1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "properties": {"repobilityId": "2063ee00f46edeef", "scanner": "scanner-primary", "fingerprint": "6679ff9b5635c3b1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-6679ff9b5635c3b1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "properties": {"repobilityId": "2063ee00f46edeef", "scanner": "scanner-primary", "fingerprint": "6679ff9b5635c3b1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-6679ff9b5635c3b1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "properties": {"repobilityId": "2063ee00f46edeef", "scanner": "scanner-primary", "fingerprint": "6679ff9b5635c3b1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-6679ff9b5635c3b1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "properties": {"repobilityId": "2063ee00f46edeef", "scanner": "scanner-primary", "fingerprint": "6679ff9b5635c3b1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-6679ff9b5635c3b1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "properties": {"repobilityId": "2063ee00f46edeef", "scanner": "scanner-primary", "fingerprint": "6679ff9b5635c3b1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-6679ff9b5635c3b1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "properties": {"repobilityId": "2063ee00f46edeef", "scanner": "scanner-primary", "fingerprint": "6679ff9b5635c3b1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-6679ff9b5635c3b1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "properties": {"repobilityId": "2063ee00f46edeef", "scanner": "scanner-primary", "fingerprint": "6679ff9b5635c3b1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-6679ff9b5635c3b1", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "properties": {"repobilityId": "2063ee00f46edeef", "scanner": "scanner-primary", "fingerprint": "6679ff9b5635c3b1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/helpers/testUsers.ts"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-c4696222ff61472b", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/registration/singleDogSingleClass.spec.ts"}, "properties": {"repobilityId": "8c95a21fe90f4503", "scanner": "scanner-primary", "fingerprint": "c4696222ff61472b", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/registration/singleDogSingleClass.spec.ts"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-731a810caa33b3f8", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/registration/secretaryExistingUsers.spec.ts"}, "properties": {"repobilityId": "d1698d873acadcd6", "scanner": "scanner-primary", "fingerprint": "731a810caa33b3f8", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/registration/secretaryExistingUsers.spec.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-4c8503f48750130a", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/showWizardUI.spec.ts"}, "properties": {"repobilityId": "7b0b1b85e1091654", "scanner": "scanner-primary", "fingerprint": "4c8503f48750130a", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/entities/showWizardUI.spec.ts"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-6d5c94e712956318", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/entriesUI.spec.ts"}, "properties": {"repobilityId": "701ca4136cb6160c", "scanner": "scanner-primary", "fingerprint": "6d5c94e712956318", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/entities/entriesUI.spec.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-f37aa84988b8ffcd", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/classesUI.spec.ts"}, "properties": {"repobilityId": "c3d0347ff229e8d9", "scanner": "scanner-primary", "fingerprint": "f37aa84988b8ffcd", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/entities/classesUI.spec.ts"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-80f1ab83b7a27a75", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/showsUI.spec.ts"}, "properties": {"repobilityId": "3090bb1b59165252", "scanner": "scanner-primary", "fingerprint": "80f1ab83b7a27a75", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/entities/showsUI.spec.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-bfd3e5178eb565c0", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/registrationUI.spec.ts"}, "properties": {"repobilityId": "dc594018d11079d4", "scanner": "scanner-primary", "fingerprint": "bfd3e5178eb565c0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/entities/registrationUI.spec.ts"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-7275e9d267b21026", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/clubsUI.spec.ts"}, "properties": {"repobilityId": "a8864bf29b714777", "scanner": "scanner-primary", "fingerprint": "7275e9d267b21026", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/entities/clubsUI.spec.ts"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-a115594a60aef4cb", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/secretaryEntryCreationUI.spec.ts"}, "properties": {"repobilityId": "aa6139b035105a12", "scanner": "scanner-primary", "fingerprint": "a115594a60aef4cb", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/entities/secretaryEntryCreationUI.spec.ts"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-e45f430c58e7b705", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/reportsUI.spec.ts"}, "properties": {"repobilityId": "7630bf89a335df09", "scanner": "scanner-primary", "fingerprint": "e45f430c58e7b705", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/entities/reportsUI.spec.ts"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-d8529dc7a8d96d25", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/test/e2e/entities/trialsUI.spec.ts"}, "properties": {"repobilityId": "f1ba53da51be305f", "scanner": "scanner-primary", "fingerprint": "d8529dc7a8d96d25", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/test/e2e/entities/trialsUI.spec.ts"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-286bde353f296bc0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/myk9show/src/utils/sanitization.tsx:87"}, "properties": {"repobilityId": "224c57321d40359d", "scanner": "scanner-primary", "fingerprint": "286bde353f296bc0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/utils/sanitization.tsx"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-6d3e2931f104f8a9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in apps/myk9show/src/components/common/virtual/VirtualScrollList.tsx:341"}, "properties": {"repobilityId": "3bdcc20434d66c32", "scanner": "scanner-primary", "fingerprint": "6d3e2931f104f8a9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/components/common/virtual/VirtualScrollList.tsx"}, "region": {"startLine": 341}}}]}, {"ruleId": "scanner-a959097e37ed8f40", "level": "note", "message": {"text": "Insecure pattern 'document_write' in apps/myk9show/src/components/secretary/ShowAccessCodesCard.tsx:125"}, "properties": {"repobilityId": "aa9bf834b4fb4d46", "scanner": "scanner-primary", "fingerprint": "a959097e37ed8f40", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/components/secretary/ShowAccessCodesCard.tsx"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-0d39a581b417f168", "level": "note", "message": {"text": "Insecure pattern 'document_write' in apps/myk9show/src/components/entries/EntryReceipt.tsx:237"}, "properties": {"repobilityId": "058b8e8c1f060964", "scanner": "scanner-primary", "fingerprint": "0d39a581b417f168", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/components/entries/EntryReceipt.tsx"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-95aca252cabc2dce", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in apps/myk9show/src/components/preferences/__tests__/DataSettings.test.tsx:62"}, "properties": {"repobilityId": "9d6cecbf39541c2b", "scanner": "scanner-primary", "fingerprint": "95aca252cabc2dce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/components/preferences/__tests__/DataSettings.test.tsx"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-945dd0a12489fccd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/myk9show/src/pages/LegalPage.tsx:61"}, "properties": {"repobilityId": "978f67263702e006", "scanner": "scanner-primary", "fingerprint": "945dd0a12489fccd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/pages/LegalPage.tsx"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-eaf01ff3a0687a94", "level": "error", "message": {"text": "Possible secret in apps/myk9show/src/hooks/useSecurityValidation.ts"}, "properties": {"repobilityId": "50c4762ba5267282", "scanner": "scanner-primary", "fingerprint": "eaf01ff3a0687a94", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/hooks/useSecurityValidation.ts"}, "region": {"startLine": 380}}}]}, {"ruleId": "scanner-5e634ea0bb2b532d", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in apps/myk9show/src/services/deployment/ProductionMonitoringService.ts:480"}, "properties": {"repobilityId": "4e9456f33ed0b379", "scanner": "scanner-primary", "fingerprint": "5e634ea0bb2b532d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/services/deployment/ProductionMonitoringService.ts"}, "region": {"startLine": 480}}}]}, {"ruleId": "scanner-a531bc1c99ebc543", "level": "note", "message": {"text": "Insecure pattern 'document_write' in apps/myk9show/src/features/pipeline/print/print-service.ts:40"}, "properties": {"repobilityId": "759e2732b86bf6f8", "scanner": "scanner-primary", "fingerprint": "a531bc1c99ebc543", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/features/pipeline/print/print-service.ts"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-985b9d08b30ca54c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in apps/myk9show/src/features/admin-help/components/PageFlowDiagram.tsx:57"}, "properties": {"repobilityId": "d740323f588b2aa1", "scanner": "scanner-primary", "fingerprint": "985b9d08b30ca54c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/src/features/admin-help/components/PageFlowDiagram.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-483c2c1a80842f7f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/option-b-prototype.html:380"}, "properties": {"repobilityId": "7d7544dcdf1a589a", "scanner": "scanner-primary", "fingerprint": "483c2c1a80842f7f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/option-b-prototype.html"}, "region": {"startLine": 380}}}]}, {"ruleId": "scanner-a5d2193bfdc5bd3b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/archive/design_handoff_landing_page/design/page.js:14"}, "properties": {"repobilityId": "2c806120054c6476", "scanner": "scanner-primary", "fingerprint": "a5d2193bfdc5bd3b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/archive/design_handoff_landing_page/design/page.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-e750174e946961d7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/design/prototype/components.jsx:10"}, "properties": {"repobilityId": "1259919fb3b5c4a2", "scanner": "scanner-primary", "fingerprint": "e750174e946961d7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/design/prototype/components.jsx"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-39a13652c33ce555", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/plans/design_handoff_premiums/image-slot.js:235"}, "properties": {"repobilityId": "484b42bd0e78e75e", "scanner": "scanner-primary", "fingerprint": "39a13652c33ce555", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/plans/design_handoff_premiums/image-slot.js"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-bb2642a4fd18136b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/migrate-logging.js:3"}, "properties": {"repobilityId": "782f0895664aab06", "scanner": "scanner-primary", "fingerprint": "bb2642a4fd18136b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/migrate-logging.js"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-db46e1e4c9286e8b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/qa/db-drift/function-inventory.ts:1"}, "properties": {"repobilityId": "6d1011320a21801c", "scanner": "scanner-primary", "fingerprint": "db46e1e4c9286e8b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa/db-drift/function-inventory.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-741e85643913daf5", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/qa/mutation/run-mutation-targets.ts:1"}, "properties": {"repobilityId": "b66d5c79d46aabf6", "scanner": "scanner-primary", "fingerprint": "741e85643913daf5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa/mutation/run-mutation-targets.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-22c0768387089251", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in .claude/skills/code-review-extensions/SKILL.md:40"}, "properties": {"repobilityId": "968bd97141aefe38", "scanner": "scanner-primary", "fingerprint": "22c0768387089251", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/code-review-extensions/SKILL.md"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-c1b561c62fff4056", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in .claude/skills/security-audit/SKILL.md:65"}, "properties": {"repobilityId": "57d64646d501f668", "scanner": "scanner-primary", "fingerprint": "c1b561c62fff4056", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/security-audit/SKILL.md"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bd7f3c1c34d83159", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 257}}}]}, {"ruleId": "scanner-f2b03f3b9878fafa", "level": "note", "message": {"text": "Very large file: apps/myk9show/src/services/replication/__tests__/ReplicatedShowsTable.test.ts (1753 lines)"}, "properties": {"repobilityId": "0f7ae4a52a48bb7d", "scanner": "scanner-primary", "fingerprint": "f2b03f3b9878fafa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3e4aefa30e71dd29", "level": "note", "message": {"text": "Very large file: apps/myk9show/src/services/replication/__tests__/ReplicatedEntriesTable.test.ts (1739 lines)"}, "properties": {"repobilityId": "de34816d2c505001", "scanner": "scanner-primary", "fingerprint": "3e4aefa30e71dd29", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-778a9d44dda009cb", "level": "note", "message": {"text": "Very large file: packages/supabase/src/types/database.types.ts (9056 lines)"}, "properties": {"repobilityId": "eb491195d565f604", "scanner": "scanner-primary", "fingerprint": "778a9d44dda009cb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "23a1317480c3ca78", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-7a37210227f28b23", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/myk9show/package.json"}, "properties": {"repobilityId": "7512fda655051c2f", "scanner": "scanner-primary", "fingerprint": "7a37210227f28b23", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3f0660eb05cee4bd", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/myk9show/scripts/package.json"}, "properties": {"repobilityId": "d0a5098152beaf2c", "scanner": "scanner-primary", "fingerprint": "3f0660eb05cee4bd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/myk9show/scripts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-518be022aa65dde7", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/pwa-update/package.json"}, "properties": {"repobilityId": "ddec5cabc9e1367b", "scanner": "scanner-primary", "fingerprint": "518be022aa65dde7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/pwa-update/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-172dcdf252860fa6", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/notifications/package.json"}, "properties": {"repobilityId": "6c88892cbe9bca9d", "scanner": "scanner-primary", "fingerprint": "172dcdf252860fa6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/notifications/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2715e03ca941afb5", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/email/package.json"}, "properties": {"repobilityId": "0aa03477b9214a08", "scanner": "scanner-primary", "fingerprint": "2715e03ca941afb5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/email/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-50575d6279dff225", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/replication/package.json"}, "properties": {"repobilityId": "3c4beca61d1cff38", "scanner": "scanner-primary", "fingerprint": "50575d6279dff225", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/replication/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-50218c90b43393bb", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/ui/package.json"}, "properties": {"repobilityId": "637e26a8c754e81d", "scanner": "scanner-primary", "fingerprint": "50218c90b43393bb", "layer": "quality", "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-0c1e393903b00c08", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/scoring/package.json"}, "properties": {"repobilityId": "b4d8236a9e034fc0", "scanner": "scanner-primary", "fingerprint": "0c1e393903b00c08", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/scoring/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3f5eb5a4d7270c68", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/test-utils/package.json"}, "properties": {"repobilityId": "a98a442226b59b68", "scanner": "scanner-primary", "fingerprint": "3f5eb5a4d7270c68", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test-utils/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ef2d42ca684ac456", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/secretary/package.json"}, "properties": {"repobilityId": "0a92a533e4137f3a", "scanner": "scanner-primary", "fingerprint": "ef2d42ca684ac456", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/secretary/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ffb0f8c7b909c0bc", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/supabase/package.json"}, "properties": {"repobilityId": "75551f0201d7ab85", "scanner": "scanner-primary", "fingerprint": "ffb0f8c7b909c0bc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/supabase/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-28e92806c0db3cd2", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/core/package.json"}, "properties": {"repobilityId": "8640e46be7e3f9b2", "scanner": "scanner-primary", "fingerprint": "28e92806c0db3cd2", "layer": "quality", "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-f5c1d0de04984b0d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/ringside/package.json"}, "properties": {"repobilityId": "5a651b449c008991", "scanner": "scanner-primary", "fingerprint": "f5c1d0de04984b0d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ringside/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1ae3358a1764f35f", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/scoring-ui/package.json"}, "properties": {"repobilityId": "62890497845ace6c", "scanner": "scanner-primary", "fingerprint": "1ae3358a1764f35f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/scoring-ui/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "a107c5b678c9d7a4", "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": "4eeb4aef3b6c1f51", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "dca4013eded3d5c8", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "e343258bd147a437", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "7b6b83706c13b2e3", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "241dbe5985ff86c3", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "beecd828f1fa4de8", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "b19fb23690e8986c", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-10b1c644a63733d3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/impeccable-sweep.md"}, "properties": {"repobilityId": "56277ce8fcad44a8", "scanner": "scanner-primary", "fingerprint": "10b1c644a63733d3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/impeccable-sweep.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-47b71897f33be8c4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/playwright-cli/references/storage-state.md"}, "properties": {"repobilityId": "9088a18d5b75269c", "scanner": "scanner-primary", "fingerprint": "47b71897f33be8c4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/playwright-cli/references/storage-state.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ce349b621e2986b5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/playwright-cli/references/running-code.md"}, "properties": {"repobilityId": "46e572cf01508338", "scanner": "scanner-primary", "fingerprint": "ce349b621e2986b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/playwright-cli/references/running-code.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-72a82bcfa89e6a5c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/playwright-cli/references/request-mocking.md"}, "properties": {"repobilityId": "1213a367260c499a", "scanner": "scanner-primary", "fingerprint": "72a82bcfa89e6a5c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/playwright-cli/references/request-mocking.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-51f746b1adaac473", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/harden/SKILL.md"}, "properties": {"repobilityId": "d149bf460834addd", "scanner": "scanner-primary", "fingerprint": "51f746b1adaac473", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/harden/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-527f1392a1d8eb9e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/writing-concisely/SKILL.md"}, "properties": {"repobilityId": "235867bca77611d7", "scanner": "scanner-primary", "fingerprint": "527f1392a1d8eb9e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/writing-concisely/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d8597329ec8115c7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/cleanup/SKILL.md"}, "properties": {"repobilityId": "599dad7666ef4294", "scanner": "scanner-primary", "fingerprint": "d8597329ec8115c7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/cleanup/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-909eb64265cce1c7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/hooks.json"}, "properties": {"repobilityId": "6befa6c7c9baca08", "scanner": "scanner-primary", "fingerprint": "909eb64265cce1c7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/hooks.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-739c771661fdd4fb", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/secretary-walk.mjs:12"}, "properties": {"repobilityId": "c3e672d9f4755dd4", "scanner": "scanner-primary", "fingerprint": "739c771661fdd4fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-359e8237d7607557", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/api/og-show-image.tsx:91"}, "properties": {"repobilityId": "a34bec401f205ba6", "scanner": "scanner-primary", "fingerprint": "359e8237d7607557", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2d1003dd5f58cede", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/scripts/fix-rbac-function.js:50"}, "properties": {"repobilityId": "4e6a22d19f2e9b31", "scanner": "scanner-primary", "fingerprint": "2d1003dd5f58cede", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-95fc413660d138bb", "level": "note", "message": {"text": "Legacy-named symbol `peopleSidebarOld` in apps/myk9show/scripts/rename-user-components.js:57"}, "properties": {"repobilityId": "c82672fd3fb9add8", "scanner": "scanner-primary", "fingerprint": "95fc413660d138bb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-17dbe63c465b08e0", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/scripts/run-load-tests-full.mjs:4"}, "properties": {"repobilityId": "1d16a56d1976fedb", "scanner": "scanner-primary", "fingerprint": "17dbe63c465b08e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94991bf7b1109183", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/stripe-refund-entry/index.ts:144"}, "properties": {"repobilityId": "ace20d33b3ef8ec6", "scanner": "scanner-primary", "fingerprint": "94991bf7b1109183", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-686a65a028e243d0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/supabase/functions/send-email/index.ts:168"}, "properties": {"repobilityId": "5c4ee87f94ef996b", "scanner": "scanner-primary", "fingerprint": "686a65a028e243d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4bc589bf2e0231bd", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/supabase/functions/stripe-webhook/index.ts:375"}, "properties": {"repobilityId": "a8d9aecbc83b5816", "scanner": "scanner-primary", "fingerprint": "4bc589bf2e0231bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-732d9313dee1c9ed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/supabase/functions/stripe-webhook/index.ts:824"}, "properties": {"repobilityId": "2664bf0f5ae493db", "scanner": "scanner-primary", "fingerprint": "732d9313dee1c9ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-df07631fa3ef2ecb", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/supabase/functions/stripe-connect-onboard/index.ts:135"}, "properties": {"repobilityId": "210540e893a85477", "scanner": "scanner-primary", "fingerprint": "df07631fa3ef2ecb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-883833401aef3db0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/stripe-checkout/index.ts:226"}, "properties": {"repobilityId": "7e4623271801e426", "scanner": "scanner-primary", "fingerprint": "883833401aef3db0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82d26e3f5c7de25e", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/myk9show/supabase/functions/cron-process-payouts/index.ts:4"}, "properties": {"repobilityId": "56f55465dca36ebb", "scanner": "scanner-primary", "fingerprint": "82d26e3f5c7de25e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63b67b3b87424fef", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/supabase/functions/cron-waitlist-expiration/index.ts:300"}, "properties": {"repobilityId": "55811f8cd9cdf782", "scanner": "scanner-primary", "fingerprint": "63b67b3b87424fef", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-30362307ea9f8d1a", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/myk9show/supabase/functions/_shared/payoutCalc.ts:13"}, "properties": {"repobilityId": "c33da33dd4969239", "scanner": "scanner-primary", "fingerprint": "30362307ea9f8d1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06a6a076f314e898", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/_shared/entryFromCartItem.test.ts:22"}, "properties": {"repobilityId": "901aa3ffbf68a607", "scanner": "scanner-primary", "fingerprint": "06a6a076f314e898", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-844371694ed65507", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/supabase/functions/_shared/authoritativeFee.ts:1"}, "properties": {"repobilityId": "70dfc7afefc2df5c", "scanner": "scanner-primary", "fingerprint": "844371694ed65507", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e32bcbf5920a4c1", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/supabase/functions/_shared/entryFromCartItem.ts:13"}, "properties": {"repobilityId": "541eb22276323c8a", "scanner": "scanner-primary", "fingerprint": "2e32bcbf5920a4c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-adc981d1dde63d29", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/supabase/functions/_shared/refundReuse.ts:3"}, "properties": {"repobilityId": "d6e6da3ceb952f6f", "scanner": "scanner-primary", "fingerprint": "adc981d1dde63d29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5bd8d269d8f65b3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/_shared/alertAdmin.ts:1"}, "properties": {"repobilityId": "7f3b9c35f0bbc85f", "scanner": "scanner-primary", "fingerprint": "e5bd8d269d8f65b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09dd8e1817cf17a8", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/supabase/functions/_shared/sessionCartGuard.test.ts:53"}, "properties": {"repobilityId": "4d0ff90d53cadc99", "scanner": "scanner-primary", "fingerprint": "09dd8e1817cf17a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f967c27d35f63e6", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/supabase/functions/_shared/sessionCartGuard.ts:4"}, "properties": {"repobilityId": "b763e8bdb593f2b5", "scanner": "scanner-primary", "fingerprint": "9f967c27d35f63e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00a2ef5f7d8021bc", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/supabase/functions/_shared/premiumPrices.ts:4"}, "properties": {"repobilityId": "f9efd6e4c65bf4de", "scanner": "scanner-primary", "fingerprint": "00a2ef5f7d8021bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9fbc3ac1addf9707", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/public/theme-init.js:18"}, "properties": {"repobilityId": "c7e101f2248c383e", "scanner": "scanner-primary", "fingerprint": "9fbc3ac1addf9707", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d96da95ee6ada1b", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/src/App.tsx:80"}, "properties": {"repobilityId": "06e1656c9f00a148", "scanner": "scanner-primary", "fingerprint": "8d96da95ee6ada1b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-011ad68402054a59", "level": "note", "message": {"text": "Legacy-named symbol `convertShowJudgeToLegacy` in apps/myk9show/src/types/judge-types.ts:21"}, "properties": {"repobilityId": "8214f0a859970cb1", "scanner": "scanner-primary", "fingerprint": "011ad68402054a59", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ca93b886c7ac763a", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/config/features.ts:27"}, "properties": {"repobilityId": "4652da583be78757", "scanner": "scanner-primary", "fingerprint": "ca93b886c7ac763a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a218046c7dcf3c9", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/test/setup.ts:121"}, "properties": {"repobilityId": "58133887faa220df", "scanner": "scanner-primary", "fingerprint": "2a218046c7dcf3c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-196fce843cd28e22", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/src/test/security/PrivilegeEscalation.test.ts:36"}, "properties": {"repobilityId": "cb24ed961c8849d8", "scanner": "scanner-primary", "fingerprint": "196fce843cd28e22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b83978745b8fe4e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/stores/phase5-support-systems.test.ts:14"}, "properties": {"repobilityId": "ea5c03270aa91d22", "scanner": "scanner-primary", "fingerprint": "4b83978745b8fe4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8245640a90a823c", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/test/auth/useAuth.test.ts:26"}, "properties": {"repobilityId": "c0fdd46376b3edc4", "scanner": "scanner-primary", "fingerprint": "d8245640a90a823c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db36036f36a0bcfd", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/test/mocks/zustandReset.ts:3"}, "properties": {"repobilityId": "0e8811f92d7b9424", "scanner": "scanner-primary", "fingerprint": "db36036f36a0bcfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42309e101ca0f78d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/components/analytics/EnhancedAnalyticsDashboard.test.tsx:561"}, "properties": {"repobilityId": "1ca5cba5befe9779", "scanner": "scanner-primary", "fingerprint": "42309e101ca0f78d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33d786122c687a5b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/components/entries/management/EntryFiltersCard.integration.test.tsx:7"}, "properties": {"repobilityId": "88ba4aa858584fc3", "scanner": "scanner-primary", "fingerprint": "33d786122c687a5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5839703c19a26138", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/test/load/DatabaseLoadTests.ts:439"}, "properties": {"repobilityId": "a2c3a31d61e0ff2d", "scanner": "scanner-primary", "fingerprint": "5839703c19a26138", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be352cbc75e4826e", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/src/test/pages/ShowDetailsPage.test.tsx:594"}, "properties": {"repobilityId": "11874f0e75d014dd", "scanner": "scanner-primary", "fingerprint": "be352cbc75e4826e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2170fdbf10e7529a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/test/services/MonitoringService.test.ts:64"}, "properties": {"repobilityId": "05afc6caf0707fac", "scanner": "scanner-primary", "fingerprint": "2170fdbf10e7529a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4e29aa7064420805", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/services/database/queries/armbandQueries.replication.test.ts:165"}, "properties": {"repobilityId": "09f6f8783602206c", "scanner": "scanner-primary", "fingerprint": "4e29aa7064420805", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-571f62625b580202", "level": "note", "message": {"text": "Legacy-named symbol `addUserLegacy` in apps/myk9show/src/test/store/peopleStore.test.tsx:548"}, "properties": {"repobilityId": "e41b6676671fd898", "scanner": "scanner-primary", "fingerprint": "571f62625b580202", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0f9e650d371602c1", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/myk9show/src/test/e2e/show-presence.spec.ts:83"}, "properties": {"repobilityId": "ce8e8f61fbcf5979", "scanner": "scanner-primary", "fingerprint": "0f9e650d371602c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eed3c670ec53a26f", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/test/e2e/uat/shared/secretaryData.ts:27"}, "properties": {"repobilityId": "453897634e7091b6", "scanner": "scanner-primary", "fingerprint": "eed3c670ec53a26f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3e0dba429282382", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/show/showConflictSurfacing.spec.ts:71"}, "properties": {"repobilityId": "5ab618659ed0f9d9", "scanner": "scanner-primary", "fingerprint": "d3e0dba429282382", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4b76b010d69eae6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/showWizardUI.spec.ts:77"}, "properties": {"repobilityId": "69fbabbb2ad62c89", "scanner": "scanner-primary", "fingerprint": "b4b76b010d69eae6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a9f41d8ae50d070", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/entriesUI.spec.ts:136"}, "properties": {"repobilityId": "eeca8c9977d78700", "scanner": "scanner-primary", "fingerprint": "5a9f41d8ae50d070", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6daa2969924e35c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/classesUI.spec.ts:322"}, "properties": {"repobilityId": "182aad5455ef06c8", "scanner": "scanner-primary", "fingerprint": "6daa2969924e35c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1b960dfd3046521", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/test/e2e/entities/showsUI.spec.ts:157"}, "properties": {"repobilityId": "fdec7488255586c7", "scanner": "scanner-primary", "fingerprint": "d1b960dfd3046521", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f21312c5b5adc484", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/test/e2e/entities/dogsUI.spec.ts:646"}, "properties": {"repobilityId": "86bbcc3bbf427b3f", "scanner": "scanner-primary", "fingerprint": "f21312c5b5adc484", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9bcd521a4dad5af", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/test/e2e/entities/registrationUI.spec.ts:157"}, "properties": {"repobilityId": "8ec9bee0ac5cadd2", "scanner": "scanner-primary", "fingerprint": "a9bcd521a4dad5af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4eb4848fd36a2bc", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/peopleUI.spec.ts:190"}, "properties": {"repobilityId": "a55f421c8bd8c959", "scanner": "scanner-primary", "fingerprint": "c4eb4848fd36a2bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3af6546fca5b4ff", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/test/e2e/entities/reportsUI.spec.ts:89"}, "properties": {"repobilityId": "a5a32b10991b5294", "scanner": "scanner-primary", "fingerprint": "a3af6546fca5b4ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b85f2b2bcaeffb2", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/test/e2e/entities/trialsUI.spec.ts:343"}, "properties": {"repobilityId": "649a0b50a6d52f2d", "scanner": "scanner-primary", "fingerprint": "7b85f2b2bcaeffb2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16e924ab2fc4896b", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/utils/enrollmentGrouping.ts:82"}, "properties": {"repobilityId": "db75dcaf9a54ca94", "scanner": "scanner-primary", "fingerprint": "16e924ab2fc4896b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1705fb5a0079fa0", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/myk9show/src/utils/stateLoggingMiddleware.ts:293"}, "properties": {"repobilityId": "cb5b2c6dbf23b1bb", "scanner": "scanner-primary", "fingerprint": "f1705fb5a0079fa0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f55bcc2267938a5", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/utils/enrollmentGrouping.test.ts:246"}, "properties": {"repobilityId": "2935896b941eabcb", "scanner": "scanner-primary", "fingerprint": "0f55bcc2267938a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10622a04dae27f85", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/utils/site-admin-browse-shows.test.ts:206"}, "properties": {"repobilityId": "8c53e7b3e81c49f4", "scanner": "scanner-primary", "fingerprint": "10622a04dae27f85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47ca94bceb86acac", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/components/layout/sidebar/unifiedSidebarConfig.ts:101"}, "properties": {"repobilityId": "aa7c68708663956f", "scanner": "scanner-primary", "fingerprint": "47ca94bceb86acac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f76ad64e3dfaa074", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/components/schedule/ScheduleTimeline.tsx:5"}, "properties": {"repobilityId": "07ae16a773f9f42e", "scanner": "scanner-primary", "fingerprint": "f76ad64e3dfaa074", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04bc32a4b831d8a4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/subscription/SubscriptionManager.tsx:56"}, "properties": {"repobilityId": "cf42243351464f1d", "scanner": "scanner-primary", "fingerprint": "04bc32a4b831d8a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecea91aac5fb4f6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/common/FilterBar/FilterPill.tsx:62"}, "properties": {"repobilityId": "800a8f79544323d7", "scanner": "scanner-primary", "fingerprint": "ecea91aac5fb4f6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-760ae0462276b684", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/pwa/PWAInstallBanner.tsx:24"}, "properties": {"repobilityId": "beb283d1d6ed0d94", "scanner": "scanner-primary", "fingerprint": "760ae0462276b684", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04f8e1ab4d1d8993", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/ShowStatusPill.tsx:68"}, "properties": {"repobilityId": "908b9cdf6ad1afb6", "scanner": "scanner-primary", "fingerprint": "04f8e1ab4d1d8993", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8cdb06639fc3649", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/browse/ShowBulkActionsBar.tsx:42"}, "properties": {"repobilityId": "1ee7323b92109364", "scanner": "scanner-primary", "fingerprint": "f8cdb06639fc3649", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dbe0816068cc86b9", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/shows/RegistrationWorkflow/ConfirmationStep.tsx:80"}, "properties": {"repobilityId": "8a4ab6b0e0daf1d8", "scanner": "scanner-primary", "fingerprint": "dbe0816068cc86b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36bf2e0a57eaf8da", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/RegistrationWorkflow/DogSelectionStepEnhanced.tsx:393"}, "properties": {"repobilityId": "4db9aba4cb1ab377", "scanner": "scanner-primary", "fingerprint": "36bf2e0a57eaf8da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-065f986117f9c5c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/shows/RegistrationWorkflow/WorkflowStepContent.tsx:107"}, "properties": {"repobilityId": "05f29823d99148ae", "scanner": "scanner-primary", "fingerprint": "065f986117f9c5c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79d18ed8230ad693", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/RegistrationWorkflow/__tests__/ConfirmationStep.email.test.tsx:132"}, "properties": {"repobilityId": "239df33729622676", "scanner": "scanner-primary", "fingerprint": "79d18ed8230ad693", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80c30b26c61be015", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/shows/wizard/steps/ReviewStep.tsx:62"}, "properties": {"repobilityId": "0ec2c324f73a5d78", "scanner": "scanner-primary", "fingerprint": "80c30b26c61be015", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5ef3edd6647b459", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/shows/overview/MoreFromClub.tsx:11"}, "properties": {"repobilityId": "598c5edd726b7ea1", "scanner": "scanner-primary", "fingerprint": "d5ef3edd6647b459", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a2bd024d2557d8f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/overview/ShowOfficials.tsx:7"}, "properties": {"repobilityId": "bf0ad7faba2188c2", "scanner": "scanner-primary", "fingerprint": "3a2bd024d2557d8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69963b86568f3482", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/shows/tabs/ShowOverviewTab.tsx:109"}, "properties": {"repobilityId": "5c5d106d135f25e4", "scanner": "scanner-primary", "fingerprint": "69963b86568f3482", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65b5b1bf1357ae94", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/classes/ClassResultsTable/useRunOrderPreset.ts:32"}, "properties": {"repobilityId": "0067f2e0875cdd97", "scanner": "scanner-primary", "fingerprint": "65b5b1bf1357ae94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8cf76930c4058fab", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/panels/edit/ShowEditPanel.helpers.ts:13"}, "properties": {"repobilityId": "c29d7eb27de88970", "scanner": "scanner-primary", "fingerprint": "8cf76930c4058fab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7baafddaa32b0216", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/panels/edit/ShowEditPanel.tsx:36"}, "properties": {"repobilityId": "67b00d3d15294349", "scanner": "scanner-primary", "fingerprint": "7baafddaa32b0216", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed9d9dc9a5d54a58", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/panels/edit/JudgeQualificationPanel.tsx:90"}, "properties": {"repobilityId": "e66cde397af5d708", "scanner": "scanner-primary", "fingerprint": "ed9d9dc9a5d54a58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d592891be170748c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/panels/edit/AddDogPanel/validation.test.ts:81"}, "properties": {"repobilityId": "906f2ef30b1092d3", "scanner": "scanner-primary", "fingerprint": "d592891be170748c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9463cbb860fcb3e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/panels/edit/AddDogPanel/index.tsx:35"}, "properties": {"repobilityId": "78b8f016360d4410", "scanner": "scanner-primary", "fingerprint": "c9463cbb860fcb3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f97eebf50f26bd48", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/landing/v2/WaitlistFormLanding.tsx:4"}, "properties": {"repobilityId": "37fd87b4ff581351", "scanner": "scanner-primary", "fingerprint": "f97eebf50f26bd48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e6e6b3e77201c54", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/secretary/ShowAccessCodesCard.tsx:159"}, "properties": {"repobilityId": "dcc90e3128fc9fea", "scanner": "scanner-primary", "fingerprint": "8e6e6b3e77201c54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-734bb03f6b0ce475", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/components/secretary/ShowAccessCodesCard.test.tsx:34"}, "properties": {"repobilityId": "bf5890499389211d", "scanner": "scanner-primary", "fingerprint": "734bb03f6b0ce475", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87af5911950258ad", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/myk9show/src/components/entries/EntryEditDialog.tsx:102"}, "properties": {"repobilityId": "38e4147d07edacfb", "scanner": "scanner-primary", "fingerprint": "87af5911950258ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e3305985a8e5187", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/components/reports/labels/ResultLabelCell.tsx:4"}, "properties": {"repobilityId": "9c4478295ca9937d", "scanner": "scanner-primary", "fingerprint": "5e3305985a8e5187", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df4b81544e43251a", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in apps/myk9show/src/components/rbac/RBACMigrationStatus.tsx:39"}, "properties": {"repobilityId": "a627e5c8b5435470", "scanner": "scanner-primary", "fingerprint": "df4b81544e43251a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-910df0d091694fbe", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/providers/StoreProvider.tsx:255"}, "properties": {"repobilityId": "b71fd28ba1d243e2", "scanner": "scanner-primary", "fingerprint": "910df0d091694fbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d61bed147acb22b2", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/providers/ReplicationSyncProvider.tsx:477"}, "properties": {"repobilityId": "8d64d1af2e85f0a3", "scanner": "scanner-primary", "fingerprint": "d61bed147acb22b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10b6decf77694bdc", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/providers/__tests__/ReplicationSyncProvider.authGuard.test.tsx:158"}, "properties": {"repobilityId": "2c138358aba71314", "scanner": "scanner-primary", "fingerprint": "10b6decf77694bdc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-530ed6ef3ac7fd15", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/myk9show/src/lib/offlineHandler.ts:453"}, "properties": {"repobilityId": "4b3ebd6bb8ef3321", "scanner": "scanner-primary", "fingerprint": "530ed6ef3ac7fd15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf585809d8c1bf91", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/lib/searchCache.ts:59"}, "properties": {"repobilityId": "f7f8f77d259c5453", "scanner": "scanner-primary", "fingerprint": "cf585809d8c1bf91", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9273c7f6c86205ac", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/lib/networkUtils.ts:144"}, "properties": {"repobilityId": "39917a056bb3a38d", "scanner": "scanner-primary", "fingerprint": "9273c7f6c86205ac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e585ae1f0e2cae81", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/src/lib/reports/__tests__/reportStyles.test.ts:4"}, "properties": {"repobilityId": "22b792f05ed09c21", "scanner": "scanner-primary", "fingerprint": "e585ae1f0e2cae81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c381d42066768e6", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/pages/RegistrationWizardPage.tsx:86"}, "properties": {"repobilityId": "d60fda9d179b83cb", "scanner": "scanner-primary", "fingerprint": "3c381d42066768e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3317741cd8acfbd7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/ShowDetailsPage.tsx:459"}, "properties": {"repobilityId": "594a0ee06ee67ab7", "scanner": "scanner-primary", "fingerprint": "3317741cd8acfbd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44c7609ca277fc07", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/pages/__tests__/RegistrationWizardPage.draftLoad.test.tsx:169"}, "properties": {"repobilityId": "5046bc6676454e33", "scanner": "scanner-primary", "fingerprint": "44c7609ca277fc07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d066c6ee385b18e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/MyEntriesPage/index.tsx:442"}, "properties": {"repobilityId": "b73340295c43a43e", "scanner": "scanner-primary", "fingerprint": "0d066c6ee385b18e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba21c378649404fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/scoring/ScoringEntryListPage.tsx:178"}, "properties": {"repobilityId": "54928098d7a7ae9f", "scanner": "scanner-primary", "fingerprint": "ba21c378649404fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e432f7d67f2d8f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/secretary/ShowWorkbenchShowDeskPage.tsx:198"}, "properties": {"repobilityId": "90f13ce22972e90f", "scanner": "scanner-primary", "fingerprint": "0e432f7d67f2d8f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7c9d2a3f70b04e1", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/pages/secretary/__tests__/ShowCreationWizardPage.success.test.tsx:7"}, "properties": {"repobilityId": "4cd5891b15f031b7", "scanner": "scanner-primary", "fingerprint": "a7c9d2a3f70b04e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1df18a7c5ef48741", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/secretary/SecretaryDashboardPage/TasksTab.tsx:18"}, "properties": {"repobilityId": "2b8fc1b575c60b06", "scanner": "scanner-primary", "fingerprint": "1df18a7c5ef48741", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41a674dced66d7fd", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/myk9show/src/pages/secretary/SecretaryDashboardPage/MyShowsSection.tsx:8"}, "properties": {"repobilityId": "68da3daf479206d9", "scanner": "scanner-primary", "fingerprint": "41a674dced66d7fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67f3615e2fddf614", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/pages/secretary/SecretaryDashboardPage/__tests__/AttentionNeededStrip.test.tsx:126"}, "properties": {"repobilityId": "aebc54cbb0897df5", "scanner": "scanner-primary", "fingerprint": "67f3615e2fddf614", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9a7841f23f4117c", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/src/pages/secretary/WaitlistManagementPage/useWaitlistManagementData.ts:142"}, "properties": {"repobilityId": "ef4fea04d0f00e1f", "scanner": "scanner-primary", "fingerprint": "a9a7841f23f4117c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72591788d8286b05", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/pages/secretary/VolunteerSchedulingPage/index.tsx:46"}, "properties": {"repobilityId": "b28ed6bb5d501271", "scanner": "scanner-primary", "fingerprint": "72591788d8286b05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8601e5fc5977254", "level": "note", "message": {"text": "Legacy-named symbol `addShowLegacy` in apps/myk9show/src/pages/secretary/ShowCreationWizard/saveShowAtomicOnline.ts:163"}, "properties": {"repobilityId": "b5914d5cfb24afa1", "scanner": "scanner-primary", "fingerprint": "a8601e5fc5977254", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-627d5f459fbd1104", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/pages/secretary/ShowCreationWizard/saveShowAtomicOnline.ts:77"}, "properties": {"repobilityId": "6569eb6a01ec3fa7", "scanner": "scanner-primary", "fingerprint": "627d5f459fbd1104", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba92d5c3b1bf88c9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/secretary/ShowCreationWizard/useShowCreationWizardActions.ts:240"}, "properties": {"repobilityId": "66a6097dc8975f40", "scanner": "scanner-primary", "fingerprint": "ba92d5c3b1bf88c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d6c8c8d7af2fc55", "level": "note", "message": {"text": "Legacy-named symbol `addShowLegacy` in apps/myk9show/src/pages/secretary/ShowCreationWizard/__tests__/saveShowAtomicOnline.test.ts:31"}, "properties": {"repobilityId": "491ac1a265652ad4", "scanner": "scanner-primary", "fingerprint": "2d6c8c8d7af2fc55", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d88e6825b2f78555", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/pages/secretary/ReportsPage/ReportControlsBar.tsx:17"}, "properties": {"repobilityId": "a0718475e3b1dd94", "scanner": "scanner-primary", "fingerprint": "d88e6825b2f78555", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-361af1c8272a1b09", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/pages/secretary/ReportsPage/__tests__/ReportControlsBar.test.tsx:171"}, "properties": {"repobilityId": "21c6bcfbbeec3bb9", "scanner": "scanner-primary", "fingerprint": "361af1c8272a1b09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c6af5368094b938", "level": "note", "message": {"text": "Legacy-named symbol `createEntryLegacy` in apps/myk9show/src/hooks/useEntryStoreCompat.ts:319"}, "properties": {"repobilityId": "3eda4de76c3ca69e", "scanner": "scanner-primary", "fingerprint": "0c6af5368094b938", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-af501120b335aa3a", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/hooks/useExhibitorProfile.ts:132"}, "properties": {"repobilityId": "99762e75f33aacda", "scanner": "scanner-primary", "fingerprint": "af501120b335aa3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f2a65c3875f89e8", "level": "note", "message": {"text": "Legacy-named symbol `addShowLegacy` in apps/myk9show/src/hooks/useShowStoreCompat.ts:82"}, "properties": {"repobilityId": "5194cee71e53f693", "scanner": "scanner-primary", "fingerprint": "6f2a65c3875f89e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e32aa01f22696ab0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/hooks/useRoutePrefetch.ts:133"}, "properties": {"repobilityId": "ddacb4b8ebb6b20a", "scanner": "scanner-primary", "fingerprint": "e32aa01f22696ab0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-188c792ca526da18", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/hooks/useDogStoreCompat.ts:79"}, "properties": {"repobilityId": "a6934dc150f6607a", "scanner": "scanner-primary", "fingerprint": "188c792ca526da18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65f3d1bb45f13e1e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/hooks/useEntryManagementData.ts:146"}, "properties": {"repobilityId": "550577f4a695d9da", "scanner": "scanner-primary", "fingerprint": "65f3d1bb45f13e1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9c5d6381a7c54dd", "level": "note", "message": {"text": "Legacy-named symbol `addClassLegacy` in apps/myk9show/src/hooks/useClassStoreCompat.ts:198"}, "properties": {"repobilityId": "b2bbe0590b916d0a", "scanner": "scanner-primary", "fingerprint": "c9c5d6381a7c54dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f5105ca4655ed290", "level": "note", "message": {"text": "Legacy-named symbol `updateShowLegacy` in apps/myk9show/src/hooks/useRealTimeUpdates.ts:22"}, "properties": {"repobilityId": "94f64a7a5585cdae", "scanner": "scanner-primary", "fingerprint": "f5105ca4655ed290", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6c2c8a5d4ac9c056", "level": "note", "message": {"text": "Legacy-named symbol `addUserLegacy` in apps/myk9show/src/hooks/useUserStoreCompat.ts:114"}, "properties": {"repobilityId": "77b82a1fc0b9094f", "scanner": "scanner-primary", "fingerprint": "6c2c8a5d4ac9c056", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6634ed8953213ac9", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/hooks/__tests__/useDogStoreCompat.test.ts:186"}, "properties": {"repobilityId": "093f952b1a864e5d", "scanner": "scanner-primary", "fingerprint": "6634ed8953213ac9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f5e2e93fa1944e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/hooks/__tests__/usePushSubscription.test.ts:69"}, "properties": {"repobilityId": "2aaca3dac27479be", "scanner": "scanner-primary", "fingerprint": "6f5e2e93fa1944e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a26c2e2ddd8ab8ee", "level": "none", "message": {"text": "Commented-code block (13 lines) in apps/myk9show/src/hooks/queries/useUserRoles.ts:5"}, "properties": {"repobilityId": "4267863b70358732", "scanner": "scanner-primary", "fingerprint": "a26c2e2ddd8ab8ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5dc7678a4e6c493", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/hooks/queries/useJudgeDatabase.ts:42"}, "properties": {"repobilityId": "e4adcf23cb1a5fe2", "scanner": "scanner-primary", "fingerprint": "e5dc7678a4e6c493", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da092a74e432232d", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/src/hooks/queries/useDogsDatabase.ts:41"}, "properties": {"repobilityId": "81376f8a3810340d", "scanner": "scanner-primary", "fingerprint": "da092a74e432232d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2a9143477869782", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/hooks/queries/useJudgeAssignments.ts:188"}, "properties": {"repobilityId": "401351d8aad1fa76", "scanner": "scanner-primary", "fingerprint": "c2a9143477869782", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0777d71aa2c1e88", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/SystemHealthService.ts:249"}, "properties": {"repobilityId": "d93a2de2fa1e43bb", "scanner": "scanner-primary", "fingerprint": "b0777d71aa2c1e88", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4b9d438b7ddd5630", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/askqService.ts:29"}, "properties": {"repobilityId": "d592f5e530c10888", "scanner": "scanner-primary", "fingerprint": "4b9d438b7ddd5630", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8ae88024e5e3a1e1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/LoggingService.ts:145"}, "properties": {"repobilityId": "0ca8cd6bd0136e91", "scanner": "scanner-primary", "fingerprint": "8ae88024e5e3a1e1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-44027bb0e6db0c15", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/__tests__/titleEngine.test.ts:694"}, "properties": {"repobilityId": "4c1ea3248f82dcb7", "scanner": "scanner-primary", "fingerprint": "44027bb0e6db0c15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ca50a25f7c0aaed", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/replication/ReplicatedClassesTable.ts:341"}, "properties": {"repobilityId": "05cf530648be2bf7", "scanner": "scanner-primary", "fingerprint": "5ca50a25f7c0aaed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4c51e286d8d4e07", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/replication/ReplicatedEntriesTable.ts:126"}, "properties": {"repobilityId": "634ea05d22374faa", "scanner": "scanner-primary", "fingerprint": "d4c51e286d8d4e07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0532b065993b273a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/replication/__tests__/ReplicatedEntriesTable.test.ts:1072"}, "properties": {"repobilityId": "bb8272c76ed5bf1b", "scanner": "scanner-primary", "fingerprint": "0532b065993b273a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-deb70673d3f0b97c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/mappers/classMappers.ts:397"}, "properties": {"repobilityId": "0e5a1d2881149a54", "scanner": "scanner-primary", "fingerprint": "deb70673d3f0b97c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fbfe855920c0d01b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/mappers/entryMappers.ts:295"}, "properties": {"repobilityId": "bc3000c6b5d9afa9", "scanner": "scanner-primary", "fingerprint": "fbfe855920c0d01b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46532c1cc8a9e1ae", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/mappers/trialMappers.ts:155"}, "properties": {"repobilityId": "dd54cc0a44bc4a21", "scanner": "scanner-primary", "fingerprint": "46532c1cc8a9e1ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab3bc3cb29b6aadb", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/mappers/showMappers.ts:36"}, "properties": {"repobilityId": "8ccae565c60ae97e", "scanner": "scanner-primary", "fingerprint": "ab3bc3cb29b6aadb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5116cd80104676f3", "level": "note", "message": {"text": "Legacy-named symbol `template_copy` in apps/myk9show/src/services/templates/templateVersioning.ts:57"}, "properties": {"repobilityId": "0053d78969e7fe41", "scanner": "scanner-primary", "fingerprint": "5116cd80104676f3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d86fbc27c30bbc5b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/services/database/entries/userEntriesReplication.ts:72"}, "properties": {"repobilityId": "c0af60368d130083", "scanner": "scanner-primary", "fingerprint": "d86fbc27c30bbc5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c48ddb3ddb3df9b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/services/deployment/CDNService.ts:381"}, "properties": {"repobilityId": "d75381f8ff24b7b3", "scanner": "scanner-primary", "fingerprint": "0c48ddb3ddb3df9b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d1babb1c8a072ac7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/context/ThemeContext.tsx:23"}, "properties": {"repobilityId": "991140f1c0782703", "scanner": "scanner-primary", "fingerprint": "d1babb1c8a072ac7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d29605725d4203e3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/context/themeClasses.test.ts:27"}, "properties": {"repobilityId": "609bb22a35fc5993", "scanner": "scanner-primary", "fingerprint": "d29605725d4203e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6197024a75d6e9ed", "level": "note", "message": {"text": "Legacy-named symbol `addShowLegacy` in apps/myk9show/src/store/showStore.ts:196"}, "properties": {"repobilityId": "ee252b983405fa81", "scanner": "scanner-primary", "fingerprint": "6197024a75d6e9ed", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-179a5b5581423dfc", "level": "note", "message": {"text": "Legacy-named symbol `addUserLegacy` in apps/myk9show/src/store/userStore.ts:59"}, "properties": {"repobilityId": "cddb0bb8823b1a1b", "scanner": "scanner-primary", "fingerprint": "179a5b5581423dfc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f3cc728d4f564fa1", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/store/userStore.ts:109"}, "properties": {"repobilityId": "7884ac5c553d4334", "scanner": "scanner-primary", "fingerprint": "f3cc728d4f564fa1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3791fc7218e0c796", "level": "note", "message": {"text": "Legacy-named symbol `createEntryLegacy` in apps/myk9show/src/store/entryTypes.ts:113"}, "properties": {"repobilityId": "47a46dd190a42774", "scanner": "scanner-primary", "fingerprint": "3791fc7218e0c796", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c12c636137d6a077", "level": "note", "message": {"text": "Legacy-named symbol `addTrialLegacy` in apps/myk9show/src/store/trial-store-types.ts:96"}, "properties": {"repobilityId": "252ecd2e6536eb39", "scanner": "scanner-primary", "fingerprint": "c12c636137d6a077", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-869c3dce06bf15f4", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/src/store/cartStore.helpers.ts:9"}, "properties": {"repobilityId": "65abdbe3828e6c1f", "scanner": "scanner-primary", "fingerprint": "869c3dce06bf15f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-924ce9e66ada6ce1", "level": "note", "message": {"text": "Legacy-named symbol `addDogLegacy` in apps/myk9show/src/store/dogStore.ts:98"}, "properties": {"repobilityId": "5c7d48c119efc4ac", "scanner": "scanner-primary", "fingerprint": "924ce9e66ada6ce1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-310fbc6122e2323a", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/src/store/announcementStore.ts:86"}, "properties": {"repobilityId": "483b6c584789305a", "scanner": "scanner-primary", "fingerprint": "310fbc6122e2323a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17d72c8b3fb0c6be", "level": "note", "message": {"text": "Legacy-named symbol `addClassLegacy` in apps/myk9show/src/store/classStore.types.ts:97"}, "properties": {"repobilityId": "e6a3ab89c9ec0fc7", "scanner": "scanner-primary", "fingerprint": "17d72c8b3fb0c6be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0d5bd71f20650389", "level": "note", "message": {"text": "Legacy-named symbol `createEntryLegacy` in apps/myk9show/src/store/entry-store-types.ts:173"}, "properties": {"repobilityId": "88f1c7a5e68748a8", "scanner": "scanner-primary", "fingerprint": "0d5bd71f20650389", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7064ca839e0df1de", "level": "note", "message": {"text": "Legacy-named symbol `addClassLegacy` in apps/myk9show/src/store/classStore.ts:391"}, "properties": {"repobilityId": "bb375cb92c6bc9f5", "scanner": "scanner-primary", "fingerprint": "7064ca839e0df1de", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-068f655518044b6c", "level": "note", "message": {"text": "Legacy-named symbol `addTrialLegacy` in apps/myk9show/src/store/trialStore.ts:294"}, "properties": {"repobilityId": "bb892359773abb1d", "scanner": "scanner-primary", "fingerprint": "068f655518044b6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1aaab08e94f29a27", "level": "note", "message": {"text": "Legacy-named symbol `addClassLegacy` in apps/myk9show/src/store/class-store-types.ts:100"}, "properties": {"repobilityId": "9ac544738b40c306", "scanner": "scanner-primary", "fingerprint": "1aaab08e94f29a27", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a9ae22caf3505691", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/store/templateStore.ts:493"}, "properties": {"repobilityId": "a160cf1f0ed790bb", "scanner": "scanner-primary", "fingerprint": "a9ae22caf3505691", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4aeec24a01ccdade", "level": "note", "message": {"text": "Legacy-named symbol `createEntryLegacy` in apps/myk9show/src/store/entry-store-legacy.ts:25"}, "properties": {"repobilityId": "fda0978792558d3a", "scanner": "scanner-primary", "fingerprint": "4aeec24a01ccdade", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-58b85fe6351a4dad", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/store/cartStore.ts:507"}, "properties": {"repobilityId": "095b7d7033881177", "scanner": "scanner-primary", "fingerprint": "58b85fe6351a4dad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-274fa707fccf998f", "level": "note", "message": {"text": "Legacy-named symbol `cs_test_old` in apps/myk9show/src/store/cartStore.test.ts:123"}, "properties": {"repobilityId": "f3c60280fd66b05a", "scanner": "scanner-primary", "fingerprint": "274fa707fccf998f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a2ca17fe8dc8b6b3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/store/__tests__/showStore.replicatedToShow.test.ts:5"}, "properties": {"repobilityId": "541d804a6190c57f", "scanner": "scanner-primary", "fingerprint": "a2ca17fe8dc8b6b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e0799160c992fb8", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/magazine/tokens.ts:41"}, "properties": {"repobilityId": "b2c68baa390418af", "scanner": "scanner-primary", "fingerprint": "8e0799160c992fb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7024d7cbfc3ccd9e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/magazine/email/buildConfirmationProps.ts:182"}, "properties": {"repobilityId": "5c0129d57908e83a", "scanner": "scanner-primary", "fingerprint": "7024d7cbfc3ccd9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5ef18ff71c4507f", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/magazine/landing/__tests__/useMagazineLandingData.test.ts:231"}, "properties": {"repobilityId": "5838b55d988f18cc", "scanner": "scanner-primary", "fingerprint": "d5ef18ff71c4507f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-388e1d0565bf703b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/magazine/wizard/MagazineEntryReceived.tsx:84"}, "properties": {"repobilityId": "685437a5a8aea1ff", "scanner": "scanner-primary", "fingerprint": "388e1d0565bf703b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67de5fef89ffa01f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/at-show/AtShowScoresheetPage.tsx:47"}, "properties": {"repobilityId": "2eef3a46c4b843bd", "scanner": "scanner-primary", "fingerprint": "67de5fef89ffa01f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-650f9e2cabdb30e5", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/at-show/AtShowClassListPage.tsx:88"}, "properties": {"repobilityId": "7e3ccbbe8de94b16", "scanner": "scanner-primary", "fingerprint": "650f9e2cabdb30e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e8ff596661a75f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/at-show/useAtShowEntryListActions.ts:112"}, "properties": {"repobilityId": "4976bb7be541340d", "scanner": "scanner-primary", "fingerprint": "8e8ff596661a75f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e83a938be24d50a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/at-show/atShowDataAdapter.ts:106"}, "properties": {"repobilityId": "f19b126dd9b4e421", "scanner": "scanner-primary", "fingerprint": "9e83a938be24d50a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cbb3f0d491dc230", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/at-show/AtShowEntryListPage.tsx:62"}, "properties": {"repobilityId": "9d89159b77316c98", "scanner": "scanner-primary", "fingerprint": "4cbb3f0d491dc230", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09fb26c710bc0a6e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/at-show/slots/ClassDetailsPopoverSlot.tsx:129"}, "properties": {"repobilityId": "7f7163825adc17d5", "scanner": "scanner-primary", "fingerprint": "09fb26c710bc0a6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c25f323c5db978cc", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/src/features/poster/entry-blank/sections/pdfPrimitives.tsx:3"}, "properties": {"repobilityId": "8576e66b5a6f12dc", "scanner": "scanner-primary", "fingerprint": "c25f323c5db978cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06557281a1e80bcb", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/poster/landing/PosterLandingPage.tsx:70"}, "properties": {"repobilityId": "ef9902ff9667dd09", "scanner": "scanner-primary", "fingerprint": "06557281a1e80bcb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e21e71c87e46e6f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/poster/landing/__tests__/usePosterLandingData.test.ts:11"}, "properties": {"repobilityId": "de518f44667b68ac", "scanner": "scanner-primary", "fingerprint": "e21e71c87e46e6f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f697e3ac2abf1bfd", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/features/fieldGuide/entry-blank/__tests__/FieldGuideEntryBlankDocument.test.tsx:7"}, "properties": {"repobilityId": "e3e65208c755febe", "scanner": "scanner-primary", "fingerprint": "f697e3ac2abf1bfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9d94eba2042ead2", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/fieldGuide/landing/useFieldGuideLandingData.ts:137"}, "properties": {"repobilityId": "2e5c1372a5b64222", "scanner": "scanner-primary", "fingerprint": "d9d94eba2042ead2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b14e027dcb07202", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/fieldGuide/wizard/FieldGuideEntryReceived.tsx:13"}, "properties": {"repobilityId": "775fa885996791e7", "scanner": "scanner-primary", "fingerprint": "0b14e027dcb07202", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ace483403600a34", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/src/features/show-live-sync/useShowLiveSync.ts:53"}, "properties": {"repobilityId": "7ac21da41769dc8e", "scanner": "scanner-primary", "fingerprint": "9ace483403600a34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17108c190e351f01", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-workbench/useJudgeHospitalityReminderCount.ts:20"}, "properties": {"repobilityId": "b8e2f1d653819c41", "scanner": "scanner-primary", "fingerprint": "17108c190e351f01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d169f14ecbf8e9ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-workbench/TasksNotesCard.tsx:25"}, "properties": {"repobilityId": "1a4d4c0084ed88b9", "scanner": "scanner-primary", "fingerprint": "d169f14ecbf8e9ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e10d66f6eae541f6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-workbench/judgeHospitality.ts:38"}, "properties": {"repobilityId": "f80161c93bc7275b", "scanner": "scanner-primary", "fingerprint": "e10d66f6eae541f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c004fc9bd54a49f", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/myk9show/src/features/show-workbench/setupReadinessSignals.ts:19"}, "properties": {"repobilityId": "e5945090c44fcbb4", "scanner": "scanner-primary", "fingerprint": "4c004fc9bd54a49f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3932a0a811baa749", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-workbench/__tests__/announcementPushFunctionContract.test.ts:94"}, "properties": {"repobilityId": "57ba61f660a7d394", "scanner": "scanner-primary", "fingerprint": "3932a0a811baa749", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-886766e1f2190494", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/gazette/components/GazetteDropCap.tsx:32"}, "properties": {"repobilityId": "1475496eeb120ec3", "scanner": "scanner-primary", "fingerprint": "886766e1f2190494", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab59763483a1b03b", "level": "none", "message": {"text": "Commented-code block (13 lines) in apps/myk9show/src/features/premium/__tests__/renderTimeBenchmark.test.ts:1"}, "properties": {"repobilityId": "c4417361674ad4c7", "scanner": "scanner-primary", "fingerprint": "ab59763483a1b03b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a345631b0b94f0f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/premium/pdf/pdfTokens.ts:104"}, "properties": {"repobilityId": "684e7795f5b89ac9", "scanner": "scanner-primary", "fingerprint": "9a345631b0b94f0f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a6c4c3b9460769c", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/myk9show/src/features/premium/pdf/pdfFonts.ts:103"}, "properties": {"repobilityId": "9ea37cb568f7c2bb", "scanner": "scanner-primary", "fingerprint": "2a6c4c3b9460769c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-031354fe077c1a92", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/premium/pdf/__tests__/bodyContractInvariants.test.tsx:1"}, "properties": {"repobilityId": "00aeeb4c78f0b6e6", "scanner": "scanner-primary", "fingerprint": "031354fe077c1a92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c60771329b2eab1", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/premium/pdf/bodies/GazetteBody.tsx:1"}, "properties": {"repobilityId": "0d61df9ac552e4fd", "scanner": "scanner-primary", "fingerprint": "2c60771329b2eab1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e482c92dd0875f5a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/myk9show/src/features/organization-forms/officialPdfDownload.ts:13"}, "properties": {"repobilityId": "0fb067dbe573eaa3", "scanner": "scanner-primary", "fingerprint": "e482c92dd0875f5a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d296de44a90a6609", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/messages/pages/ChatPage.tsx:32"}, "properties": {"repobilityId": "4e11128423f1d7fc", "scanner": "scanner-primary", "fingerprint": "d296de44a90a6609", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d967b0e017ede6f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/messages/pages/SecretaryMessagesPage.tsx:37"}, "properties": {"repobilityId": "aa898348099922b1", "scanner": "scanner-primary", "fingerprint": "d967b0e017ede6f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0a016cb601e7551", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/messages/pages/__tests__/SecretaryMessagesPage.test.tsx:139"}, "properties": {"repobilityId": "ece2f8400c810871", "scanner": "scanner-primary", "fingerprint": "d0a016cb601e7551", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad5242fc8ad25d81", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/payments/onlineEntryGate.ts:1"}, "properties": {"repobilityId": "ea41c39b186e3e43", "scanner": "scanner-primary", "fingerprint": "ad5242fc8ad25d81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74ddd5d9f59b3b26", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-presence/useShowPresence.ts:106"}, "properties": {"repobilityId": "d4af204925c8e7d1", "scanner": "scanner-primary", "fingerprint": "74ddd5d9f59b3b26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c5df49bdf5d62f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/useShowMapRunOrderAutoSort.ts:128"}, "properties": {"repobilityId": "e627d057cd509384", "scanner": "scanner-primary", "fingerprint": "3c5df49bdf5d62f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43808aa3ddd02595", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/ShowDeskAdaptiveHeader.tsx:38"}, "properties": {"repobilityId": "09ed0a1567fe6f8e", "scanner": "scanner-primary", "fingerprint": "43808aa3ddd02595", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5e491b8c8c10584", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/ShowMapStructureCells.tsx:24"}, "properties": {"repobilityId": "30bf7df476391d79", "scanner": "scanner-primary", "fingerprint": "f5e491b8c8c10584", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5db298484d0871f", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/useShowMapWorkbenchState.ts:40"}, "properties": {"repobilityId": "d045d9ada79a8b2e", "scanner": "scanner-primary", "fingerprint": "e5db298484d0871f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8063867f9c27b5e", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/myk9show/src/features/show-map/showMapActions.ts:124"}, "properties": {"repobilityId": "a022da7f5a7bb2a6", "scanner": "scanner-primary", "fingerprint": "f8063867f9c27b5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03a704273e48e16c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/ShowDeskCloseoutSection.tsx:10"}, "properties": {"repobilityId": "dd7c173b41b9bd8d", "scanner": "scanner-primary", "fingerprint": "03a704273e48e16c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a74e1b6f238579d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/ShowMapStructureTable.tsx:133"}, "properties": {"repobilityId": "d54480b65788c29c", "scanner": "scanner-primary", "fingerprint": "a74e1b6f238579d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd790aaf1570d97f", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/showMapTree.ts:220"}, "properties": {"repobilityId": "33059303d5f697c4", "scanner": "scanner-primary", "fingerprint": "bd790aaf1570d97f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-540c13aca4c781d3", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/src/features/show-map/useShowMapReorderMode.ts:45"}, "properties": {"repobilityId": "39b66fea5f5fb63d", "scanner": "scanner-primary", "fingerprint": "540c13aca4c781d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06526222066542f3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/ShowMapSortableEntryRow.tsx:25"}, "properties": {"repobilityId": "97ac2b7fee42b75a", "scanner": "scanner-primary", "fingerprint": "06526222066542f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67d15777d41f4d29", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/showMapReorderMode.ts:32"}, "properties": {"repobilityId": "c6b032a938ac6697", "scanner": "scanner-primary", "fingerprint": "67d15777d41f4d29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2172909e91d83ea6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/ShowMapTab.tsx:148"}, "properties": {"repobilityId": "c16535de3749c0a7", "scanner": "scanner-primary", "fingerprint": "2172909e91d83ea6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad0b15706a3e725e", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/myk9show/src/features/show-map/showDeskActionable.ts:1"}, "properties": {"repobilityId": "5e184c4ee1ef8634", "scanner": "scanner-primary", "fingerprint": "ad0b15706a3e725e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abeedde141c2425f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/ShowDeskPanel.tsx:70"}, "properties": {"repobilityId": "1c60b7f9c8b74590", "scanner": "scanner-primary", "fingerprint": "abeedde141c2425f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c8c53584d3213ac", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/myk9show/src/features/show-map/ShowDeskToolsSheet.tsx:36"}, "properties": {"repobilityId": "e9e1a5296487bff1", "scanner": "scanner-primary", "fingerprint": "1c8c53584d3213ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf82fa23ecf8c1a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/__tests__/ShowMapTab.test.tsx:463"}, "properties": {"repobilityId": "706fff0e77b797dd", "scanner": "scanner-primary", "fingerprint": "bf82fa23ecf8c1a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b10e102f622d9784", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/__tests__/showMapActions.test.ts:1311"}, "properties": {"repobilityId": "d5ac6013e6fde4ad", "scanner": "scanner-primary", "fingerprint": "b10e102f622d9784", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02dcab7e5c9db1e5", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/myk9show/src/features/show-map/__tests__/showMapReorderMode.test.ts:119"}, "properties": {"repobilityId": "1fa3fa63d35d4215", "scanner": "scanner-primary", "fingerprint": "02dcab7e5c9db1e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-990d0c6f437ab088", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs/archive/design_handoff_landing_page/design/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "0b54aace9bd05086", "scanner": "scanner-primary", "fingerprint": "990d0c6f437ab088", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb132e41e2c68d98", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/archive/design_handoff_landing_page/source/WaitlistForm.tsx:1"}, "properties": {"repobilityId": "f144dabdc44c4203", "scanner": "scanner-primary", "fingerprint": "eb132e41e2c68d98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6314643c9f5ba17b", "level": "none", "message": {"text": "Commented-code block (9 lines) in docs/design/prototype/secretary.jsx:5"}, "properties": {"repobilityId": "14ba1f9c3bdb4b3e", "scanner": "scanner-primary", "fingerprint": "6314643c9f5ba17b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c79d61762f3ff7a2", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/design/prototype/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "ed40633396724862", "scanner": "scanner-primary", "fingerprint": "c79d61762f3ff7a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c42689b7cdc08186", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/design/prototype/scentwork-secretary.jsx:173"}, "properties": {"repobilityId": "e1c885e6ea41eb03", "scanner": "scanner-primary", "fingerprint": "c42689b7cdc08186", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b76312329f2dc4f", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/design/prototype/design-canvas.jsx:2"}, "properties": {"repobilityId": "65416c18055f589b", "scanner": "scanner-primary", "fingerprint": "5b76312329f2dc4f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9fa3bc3aeb0cb19a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/design/prototype/design-canvas.jsx:63"}, "properties": {"repobilityId": "730a901debdfd06f", "scanner": "scanner-primary", "fingerprint": "9fa3bc3aeb0cb19a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2ca06cd6f7e7404c", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/design/prototype/scentwork-exhibitor.jsx:9"}, "properties": {"repobilityId": "f8ab9f1f4d43282e", "scanner": "scanner-primary", "fingerprint": "2ca06cd6f7e7404c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-573293d114e5dce9", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs/plans/design_handoff_premiums/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "9a23bc7fc2779369", "scanner": "scanner-primary", "fingerprint": "573293d114e5dce9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f06b14cf0a19440", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/plans/design_handoff_premiums/image-slot.js:60"}, "properties": {"repobilityId": "9eff65a6f2fd5103", "scanner": "scanner-primary", "fingerprint": "1f06b14cf0a19440", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-282eda66afc13f7e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/plans/design_handoff_premiums/image-slot.js:62"}, "properties": {"repobilityId": "e377e2231c06ac83", "scanner": "scanner-primary", "fingerprint": "282eda66afc13f7e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-70482659931f3a8f", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/plans/design_handoff_premiums/design-canvas.jsx:2"}, "properties": {"repobilityId": "f3b71e6ff3fc6427", "scanner": "scanner-primary", "fingerprint": "70482659931f3a8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce31bd1e24c4afb4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/plans/design_handoff_premiums/design-canvas.jsx:117"}, "properties": {"repobilityId": "9a6fa3bb05788f5b", "scanner": "scanner-primary", "fingerprint": "ce31bd1e24c4afb4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-627751038b6124a1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/qa/rls-smoke/rls-recursion-smoke.ts:122"}, "properties": {"repobilityId": "ac43ddedf4291331", "scanner": "scanner-primary", "fingerprint": "627751038b6124a1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-59015a46cefd0dd3", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/email/src/fieldGuideTokens.ts:1"}, "properties": {"repobilityId": "ed35efb9ce1a6ec5", "scanner": "scanner-primary", "fingerprint": "59015a46cefd0dd3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5008de6e742ef38a", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/email/src/posterTokens.ts:1"}, "properties": {"repobilityId": "a60833ee57642d16", "scanner": "scanner-primary", "fingerprint": "5008de6e742ef38a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d85c456732b3abdc", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/email/src/monogramTokens.ts:1"}, "properties": {"repobilityId": "2cdb25df1f8f6df3", "scanner": "scanner-primary", "fingerprint": "d85c456732b3abdc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e534d79db7fe9253", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/email/src/bannerTokens.ts:1"}, "properties": {"repobilityId": "7b699af91a997e73", "scanner": "scanner-primary", "fingerprint": "e534d79db7fe9253", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5058cba366ffe4d", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/email/src/magazineTokens.ts:1"}, "properties": {"repobilityId": "920e9ac89fd09ba2", "scanner": "scanner-primary", "fingerprint": "a5058cba366ffe4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99170d4f7b2fd3a4", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/email/src/templates/MagazineConfirmationEmail.tsx:10"}, "properties": {"repobilityId": "e9c9bec1af5d53e7", "scanner": "scanner-primary", "fingerprint": "99170d4f7b2fd3a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a276d088a298b26", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/replication/src/syncReplicatedTable.ts:132"}, "properties": {"repobilityId": "4cee89a829c8a6d1", "scanner": "scanner-primary", "fingerprint": "4a276d088a298b26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e562e2f15c6256c3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/replication/src/syncReplicatedTable.ts:72"}, "properties": {"repobilityId": "7a95d6e7aa3fefc6", "scanner": "scanner-primary", "fingerprint": "e562e2f15c6256c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f8c16ee54a8da3f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/replication/src/syncReplicatedTable.test.ts:673"}, "properties": {"repobilityId": "5f8cc959f9b28fea", "scanner": "scanner-primary", "fingerprint": "f8c16ee54a8da3f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01d4f238c076e956", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/replication/src/MutationManager.stress.test.ts:209"}, "properties": {"repobilityId": "7b4124a3fc936b1e", "scanner": "scanner-primary", "fingerprint": "01d4f238c076e956", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad83b3ceacb6ea5d", "level": "note", "message": {"text": "Legacy-named symbol `replication_mutation_backup` in packages/replication/src/mutation-backup.ts:3"}, "properties": {"repobilityId": "778dc2424a04f93f", "scanner": "scanner-primary", "fingerprint": "ad83b3ceacb6ea5d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-753a5923a2b34740", "level": "note", "message": {"text": "Legacy-named symbol `replication_mutation_backup` in packages/replication/src/MutationManager.replay.test.ts:11"}, "properties": {"repobilityId": "cdeff49599313b08", "scanner": "scanner-primary", "fingerprint": "753a5923a2b34740", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-df85474edb73aa98", "level": "note", "message": {"text": "Legacy-named symbol `replication_mutation_backup` in packages/replication/src/MutationManager.test.ts:357"}, "properties": {"repobilityId": "cffd969ead5ba0e6", "scanner": "scanner-primary", "fingerprint": "df85474edb73aa98", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d7e9e94400d4a06e", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/replication/src/core/ReplicatedTableCache.ts:446"}, "properties": {"repobilityId": "d38b355f8fc2fd19", "scanner": "scanner-primary", "fingerprint": "d7e9e94400d4a06e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35b3b69d60722564", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/replication/src/core/ReplicatedTable.test.ts:377"}, "properties": {"repobilityId": "a38ac58d10808448", "scanner": "scanner-primary", "fingerprint": "35b3b69d60722564", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3a6b2799b51364d", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/replication/src/core/DatabaseManager.multi-tab.test.ts:155"}, "properties": {"repobilityId": "66fbb9a0ff9624e9", "scanner": "scanner-primary", "fingerprint": "d3a6b2799b51364d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd12e3009ce6ec7a", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/replication/src/core/ReplicatedTableCache.test.ts:60"}, "properties": {"repobilityId": "153b2b2e55bf0e17", "scanner": "scanner-primary", "fingerprint": "dd12e3009ce6ec7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f94df1f280761dc", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/replication/src/core/ReplicatedTable.subscription.test.ts:52"}, "properties": {"repobilityId": "5ccd02dc595d1642", "scanner": "scanner-primary", "fingerprint": "9f94df1f280761dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7fe28d18cb53c89", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/ui/src/__tests__/tokens-v2.test.ts:70"}, "properties": {"repobilityId": "2c7ba9bd6d2302d3", "scanner": "scanner-primary", "fingerprint": "e7fe28d18cb53c89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09ea3bd522d87ec5", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/test-utils/src/setup/vitest.setup.ts:14"}, "properties": {"repobilityId": "b4cd8b519c209fdb", "scanner": "scanner-primary", "fingerprint": "09ea3bd522d87ec5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25cabc13ab82f31c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/supabase/src/client.ts:35"}, "properties": {"repobilityId": "5c1fe0f9ca2bf089", "scanner": "scanner-primary", "fingerprint": "25cabc13ab82f31c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f1b5aac3df62c25f", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/core/src/utils/passcodes.test.ts:140"}, "properties": {"repobilityId": "e6d31ace47c4cbda", "scanner": "scanner-primary", "fingerprint": "f1b5aac3df62c25f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f0f00c7c2297203", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/ringside/tailwind.config.js:33"}, "properties": {"repobilityId": "72d69a6fba48239e", "scanner": "scanner-primary", "fingerprint": "2f0f00c7c2297203", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7d31f9124d02fb9", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/ringside/src/index.ts:127"}, "properties": {"repobilityId": "549fa59534cc35d3", "scanner": "scanner-primary", "fingerprint": "a7d31f9124d02fb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-580c1a109e5b77cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/ringside/src/pages/EntryList/CombinedEntryListPage.tsx:132"}, "properties": {"repobilityId": "fc385b3e25c07bf9", "scanner": "scanner-primary", "fingerprint": "580c1a109e5b77cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b71cb0f4a59b344", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/ringside/src/pages/EntryList/index.ts:56"}, "properties": {"repobilityId": "97f1e82955f1b8a2", "scanner": "scanner-primary", "fingerprint": "9b71cb0f4a59b344", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-163a789dfc8de856", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/ringside/src/pages/EntryList/SortableEntryCardComponents.tsx:28"}, "properties": {"repobilityId": "1a1ca6f4c789f051", "scanner": "scanner-primary", "fingerprint": "163a789dfc8de856", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a94d683fbf0e57d6", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/ringside/src/pages/EntryList/EntryListPage.tsx:130"}, "properties": {"repobilityId": "26f17157c20e9ea7", "scanner": "scanner-primary", "fingerprint": "a94d683fbf0e57d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb33b33ee34b8843", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/ringside/src/pages/EntryList/hooks/useEntryListData.test.tsx:266"}, "properties": {"repobilityId": "44e13e324beb0f89", "scanner": "scanner-primary", "fingerprint": "cb33b33ee34b8843", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cf53750a8c847de", "level": "none", "message": {"text": "Commented-code block (13 lines) in packages/ringside/src/pages/EntryList/hooks/useEntryListData.ts:186"}, "properties": {"repobilityId": "7d4dc78f8a8460bf", "scanner": "scanner-primary", "fingerprint": "9cf53750a8c847de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28e092a4c3d6a2e5", "level": "none", "message": {"text": "Commented-code block (11 lines) in packages/ringside/src/pages/ClassList/hooks/useClassRealtime.ts:110"}, "properties": {"repobilityId": "9db3e5e47bf17d4f", "scanner": "scanner-primary", "fingerprint": "28e092a4c3d6a2e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d64cf05568682dba", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/ringside/src/pages/ClassList/hooks/useFavoriteClasses.test.ts:107"}, "properties": {"repobilityId": "eb87a53fde62e6bf", "scanner": "scanner-primary", "fingerprint": "d64cf05568682dba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-644783297136db97", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/scoring-ui/src/hooks/useStopwatch.ts:60"}, "properties": {"repobilityId": "2fbabc83d968c84a", "scanner": "scanner-primary", "fingerprint": "644783297136db97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76272a06fc3717b0", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/push-trigger-announcement/index.ts:38"}, "properties": {"repobilityId": "8ce2aea4655bba98", "scanner": "scanner-primary", "fingerprint": "76272a06fc3717b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fcf33dc99282290e", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/send-confirmation-email/dispatch-helpers.ts:8"}, "properties": {"repobilityId": "9fde44499593d7e2", "scanner": "scanner-primary", "fingerprint": "fcf33dc99282290e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-205dc185f9b14c4e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-confirmation-email/index.ts:585"}, "properties": {"repobilityId": "1582bf11f23530ac", "scanner": "scanner-primary", "fingerprint": "205dc185f9b14c4e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5104276a6806826d", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/send-confirmation-email/monogram-email.test.ts:71"}, "properties": {"repobilityId": "8a05269133142501", "scanner": "scanner-primary", "fingerprint": "5104276a6806826d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f963699acdd6bc37", "level": "none", "message": {"text": "Commented-code block (11 lines) in supabase/functions/send-confirmation-email/poster-email.ts:11"}, "properties": {"repobilityId": "6031b0ec5777a4cf", "scanner": "scanner-primary", "fingerprint": "f963699acdd6bc37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4300844c7249f9d2", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/send-confirmation-email/dispatch-helpers.test.ts:38"}, "properties": {"repobilityId": "903fc8ce34baca91", "scanner": "scanner-primary", "fingerprint": "4300844c7249f9d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0fbc88e1e076ed8", "level": "none", "message": {"text": "Commented-code block (6 lines) in supabase/functions/send-confirmation-email/magazine-email.ts:11"}, "properties": {"repobilityId": "1a2d896ddb0c67d5", "scanner": "scanner-primary", "fingerprint": "a0fbc88e1e076ed8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0629b6dfbfdbe3e6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-results/index.ts:52"}, "properties": {"repobilityId": "edf60838cc7fb28d", "scanner": "scanner-primary", "fingerprint": "0629b6dfbfdbe3e6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-49a01b0377647e11", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/push-trigger-chat-message/index.ts:25"}, "properties": {"repobilityId": "08e77b0373c0aada", "scanner": "scanner-primary", "fingerprint": "49a01b0377647e11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1271390aecd5f5b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-email/index.ts:152"}, "properties": {"repobilityId": "d026b49c8bf51fe1", "scanner": "scanner-primary", "fingerprint": "c1271390aecd5f5b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6b6308a40414bac5", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/validate-passcode/index.ts:6"}, "properties": {"repobilityId": "4105671a037768e7", "scanner": "scanner-primary", "fingerprint": "6b6308a40414bac5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5513ee8b7ccbbf97", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-waitlist-invite/index.ts:136"}, "properties": {"repobilityId": "53f4a4a04eed7621", "scanner": "scanner-primary", "fingerprint": "5513ee8b7ccbbf97", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-722f58ba612c465a", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/send-targeted-message/targeted-message-handler.ts:258"}, "properties": {"repobilityId": "6cc733cb8221badd", "scanner": "scanner-primary", "fingerprint": "722f58ba612c465a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-966d9c23a8ac68a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/send-targeted-message/targeting.ts:114"}, "properties": {"repobilityId": "d33a2c9bf8461060", "scanner": "scanner-primary", "fingerprint": "966d9c23a8ac68a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2fd408fca2f01c6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-registration-email/index.ts:266"}, "properties": {"repobilityId": "9d530dd0500946ab", "scanner": "scanner-primary", "fingerprint": "c2fd408fca2f01c6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c4af82aedb79c105", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/_shared/http/handler.ts:1"}, "properties": {"repobilityId": "05b05f899ec37ee2", "scanner": "scanner-primary", "fingerprint": "c4af82aedb79c105", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ffab769bd7cc41f9", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/_shared/http/__tests__/handler.test.ts:3"}, "properties": {"repobilityId": "e34b2315a738f7b3", "scanner": "scanner-primary", "fingerprint": "ffab769bd7cc41f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b9a07071c170846", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/_shared/askq/promptBuilder.ts:21"}, "properties": {"repobilityId": "d6c10caa3e94e141", "scanner": "scanner-primary", "fingerprint": "0b9a07071c170846", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9a4850d5fbbc29bd", "level": "note", "message": {"text": "59 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "e3d3d9745573e944", "scanner": "scanner-primary", "fingerprint": "9a4850d5fbbc29bd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-ccd1a15f4d62e14d", "level": "warning", "message": {"text": "Frontend route `/at-show` has no Link/navigate to it \u2014 apps/myk9show/src/App.tsx"}, "properties": {"repobilityId": "e1ecfb05157970bb", "scanner": "scanner-primary", "fingerprint": "ccd1a15f4d62e14d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b910ab09294491f4", "level": "warning", "message": {"text": "Frontend route `/login` has no Link/navigate to it \u2014 apps/myk9show/src/App.tsx"}, "properties": {"repobilityId": "0548d3884d917c20", "scanner": "scanner-primary", "fingerprint": "b910ab09294491f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-85cf8e402736ae46", "level": "warning", "message": {"text": "Frontend route `/auth/callback` has no Link/navigate to it \u2014 apps/myk9show/src/App.tsx"}, "properties": {"repobilityId": "63275973babe75d2", "scanner": "scanner-primary", "fingerprint": "85cf8e402736ae46", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-352fdf6fcd157fff", "level": "warning", "message": {"text": "Frontend route `/shows/:id/*` has no Link/navigate to it \u2014 apps/myk9show/src/pages/secretary/__tests__/ResultsSubmissionPage.test.tsx"}, "properties": {"repobilityId": "75dab53180ef24f3", "scanner": "scanner-primary", "fingerprint": "352fdf6fcd157fff", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-74683a4ac361601d", "level": "warning", "message": {"text": "Frontend route `/people/:id` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "1f2db125d15a07bc", "scanner": "scanner-primary", "fingerprint": "74683a4ac361601d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-59425efd19af605c", "level": "warning", "message": {"text": "Frontend route `/users/:id` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "6aa1edb07d513e6e", "scanner": "scanner-primary", "fingerprint": "59425efd19af605c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d50239271fddc6bf", "level": "warning", "message": {"text": "Frontend route `/secretary/shows/:showId/*` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "148e576a02ffe12c", "scanner": "scanner-primary", "fingerprint": "d50239271fddc6bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-9201cb605bd787f9", "level": "warning", "message": {"text": "Frontend route `/shows/:id/show-desk` has no Link/navigate to it \u2014 apps/myk9show/src/test/routes/canonicalShowRoutes.test.tsx"}, "properties": {"repobilityId": "afb796b001bb6962", "scanner": "scanner-primary", "fingerprint": "9201cb605bd787f9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-40c18d9004c07b3e", "level": "warning", "message": {"text": "Frontend route `/shows/:showId/*` has no Link/navigate to it \u2014 apps/myk9show/src/components/navigation/ShowContextNav.test.tsx"}, "properties": {"repobilityId": "6618c810cea2a691", "scanner": "scanner-primary", "fingerprint": "40c18d9004c07b3e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ab3cc3a8dd81970b", "level": "warning", "message": {"text": "Frontend route `/shows/:showId/register` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "fcccce2da57b5e57", "scanner": "scanner-primary", "fingerprint": "ab3cc3a8dd81970b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-afffdf1f11c2b28b", "level": "warning", "message": {"text": "Frontend route `/shows/:showId/trials/:trialId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "71f35bb3de22c2b2", "scanner": "scanner-primary", "fingerprint": "afffdf1f11c2b28b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f922ee5e99702bd6", "level": "warning", "message": {"text": "Frontend route `/trials/:trialId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "c82784eb1372931d", "scanner": "scanner-primary", "fingerprint": "f922ee5e99702bd6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-392cec7c96488a0b", "level": "warning", "message": {"text": "Frontend route `/shows/:showId/trials/:trialId/classes/:classId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "65cdc174703086cf", "scanner": "scanner-primary", "fingerprint": "392cec7c96488a0b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e90a86b05660c121", "level": "warning", "message": {"text": "Frontend route `/shows/:showId/trials/:trialId/classes/:classId/results` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "6aba3d564d2d8ca1", "scanner": "scanner-primary", "fingerprint": "e90a86b05660c121", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-68d1172b9a87db2b", "level": "warning", "message": {"text": "Frontend route `/classes/:classId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "ba793f483226ea18", "scanner": "scanner-primary", "fingerprint": "68d1172b9a87db2b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-2f4a98e66919daff", "level": "warning", "message": {"text": "Frontend route `/browse-shows` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "e47a3baf3789355f", "scanner": "scanner-primary", "fingerprint": "2f4a98e66919daff", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d490f9874259146b", "level": "warning", "message": {"text": "Frontend route `/exhibitor/show-day` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "a23e26df249123ab", "scanner": "scanner-primary", "fingerprint": "d490f9874259146b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-4bd00ef099418c6e", "level": "warning", "message": {"text": "Frontend route `/exhibitor/profile` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "2c7bd2ac98fffdd3", "scanner": "scanner-primary", "fingerprint": "4bd00ef099418c6e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-4d460da51edc7766", "level": "warning", "message": {"text": "Frontend route `/exhibitor/account` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "80dcf8aad99600b3", "scanner": "scanner-primary", "fingerprint": "4d460da51edc7766", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-2239e39e0880c016", "level": "warning", "message": {"text": "Frontend route `/exhibitor/check-in/:entryId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "137c4ae58f10c4a7", "scanner": "scanner-primary", "fingerprint": "2239e39e0880c016", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a801871fb7356050", "level": "warning", "message": {"text": "Frontend route `/settings` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "52ded1586b61c1f5", "scanner": "scanner-primary", "fingerprint": "a801871fb7356050", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6b4e330c4b2def64", "level": "warning", "message": {"text": "Frontend route `/checkout/success` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "97e7ce9197fe0f1c", "scanner": "scanner-primary", "fingerprint": "6b4e330c4b2def64", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-bcb894b9de8f8864", "level": "warning", "message": {"text": "Frontend route `/checkout/cancel` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "ca8d4d97d0ec5aa9", "scanner": "scanner-primary", "fingerprint": "bcb894b9de8f8864", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e4ae50db151c3183", "level": "warning", "message": {"text": "Frontend route `/dogs/:id` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "7ed8057714a784eb", "scanner": "scanner-primary", "fingerprint": "e4ae50db151c3183", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-cb62a31a807a467a", "level": "warning", "message": {"text": "Frontend route `/clubs/:id` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "cfd61a36100738a7", "scanner": "scanner-primary", "fingerprint": "cb62a31a807a467a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ba783f4d0d8f9074", "level": "warning", "message": {"text": "Frontend route `/preferences` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "f3dfe553c06fffce", "scanner": "scanner-primary", "fingerprint": "ba783f4d0d8f9074", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-716b5ad8f5147bf6", "level": "warning", "message": {"text": "Frontend route `/registration` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "c2665e69030bad66", "scanner": "scanner-primary", "fingerprint": "716b5ad8f5147bf6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c62cf20080008381", "level": "warning", "message": {"text": "Frontend route `/tv/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "880285582c92bb73", "scanner": "scanner-primary", "fingerprint": "c62cf20080008381", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ef03e76a5de10da3", "level": "warning", "message": {"text": "Frontend route `/messages/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/publicRoutes.tsx"}, "properties": {"repobilityId": "c2a7049ca68dacb8", "scanner": "scanner-primary", "fingerprint": "ef03e76a5de10da3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-afde1a37eb6a9df9", "level": "warning", "message": {"text": "Frontend route `/admin/templates/:templateId/edit` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "properties": {"repobilityId": "af7ac230090cad17", "scanner": "scanner-primary", "fingerprint": "afde1a37eb6a9df9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-22e91109b63b0fb0", "level": "warning", "message": {"text": "Frontend route `/admin/templates/:templateId/test` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "properties": {"repobilityId": "22520275547eabf5", "scanner": "scanner-primary", "fingerprint": "22e91109b63b0fb0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-8e5c91d993b4c3b2", "level": "warning", "message": {"text": "Frontend route `/admin/settings` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "properties": {"repobilityId": "b29095def86bcde7", "scanner": "scanner-primary", "fingerprint": "8e5c91d993b4c3b2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3d0e5cc0db672097", "level": "warning", "message": {"text": "Frontend route `/admin/permissions/roles/:roleId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "properties": {"repobilityId": "0c213a9263f60ca6", "scanner": "scanner-primary", "fingerprint": "3d0e5cc0db672097", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-2624f88feff4991d", "level": "warning", "message": {"text": "Frontend route `/admin/permissions/roles/:roleId/clone` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "properties": {"repobilityId": "a04fbf0e7f463635", "scanner": "scanner-primary", "fingerprint": "2624f88feff4991d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7accdb7959c26772", "level": "warning", "message": {"text": "Frontend route `/admin/permissions/users` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "properties": {"repobilityId": "36939cbe738d743d", "scanner": "scanner-primary", "fingerprint": "7accdb7959c26772", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1e157adb4fe79ca7", "level": "warning", "message": {"text": "Frontend route `/admin/permissions/audit` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "properties": {"repobilityId": "8b33af65eb5afc5b", "scanner": "scanner-primary", "fingerprint": "1e157adb4fe79ca7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-26fe47127f3bde7d", "level": "warning", "message": {"text": "Frontend route `/admin/performance` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "properties": {"repobilityId": "1f4eaacad63843f5", "scanner": "scanner-primary", "fingerprint": "26fe47127f3bde7d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3c04bc71878be56d", "level": "warning", "message": {"text": "Frontend route `/admin/data-lifecycle` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "properties": {"repobilityId": "03c1cc8652d8fdae", "scanner": "scanner-primary", "fingerprint": "3c04bc71878be56d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6edd66ae6b8a9a2d", "level": "warning", "message": {"text": "Frontend route `/admin/load-testing` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "properties": {"repobilityId": "31577909534584ae", "scanner": "scanner-primary", "fingerprint": "6edd66ae6b8a9a2d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-78418568089e97a8", "level": "warning", "message": {"text": "Frontend route `/admin/analytics` has no Link/navigate to it \u2014 apps/myk9show/src/routes/adminRoutes.tsx"}, "properties": {"repobilityId": "bf782d63620aff06", "scanner": "scanner-primary", "fingerprint": "78418568089e97a8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-adc8bdce065c5c2a", "level": "warning", "message": {"text": "Frontend route `/secretary` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "37003a317158e219", "scanner": "scanner-primary", "fingerprint": "adc8bdce065c5c2a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f6d160b05457e7c3", "level": "warning", "message": {"text": "Frontend route `/secretary/pipeline/:trialId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "638de84e9955bcb3", "scanner": "scanner-primary", "fingerprint": "f6d160b05457e7c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c1e8863a2913c154", "level": "warning", "message": {"text": "Frontend route `/secretary/create-show` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "8410119e1e474792", "scanner": "scanner-primary", "fingerprint": "c1e8863a2913c154", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-539157e04e532f43", "level": "warning", "message": {"text": "Frontend route `/secretary/run-order` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "b3f6cf7472ac5967", "scanner": "scanner-primary", "fingerprint": "539157e04e532f43", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-bdd597b1da6dca52", "level": "warning", "message": {"text": "Frontend route `/secretary/day-of` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "0259ff1dfcef4f38", "scanner": "scanner-primary", "fingerprint": "bdd597b1da6dca52", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ed8707c261114a01", "level": "warning", "message": {"text": "Frontend route `/secretary/check-in` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "dafd14a738addfcd", "scanner": "scanner-primary", "fingerprint": "ed8707c261114a01", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3bbd4a0486c54650", "level": "warning", "message": {"text": "Frontend route `/secretary/entries/:showId?` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "d56b9e08b8b949e3", "scanner": "scanner-primary", "fingerprint": "3bbd4a0486c54650", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6bbd8ed9dee4e6c6", "level": "warning", "message": {"text": "Frontend route `/secretary/reports` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "ce013ea7099af1dd", "scanner": "scanner-primary", "fingerprint": "6bbd8ed9dee4e6c6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-301a665a47240436", "level": "warning", "message": {"text": "Frontend route `/secretary/results-control` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "717db26a6b4e2302", "scanner": "scanner-primary", "fingerprint": "301a665a47240436", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1942ff2271922257", "level": "warning", "message": {"text": "Frontend route `/secretary/results-submission` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "6543d25d1c15abb4", "scanner": "scanner-primary", "fingerprint": "1942ff2271922257", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3982ca1d4d5dd536", "level": "warning", "message": {"text": "Frontend route `/secretary/register/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "f7ca44d9bc1b97f5", "scanner": "scanner-primary", "fingerprint": "3982ca1d4d5dd536", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e554a852785b01d1", "level": "warning", "message": {"text": "Frontend route `/secretary/volunteer-scheduling` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "0191c1e44f9aeb05", "scanner": "scanner-primary", "fingerprint": "e554a852785b01d1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f5ae9b04f0046454", "level": "warning", "message": {"text": "Frontend route `/secretary/tasks` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "a64c48f7a020766e", "scanner": "scanner-primary", "fingerprint": "f5ae9b04f0046454", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-115915c6bc34698e", "level": "warning", "message": {"text": "Frontend route `/secretary/shows/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "22ab2c3112c073f1", "scanner": "scanner-primary", "fingerprint": "115915c6bc34698e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7100e6d409f47d64", "level": "warning", "message": {"text": "Frontend route `/secretary/shows/:showId/edit` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "60b2a38645c8227f", "scanner": "scanner-primary", "fingerprint": "7100e6d409f47d64", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-02dc2475e5049f03", "level": "warning", "message": {"text": "Frontend route `/trials/:trialId/classes/create` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "610e914c230b15af", "scanner": "scanner-primary", "fingerprint": "02dc2475e5049f03", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5020dfc001357981", "level": "warning", "message": {"text": "Frontend route `/trials/:trialId/classes` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "10b19ee5453a9aaf", "scanner": "scanner-primary", "fingerprint": "5020dfc001357981", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-bf00fe684f9487e0", "level": "warning", "message": {"text": "Frontend route `/shows/:showId/trials/:trialId/classes/:classId/secretary` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "3a8a145e0ebcf561", "scanner": "scanner-primary", "fingerprint": "bf00fe684f9487e0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-234f657ea66e437d", "level": "warning", "message": {"text": "Frontend route `/secretary/messages/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "62fce782881ef214", "scanner": "scanner-primary", "fingerprint": "234f657ea66e437d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-04e52afadb23c0a5", "level": "warning", "message": {"text": "Frontend route `/users` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "b867d6b6c888e47d", "scanner": "scanner-primary", "fingerprint": "04e52afadb23c0a5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0fbbd085cb2c51b3", "level": "warning", "message": {"text": "Frontend route `/scoring/classes/:classId/entries` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "66fa53d125341a0b", "scanner": "scanner-primary", "fingerprint": "0fbbd085cb2c51b3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-4e83a5b37fa6f899", "level": "warning", "message": {"text": "Frontend route `/scoring/classes/:classId/entries/:entryId` has no Link/navigate to it \u2014 apps/myk9show/src/routes/secretaryRoutes.tsx"}, "properties": {"repobilityId": "0c38bfe546d04e62", "scanner": "scanner-primary", "fingerprint": "4e83a5b37fa6f899", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5c09d9b3df5a93cc", "level": "warning", "message": {"text": "Frontend route `/at-show/:showId` has no Link/navigate to it \u2014 apps/myk9show/src/features/show-today/ShowTodayBanner.test.tsx"}, "properties": {"repobilityId": "143f8fb549c7a588", "scanner": "scanner-primary", "fingerprint": "5c09d9b3df5a93cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-fa9bdd3d8405c782", "level": "warning", "message": {"text": "Frontend route `/at-show/:showId/class/:classId` has no Link/navigate to it \u2014 apps/myk9show/src/features/at-show/AtShowClassListPage.test.tsx"}, "properties": {"repobilityId": "35742c2800857c91", "scanner": "scanner-primary", "fingerprint": "fa9bdd3d8405c782", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-2ed0745ec07a817d", "level": "warning", "message": {"text": "Frontend route `/at-show/:showId/class/:classIdA/:classIdB` has no Link/navigate to it \u2014 apps/myk9show/src/features/at-show/AtShowClassListPage.test.tsx"}, "properties": {"repobilityId": "00ae307905ffb648", "scanner": "scanner-primary", "fingerprint": "2ed0745ec07a817d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-9f417c922bf04e03", "level": "warning", "message": {"text": "Frontend route `/at-show/:showId/class/:classId/score/:entryId` has no Link/navigate to it \u2014 apps/myk9show/src/features/at-show/AtShowScoresheetPage.test.tsx"}, "properties": {"repobilityId": "41d2359af97d1ad7", "scanner": "scanner-primary", "fingerprint": "9f417c922bf04e03", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b44961052bfcb404", "level": "warning", "message": {"text": "Frontend route `/shows/:id/results-control` has no Link/navigate to it \u2014 apps/myk9show/src/pages/secretary/__tests__/ResultsControlPage.test.tsx"}, "properties": {"repobilityId": "efec09c194c5f68b", "scanner": "scanner-primary", "fingerprint": "b44961052bfcb404", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a9447a736b6ed760", "level": "warning", "message": {"text": "Frontend route `/about` has no Link/navigate to it \u2014 apps/myk9show/src/hooks/animations/usePageTransition.ts"}, "properties": {"repobilityId": "fde6a47b06ac2712", "scanner": "scanner-primary", "fingerprint": "a9447a736b6ed760", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6277f8ed14db36e7", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/emails (apps/myk9show/supabase/functions/send-email/index.ts:168)"}, "properties": {"repobilityId": "8389b94f32627e12", "scanner": "scanner-primary", "fingerprint": "6277f8ed14db36e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b64e58769032dc8", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/emails (apps/myk9show/supabase/functions/cron-process-payouts/index.ts:52)"}, "properties": {"repobilityId": "fdc0fe5609cd1845", "scanner": "scanner-primary", "fingerprint": "1b64e58769032dc8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bf7de0ed67f4951f", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/emails (apps/myk9show/supabase/functions/_shared/alertAdmin.ts:16)"}, "properties": {"repobilityId": "b08f956e2c190ea4", "scanner": "scanner-primary", "fingerprint": "bf7de0ed67f4951f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9aaae30096bb7a7e", "level": "error", "message": {"text": "Dangling fetch: GET /api/shows/search?q=${encodeURIComponent(searchTerm)} (apps/myk9show/src/test/load/playwright-load-tests.spec.ts:496)"}, "properties": {"repobilityId": "15112d0955b0d8cb", "scanner": "scanner-primary", "fingerprint": "9aaae30096bb7a7e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8ccc284c21ff02b2", "level": "error", "message": {"text": "Dangling fetch: POST /api/save-templates (apps/myk9show/src/utils/saveTemplatesAPI.ts:17)"}, "properties": {"repobilityId": "a0ed30bc95443770", "scanner": "scanner-primary", "fingerprint": "8ccc284c21ff02b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5acfcde734610375", "level": "error", "message": {"text": "Dangling fetch: POST /api/dogs/search (apps/myk9show/src/lib/searchCache.ts:59)"}, "properties": {"repobilityId": "607e0b5a61d1ac44", "scanner": "scanner-primary", "fingerprint": "5acfcde734610375", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-79d8891918802f4c", "level": "error", "message": {"text": "Dangling fetch: POST /api/people/search (apps/myk9show/src/lib/searchCache.ts:77)"}, "properties": {"repobilityId": "8a98183126bb4436", "scanner": "scanner-primary", "fingerprint": "79d8891918802f4c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5a71298690a080ec", "level": "error", "message": {"text": "Dangling fetch: POST /api/shows/search (apps/myk9show/src/lib/searchCache.ts:95)"}, "properties": {"repobilityId": "7887e8463b740036", "scanner": "scanner-primary", "fingerprint": "5a71298690a080ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b16ecaa9e79ea63d", "level": "error", "message": {"text": "Dangling fetch: GET /api/dogs/${dogId} (apps/myk9show/src/hooks/useRoutePrefetch.ts:133)"}, "properties": {"repobilityId": "28d4d33461ea3402", "scanner": "scanner-primary", "fingerprint": "b16ecaa9e79ea63d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-870957a517b81a25", "level": "error", "message": {"text": "Dangling fetch: GET /api/dogs/${dogId}/health-records (apps/myk9show/src/hooks/useRoutePrefetch.ts:137)"}, "properties": {"repobilityId": "cef7ef093f5c2892", "scanner": "scanner-primary", "fingerprint": "870957a517b81a25", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-848547feaf91a74e", "level": "error", "message": {"text": "Dangling fetch: GET /api/dogs/${dogId}/registrations (apps/myk9show/src/hooks/useRoutePrefetch.ts:141)"}, "properties": {"repobilityId": "77c8f6b6c13477ec", "scanner": "scanner-primary", "fingerprint": "848547feaf91a74e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4e2ac4c87deec238", "level": "error", "message": {"text": "Dangling fetch: GET /api/people/${personId} (apps/myk9show/src/hooks/useRoutePrefetch.ts:148)"}, "properties": {"repobilityId": "d14913dcb1018adb", "scanner": "scanner-primary", "fingerprint": "4e2ac4c87deec238", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a4dd79dfce296bea", "level": "error", "message": {"text": "Dangling fetch: GET /api/people/${personId}/dogs (apps/myk9show/src/hooks/useRoutePrefetch.ts:152)"}, "properties": {"repobilityId": "5e8b18c74a2f0ee5", "scanner": "scanner-primary", "fingerprint": "a4dd79dfce296bea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ab7e77870873511d", "level": "error", "message": {"text": "Dangling fetch: GET /api/shows/${showId} (apps/myk9show/src/hooks/useRoutePrefetch.ts:159)"}, "properties": {"repobilityId": "6debafd359fa27e8", "scanner": "scanner-primary", "fingerprint": "ab7e77870873511d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4f8ee591105e5cd8", "level": "error", "message": {"text": "Dangling fetch: GET /api/shows/${showId}/classes (apps/myk9show/src/hooks/useRoutePrefetch.ts:163)"}, "properties": {"repobilityId": "16ad365e771da753", "scanner": "scanner-primary", "fingerprint": "4f8ee591105e5cd8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a533397ee7d97e5d", "level": "error", "message": {"text": "Dangling fetch: GET /api/shows/${showId}/entries (apps/myk9show/src/hooks/useRoutePrefetch.ts:167)"}, "properties": {"repobilityId": "ea8fb2a2d092f979", "scanner": "scanner-primary", "fingerprint": "a533397ee7d97e5d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e24bfd146e1c6937", "level": "error", "message": {"text": "Dangling fetch: GET /api/shows (apps/myk9show/src/hooks/useRoutePrefetch.ts:174)"}, "properties": {"repobilityId": "ac0323e1512d9863", "scanner": "scanner-primary", "fingerprint": "e24bfd146e1c6937", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1f975f5ad0950d6c", "level": "error", "message": {"text": "Dangling fetch: GET /api/dogs (apps/myk9show/src/hooks/useRoutePrefetch.ts:181)"}, "properties": {"repobilityId": "2e1a6c696192c074", "scanner": "scanner-primary", "fingerprint": "1f975f5ad0950d6c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b4684f83a51bbef6", "level": "error", "message": {"text": "Dangling fetch: GET /api/people (apps/myk9show/src/hooks/useRoutePrefetch.ts:188)"}, "properties": {"repobilityId": "44bbd5c412205e51", "scanner": "scanner-primary", "fingerprint": "b4684f83a51bbef6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7feaa87bfdce3a92", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/stats (apps/myk9show/src/hooks/useRoutePrefetch.ts:195)"}, "properties": {"repobilityId": "ff831a36dcfa92a2", "scanner": "scanner-primary", "fingerprint": "7feaa87bfdce3a92", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7664b9c3295314aa", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/recent-activity (apps/myk9show/src/hooks/useRoutePrefetch.ts:199)"}, "properties": {"repobilityId": "77aafa10e8837fc4", "scanner": "scanner-primary", "fingerprint": "7664b9c3295314aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b184adc30928ab3", "level": "error", "message": {"text": "Dangling fetch: GET /api/judge/assignments (apps/myk9show/src/hooks/useRoutePrefetch.ts:206)"}, "properties": {"repobilityId": "90b9327b36b2699c", "scanner": "scanner-primary", "fingerprint": "7b184adc30928ab3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac3bb2552234645a", "level": "error", "message": {"text": "Dangling fetch: GET /api/judge/schedule (apps/myk9show/src/hooks/useRoutePrefetch.ts:210)"}, "properties": {"repobilityId": "a73378266409e883", "scanner": "scanner-primary", "fingerprint": "ac3bb2552234645a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2ecfbf27b918cb56", "level": "error", "message": {"text": "Dangling fetch: GET /api/secretary/shows (apps/myk9show/src/hooks/useRoutePrefetch.ts:217)"}, "properties": {"repobilityId": "924f14d56d76e6dd", "scanner": "scanner-primary", "fingerprint": "2ecfbf27b918cb56", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a6ddeb3cd19ce1ef", "level": "error", "message": {"text": "Dangling fetch: GET /api/secretary/pending-entries (apps/myk9show/src/hooks/useRoutePrefetch.ts:221)"}, "properties": {"repobilityId": "4cf4ed8b6fbf33ed", "scanner": "scanner-primary", "fingerprint": "a6ddeb3cd19ce1ef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4e1f76e90b51b929", "level": "error", "message": {"text": "Dangling fetch: GET /api/health/database (apps/myk9show/src/services/SystemHealthService.ts:249)"}, "properties": {"repobilityId": "8adb137c7c845f6f", "scanner": "scanner-primary", "fingerprint": "4e1f76e90b51b929", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3b716376943f865f", "level": "error", "message": {"text": "Dangling fetch: GET /api/health/ping (apps/myk9show/src/services/SystemHealthService.ts:307)"}, "properties": {"repobilityId": "60b95a4e3c9d1f69", "scanner": "scanner-primary", "fingerprint": "3b716376943f865f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a9236b049a9dd537", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-confirmation-email/index.ts:585)"}, "properties": {"repobilityId": "f1857ee80be15905", "scanner": "scanner-primary", "fingerprint": "a9236b049a9dd537", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3ded9516aac28e3b", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-results/index.ts:52)"}, "properties": {"repobilityId": "dbc03d852ece4026", "scanner": "scanner-primary", "fingerprint": "3ded9516aac28e3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-81f2a3f550dd11f9", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (supabase/functions/generate-premium/index.ts:358)"}, "properties": {"repobilityId": "eaf635889be0d007", "scanner": "scanner-primary", "fingerprint": "81f2a3f550dd11f9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-affff8dd5066ed6b", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-email/index.ts:152)"}, "properties": {"repobilityId": "4763d7edcfae3cf3", "scanner": "scanner-primary", "fingerprint": "affff8dd5066ed6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9eaab914cea953ed", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-waitlist-invite/index.ts:136)"}, "properties": {"repobilityId": "ec5403a1b0fde2cb", "scanner": "scanner-primary", "fingerprint": "9eaab914cea953ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-02ad92b36d1fec6e", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-registration-email/index.ts:266)"}, "properties": {"repobilityId": "6291cb9e99ce8d34", "scanner": "scanner-primary", "fingerprint": "02ad92b36d1fec6e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2034534de3d265b3", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/emails (supabase/functions/send-auth-email/index.ts:130)"}, "properties": {"repobilityId": "0aea92ffd2935c31", "scanner": "scanner-primary", "fingerprint": "2034534de3d265b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-702f271ded601b68", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (supabase/functions/_shared/askq/promptBuilder.ts:21)"}, "properties": {"repobilityId": "7ee46b06f03e74f1", "scanner": "scanner-primary", "fingerprint": "702f271ded601b68", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-095e4469a4585fb9", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (supabase/functions/_shared/askq/promptBuilder.ts:51)"}, "properties": {"repobilityId": "d7839449501a3e72", "scanner": "scanner-primary", "fingerprint": "095e4469a4585fb9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d5c3330fff0b3fc6", "level": "note", "message": {"text": "Unused endpoint: USE /api/save-templates"}, "properties": {"repobilityId": "838a9c81254d9678", "scanner": "scanner-primary", "fingerprint": "d5c3330fff0b3fc6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}