{"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-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-804ec549facc422e", "name": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-enhance.ts:113", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-enhance.ts:113"}, "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-41c554d753ab51a5", "name": "Stray `console.log` in TS/JS \u2014 scripts/sim-ruins.ts:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-ruins.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-b90e086d1499476c", "name": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-spec.ts:222", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-spec.ts:222"}, "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-2d05792cf2750f26", "name": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-power-gate.ts:173", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-power-gate.ts:173"}, "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-012fa406ea76466c", "name": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-progression.ts:380", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-progression.ts:380"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-947471ec5dc07ecc", "name": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-pvp-weapon.ts:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-pvp-weapon.ts:124"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f06efc4cc916661d", "name": "Stray `console.log` in TS/JS \u2014 scripts/sim-equip-drops.ts:145", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-equip-drops.ts:145"}, "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-0b67fa4ca7c892c7", "name": "Stray `console.log` in TS/JS \u2014 scripts/sim-starter-field.ts:95", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-starter-field.ts:95"}, "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-36f3e87ac0aa1238", "name": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-proficiency.ts:213", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-proficiency.ts:213"}, "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-237720b78fc32bb3", "name": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-exp-pacing.ts:139", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-exp-pacing.ts:139"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5d0123c98cdc31fb", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2CraftView.tsx:459", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2CraftView.tsx:459"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92ac57e14ae216a6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2CodexView.tsx:321", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2CodexView.tsx:321"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b4eaa12ad679010", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2QuestView.tsx:292", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2QuestView.tsx:292"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3ed1ad1980a8dad", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ArenaLoadoutTab.tsx:165", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ArenaLoadoutTab.tsx:165"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d89f4d7629d8fb4", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2AnnouncementsPanel.tsx:79", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2AnnouncementsPanel.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-de92f0b21ea9cd7e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2DungeonList.tsx:129", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2DungeonList.tsx:129"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-657a54320205d01c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2InventoryView.tsx:670", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2InventoryView.tsx:670"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7741b69463f7e0c1", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2WarView.tsx:203", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2WarView.tsx:203"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-098bc917adafbfb4", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2GuildHome.tsx:333", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2GuildHome.tsx:333"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-11d141f4baf44b11", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/PlayerStatusCard.tsx:58", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/PlayerStatusCard.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-d5dbd1b1778c714b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2TopBar.tsx:44", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2TopBar.tsx:44"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1bb97245ca9708bc", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/GuideQuestBanner.tsx:60", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/GuideQuestBanner.tsx:60"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-918476c04b04fbcd", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ArenaView.tsx:407", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ArenaView.tsx:407"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-347b2a2ce4cf03f3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ClassGrid.tsx:255", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ClassGrid.tsx:255"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-039001fdef889d34", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/IntruderPanel.tsx:131", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/IntruderPanel.tsx:131"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-946a6c28c8aeceb8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/ContinentMap.tsx:991", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/ContinentMap.tsx:991"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-464cc1f0c523ea3e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/OutpostAttackLog.tsx:142", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/OutpostAttackLog.tsx:142"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfa79fd42fb071c1", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ShopView.tsx:616", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ShopView.tsx:616"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1cd8287ee560d5b3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ArenaRankingTab.tsx:101", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ArenaRankingTab.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-2757591af54d1f2a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2SkillLearnView.tsx:171", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2SkillLearnView.tsx:171"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a408a1f21d29b699", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2CombatPatternView.tsx:290", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2CombatPatternView.tsx:290"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28f70e9d21e6d86a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/TreasureLeaderboardView.tsx:99", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/TreasureLeaderboardView.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-2f451cf8eadb783f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ItemCard.tsx:294", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ItemCard.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-dec9cd9bbeffc197", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/coop/V2CoopBossDetailView.tsx:299", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/coop/V2CoopBossDetailView.tsx:299"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2738e6015c671877", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/guild/GuildBrowsePanel.tsx:154", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/guild/GuildBrowsePanel.tsx:154"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-750b43e14699d17e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/battle/BattleScene.tsx:80", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/battle/BattleScene.tsx:80"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d57d68c2a670481", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/bulletin/PostListRow.tsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/bulletin/PostListRow.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-9f64e9d1d28e6052", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/bulletin/PostDetailPage.tsx:75", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/bulletin/PostDetailPage.tsx:75"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dec8a01ab75ef7c1", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/profile/AvatarPicker.tsx:149", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/profile/AvatarPicker.tsx:149"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8cf78f8431973df", "name": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/rankings/RankingsView.tsx:239", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/rankings/RankingsView.tsx:239"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4afb9d649ca060f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/ui/EntryCard.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ui/EntryCard.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-21a0f79fd4a8ce53", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/layout.tsx:73", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/layout.tsx:73"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2468efc7f56f6395", "name": "Stray `console.log` in TS/JS \u2014 src/app/dev/growth-shrine/page.tsx:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/dev/growth-shrine/page.tsx: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-39a31336da90a163", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/icons/page.tsx:161", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/icons/page.tsx:161"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-564b45d270cf0238", "name": "Runtime dotenv file present in repo: .env.production", "shortDescription": {"text": "Runtime dotenv file present in repo: .env.production"}, "fullDescription": {"text": "`.env.production` looks like a runtime dotenv file. No high-confidence secret value was matched, but runtime dotenv files often drift into live credentials. Move real values to a secret manager and keep only `.env.example` style templates in source control."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee810349675f4acf", "name": "Insecure pattern 'node_child_process' in next.config.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in next.config.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-df0e6fdac2360d7b", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/layout.tsx:73", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/layout.tsx:73"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28c4a04bd807da0c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "appleboy/ssh-action@v1.2.0 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ddd7ea44f05f42e", "name": "Very large file: src/adventure/v2/combat/engine-pvp.ts (1658 lines)", "shortDescription": {"text": "Very large file: src/adventure/v2/combat/engine-pvp.ts (1658 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-5c83cc3aceda1fe0", "name": "Very large file: src/adventure/v2/combat/engine.ts (2083 lines)", "shortDescription": {"text": "Very large file: src/adventure/v2/combat/engine.ts (2083 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-3232c7090dfe82da", "name": "Very large file: src/adventure/battle/engine.test.ts (1655 lines)", "shortDescription": {"text": "Very large file: src/adventure/battle/engine.test.ts (1655 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-f8e7e7b87952d12a", "name": "Very large file: src/app/api/v2/dungeon/hunt/route.ts (1351 lines)", "shortDescription": {"text": "Very large file: src/app/api/v2/dungeon/hunt/route.ts (1351 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "74 tests / 561 src (ratio 0.13)."}, "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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 134 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 78 placeholder/mock markers across 46 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. 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-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-194d337d5387d6ef", "name": "Commented-code block (7 lines) in next.config.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in next.config.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-887b2e0f980447f4", "name": "Commented-code block (7 lines) in scripts/sim-ruins.ts:26", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/sim-ruins.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-d4c2d3bdd92cfac4", "name": "Commented-code block (6 lines) in scripts/optimize-images.mjs:16", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/optimize-images.mjs:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e02ff96f87d4b8e", "name": "Commented-code block (5 lines) in scripts/sim-v2-power-gate.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/sim-v2-power-gate.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-0de0e1c84bec25fc", "name": "Commented-code block (6 lines) in scripts/sim-v2-progression.ts:19", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/sim-v2-progression.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-aa5b3ff92cc649d8", "name": "Commented-code block (8 lines) in scripts/sim-v2-proficiency.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/sim-v2-proficiency.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-1d6d49bdfd2948f8", "name": "Commented-code block (6 lines) in scripts/sim-v2-exp-pacing.ts:190", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/sim-v2-exp-pacing.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-a71a2f88f38bbe07", "name": "Commented-code block (6 lines) in public/sw.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in public/sw.js: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-f46e6eb39bc01913", "name": "Commented-code block (7 lines) in src/adventure/starterSaves.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in src/adventure/starterSaves.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-6f7ffe45e847ffa6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2CodexView.tsx:137", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2CodexView.tsx:137"}, "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-cb38d13a5429ffbf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/FishingLeaderboardPanel.tsx:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/FishingLeaderboardPanel.tsx:6"}, "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-58835649ce8b58c1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useTreasureShop.ts:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useTreasureShop.ts:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b47ed32ac6fecb9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2DungeonList.tsx:55", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2DungeonList.tsx:55"}, "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-31e55eb802a501b0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/TreasureCollectionPanel.tsx:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/TreasureCollectionPanel.tsx:30"}, "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-93606d18697e44fe", "name": "Commented-code block (5 lines) in src/adventure/v2/GameClientBoundary.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/v2/GameClientBoundary.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-a0dd0d578fe10b04", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2AdventureHome.tsx:118", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2AdventureHome.tsx:118"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a450e5452bd6cc8", "name": "Commented-code block (5 lines) in src/adventure/v2/V2WarView.tsx:12", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/v2/V2WarView.tsx: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-2e15dacc7fb41cd8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useFishing.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useFishing.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-54e3c2815af8f34b", "name": "Commented-code block (5 lines) in src/adventure/v2/stamina.ts:43", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/v2/stamina.ts:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1fbad1d0116d5ea9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useFishingShop.ts:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useFishingShop.ts:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-25cbe69381d1b5f7", "name": "Commented-code block (5 lines) in src/adventure/v2/GameChrome.tsx:109", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/v2/GameChrome.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-a678c72816a62aac", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useTreasureLeaderboard.ts:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useTreasureLeaderboard.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-d3bf0e4b5c45dfb4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2MarketplaceView.tsx:177", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2MarketplaceView.tsx:177"}, "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-a3bf186ec480ca5d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useFishingLeaderboard.ts:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useFishingLeaderboard.ts:18"}, "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-bbfaa19e942be050", "name": "Commented-code block (5 lines) in src/adventure/v2/V2ClassGrid.tsx:23", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/v2/V2ClassGrid.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-f95eab43d1097c83", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/TreasureShopPanel.tsx:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/TreasureShopPanel.tsx:6"}, "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-0f05f9a9b3e28f3c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2CharacterScreen.tsx:118", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2CharacterScreen.tsx:118"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b42d9b2c2759f986", "name": "Commented-code block (5 lines) in src/adventure/v2/ContinentMap.tsx:92", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/v2/ContinentMap.tsx:92"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c2595d7eeffc8a06", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/OutpostView.tsx:111", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/OutpostView.tsx:111"}, "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-08cca03cd7b0cfa7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2NotificationsView.tsx:137", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2NotificationsView.tsx:137"}, "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-9875d39b3da948db", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/FishingShopPanel.tsx:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/FishingShopPanel.tsx:6"}, "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-49f479a48e0abc73", "name": "Commented-code block (5 lines) in src/adventure/v2/V2ItemCard.tsx:29", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/v2/V2ItemCard.tsx:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f0ba767ae0499f4", "name": "Commented-code block (5 lines) in src/adventure/v2/V2SettingsMenu.tsx:21", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/v2/V2SettingsMenu.tsx:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3eba57592e13813b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/coop/useCoopBossState.ts:100", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/coop/useCoopBossState.ts:100"}, "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-4bda49669c12273e", "name": "Commented-code block (8 lines) in src/adventure/v2/combat/monsterGold.ts:10", "shortDescription": {"text": "Commented-code block (8 lines) in src/adventure/v2/combat/monsterGold.ts: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-01caacdd4843405f", "name": "Commented-code block (5 lines) in src/adventure/v2/combat/hpIntegerGuard.test.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/v2/combat/hpIntegerGuard.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-1398782f98cee435", "name": "Commented-code block (5 lines) in src/adventure/v2/combat/engine.enemyPhase.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/v2/combat/engine.enemyPhase.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-c87d909c9a957fae", "name": "Legacy-named symbol `resolveBattlePvPLegacy` in src/adventure/v2/combat/engine-pvp.ts:1514", "shortDescription": {"text": "Legacy-named symbol `resolveBattlePvPLegacy` in src/adventure/v2/combat/engine-pvp.ts:1514"}, "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-16f64c7cb1217c51", "name": "Commented-code block (10 lines) in src/adventure/v2/combat/engine-pvp.ts:4", "shortDescription": {"text": "Commented-code block (10 lines) in src/adventure/v2/combat/engine-pvp.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-0a241ce5568d96c9", "name": "Commented-code block (6 lines) in src/adventure/v2/combat/engine.pvpPhase.ts:363", "shortDescription": {"text": "Commented-code block (6 lines) in src/adventure/v2/combat/engine.pvpPhase.ts:363"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42ee9e042c04141a", "name": "Commented-code block (6 lines) in src/adventure/v2/combat/dotUnify.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/adventure/v2/combat/dotUnify.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-49c05f40956d23bc", "name": "Commented-code block (5 lines) in src/adventure/v2/combat/engine.damageHelpers.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/v2/combat/engine.damageHelpers.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-ca0a90cf8efe4ff4", "name": "Commented-code block (6 lines) in src/adventure/v2/combat/combatPattern.ts:120", "shortDescription": {"text": "Commented-code block (6 lines) in src/adventure/v2/combat/combatPattern.ts:120"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42a0b1cc9ae03296", "name": "Commented-code block (5 lines) in src/adventure/v2/combat/engine.playerPhase.ts:351", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/v2/combat/engine.playerPhase.ts:351"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08318d58cb9524e2", "name": "Commented-code block (6 lines) in src/adventure/v2/combat/combatShared.ts:154", "shortDescription": {"text": "Commented-code block (6 lines) in src/adventure/v2/combat/combatShared.ts:154"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eaf45389c6ad5ddf", "name": "Legacy-named symbol `resolveBattleLegacy` in src/adventure/v2/combat/engine.ts:1350", "shortDescription": {"text": "Legacy-named symbol `resolveBattleLegacy` in src/adventure/v2/combat/engine.ts:1350"}, "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-168e5a06420ba122", "name": "Commented-code block (7 lines) in src/adventure/v2/combat/engine.ts:245", "shortDescription": {"text": "Commented-code block (7 lines) in src/adventure/v2/combat/engine.ts:245"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6bed381b38fc967b", "name": "Commented-code block (6 lines) in src/adventure/inventory/equipmentInstances.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/adventure/inventory/equipmentInstances.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-7792bcaab0b2b7be", "name": "Commented-code block (5 lines) in src/adventure/fiefdom/useFiefdomServer.ts:20", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/fiefdom/useFiefdomServer.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-8894ceca25a5bae8", "name": "Legacy-named symbol `fiefdom_preview_v1` in src/adventure/fiefdom/useBuilderState.ts:35", "shortDescription": {"text": "Legacy-named symbol `fiefdom_preview_v1` in src/adventure/fiefdom/useBuilderState.ts:35"}, "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-af256c3ff334cba7", "name": "Legacy-named symbol `fiefdom_preview_v1` in src/adventure/fiefdom/builderData.ts:16", "shortDescription": {"text": "Legacy-named symbol `fiefdom_preview_v1` in src/adventure/fiefdom/builderData.ts:16"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e73a7a671aa05169", "name": "Commented-code block (5 lines) in src/adventure/fiefdom/types.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/fiefdom/types.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-a0d974f3f607cc7b", "name": "Commented-code block (7 lines) in src/adventure/fiefdom/FiefdomLiveView.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in src/adventure/fiefdom/FiefdomLiveView.tsx: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-825f6269c1ccf9b3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/marketplace/api.ts:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/marketplace/api.ts:28"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1501eab5b30c5e4d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/guild/api.ts:74", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/guild/api.ts:74"}, "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-22a3b2334b28ab6a", "name": "Commented-code block (6 lines) in src/adventure/crafting/disassemble.ts:57", "shortDescription": {"text": "Commented-code block (6 lines) in src/adventure/crafting/disassemble.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-73b9cd35826db005", "name": "Commented-code block (6 lines) in src/adventure/battle/BattleLogList.tsx:116", "shortDescription": {"text": "Commented-code block (6 lines) in src/adventure/battle/BattleLogList.tsx:116"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-27d17863327abed5", "name": "Commented-code block (6 lines) in src/adventure/battle/engine-pvp.test.ts:1023", "shortDescription": {"text": "Commented-code block (6 lines) in src/adventure/battle/engine-pvp.test.ts:1023"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-72139f888f4cc6fd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/bulletin/api.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/bulletin/api.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-d15f4c0b17c84fbb", "name": "Commented-code block (5 lines) in src/adventure/profile/useProfile.ts:49", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/profile/useProfile.ts:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-539410235043a66a", "name": "Commented-code block (5 lines) in src/adventure/profile/avatars.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/profile/avatars.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-07f20d8366b1f9d2", "name": "Commented-code block (13 lines) in src/adventure/character/apSkills.ts:336", "shortDescription": {"text": "Commented-code block (13 lines) in src/adventure/character/apSkills.ts:336"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eff8bef43f108715", "name": "Commented-code block (6 lines) in src/adventure/character/enhancement.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in src/adventure/character/enhancement.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-dab6100f5c29c6c4", "name": "Legacy-named symbol `hpLift_v1` in src/adventure/character/useCharacterState.ts:26", "shortDescription": {"text": "Legacy-named symbol `hpLift_v1` in src/adventure/character/useCharacterState.ts:26"}, "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-29798f56c0082f4a", "name": "Commented-code block (9 lines) in src/adventure/character/stance.ts:70", "shortDescription": {"text": "Commented-code block (9 lines) in src/adventure/character/stance.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-1a5c1b7a52da63bb", "name": "Commented-code block (5 lines) in src/adventure/character/enchant.ts:263", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/character/enchant.ts:263"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c8b823293f32e33", "name": "Commented-code block (5 lines) in src/adventure/character/rehydrateEquip.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/adventure/character/rehydrateEquip.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-ba8049873aa06eef", "name": "Commented-code block (5 lines) in src/components/VersionCheck.tsx:12", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/VersionCheck.tsx: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-57d9f46d3080ee97", "name": "Commented-code block (5 lines) in src/components/ChatButton.tsx:75", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/ChatButton.tsx:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d5b61641280b41dc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ChatButton.tsx:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ChatButton.tsx:18"}, "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-a71c46cd790bf81c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/chat/chatApi.ts:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/chat/chatApi.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-2266e759f3cc4c13", "name": "Commented-code block (5 lines) in src/app/api/v2/war/overview/route.ts:30", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/war/overview/route.ts:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01c1d1ce6d179f7b", "name": "Commented-code block (5 lines) in src/app/api/v2/coop/route.ts:24", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/coop/route.ts: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-fa717515e90dd394", "name": "Commented-code block (13 lines) in src/app/api/v2/coop/attack/route.ts:57", "shortDescription": {"text": "Commented-code block (13 lines) in src/app/api/v2/coop/attack/route.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9874caeddeb31bbf", "name": "Commented-code block (5 lines) in src/app/api/v2/coop/summon/route.ts:29", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/coop/summon/route.ts:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3d76d58403ebe8e", "name": "Commented-code block (13 lines) in src/app/api/v2/arena/match/route.ts:46", "shortDescription": {"text": "Commented-code block (13 lines) in src/app/api/v2/arena/match/route.ts:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24d1d07fe12b2a01", "name": "Commented-code block (6 lines) in src/app/api/v2/arena/loadout/route.ts:28", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/v2/arena/loadout/route.ts:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-447e78cb5e9ac150", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/v2/arena/history/route.ts:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/v2/arena/history/route.ts:9"}, "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-7f313e0218981dc1", "name": "Commented-code block (5 lines) in src/app/api/v2/marketplace/browse/route.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/marketplace/browse/route.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-33fd62b3d04e13ec", "name": "Commented-code block (5 lines) in src/app/api/v2/marketplace/prices/route.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/marketplace/prices/route.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4eb208b7e7e01979", "name": "Commented-code block (5 lines) in src/app/api/v2/marketplace/list/route.ts:23", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/marketplace/list/route.ts:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38dbf55b00cb2034", "name": "Legacy-named symbol `listings_v2` in src/app/api/v2/marketplace/buy/route.ts:159", "shortDescription": {"text": "Legacy-named symbol `listings_v2` in src/app/api/v2/marketplace/buy/route.ts:159"}, "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-17cdcc56aeef616b", "name": "Commented-code block (6 lines) in src/app/api/v2/marketplace/buy/route.ts:25", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/v2/marketplace/buy/route.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-1f09c936d7495f66", "name": "Commented-code block (5 lines) in src/app/api/v2/guild/role/route.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/guild/role/route.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-81db81801b003a6b", "name": "Commented-code block (8 lines) in src/app/api/v2/fishing/shop/route.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/api/v2/fishing/shop/route.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-7cb55af804040e88", "name": "Commented-code block (5 lines) in src/app/api/v2/treasure/sell/route.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/treasure/sell/route.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-0030373b05dc8e46", "name": "Commented-code block (6 lines) in src/app/api/v2/treasure/shop/route.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/v2/treasure/shop/route.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-74ba1601872714f4", "name": "Commented-code block (7 lines) in src/app/api/v2/dev/reset-me/route.ts:13", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/v2/dev/reset-me/route.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-3e7ed927e61fef31", "name": "Commented-code block (6 lines) in src/app/api/v2/me/rename/route.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/v2/me/rename/route.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-f1347a1e0e0ee01e", "name": "Commented-code block (5 lines) in src/app/api/v2/me/spec/route.ts:17", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/me/spec/route.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cec2a36d50fa9d62", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/v2/me/state/route.ts:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/v2/me/state/route.ts:92"}, "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-feafc43ed7a27be2", "name": "Commented-code block (8 lines) in src/app/api/v2/me/offline-settle/route.ts:20", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/api/v2/me/offline-settle/route.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-e8f025a26eeb1ab2", "name": "Commented-code block (10 lines) in src/app/api/v2/me/visit-outpost/route.ts:31", "shortDescription": {"text": "Commented-code block (10 lines) in src/app/api/v2/me/visit-outpost/route.ts:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b8c4bbd533d0ad3", "name": "Commented-code block (5 lines) in src/app/api/v2/me/guild/info/route.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/me/guild/info/route.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-030b2e3522c2935b", "name": "Commented-code block (5 lines) in src/app/api/v2/me/offline-hunt/route.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/me/offline-hunt/route.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-3012cf8e42853264", "name": "Commented-code block (5 lines) in src/app/api/v2/me/enhance/route.ts:29", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/me/enhance/route.ts:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d7ef3e69a800b6a", "name": "Commented-code block (7 lines) in src/app/api/v2/me/class-element/route.ts:184", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/v2/me/class-element/route.ts:184"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6d1d25ccdf49d63", "name": "Commented-code block (8 lines) in src/app/api/v2/me/advance-class/route.ts:35", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/api/v2/me/advance-class/route.ts:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1028b1f403b978ea", "name": "Commented-code block (5 lines) in src/app/api/v2/me/temple-reset/route.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/me/temple-reset/route.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-5a73c0ba5f4de14f", "name": "Commented-code block (5 lines) in src/app/api/v2/cron/war-season-rollover/route.ts:15", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/cron/war-season-rollover/route.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e7754f76c5c131f5", "name": "Commented-code block (6 lines) in src/app/api/v2/cron/npc-attacks/route.ts:26", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/v2/cron/npc-attacks/route.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-e0cf5fe17859615f", "name": "Commented-code block (5 lines) in src/app/api/v2/cron/marketplace-expire/route.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/cron/marketplace-expire/route.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-3711efb4058dd15b", "name": "Commented-code block (5 lines) in src/app/api/v2/shop/equipment/sell-bulk/route.ts:10", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/shop/equipment/sell-bulk/route.ts: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-4c25c47eae87d6f8", "name": "Commented-code block (6 lines) in src/app/api/v2/outpost/attacks/route.ts:18", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/v2/outpost/attacks/route.ts:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-abc14b22716f4690", "name": "Commented-code block (5 lines) in src/app/api/v2/outpost/eject/route.ts:37", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/v2/outpost/eject/route.ts: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-e104f201d2bf7b7a", "name": "Commented-code block (10 lines) in src/app/api/v2/outpost/claim/route.ts:90", "shortDescription": {"text": "Commented-code block (10 lines) in src/app/api/v2/outpost/claim/route.ts: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-f889e7ff5f8cd3f1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/v2/outpost/claim/route.ts:461", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/v2/outpost/claim/route.ts:461"}, "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-6cd20b91576a57a6", "name": "Commented-code block (7 lines) in src/app/api/v2/outpost/treasury/claim/route.ts:18", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/v2/outpost/treasury/claim/route.ts:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d646e9700a4a40a", "name": "Commented-code block (9 lines) in src/app/api/v2/dungeon/hunt/route.ts:137", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/api/v2/dungeon/hunt/route.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-e049fc3590400719", "name": "Commented-code block (6 lines) in src/app/api/v2/training/spar/route.ts:21", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/v2/training/spar/route.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-628575764a3d0249", "name": "Commented-code block (8 lines) in src/app/api/marketplace/inbox/claim/route.ts:38", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/api/marketplace/inbox/claim/route.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-9a20edd1d4e94d19", "name": "Commented-code block (7 lines) in src/app/api/save/route.ts:40", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/save/route.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-7530eaca1fb1f9dc", "name": "Commented-code block (7 lines) in src/app/api/feed/route.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/feed/route.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-fb014e6c17c0c6b2", "name": "Commented-code block (5 lines) in src/app/api/admin/v2-grant/route.ts:38", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/admin/v2-grant/route.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-bc43dfd41ae8e2d5", "name": "Commented-code block (7 lines) in src/app/api/cron/guilds-cleanup/route.ts:12", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/cron/guilds-cleanup/route.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aef1989419287c0b", "name": "Commented-code block (5 lines) in src/app/api/profile/by-name/route.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/profile/by-name/route.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-a347447bd10faf3a", "name": "Commented-code block (6 lines) in src/app/api/profile/setup/route.ts:25", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/profile/setup/route.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-a220513a131414c9", "name": "Commented-code block (5 lines) in src/app/admin/fiefdom-preview/page.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/admin/fiefdom-preview/page.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-de692d13ef0f621e", "name": "Commented-code block (5 lines) in src/app/create/CreateCharacterFlow.tsx:21", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/create/CreateCharacterFlow.tsx:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-97ee43879d937ba6", "name": "Commented-code block (5 lines) in src/app/(game)/layout.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(game)/layout.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-22625084dfc71bfa", "name": "Commented-code block (5 lines) in src/app/(game)/character/[name]/page.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(game)/character/[name]/page.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-d354042c0c7d90a7", "name": "Commented-code block (5 lines) in src/lib/paragon.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/paragon.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-90b3eca40e6ce5a2", "name": "Commented-code block (6 lines) in src/lib/notifications.ts:19", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/notifications.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-8518423b01810c07", "name": "Commented-code block (15 lines) in src/lib/leveling.ts:1", "shortDescription": {"text": "Commented-code block (15 lines) in src/lib/leveling.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-fc522453811cfe53", "name": "Commented-code block (5 lines) in src/lib/useFocusTrap.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/useFocusTrap.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-29a259421721b6bd", "name": "Commented-code block (7 lines) in src/lib/server/v2QuestContext.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/server/v2QuestContext.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-3feba1933967a9d5", "name": "Commented-code block (5 lines) in src/lib/server/v2Notifications.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/server/v2Notifications.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-e0de76ee377baa3e", "name": "Commented-code block (7 lines) in src/lib/server/derivePlayerCombatV2.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/server/derivePlayerCombatV2.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-762cc252decd1ca1", "name": "Commented-code block (7 lines) in src/lib/server/huntCooldown.test.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/server/huntCooldown.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-9015b3e9b3326840", "name": "Commented-code block (5 lines) in src/lib/server/huntRoute.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/server/huntRoute.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-f1a0171c3acf3d2d", "name": "Commented-code block (5 lines) in src/lib/server/v2Coop.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/server/v2Coop.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-bde1baa09b5bea11", "name": "Commented-code block (6 lines) in src/lib/server/arena.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/server/arena.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-a13470276f32519b", "name": "Commented-code block (6 lines) in src/lib/server/inboxPayload.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/server/inboxPayload.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-73fbec1059a98a72", "name": "Commented-code block (6 lines) in src/lib/server/serverFeed.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/server/serverFeed.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7427a37da2b32125", "name": "Commented-code block (8 lines) in src/lib/server/ensureUser.ts:8", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/server/ensureUser.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-cfc72f4f2625d2b8", "name": "Commented-code block (6 lines) in src/lib/server/war/season.ts:24", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/server/war/season.ts: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-196198ad8d26d288", "name": "Commented-code block (7 lines) in src/lib/storage/MultiTabGuard.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/storage/MultiTabGuard.tsx: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-9fef4ee807b2c5a5", "name": "Commented-code block (5 lines) in src/lib/storage/SaveProvider.tsx:83", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/storage/SaveProvider.tsx: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-928933b921423f2e", "name": "Commented-code block (5 lines) in src/lib/storage/remote.ts:21", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/storage/remote.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-deee8a1cfb388608", "name": "Legacy-named symbol `marketplace_listings_v2` in src/db/schema.ts:382", "shortDescription": {"text": "Legacy-named symbol `marketplace_listings_v2` in src/db/schema.ts:382"}, "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-9eacdbca6598b966", "name": "Commented-code block (5 lines) in src/db/schema.ts:18", "shortDescription": {"text": "Commented-code block (5 lines) in src/db/schema.ts:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad1f2c0971b89ce0", "name": "10 env vars used in code but missing from .env.example", "shortDescription": {"text": "10 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `BUILD_ID`, `CI`, `CRON_SECRET`, `LEVEL`, `LEVELS`, `NEXT_PUBLIC_BUILD_ID`, `NODE_ENV`, `TRIALS` + 2 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}}]}}, "automationDetails": {"id": "repobility/19133"}, "properties": {"repository": "sea9401/test-adventure", "repoUrl": "https://github.com/sea9401/test-adventure", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-804ec549facc422e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-enhance.ts:113"}, "properties": {"repobilityId": "64525d9e0479e5eb", "scanner": "scanner-primary", "fingerprint": "804ec549facc422e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41c554d753ab51a5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-ruins.ts:98"}, "properties": {"repobilityId": "b553b1c459afd92b", "scanner": "scanner-primary", "fingerprint": "41c554d753ab51a5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b90e086d1499476c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-spec.ts:222"}, "properties": {"repobilityId": "4f4073cfcb5cc601", "scanner": "scanner-primary", "fingerprint": "b90e086d1499476c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2d05792cf2750f26", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-power-gate.ts:173"}, "properties": {"repobilityId": "bb1c407a8f006226", "scanner": "scanner-primary", "fingerprint": "2d05792cf2750f26", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-012fa406ea76466c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-progression.ts:380"}, "properties": {"repobilityId": "941e23778ba289e4", "scanner": "scanner-primary", "fingerprint": "012fa406ea76466c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-947471ec5dc07ecc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-pvp-weapon.ts:124"}, "properties": {"repobilityId": "4510ece49d1ba513", "scanner": "scanner-primary", "fingerprint": "947471ec5dc07ecc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f06efc4cc916661d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-equip-drops.ts:145"}, "properties": {"repobilityId": "278e0439d8a733e4", "scanner": "scanner-primary", "fingerprint": "f06efc4cc916661d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0b67fa4ca7c892c7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-starter-field.ts:95"}, "properties": {"repobilityId": "7a9a5a17436f4b0f", "scanner": "scanner-primary", "fingerprint": "0b67fa4ca7c892c7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-36f3e87ac0aa1238", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-proficiency.ts:213"}, "properties": {"repobilityId": "7e8c80025d35e92e", "scanner": "scanner-primary", "fingerprint": "36f3e87ac0aa1238", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-237720b78fc32bb3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sim-v2-exp-pacing.ts:139"}, "properties": {"repobilityId": "5cd8cc4c6a134bbe", "scanner": "scanner-primary", "fingerprint": "237720b78fc32bb3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5d0123c98cdc31fb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2CraftView.tsx:459"}, "properties": {"repobilityId": "f257a83af9094bc2", "scanner": "scanner-primary", "fingerprint": "5d0123c98cdc31fb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-92ac57e14ae216a6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2CodexView.tsx:321"}, "properties": {"repobilityId": "c823500a1821068c", "scanner": "scanner-primary", "fingerprint": "92ac57e14ae216a6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1b4eaa12ad679010", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2QuestView.tsx:292"}, "properties": {"repobilityId": "f57ef68ff73d9aad", "scanner": "scanner-primary", "fingerprint": "1b4eaa12ad679010", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c3ed1ad1980a8dad", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ArenaLoadoutTab.tsx:165"}, "properties": {"repobilityId": "cd6d2127ccd1d9de", "scanner": "scanner-primary", "fingerprint": "c3ed1ad1980a8dad", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0d89f4d7629d8fb4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2AnnouncementsPanel.tsx:79"}, "properties": {"repobilityId": "4f28705fd1d35481", "scanner": "scanner-primary", "fingerprint": "0d89f4d7629d8fb4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-de92f0b21ea9cd7e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2DungeonList.tsx:129"}, "properties": {"repobilityId": "62ddda6a90c78d52", "scanner": "scanner-primary", "fingerprint": "de92f0b21ea9cd7e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-657a54320205d01c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2InventoryView.tsx:670"}, "properties": {"repobilityId": "b7587e25482f9bc9", "scanner": "scanner-primary", "fingerprint": "657a54320205d01c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7741b69463f7e0c1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2WarView.tsx:203"}, "properties": {"repobilityId": "0f9e3f4318b5a876", "scanner": "scanner-primary", "fingerprint": "7741b69463f7e0c1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-098bc917adafbfb4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2GuildHome.tsx:333"}, "properties": {"repobilityId": "4599963b934b6765", "scanner": "scanner-primary", "fingerprint": "098bc917adafbfb4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-11d141f4baf44b11", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/PlayerStatusCard.tsx:58"}, "properties": {"repobilityId": "16993a5669269a0d", "scanner": "scanner-primary", "fingerprint": "11d141f4baf44b11", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d5dbd1b1778c714b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2TopBar.tsx:44"}, "properties": {"repobilityId": "563f89ed4fd16eb2", "scanner": "scanner-primary", "fingerprint": "d5dbd1b1778c714b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1bb97245ca9708bc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/GuideQuestBanner.tsx:60"}, "properties": {"repobilityId": "ac7ce9ab51ae4f95", "scanner": "scanner-primary", "fingerprint": "1bb97245ca9708bc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-918476c04b04fbcd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ArenaView.tsx:407"}, "properties": {"repobilityId": "8fd31158455b7e6c", "scanner": "scanner-primary", "fingerprint": "918476c04b04fbcd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-347b2a2ce4cf03f3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ClassGrid.tsx:255"}, "properties": {"repobilityId": "ac9a265dac6c2f2c", "scanner": "scanner-primary", "fingerprint": "347b2a2ce4cf03f3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-039001fdef889d34", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/IntruderPanel.tsx:131"}, "properties": {"repobilityId": "718faad36263aaf8", "scanner": "scanner-primary", "fingerprint": "039001fdef889d34", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-946a6c28c8aeceb8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/ContinentMap.tsx:991"}, "properties": {"repobilityId": "7d055897ee25bf79", "scanner": "scanner-primary", "fingerprint": "946a6c28c8aeceb8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-464cc1f0c523ea3e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/OutpostAttackLog.tsx:142"}, "properties": {"repobilityId": "3913b9379ef82656", "scanner": "scanner-primary", "fingerprint": "464cc1f0c523ea3e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cfa79fd42fb071c1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ShopView.tsx:616"}, "properties": {"repobilityId": "87dc20ddd823c8bf", "scanner": "scanner-primary", "fingerprint": "cfa79fd42fb071c1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1cd8287ee560d5b3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ArenaRankingTab.tsx:101"}, "properties": {"repobilityId": "c50a58d2385a8314", "scanner": "scanner-primary", "fingerprint": "1cd8287ee560d5b3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2757591af54d1f2a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2SkillLearnView.tsx:171"}, "properties": {"repobilityId": "8ad3d27a544c6dbb", "scanner": "scanner-primary", "fingerprint": "2757591af54d1f2a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a408a1f21d29b699", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2CombatPatternView.tsx:290"}, "properties": {"repobilityId": "69c26c5191564af6", "scanner": "scanner-primary", "fingerprint": "a408a1f21d29b699", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-28f70e9d21e6d86a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/TreasureLeaderboardView.tsx:99"}, "properties": {"repobilityId": "8648aaddbf27e3d3", "scanner": "scanner-primary", "fingerprint": "28f70e9d21e6d86a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2f451cf8eadb783f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/V2ItemCard.tsx:294"}, "properties": {"repobilityId": "a93a683152c77702", "scanner": "scanner-primary", "fingerprint": "2f451cf8eadb783f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dec9cd9bbeffc197", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/v2/coop/V2CoopBossDetailView.tsx:299"}, "properties": {"repobilityId": "1fc96cdf8a459492", "scanner": "scanner-primary", "fingerprint": "dec9cd9bbeffc197", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2738e6015c671877", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/guild/GuildBrowsePanel.tsx:154"}, "properties": {"repobilityId": "5acc9a44cd9caaa5", "scanner": "scanner-primary", "fingerprint": "2738e6015c671877", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-750b43e14699d17e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/battle/BattleScene.tsx:80"}, "properties": {"repobilityId": "146e227862ae99da", "scanner": "scanner-primary", "fingerprint": "750b43e14699d17e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7d57d68c2a670481", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/bulletin/PostListRow.tsx:55"}, "properties": {"repobilityId": "8bccaeea073fa586", "scanner": "scanner-primary", "fingerprint": "7d57d68c2a670481", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9f64e9d1d28e6052", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/bulletin/PostDetailPage.tsx:75"}, "properties": {"repobilityId": "54f199803199202a", "scanner": "scanner-primary", "fingerprint": "9f64e9d1d28e6052", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dec8a01ab75ef7c1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/profile/AvatarPicker.tsx:149"}, "properties": {"repobilityId": "3a5dd4d97d8b9ca7", "scanner": "scanner-primary", "fingerprint": "dec8a01ab75ef7c1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e8cf78f8431973df", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/adventure/rankings/RankingsView.tsx:239"}, "properties": {"repobilityId": "37b8012a10a08119", "scanner": "scanner-primary", "fingerprint": "e8cf78f8431973df", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d4afb9d649ca060f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ui/EntryCard.tsx:32"}, "properties": {"repobilityId": "e2df333d80e26c1e", "scanner": "scanner-primary", "fingerprint": "d4afb9d649ca060f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-21a0f79fd4a8ce53", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/layout.tsx:73"}, "properties": {"repobilityId": "0d72350965068f5b", "scanner": "scanner-primary", "fingerprint": "21a0f79fd4a8ce53", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2468efc7f56f6395", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/dev/growth-shrine/page.tsx:39"}, "properties": {"repobilityId": "a3e1b72ff4015ec0", "scanner": "scanner-primary", "fingerprint": "2468efc7f56f6395", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-39a31336da90a163", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/icons/page.tsx:161"}, "properties": {"repobilityId": "501a651b0cd51ff7", "scanner": "scanner-primary", "fingerprint": "39a31336da90a163", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-564b45d270cf0238", "level": "error", "message": {"text": "Runtime dotenv file present in repo: .env.production"}, "properties": {"repobilityId": "da3016501941bee3", "scanner": "scanner-primary", "fingerprint": "564b45d270cf0238", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["secrets", "config", "env-file", "runtime-env"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".env.production"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ee810349675f4acf", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in next.config.ts:2"}, "properties": {"repobilityId": "a3a25c0d08e89bbc", "scanner": "scanner-primary", "fingerprint": "ee810349675f4acf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "next.config.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-df0e6fdac2360d7b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/layout.tsx:73"}, "properties": {"repobilityId": "0bca654fa2052eb0", "scanner": "scanner-primary", "fingerprint": "df0e6fdac2360d7b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/layout.tsx"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "30dc547e5dfa0d7e", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-6ddd7ea44f05f42e", "level": "note", "message": {"text": "Very large file: src/adventure/v2/combat/engine-pvp.ts (1658 lines)"}, "properties": {"repobilityId": "7f7940210cc2282b", "scanner": "scanner-primary", "fingerprint": "6ddd7ea44f05f42e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5c83cc3aceda1fe0", "level": "note", "message": {"text": "Very large file: src/adventure/v2/combat/engine.ts (2083 lines)"}, "properties": {"repobilityId": "6c24972717b2d55f", "scanner": "scanner-primary", "fingerprint": "5c83cc3aceda1fe0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3232c7090dfe82da", "level": "note", "message": {"text": "Very large file: src/adventure/battle/engine.test.ts (1655 lines)"}, "properties": {"repobilityId": "65223ed2a76d3ea1", "scanner": "scanner-primary", "fingerprint": "3232c7090dfe82da", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f8e7e7b87952d12a", "level": "note", "message": {"text": "Very large file: src/app/api/v2/dungeon/hunt/route.ts (1351 lines)"}, "properties": {"repobilityId": "a0341778c27743e0", "scanner": "scanner-primary", "fingerprint": "f8e7e7b87952d12a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "426be8a8667d88bc", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "e5280c2a07ef0fdf", "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": "958156ebee7c87fa", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "d91d01b58ea73853", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "5700fa2202554531", "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": "3363a66f1ee8e850", "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": "991c515ce82f9d4e", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-194d337d5387d6ef", "level": "none", "message": {"text": "Commented-code block (7 lines) in next.config.ts:4"}, "properties": {"repobilityId": "cf0211ac051d4b04", "scanner": "scanner-primary", "fingerprint": "194d337d5387d6ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-887b2e0f980447f4", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/sim-ruins.ts:26"}, "properties": {"repobilityId": "c76744cbd4967934", "scanner": "scanner-primary", "fingerprint": "887b2e0f980447f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4c2d3bdd92cfac4", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/optimize-images.mjs:16"}, "properties": {"repobilityId": "e24506b8289f0b06", "scanner": "scanner-primary", "fingerprint": "d4c2d3bdd92cfac4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e02ff96f87d4b8e", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/sim-v2-power-gate.ts:4"}, "properties": {"repobilityId": "6b8060b99580a510", "scanner": "scanner-primary", "fingerprint": "6e02ff96f87d4b8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0de0e1c84bec25fc", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/sim-v2-progression.ts:19"}, "properties": {"repobilityId": "7160bc085dde1c70", "scanner": "scanner-primary", "fingerprint": "0de0e1c84bec25fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa5b3ff92cc649d8", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/sim-v2-proficiency.ts:3"}, "properties": {"repobilityId": "6768291a6bf5393b", "scanner": "scanner-primary", "fingerprint": "aa5b3ff92cc649d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d6d49bdfd2948f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/sim-v2-exp-pacing.ts:190"}, "properties": {"repobilityId": "ca890de81c7f7cb3", "scanner": "scanner-primary", "fingerprint": "1d6d49bdfd2948f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a71a2f88f38bbe07", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/sw.js:1"}, "properties": {"repobilityId": "738ea7ecd2f088d8", "scanner": "scanner-primary", "fingerprint": "a71a2f88f38bbe07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f46e6eb39bc01913", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/adventure/starterSaves.ts:8"}, "properties": {"repobilityId": "1114a30c7e1e5b18", "scanner": "scanner-primary", "fingerprint": "f46e6eb39bc01913", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f7ffe45e847ffa6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2CodexView.tsx:137"}, "properties": {"repobilityId": "51b40fc4cc0e315e", "scanner": "scanner-primary", "fingerprint": "6f7ffe45e847ffa6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cb38d13a5429ffbf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/FishingLeaderboardPanel.tsx:6"}, "properties": {"repobilityId": "f8453aa074f6e74b", "scanner": "scanner-primary", "fingerprint": "cb38d13a5429ffbf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-58835649ce8b58c1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useTreasureShop.ts:17"}, "properties": {"repobilityId": "8753550b9f735aa3", "scanner": "scanner-primary", "fingerprint": "58835649ce8b58c1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9b47ed32ac6fecb9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2DungeonList.tsx:55"}, "properties": {"repobilityId": "71dc4035e3894d2c", "scanner": "scanner-primary", "fingerprint": "9b47ed32ac6fecb9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-31e55eb802a501b0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/TreasureCollectionPanel.tsx:30"}, "properties": {"repobilityId": "9ab1dbb7386535b8", "scanner": "scanner-primary", "fingerprint": "31e55eb802a501b0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-93606d18697e44fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/v2/GameClientBoundary.tsx:13"}, "properties": {"repobilityId": "fb900b9fb133347a", "scanner": "scanner-primary", "fingerprint": "93606d18697e44fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0dd0d578fe10b04", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2AdventureHome.tsx:118"}, "properties": {"repobilityId": "3e3cbb44b8c85542", "scanner": "scanner-primary", "fingerprint": "a0dd0d578fe10b04", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8a450e5452bd6cc8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/v2/V2WarView.tsx:12"}, "properties": {"repobilityId": "392d2023fa1b3853", "scanner": "scanner-primary", "fingerprint": "8a450e5452bd6cc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e15dacc7fb41cd8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useFishing.ts:13"}, "properties": {"repobilityId": "e6ae59699c7b02aa", "scanner": "scanner-primary", "fingerprint": "2e15dacc7fb41cd8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-54e3c2815af8f34b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/v2/stamina.ts:43"}, "properties": {"repobilityId": "561555e94db64600", "scanner": "scanner-primary", "fingerprint": "54e3c2815af8f34b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fbad1d0116d5ea9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useFishingShop.ts:17"}, "properties": {"repobilityId": "5256ace512ac9cdd", "scanner": "scanner-primary", "fingerprint": "1fbad1d0116d5ea9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-25cbe69381d1b5f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/v2/GameChrome.tsx:109"}, "properties": {"repobilityId": "9c3370b0cefcb427", "scanner": "scanner-primary", "fingerprint": "25cbe69381d1b5f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a678c72816a62aac", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useTreasureLeaderboard.ts:21"}, "properties": {"repobilityId": "9bac2a61b3d0a7d1", "scanner": "scanner-primary", "fingerprint": "a678c72816a62aac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d3bf0e4b5c45dfb4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2MarketplaceView.tsx:177"}, "properties": {"repobilityId": "a2e7979656c866e9", "scanner": "scanner-primary", "fingerprint": "d3bf0e4b5c45dfb4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a3bf186ec480ca5d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/useFishingLeaderboard.ts:18"}, "properties": {"repobilityId": "589150018128e767", "scanner": "scanner-primary", "fingerprint": "a3bf186ec480ca5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bbfaa19e942be050", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/v2/V2ClassGrid.tsx:23"}, "properties": {"repobilityId": "ed54d226638dedef", "scanner": "scanner-primary", "fingerprint": "bbfaa19e942be050", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f95eab43d1097c83", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/TreasureShopPanel.tsx:6"}, "properties": {"repobilityId": "96e26da9329185d4", "scanner": "scanner-primary", "fingerprint": "f95eab43d1097c83", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0f05f9a9b3e28f3c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2CharacterScreen.tsx:118"}, "properties": {"repobilityId": "cb8c30ff5fac2fc4", "scanner": "scanner-primary", "fingerprint": "0f05f9a9b3e28f3c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b42d9b2c2759f986", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/v2/ContinentMap.tsx:92"}, "properties": {"repobilityId": "d36048a0fd37164a", "scanner": "scanner-primary", "fingerprint": "b42d9b2c2759f986", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2595d7eeffc8a06", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/OutpostView.tsx:111"}, "properties": {"repobilityId": "8bf51b023ed3d680", "scanner": "scanner-primary", "fingerprint": "c2595d7eeffc8a06", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-08cca03cd7b0cfa7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/V2NotificationsView.tsx:137"}, "properties": {"repobilityId": "dfbe7f218f812f75", "scanner": "scanner-primary", "fingerprint": "08cca03cd7b0cfa7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9875d39b3da948db", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/FishingShopPanel.tsx:6"}, "properties": {"repobilityId": "a75c9a1be56d48a2", "scanner": "scanner-primary", "fingerprint": "9875d39b3da948db", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-49f479a48e0abc73", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/v2/V2ItemCard.tsx:29"}, "properties": {"repobilityId": "1c0bcfc51da824fe", "scanner": "scanner-primary", "fingerprint": "49f479a48e0abc73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f0ba767ae0499f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/v2/V2SettingsMenu.tsx:21"}, "properties": {"repobilityId": "d009ad31ffae956f", "scanner": "scanner-primary", "fingerprint": "6f0ba767ae0499f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3eba57592e13813b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/v2/coop/useCoopBossState.ts:100"}, "properties": {"repobilityId": "7977db6745536599", "scanner": "scanner-primary", "fingerprint": "3eba57592e13813b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4bda49669c12273e", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/adventure/v2/combat/monsterGold.ts:10"}, "properties": {"repobilityId": "f5cf2c2beabbfad3", "scanner": "scanner-primary", "fingerprint": "4bda49669c12273e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01caacdd4843405f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/v2/combat/hpIntegerGuard.test.ts:3"}, "properties": {"repobilityId": "1e7ff605f8ad31a8", "scanner": "scanner-primary", "fingerprint": "01caacdd4843405f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1398782f98cee435", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/v2/combat/engine.enemyPhase.ts:19"}, "properties": {"repobilityId": "133ccfae291d0f13", "scanner": "scanner-primary", "fingerprint": "1398782f98cee435", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c87d909c9a957fae", "level": "note", "message": {"text": "Legacy-named symbol `resolveBattlePvPLegacy` in src/adventure/v2/combat/engine-pvp.ts:1514"}, "properties": {"repobilityId": "8af8db9d26d2b306", "scanner": "scanner-primary", "fingerprint": "c87d909c9a957fae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-16f64c7cb1217c51", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/adventure/v2/combat/engine-pvp.ts:4"}, "properties": {"repobilityId": "0f9a92b563990de4", "scanner": "scanner-primary", "fingerprint": "16f64c7cb1217c51", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a241ce5568d96c9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/adventure/v2/combat/engine.pvpPhase.ts:363"}, "properties": {"repobilityId": "e59b123121df0405", "scanner": "scanner-primary", "fingerprint": "0a241ce5568d96c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42ee9e042c04141a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/adventure/v2/combat/dotUnify.test.ts:1"}, "properties": {"repobilityId": "0566cbfa3c0774c6", "scanner": "scanner-primary", "fingerprint": "42ee9e042c04141a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49c05f40956d23bc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/v2/combat/engine.damageHelpers.ts:1"}, "properties": {"repobilityId": "eebb87a6c9b95a7f", "scanner": "scanner-primary", "fingerprint": "49c05f40956d23bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca0a90cf8efe4ff4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/adventure/v2/combat/combatPattern.ts:120"}, "properties": {"repobilityId": "798c5c9a7ab0e03c", "scanner": "scanner-primary", "fingerprint": "ca0a90cf8efe4ff4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42a0b1cc9ae03296", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/v2/combat/engine.playerPhase.ts:351"}, "properties": {"repobilityId": "afc11710eda3acfd", "scanner": "scanner-primary", "fingerprint": "42a0b1cc9ae03296", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08318d58cb9524e2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/adventure/v2/combat/combatShared.ts:154"}, "properties": {"repobilityId": "3a8636d6525597de", "scanner": "scanner-primary", "fingerprint": "08318d58cb9524e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eaf45389c6ad5ddf", "level": "note", "message": {"text": "Legacy-named symbol `resolveBattleLegacy` in src/adventure/v2/combat/engine.ts:1350"}, "properties": {"repobilityId": "734072429cf52bd3", "scanner": "scanner-primary", "fingerprint": "eaf45389c6ad5ddf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-168e5a06420ba122", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/adventure/v2/combat/engine.ts:245"}, "properties": {"repobilityId": "cf364edcbeecceb2", "scanner": "scanner-primary", "fingerprint": "168e5a06420ba122", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bed381b38fc967b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/adventure/inventory/equipmentInstances.ts:8"}, "properties": {"repobilityId": "0fd2f4ecf8ed7359", "scanner": "scanner-primary", "fingerprint": "6bed381b38fc967b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7792bcaab0b2b7be", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/fiefdom/useFiefdomServer.ts:20"}, "properties": {"repobilityId": "c754ae69753baed9", "scanner": "scanner-primary", "fingerprint": "7792bcaab0b2b7be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8894ceca25a5bae8", "level": "note", "message": {"text": "Legacy-named symbol `fiefdom_preview_v1` in src/adventure/fiefdom/useBuilderState.ts:35"}, "properties": {"repobilityId": "62be9a72571dd702", "scanner": "scanner-primary", "fingerprint": "8894ceca25a5bae8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-af256c3ff334cba7", "level": "note", "message": {"text": "Legacy-named symbol `fiefdom_preview_v1` in src/adventure/fiefdom/builderData.ts:16"}, "properties": {"repobilityId": "76d486df1c1bab74", "scanner": "scanner-primary", "fingerprint": "af256c3ff334cba7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e73a7a671aa05169", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/fiefdom/types.ts:1"}, "properties": {"repobilityId": "dd12e7404989e959", "scanner": "scanner-primary", "fingerprint": "e73a7a671aa05169", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0d974f3f607cc7b", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/adventure/fiefdom/FiefdomLiveView.tsx:9"}, "properties": {"repobilityId": "354119cd12a5812c", "scanner": "scanner-primary", "fingerprint": "a0d974f3f607cc7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-825f6269c1ccf9b3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/marketplace/api.ts:28"}, "properties": {"repobilityId": "723f26df43ba5bd6", "scanner": "scanner-primary", "fingerprint": "825f6269c1ccf9b3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1501eab5b30c5e4d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/guild/api.ts:74"}, "properties": {"repobilityId": "93e8abf5910ca642", "scanner": "scanner-primary", "fingerprint": "1501eab5b30c5e4d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-22a3b2334b28ab6a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/adventure/crafting/disassemble.ts:57"}, "properties": {"repobilityId": "c716ff693b58def3", "scanner": "scanner-primary", "fingerprint": "22a3b2334b28ab6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73b9cd35826db005", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/adventure/battle/BattleLogList.tsx:116"}, "properties": {"repobilityId": "14b8a8c305a07b2d", "scanner": "scanner-primary", "fingerprint": "73b9cd35826db005", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27d17863327abed5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/adventure/battle/engine-pvp.test.ts:1023"}, "properties": {"repobilityId": "26848aa49745e0f4", "scanner": "scanner-primary", "fingerprint": "27d17863327abed5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72139f888f4cc6fd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/adventure/bulletin/api.ts:13"}, "properties": {"repobilityId": "b02d7988fb76f3a7", "scanner": "scanner-primary", "fingerprint": "72139f888f4cc6fd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d15f4c0b17c84fbb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/profile/useProfile.ts:49"}, "properties": {"repobilityId": "98779c2435d274ee", "scanner": "scanner-primary", "fingerprint": "d15f4c0b17c84fbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-539410235043a66a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/profile/avatars.ts:5"}, "properties": {"repobilityId": "0c115203d0a3b401", "scanner": "scanner-primary", "fingerprint": "539410235043a66a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07f20d8366b1f9d2", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/adventure/character/apSkills.ts:336"}, "properties": {"repobilityId": "18918e93549fc9e5", "scanner": "scanner-primary", "fingerprint": "07f20d8366b1f9d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eff8bef43f108715", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/adventure/character/enhancement.ts:9"}, "properties": {"repobilityId": "167a0e7fa8645c29", "scanner": "scanner-primary", "fingerprint": "eff8bef43f108715", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dab6100f5c29c6c4", "level": "note", "message": {"text": "Legacy-named symbol `hpLift_v1` in src/adventure/character/useCharacterState.ts:26"}, "properties": {"repobilityId": "22dc6f9b89f77cb9", "scanner": "scanner-primary", "fingerprint": "dab6100f5c29c6c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-29798f56c0082f4a", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/adventure/character/stance.ts:70"}, "properties": {"repobilityId": "a2fd8cc93c60c2e7", "scanner": "scanner-primary", "fingerprint": "29798f56c0082f4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a5c1b7a52da63bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/character/enchant.ts:263"}, "properties": {"repobilityId": "02a50194686723da", "scanner": "scanner-primary", "fingerprint": "1a5c1b7a52da63bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c8b823293f32e33", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/adventure/character/rehydrateEquip.ts:3"}, "properties": {"repobilityId": "db737fa023544a88", "scanner": "scanner-primary", "fingerprint": "0c8b823293f32e33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba8049873aa06eef", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/VersionCheck.tsx:12"}, "properties": {"repobilityId": "b6c7eb3ad139ac74", "scanner": "scanner-primary", "fingerprint": "ba8049873aa06eef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57d9f46d3080ee97", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/ChatButton.tsx:75"}, "properties": {"repobilityId": "81b6a66fae519078", "scanner": "scanner-primary", "fingerprint": "57d9f46d3080ee97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5b61641280b41dc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ChatButton.tsx:18"}, "properties": {"repobilityId": "bea40682d6d39afc", "scanner": "scanner-primary", "fingerprint": "d5b61641280b41dc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a71c46cd790bf81c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/chat/chatApi.ts:21"}, "properties": {"repobilityId": "1891575eade1a9ad", "scanner": "scanner-primary", "fingerprint": "a71c46cd790bf81c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2266e759f3cc4c13", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/war/overview/route.ts:30"}, "properties": {"repobilityId": "22ca71867c185e23", "scanner": "scanner-primary", "fingerprint": "2266e759f3cc4c13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01c1d1ce6d179f7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/coop/route.ts:24"}, "properties": {"repobilityId": "dfef1ae9f44dad82", "scanner": "scanner-primary", "fingerprint": "01c1d1ce6d179f7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa717515e90dd394", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/app/api/v2/coop/attack/route.ts:57"}, "properties": {"repobilityId": "1812b86bbb9eb369", "scanner": "scanner-primary", "fingerprint": "fa717515e90dd394", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9874caeddeb31bbf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/coop/summon/route.ts:29"}, "properties": {"repobilityId": "59eb0bcb4e55d806", "scanner": "scanner-primary", "fingerprint": "9874caeddeb31bbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3d76d58403ebe8e", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/app/api/v2/arena/match/route.ts:46"}, "properties": {"repobilityId": "400b145b9e73afa3", "scanner": "scanner-primary", "fingerprint": "c3d76d58403ebe8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24d1d07fe12b2a01", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/v2/arena/loadout/route.ts:28"}, "properties": {"repobilityId": "dee61fc088e893dc", "scanner": "scanner-primary", "fingerprint": "24d1d07fe12b2a01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-447e78cb5e9ac150", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/v2/arena/history/route.ts:9"}, "properties": {"repobilityId": "2a2cfd019f1250ca", "scanner": "scanner-primary", "fingerprint": "447e78cb5e9ac150", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7f313e0218981dc1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/marketplace/browse/route.ts:11"}, "properties": {"repobilityId": "2b1451d29b6e0c7b", "scanner": "scanner-primary", "fingerprint": "7f313e0218981dc1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33fd62b3d04e13ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/marketplace/prices/route.ts:7"}, "properties": {"repobilityId": "7c7737c9dc5f2bfd", "scanner": "scanner-primary", "fingerprint": "33fd62b3d04e13ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4eb208b7e7e01979", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/marketplace/list/route.ts:23"}, "properties": {"repobilityId": "4c5794747ead3d9f", "scanner": "scanner-primary", "fingerprint": "4eb208b7e7e01979", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38dbf55b00cb2034", "level": "note", "message": {"text": "Legacy-named symbol `listings_v2` in src/app/api/v2/marketplace/buy/route.ts:159"}, "properties": {"repobilityId": "644bef36063dca77", "scanner": "scanner-primary", "fingerprint": "38dbf55b00cb2034", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-17cdcc56aeef616b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/v2/marketplace/buy/route.ts:25"}, "properties": {"repobilityId": "da64dc0a3cf0e8f2", "scanner": "scanner-primary", "fingerprint": "17cdcc56aeef616b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f09c936d7495f66", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/guild/role/route.ts:12"}, "properties": {"repobilityId": "4a7ae457d73b817f", "scanner": "scanner-primary", "fingerprint": "1f09c936d7495f66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81db81801b003a6b", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/api/v2/fishing/shop/route.ts:3"}, "properties": {"repobilityId": "3096397b5a0dd023", "scanner": "scanner-primary", "fingerprint": "81db81801b003a6b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7cb55af804040e88", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/treasure/sell/route.ts:11"}, "properties": {"repobilityId": "2b39d69deea71f24", "scanner": "scanner-primary", "fingerprint": "7cb55af804040e88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0030373b05dc8e46", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/v2/treasure/shop/route.ts:3"}, "properties": {"repobilityId": "9264b580b217a264", "scanner": "scanner-primary", "fingerprint": "0030373b05dc8e46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74ba1601872714f4", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/v2/dev/reset-me/route.ts:13"}, "properties": {"repobilityId": "0dd7b22f9befc1c3", "scanner": "scanner-primary", "fingerprint": "74ba1601872714f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e7ed927e61fef31", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/v2/me/rename/route.ts:9"}, "properties": {"repobilityId": "ef7f15ede0f4ddb1", "scanner": "scanner-primary", "fingerprint": "3e7ed927e61fef31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1347a1e0e0ee01e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/me/spec/route.ts:17"}, "properties": {"repobilityId": "44e1d72b0e55729c", "scanner": "scanner-primary", "fingerprint": "f1347a1e0e0ee01e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cec2a36d50fa9d62", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/v2/me/state/route.ts:92"}, "properties": {"repobilityId": "fb92d51da6d27d64", "scanner": "scanner-primary", "fingerprint": "cec2a36d50fa9d62", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-feafc43ed7a27be2", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/api/v2/me/offline-settle/route.ts:20"}, "properties": {"repobilityId": "328131dceaf2b056", "scanner": "scanner-primary", "fingerprint": "feafc43ed7a27be2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8f025a26eeb1ab2", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/app/api/v2/me/visit-outpost/route.ts:31"}, "properties": {"repobilityId": "7b25809539bb2fb9", "scanner": "scanner-primary", "fingerprint": "e8f025a26eeb1ab2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b8c4bbd533d0ad3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/me/guild/info/route.ts:13"}, "properties": {"repobilityId": "ba1e5a469b91904e", "scanner": "scanner-primary", "fingerprint": "9b8c4bbd533d0ad3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-030b2e3522c2935b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/me/offline-hunt/route.ts:11"}, "properties": {"repobilityId": "dec18d2b32a8abc2", "scanner": "scanner-primary", "fingerprint": "030b2e3522c2935b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3012cf8e42853264", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/me/enhance/route.ts:29"}, "properties": {"repobilityId": "ba83eb608a1a117d", "scanner": "scanner-primary", "fingerprint": "3012cf8e42853264", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d7ef3e69a800b6a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/v2/me/class-element/route.ts:184"}, "properties": {"repobilityId": "c22204d96e1b82a0", "scanner": "scanner-primary", "fingerprint": "4d7ef3e69a800b6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6d1d25ccdf49d63", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/api/v2/me/advance-class/route.ts:35"}, "properties": {"repobilityId": "bbee9d035acaafdb", "scanner": "scanner-primary", "fingerprint": "d6d1d25ccdf49d63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1028b1f403b978ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/me/temple-reset/route.ts:6"}, "properties": {"repobilityId": "f62025f4e8bddd0e", "scanner": "scanner-primary", "fingerprint": "1028b1f403b978ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a73c0ba5f4de14f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/cron/war-season-rollover/route.ts:15"}, "properties": {"repobilityId": "acc5534a57d21fd3", "scanner": "scanner-primary", "fingerprint": "5a73c0ba5f4de14f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7754f76c5c131f5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/v2/cron/npc-attacks/route.ts:26"}, "properties": {"repobilityId": "760ca01db0c7a096", "scanner": "scanner-primary", "fingerprint": "e7754f76c5c131f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0cf5fe17859615f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/cron/marketplace-expire/route.ts:14"}, "properties": {"repobilityId": "f126375bfbd6df80", "scanner": "scanner-primary", "fingerprint": "e0cf5fe17859615f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3711efb4058dd15b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/shop/equipment/sell-bulk/route.ts:10"}, "properties": {"repobilityId": "19bc94a471c5b996", "scanner": "scanner-primary", "fingerprint": "3711efb4058dd15b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c25c47eae87d6f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/v2/outpost/attacks/route.ts:18"}, "properties": {"repobilityId": "35490725b1783d3d", "scanner": "scanner-primary", "fingerprint": "4c25c47eae87d6f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abc14b22716f4690", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/v2/outpost/eject/route.ts:37"}, "properties": {"repobilityId": "8bfc16fa16bd5496", "scanner": "scanner-primary", "fingerprint": "abc14b22716f4690", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e104f201d2bf7b7a", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/app/api/v2/outpost/claim/route.ts:90"}, "properties": {"repobilityId": "63137320948bb5e4", "scanner": "scanner-primary", "fingerprint": "e104f201d2bf7b7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f889e7ff5f8cd3f1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/v2/outpost/claim/route.ts:461"}, "properties": {"repobilityId": "289192da05d468f9", "scanner": "scanner-primary", "fingerprint": "f889e7ff5f8cd3f1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6cd20b91576a57a6", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/v2/outpost/treasury/claim/route.ts:18"}, "properties": {"repobilityId": "90356443d76e5dd9", "scanner": "scanner-primary", "fingerprint": "6cd20b91576a57a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d646e9700a4a40a", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/api/v2/dungeon/hunt/route.ts:137"}, "properties": {"repobilityId": "4af73d5a74ce3d81", "scanner": "scanner-primary", "fingerprint": "5d646e9700a4a40a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e049fc3590400719", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/v2/training/spar/route.ts:21"}, "properties": {"repobilityId": "4085ec4eb6086e75", "scanner": "scanner-primary", "fingerprint": "e049fc3590400719", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-628575764a3d0249", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/api/marketplace/inbox/claim/route.ts:38"}, "properties": {"repobilityId": "a5d9b62a213ce661", "scanner": "scanner-primary", "fingerprint": "628575764a3d0249", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a20edd1d4e94d19", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/save/route.ts:40"}, "properties": {"repobilityId": "4ebf47a29ad4f7ba", "scanner": "scanner-primary", "fingerprint": "9a20edd1d4e94d19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7530eaca1fb1f9dc", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/feed/route.ts:3"}, "properties": {"repobilityId": "d8f531eb8a6de03d", "scanner": "scanner-primary", "fingerprint": "7530eaca1fb1f9dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb014e6c17c0c6b2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/admin/v2-grant/route.ts:38"}, "properties": {"repobilityId": "c3102dc54ff48ee5", "scanner": "scanner-primary", "fingerprint": "fb014e6c17c0c6b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc43dfd41ae8e2d5", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/cron/guilds-cleanup/route.ts:12"}, "properties": {"repobilityId": "988d9b4e488aeb1e", "scanner": "scanner-primary", "fingerprint": "bc43dfd41ae8e2d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aef1989419287c0b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/profile/by-name/route.ts:6"}, "properties": {"repobilityId": "2b8ebc755070aa63", "scanner": "scanner-primary", "fingerprint": "aef1989419287c0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a347447bd10faf3a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/profile/setup/route.ts:25"}, "properties": {"repobilityId": "cac2676c9bb1197e", "scanner": "scanner-primary", "fingerprint": "a347447bd10faf3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a220513a131414c9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/admin/fiefdom-preview/page.tsx:5"}, "properties": {"repobilityId": "349236ba7d488106", "scanner": "scanner-primary", "fingerprint": "a220513a131414c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de692d13ef0f621e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/create/CreateCharacterFlow.tsx:21"}, "properties": {"repobilityId": "8d6b3672a24810d4", "scanner": "scanner-primary", "fingerprint": "de692d13ef0f621e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97ee43879d937ba6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(game)/layout.tsx:3"}, "properties": {"repobilityId": "7a836800057d22c2", "scanner": "scanner-primary", "fingerprint": "97ee43879d937ba6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22625084dfc71bfa", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(game)/character/[name]/page.tsx:11"}, "properties": {"repobilityId": "66c5f5b0d4078af5", "scanner": "scanner-primary", "fingerprint": "22625084dfc71bfa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d354042c0c7d90a7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/paragon.ts:4"}, "properties": {"repobilityId": "e603de2daa83cefe", "scanner": "scanner-primary", "fingerprint": "d354042c0c7d90a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90b3eca40e6ce5a2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/notifications.ts:19"}, "properties": {"repobilityId": "ae74aa5da9502ace", "scanner": "scanner-primary", "fingerprint": "90b3eca40e6ce5a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8518423b01810c07", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/lib/leveling.ts:1"}, "properties": {"repobilityId": "0e74d104564485f2", "scanner": "scanner-primary", "fingerprint": "8518423b01810c07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc522453811cfe53", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/useFocusTrap.ts:9"}, "properties": {"repobilityId": "93849e9372d130df", "scanner": "scanner-primary", "fingerprint": "fc522453811cfe53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29a259421721b6bd", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/server/v2QuestContext.ts:1"}, "properties": {"repobilityId": "89fc147f99a57e5d", "scanner": "scanner-primary", "fingerprint": "29a259421721b6bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3feba1933967a9d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/server/v2Notifications.ts:3"}, "properties": {"repobilityId": "d0bd0308b99fd449", "scanner": "scanner-primary", "fingerprint": "3feba1933967a9d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0de76ee377baa3e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/server/derivePlayerCombatV2.ts:8"}, "properties": {"repobilityId": "7c71b0d75a29fb19", "scanner": "scanner-primary", "fingerprint": "e0de76ee377baa3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-762cc252decd1ca1", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/server/huntCooldown.test.ts:1"}, "properties": {"repobilityId": "e2e3be82e0370c44", "scanner": "scanner-primary", "fingerprint": "762cc252decd1ca1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9015b3e9b3326840", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/server/huntRoute.test.ts:1"}, "properties": {"repobilityId": "2de25fea2a11a39a", "scanner": "scanner-primary", "fingerprint": "9015b3e9b3326840", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1a0171c3acf3d2d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/server/v2Coop.ts:9"}, "properties": {"repobilityId": "0f6795753df6a9c0", "scanner": "scanner-primary", "fingerprint": "f1a0171c3acf3d2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bde1baa09b5bea11", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/server/arena.ts:3"}, "properties": {"repobilityId": "b0d45a67f5353044", "scanner": "scanner-primary", "fingerprint": "bde1baa09b5bea11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a13470276f32519b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/server/inboxPayload.ts:3"}, "properties": {"repobilityId": "007848a08b79fa68", "scanner": "scanner-primary", "fingerprint": "a13470276f32519b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73fbec1059a98a72", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/server/serverFeed.ts:7"}, "properties": {"repobilityId": "5c9246b78169ea4f", "scanner": "scanner-primary", "fingerprint": "73fbec1059a98a72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7427a37da2b32125", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/server/ensureUser.ts:8"}, "properties": {"repobilityId": "25c90f251c5fd64d", "scanner": "scanner-primary", "fingerprint": "7427a37da2b32125", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfc72f4f2625d2b8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/server/war/season.ts:24"}, "properties": {"repobilityId": "885330f305d0c9fe", "scanner": "scanner-primary", "fingerprint": "cfc72f4f2625d2b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-196198ad8d26d288", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/storage/MultiTabGuard.tsx:9"}, "properties": {"repobilityId": "d7cf269ef30554d1", "scanner": "scanner-primary", "fingerprint": "196198ad8d26d288", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9fef4ee807b2c5a5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/storage/SaveProvider.tsx:83"}, "properties": {"repobilityId": "ed4d8ef8f4a2c008", "scanner": "scanner-primary", "fingerprint": "9fef4ee807b2c5a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-928933b921423f2e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/storage/remote.ts:21"}, "properties": {"repobilityId": "20a66097062c295a", "scanner": "scanner-primary", "fingerprint": "928933b921423f2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-deee8a1cfb388608", "level": "note", "message": {"text": "Legacy-named symbol `marketplace_listings_v2` in src/db/schema.ts:382"}, "properties": {"repobilityId": "1ec0e81e0e036af3", "scanner": "scanner-primary", "fingerprint": "deee8a1cfb388608", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9eacdbca6598b966", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/db/schema.ts:18"}, "properties": {"repobilityId": "d87da16cedb01716", "scanner": "scanner-primary", "fingerprint": "9eacdbca6598b966", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad1f2c0971b89ce0", "level": "note", "message": {"text": "10 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "3bfdc60c61f1870e", "scanner": "scanner-primary", "fingerprint": "ad1f2c0971b89ce0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}