{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:01.015064Z","repo":{"ref":{"host":"github.com","owner":"MattRadars","name":"Codex-Code-Snippet-Manager"},"default_branch":"main","clone_url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager.git","html_url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager","description":"Code storage app created 100% by Claude AI from simple prompts - showcasing AI-driven development","stars":0,"forks":0,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":56368,"primary_language":"TypeScript","license_spdx":null,"created_at":"2025-07-16T01:41:33Z","pushed_at":"2025-07-20T23:28:16Z","security_policy_url":null,"distribution":{"owner_created_at":"2021-01-22T09:00:20Z","owner_type":"User","release_assets":[]}},"commit_sha":"01ce53a6005823785f13d231ac0e2dd13c81e141","profile":{"lines_by_language":{"TypeScript":4137,"SQL":45},"files_by_category":{"source":27,"config":15,"other":5,"generated":2,"binary":2,"docs":1},"source_lines":4182,"test_lines":0},"pillars":{"ai_provenance":{"score":100.0,"confidence":0.79,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":1.0,"suspected_share":0.0,"estimated_share":1.0,"ai_artifacts":0.0,"flagged_work_units":1.0,"flagged_releases":null,"style_index":0.0},"summary":"Explicit AI attribution on 100% of first-party code added; an estimated 100% including velocity signals."},"quality":{"score":41.3,"confidence":0.9,"coverage":1.0,"label":"poor","breakdown":{"complexity":26.4,"duplication":55.4,"lint":97.0,"testing":0.0,"docs":40.0,"type_safety":100.0,"process":null},"summary":"Code quality is poor: test-to-source ratio 0.00, no CI test run detected; 44% of function code in complex or long functions; 10% duplicated lines. Weakest area: testing."},"security":{"score":62.2,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":100.0,"sast":100.0,"dependencies":8.1,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is weak: 66 known vulnerabilities in 22 dependencies. Weakest area: posture."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"analyzer":"sec-registry","pillar":"security","status":"ok","tool_version":null,"metrics":{"declared":36.0,"checked":36.0,"missing":0.0,"recent":0.0,"lookup_errors":0.0},"findings":[],"evidence":[],"data":{"phantom":false},"error":null},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":35.0,"attributed_commits":33.0,"attributed_commit_share":0.9428571428571428,"effective_loc":5556.0,"attributed_loc":5556.0,"attributed_loc_share":1.0,"tools_detected":1.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 33 attributed commits, 5,556 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"01ce53a6005823785f13d231ac0e2dd13c81e141","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/01ce53a6005823785f13d231ac0e2dd13c81e141","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"ac47a75933c2e9e55571567ab53c1a9fa15745ea","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/ac47a75933c2e9e55571567ab53c1a9fa15745ea","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"bfbc8c67133cde65f2dc10a2d813def8c1fa2dbc","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/bfbc8c67133cde65f2dc10a2d813def8c1fa2dbc","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"0410e0792d9ab4ee091c83888e12fe2c29783fc9","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/0410e0792d9ab4ee091c83888e12fe2c29783fc9","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"0230ac692181e64b423041a9758fa0d5d2bd1d9c","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/0230ac692181e64b423041a9758fa0d5d2bd1d9c","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"e70b7dda047c6f26926b19f8c8ee2ffb51799b16","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/e70b7dda047c6f26926b19f8c8ee2ffb51799b16","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"e4d740226f4bde24f19bd894525a9cea6dda0416","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/e4d740226f4bde24f19bd894525a9cea6dda0416","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"35e9616f5e2d4c1f4123a6ff6d011e4f5e954017","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/35e9616f5e2d4c1f4123a6ff6d011e4f5e954017","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"883312f71f18e1d6b689094bd38652a97266838c","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/883312f71f18e1d6b689094bd38652a97266838c","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"c569c5b6b51ae97e853e8124dea6f4afcc992e59","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/c569c5b6b51ae97e853e8124dea6f4afcc992e59","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"991331f70e5f359374e02536d649b18fb5cd5350","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/991331f70e5f359374e02536d649b18fb5cd5350","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"757cc5d7774b51b284e8ce0c30785ff38081a034","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/757cc5d7774b51b284e8ce0c30785ff38081a034","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"d197da716dca910deb81a25d9a41a4f63b2f3041","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/d197da716dca910deb81a25d9a41a4f63b2f3041","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"e335341f75c7d05165ad8da9f2b882c17fee6470","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/e335341f75c7d05165ad8da9f2b882c17fee6470","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"4a0f39431c829668d9f8d796fe22190ff810c3cc","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/4a0f39431c829668d9f8d796fe22190ff810c3cc","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"03fc7271870ff5b030ad8fd5bdad217254ee92ed","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/03fc7271870ff5b030ad8fd5bdad217254ee92ed","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"d543dfb9916e533e8bd17fc0dec0dc18306c65ba","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/d543dfb9916e533e8bd17fc0dec0dc18306c65ba","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"7e11f59f19ea96c48edc54084462031cd82f71ec","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/7e11f59f19ea96c48edc54084462031cd82f71ec","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"e5d433102a2f7b61d72fc8312b7061f9dc5fcd78","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/e5d433102a2f7b61d72fc8312b7061f9dc5fcd78","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"5338a42810a3040e674470614d1a9f481bc474aa","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/5338a42810a3040e674470614d1a9f481bc474aa","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"6b606fc66804acd038892a0f3ea8929bb9aeff22","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/6b606fc66804acd038892a0f3ea8929bb9aeff22","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"424de0aed794195d5e0856fe7b9cf81cff23800f","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/424de0aed794195d5e0856fe7b9cf81cff23800f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"b62c8a0719763970d3b741a16d7b2bc0f3026614","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/b62c8a0719763970d3b741a16d7b2bc0f3026614","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"7084e230dc82a10d8f3ceb0b9325640d821a864e","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/7084e230dc82a10d8f3ceb0b9325640d821a864e","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"ce30c4cb3c17251d7a323a5e54f97c789fb96c72","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/ce30c4cb3c17251d7a323a5e54f97c789fb96c72","weight":0.9}],"data":{"attributed_loc_by_commit":{"252ae5e9d684764b3d3d38b737fa05929a601a1d":383,"56a68371c36acec22f2c8d6db2a698b97d4649ea":251,"0e9649377ec049c515c10017e46f982b6eac47b8":34,"95820d849c5f7c62b208bc0d640c310cfb0544b8":30,"3669665b3b751367ee49605e2939265fd35604ae":133,"b71fe42bfbfa25bf7a13a0da51177423ee69e6b0":58,"61ad27244f9461658361d63dd514d19bde0dd04f":247,"2e159e5d5fabe6c0bba5576522d6f40c0e96866b":0,"ce30c4cb3c17251d7a323a5e54f97c789fb96c72":155,"7084e230dc82a10d8f3ceb0b9325640d821a864e":0,"b62c8a0719763970d3b741a16d7b2bc0f3026614":0,"424de0aed794195d5e0856fe7b9cf81cff23800f":442,"6b606fc66804acd038892a0f3ea8929bb9aeff22":0,"5338a42810a3040e674470614d1a9f481bc474aa":73,"e5d433102a2f7b61d72fc8312b7061f9dc5fcd78":0,"7e11f59f19ea96c48edc54084462031cd82f71ec":55,"d543dfb9916e533e8bd17fc0dec0dc18306c65ba":754,"03fc7271870ff5b030ad8fd5bdad217254ee92ed":159,"4a0f39431c829668d9f8d796fe22190ff810c3cc":351,"e335341f75c7d05165ad8da9f2b882c17fee6470":760,"d197da716dca910deb81a25d9a41a4f63b2f3041":427,"757cc5d7774b51b284e8ce0c30785ff38081a034":0,"991331f70e5f359374e02536d649b18fb5cd5350":90,"c569c5b6b51ae97e853e8124dea6f4afcc992e59":242,"883312f71f18e1d6b689094bd38652a97266838c":129,"35e9616f5e2d4c1f4123a6ff6d011e4f5e954017":0,"e4d740226f4bde24f19bd894525a9cea6dda0416":84,"e70b7dda047c6f26926b19f8c8ee2ffb51799b16":13,"0230ac692181e64b423041a9758fa0d5d2bd1d9c":0,"0410e0792d9ab4ee091c83888e12fe2c29783fc9":98,"bfbc8c67133cde65f2dc10a2d813def8c1fa2dbc":142,"ac47a75933c2e9e55571567ab53c1a9fa15745ea":32,"01ce53a6005823785f13d231ac0e2dd13c81e141":414},"tools":{"claude-code":{"name":"Claude Code","commits":33,"loc":5556,"first_seen":1752631815,"last_seen":1753054080}},"monthly":{"2025-07":{"loc":5556,"attributed_loc":5556}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":0.0,"workflow_agents":0.0,"tools_configured":0.0},"findings":[],"evidence":[],"data":{"artifacts":[],"workflows":[],"tools":[]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":10.0,"flagged_units":1.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":5556.0,"flagged_loc":1187.0,"flagged_loc_share":0.2136429085673146,"max_loc_per_hour":848.5305798252582,"median_loc_per_hour":195.08616513253511,"pr_timed_units":0.0,"excluded_import_loc":0.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"1,187 lines of first-party code in ~1.4h (849 lines/hour, 2 commit session)","ref":"d197da716dca910deb81a25d9a41a4f63b2f3041","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/commit/d197da716dca910deb81a25d9a41a4f63b2f3041","weight":0.25455917394757743}],"data":{"flagged_loc_by_commit":{"e335341f75c7d05165ad8da9f2b882c17fee6470":760,"d197da716dca910deb81a25d9a41a4f63b2f3041":427},"excluded_import_commits":[]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":4182.0,"index":0.0,"count:narrated_steps":0.0,"per_kloc:narrated_steps":0.0,"files:narrated_steps":0.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":0.0,"per_kloc:emoji_in_code":0.0,"files:emoji_in_code":0.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":0.0,"secrets_history":0.0,"secrets_nonprod":0.0,"secrets_low_confidence":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":0.0,"findings_high":0.0,"findings_medium":0.0,"findings_low":0.0,"weighted_findings":0.0,"scanned_lines":4137.0,"parse_errors":0.0},"findings":[],"evidence":[],"data":{"rulesets":["typescript","javascript"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":22.0,"vulnerabilities":66.0,"vulns_critical":1.0,"vulns_high":34.0,"vulns_medium":25.0,"vulns_low":6.0,"vulns_unknown":0.0,"penalty":151.0},"findings":[{"rule_id":"osv/GHSA-jqcg-44mw-7w3h","severity":"critical","message":"proxy-addr@2.0.7 (npm) is affected by GHSA-jqcg-44mw-7w3h","path":"server/package-lock.json","line":null,"fingerprint":"proxy-addr@2.0.7 (npm):GHSA-jqcg-44mw-7w3h"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-3jxr-9vmj-r5cp; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-6j4f-fj2g-mc7p; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-mh99-v99m-4gvg; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-qhr7-859c-m2p7; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-rgw5-rvv9-x895; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-3jxr-9vmj-r5cp; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-6j4f-fj2g-mc7p; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-mh99-v99m-4gvg; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-qhr7-859c-m2p7; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-rgw5-rvv9-x895; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-73wf-gq98-2v4g","severity":"high","message":"browserslist@4.25.1 (npm) is affected by GHSA-73wf-gq98-2v4g","path":"client/package-lock.json","line":null,"fingerprint":"browserslist@4.25.1 (npm):GHSA-73wf-gq98-2v4g"},{"rule_id":"osv/GHSA-c83g-rgw3-j3cx","severity":"high","message":"browserslist@4.25.1 (npm) is affected by GHSA-c83g-rgw3-j3cx","path":"client/package-lock.json","line":null,"fingerprint":"browserslist@4.25.1 (npm):GHSA-c83g-rgw3-j3cx"},{"rule_id":"osv/GHSA-25h7-pfq9-p65f","severity":"high","message":"flatted@3.3.3 (npm) is affected by GHSA-25h7-pfq9-p65f; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"flatted@3.3.3 (npm):GHSA-25h7-pfq9-p65f"},{"rule_id":"osv/GHSA-rf6f-7fwh-wjgh","severity":"high","message":"flatted@3.3.3 (npm) is affected by GHSA-rf6f-7fwh-wjgh; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"flatted@3.3.3 (npm):GHSA-rf6f-7fwh-wjgh"},{"rule_id":"osv/GHSA-2883-xcg3-v3hh","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-2883-xcg3-v3hh; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-2883-xcg3-v3hh"},{"rule_id":"osv/GHSA-52cp-r559-cp3m","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-52cp-r559-cp3m; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-52cp-r559-cp3m"},{"rule_id":"osv/GHSA-5p4m-2wfm-xmqj","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-5p4m-2wfm-xmqj; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-5p4m-2wfm-xmqj"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-23c5-xmqv-rm74; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-3ppc-4f35-3m26; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-7r86-cg39-jmmj; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-7r86-cg39-jmmj"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-23c5-xmqv-rm74; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-3ppc-4f35-3m26; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-7r86-cg39-jmmj; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-7r86-cg39-jmmj"},{"rule_id":"osv/GHSA-28wg-ghj8-5hjv","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-28wg-ghj8-5hjv","path":"client/package-lock.json","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-28wg-ghj8-5hjv"},{"rule_id":"osv/GHSA-2v37-7h3g-55p8","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-2v37-7h3g-55p8","path":"client/package-lock.json","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-2v37-7h3g-55p8"},{"rule_id":"osv/GHSA-xwg4-73v4-xw9w","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-xwg4-73v4-xw9w","path":"client/package-lock.json","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-xwg4-73v4-xw9w"},{"rule_id":"osv/GHSA-c2c7-rcm5-vvqj","severity":"high","message":"picomatch@2.3.1 (npm) is affected by GHSA-c2c7-rcm5-vvqj; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"picomatch@2.3.1 (npm):GHSA-c2c7-rcm5-vvqj"},{"rule_id":"osv/GHSA-6g55-p6wh-862q","severity":"high","message":"postcss@8.5.6 (npm) is affected by GHSA-6g55-p6wh-862q","path":"client/package-lock.json","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-6g55-p6wh-862q"},{"rule_id":"osv/GHSA-r28c-9q8g-f849","severity":"high","message":"postcss@8.5.6 (npm) is affected by GHSA-r28c-9q8g-f849","path":"client/package-lock.json","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-r28c-9q8g-f849"},{"rule_id":"osv/GHSA-mw96-cpmx-2vgc","severity":"high","message":"rollup@4.45.1 (npm) is affected by GHSA-mw96-cpmx-2vgc","path":"client/package-lock.json","line":null,"fingerprint":"rollup@4.45.1 (npm):GHSA-mw96-cpmx-2vgc"},{"rule_id":"osv/GHSA-68fv-2mgg-jv7q","severity":"high","message":"source-map-js@1.2.1 (npm) is affected by GHSA-68fv-2mgg-jv7q","path":"client/package-lock.json","line":null,"fingerprint":"source-map-js@1.2.1 (npm):GHSA-68fv-2mgg-jv7q"},{"rule_id":"osv/GHSA-587h-7wmj-h5pm","severity":"high","message":"vite@5.4.19 (npm) is affected by GHSA-587h-7wmj-h5pm","path":"client/package-lock.json","line":null,"fingerprint":"vite@5.4.19 (npm):GHSA-587h-7wmj-h5pm"},{"rule_id":"osv/GHSA-27r3-jxmh-p828","severity":"high","message":"body-parser@1.20.3 (npm) is affected by GHSA-27r3-jxmh-p828","path":"server/package-lock.json","line":null,"fingerprint":"body-parser@1.20.3 (npm):GHSA-27r3-jxmh-p828"},{"rule_id":"osv/GHSA-37ch-88jc-xwx2","severity":"high","message":"path-to-regexp@0.1.12 (npm) is affected by GHSA-37ch-88jc-xwx2","path":"server/package-lock.json","line":null,"fingerprint":"path-to-regexp@0.1.12 (npm):GHSA-37ch-88jc-xwx2"},{"rule_id":"osv/GHSA-2g4f-4pwh-qvx6","severity":"medium","message":"ajv@6.12.6 (npm) is affected by GHSA-2g4f-4pwh-qvx6; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"ajv@6.12.6 (npm):GHSA-2g4f-4pwh-qvx6"},{"rule_id":"osv/GHSA-f886-m6hf-6m8v","severity":"medium","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-f886-m6hf-6m8v; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-f886-m6hf-6m8v"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-q2hr-2g5m-vwhr; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-f886-m6hf-6m8v","severity":"medium","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-f886-m6hf-6m8v; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-f886-m6hf-6m8v"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-q2hr-2g5m-vwhr; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-67mh-4wv8-2f99","severity":"medium","message":"esbuild@0.21.5 (npm) is affected by GHSA-67mh-4wv8-2f99","path":"client/package-lock.json","line":null,"fingerprint":"esbuild@0.21.5 (npm):GHSA-67mh-4wv8-2f99"},{"rule_id":"osv/GHSA-h67p-54hq-rp68","severity":"medium","message":"js-yaml@4.1.0 (npm) is affected by GHSA-h67p-54hq-rp68; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-h67p-54hq-rp68"},{"rule_id":"osv/GHSA-mh29-5h37-fv8m","severity":"medium","message":"js-yaml@4.1.0 (npm) is affected by GHSA-mh29-5h37-fv8m; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-mh29-5h37-fv8m"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@9.0.5 (npm) is affected by GHSA-g3hv-75wg-m249; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-3v7f-55p6-f55p","severity":"medium","message":"picomatch@2.3.1 (npm) is affected by GHSA-3v7f-55p6-f55p; also in server/package-lock.json","path":"client/package-lock.json","line":null,"fingerprint":"picomatch@2.3.1 (npm):GHSA-3v7f-55p6-f55p"},{"rule_id":"osv/GHSA-fxqj-rqcc-2cmp","severity":"medium","message":"postcss@8.5.6 (npm) is affected by GHSA-fxqj-rqcc-2cmp","path":"client/package-lock.json","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-fxqj-rqcc-2cmp"},{"rule_id":"osv/GHSA-qx2v-qp2m-jg93","severity":"medium","message":"postcss@8.5.6 (npm) is affected by GHSA-qx2v-qp2m-jg93","path":"client/package-lock.json","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-qx2v-qp2m-jg93"},{"rule_id":"osv/GHSA-x7hr-w5r2-h6wg","severity":"medium","message":"prismjs@1.27.0 (npm) is affected by GHSA-x7hr-w5r2-h6wg","path":"client/package-lock.json","line":null,"fingerprint":"prismjs@1.27.0 (npm):GHSA-x7hr-w5r2-h6wg"},{"rule_id":"osv/GHSA-4w7w-66w2-5vf9","severity":"medium","message":"vite@5.4.19 (npm) is affected by GHSA-4w7w-66w2-5vf9","path":"client/package-lock.json","line":null,"fingerprint":"vite@5.4.19 (npm):GHSA-4w7w-66w2-5vf9"},{"rule_id":"osv/GHSA-698v-4r3x-3vcv","severity":"medium","message":"vite@5.4.19 (npm) is affected by GHSA-698v-4r3x-3vcv","path":"client/package-lock.json","line":null,"fingerprint":"vite@5.4.19 (npm):GHSA-698v-4r3x-3vcv"},{"rule_id":"osv/GHSA-93m4-6634-74q7","severity":"medium","message":"vite@5.4.19 (npm) is affected by GHSA-93m4-6634-74q7","path":"client/package-lock.json","line":null,"fingerprint":"vite@5.4.19 (npm):GHSA-93m4-6634-74q7"},{"rule_id":"osv/GHSA-fx2h-pf6j-xcff","severity":"medium","message":"vite@5.4.19 (npm) is affected by GHSA-fx2h-pf6j-xcff","path":"client/package-lock.json","line":null,"fingerprint":"vite@5.4.19 (npm):GHSA-fx2h-pf6j-xcff"},{"rule_id":"osv/GHSA-r825-w8mm-5pxw","severity":"medium","message":"vite@5.4.19 (npm) is affected by GHSA-r825-w8mm-5pxw","path":"client/package-lock.json","line":null,"fingerprint":"vite@5.4.19 (npm):GHSA-r825-w8mm-5pxw"},{"rule_id":"osv/GHSA-rq7h-c2jc-7f22","severity":"medium","message":"vite@5.4.19 (npm) is affected by GHSA-rq7h-c2jc-7f22","path":"client/package-lock.json","line":null,"fingerprint":"vite@5.4.19 (npm):GHSA-rq7h-c2jc-7f22"},{"rule_id":"osv/GHSA-v6wh-96g9-6wx3","severity":"medium","message":"vite@5.4.19 (npm) is affected by GHSA-v6wh-96g9-6wx3","path":"client/package-lock.json","line":null,"fingerprint":"vite@5.4.19 (npm):GHSA-v6wh-96g9-6wx3"},{"rule_id":"osv/GHSA-48c2-rrv3-qjmp","severity":"medium","message":"yaml@1.10.2 (npm) is affected by GHSA-48c2-rrv3-qjmp","path":"client/package-lock.json","line":null,"fingerprint":"yaml@1.10.2 (npm):GHSA-48c2-rrv3-qjmp"},{"rule_id":"osv/GHSA-4mjr-xmp4-gh2g","severity":"medium","message":"qs@6.13.0 (npm) is affected by GHSA-4mjr-xmp4-gh2g","path":"server/package-lock.json","line":null,"fingerprint":"qs@6.13.0 (npm):GHSA-4mjr-xmp4-gh2g"},{"rule_id":"osv/GHSA-6pq8-jhm2-2vcw","severity":"medium","message":"qs@6.13.0 (npm) is affected by GHSA-6pq8-jhm2-2vcw","path":"server/package-lock.json","line":null,"fingerprint":"qs@6.13.0 (npm):GHSA-6pq8-jhm2-2vcw"},{"rule_id":"osv/GHSA-6rw7-vpxm-498p","severity":"medium","message":"qs@6.13.0 (npm) is affected by GHSA-6rw7-vpxm-498p","path":"server/package-lock.json","line":null,"fingerprint":"qs@6.13.0 (npm):GHSA-6rw7-vpxm-498p"},{"rule_id":"osv/GHSA-q8mj-m7cp-5q26","severity":"medium","message":"qs@6.13.0 (npm) is affected by GHSA-q8mj-m7cp-5q26","path":"server/package-lock.json","line":null,"fingerprint":"qs@6.13.0 (npm):GHSA-q8mj-m7cp-5q26"},{"rule_id":"osv/GHSA-4x5r-pxfx-6jf8","severity":"low","message":"@babel/core@7.28.0 (npm) is affected by GHSA-4x5r-pxfx-6jf8","path":"client/package-lock.json","line":null,"fingerprint":"@babel/core@7.28.0 (npm):GHSA-4x5r-pxfx-6jf8"},{"rule_id":"osv/GHSA-9jrq-w75r-8gcw","severity":"low","message":"vite@5.4.19 (npm) is affected by GHSA-9jrq-w75r-8gcw","path":"client/package-lock.json","line":null,"fingerprint":"vite@5.4.19 (npm):GHSA-9jrq-w75r-8gcw"},{"rule_id":"osv/GHSA-g4jq-h2w9-997c","severity":"low","message":"vite@5.4.19 (npm) is affected by GHSA-g4jq-h2w9-997c","path":"client/package-lock.json","line":null,"fingerprint":"vite@5.4.19 (npm):GHSA-g4jq-h2w9-997c"},{"rule_id":"osv/GHSA-jqfw-vq24-v9c3","severity":"low","message":"vite@5.4.19 (npm) is affected by GHSA-jqfw-vq24-v9c3","path":"client/package-lock.json","line":null,"fingerprint":"vite@5.4.19 (npm):GHSA-jqfw-vq24-v9c3"},{"rule_id":"osv/GHSA-v422-hmwv-36x6","severity":"low","message":"body-parser@1.20.3 (npm) is affected by GHSA-v422-hmwv-36x6","path":"server/package-lock.json","line":null,"fingerprint":"body-parser@1.20.3 (npm):GHSA-v422-hmwv-36x6"},{"rule_id":"osv/GHSA-w7fw-mjwx-w883","severity":"low","message":"qs@6.13.0 (npm) is affected by GHSA-w7fw-mjwx-w883","path":"server/package-lock.json","line":null,"fingerprint":"qs@6.13.0 (npm):GHSA-w7fw-mjwx-w883"}],"evidence":[],"data":{"ecosystems":["npm"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":0.0,"signed_commit_share":0.0571,"unpinned_manifests":1.0},"findings":[],"evidence":[{"kind":"posture","description":"package.json has no lockfile alongside it (unpinned dependencies)","ref":"package.json","url":null,"weight":0.3}],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":0.0,"binary_assets":0.0,"suspicious":0.0},"findings":[],"evidence":[],"data":{"signals":[],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":176.0,"function_nloc":2839.0,"mean_ccn":2.28,"p90_ccn":4.0,"complex_functions":3.0,"long_functions":7.0,"many_param_functions":0.0,"risky_nloc_share":0.4442},"findings":[],"evidence":[{"kind":"complex-function","description":"SettingsModal in client/src/components/SettingsModal.tsx: complexity 32, 319 lines","ref":"client/src/components/SettingsModal.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/SettingsModal.tsx#L37","weight":0.5333333333333333},{"kind":"complex-function","description":"Sidebar in client/src/components/Sidebar.tsx: complexity 28, 267 lines","ref":"client/src/components/Sidebar.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/Sidebar.tsx#L66","weight":0.4666666666666667},{"kind":"complex-function","description":"CodeViewer in client/src/components/CodeViewer.tsx: complexity 17, 151 lines","ref":"client/src/components/CodeViewer.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/CodeViewer.tsx#L45","weight":0.2833333333333333},{"kind":"complex-function","description":"SnippetModal in client/src/components/SnippetModal.tsx: complexity 11, 165 lines","ref":"client/src/components/SnippetModal.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/SnippetModal.tsx#L56","weight":0.18333333333333332},{"kind":"complex-function","description":"DashboardControls in client/src/components/DashboardControls.tsx: complexity 9, 148 lines","ref":"client/src/components/DashboardControls.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/DashboardControls.tsx#L64","weight":0.15},{"kind":"complex-function","description":"(anonymous) in client/src/components/SnippetGrid.tsx: complexity 8, 101 lines","ref":"client/src/components/SnippetGrid.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/SnippetGrid.tsx#L110","weight":0.13333333333333333},{"kind":"complex-function","description":"SnippetForm in client/src/components/SnippetForm.tsx: complexity 4, 110 lines","ref":"client/src/components/SnippetForm.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/SnippetForm.tsx#L57","weight":0.06666666666666667}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":3275.0,"duplicated_lines":322.0,"duplicated_share":0.0983,"files":27.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: client/src/App.tsx:26 and client/src/hooks/useSnippets.ts:121","ref":"client/src/App.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/App.tsx#L26","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: client/src/App.tsx:37 and client/src/hooks/useFilters.ts:61","ref":"client/src/App.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/App.tsx#L37","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: client/src/components/CodeViewer.tsx:14 and client/src/components/CodeViewer.tsx:189","ref":"client/src/components/CodeViewer.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/CodeViewer.tsx#L14","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: client/src/components/CodeViewer.tsx:88 and client/src/components/SnippetModal.tsx:188","ref":"client/src/components/CodeViewer.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/CodeViewer.tsx#L88","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: client/src/components/ConfirmationModal.tsx:59 and client/src/components/SnippetForm.tsx:251","ref":"client/src/components/ConfirmationModal.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/ConfirmationModal.tsx#L59","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: client/src/components/DashboardHeader.tsx:14 and client/src/components/Sidebar.tsx:87","ref":"client/src/components/DashboardHeader.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/DashboardHeader.tsx#L14","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: client/src/components/HamburgerMenu.tsx:38 and client/src/components/HamburgerMenu.tsx:63","ref":"client/src/components/HamburgerMenu.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/HamburgerMenu.tsx#L38","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: client/src/components/MainContent.tsx:83 and client/src/components/SnippetModal.tsx:339","ref":"client/src/components/MainContent.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/MainContent.tsx#L83","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: client/src/components/SettingsModal.tsx:250 and client/src/components/SettingsModal.tsx:319","ref":"client/src/components/SettingsModal.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/SettingsModal.tsx#L250","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: client/src/components/Sidebar.tsx:156 and client/src/components/Sidebar.tsx:184","ref":"client/src/components/Sidebar.tsx","url":"https://github.com/MattRadars/Codex-Code-Snippet-Manager/blob/01ce53a6005823785f13d231ac0e2dd13c81e141/client/src/components/Sidebar.tsx#L156","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":2.0,"weighted_findings":0.5,"scanned_lines":4137.0,"category:correctness":2.0},"findings":[{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"client/src/components/SettingsModal.tsx","line":290,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:client/src/components/SettingsModal.tsx:290"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"client/src/components/SettingsModal.tsx","line":290,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:client/src/components/SettingsModal.tsx:290"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":0.0,"check:test_ratio":0.0,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":0.0,"test_lines":0.0,"source_lines":4182.0,"test_ratio":0.0,"ci_files":0.0,"cochange_share":0.0,"cochange_commits":26.0},"findings":[],"evidence":[],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":0.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":218.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":1.0,"check:low_escape_density":1.0,"escapes":0.0,"escapes_per_kloc":0.0},"findings":[],"evidence":[{"kind":"typing","description":"TypeScript strict type checking: client/tsconfig.json","ref":"client/tsconfig.json","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"x-blame","pillar":"ai_provenance","status":"ok","tool_version":"git-blame","metrics":{"ai_lines":4182.0,"other_lines":0.0,"files_blamed":27.0,"blame_failures":0.0,"quality:ai_findings":2.0,"quality:ai_per_kloc":0.478,"quality:other_findings":0.0,"security:ai_findings":0.0,"security:ai_per_kloc":0.0,"security:other_findings":0.0},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":false},"error":null}],"flags":["unreviewed-ai-risk"]}