{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-4+qual-2+sec-2","generated_at":"2026-11-14T00:00:10.741785Z","repo":{"ref":{"host":"github.com","owner":"vllm-project","name":"vllm-dashboard"},"default_branch":"main","clone_url":"https://github.com/vllm-project/vllm-dashboard.git","html_url":"https://github.com/vllm-project/vllm-dashboard","description":null,"stars":20,"forks":23,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":5211,"primary_language":"TypeScript","license_spdx":null,"created_at":"2026-04-28T06:06:59Z","pushed_at":"2026-11-13T23:23:49Z","security_policy_url":null,"distribution":{"owner_created_at":"2023-06-18T14:54:57Z","owner_type":"Organization","release_assets":[]}},"commit_sha":"72ec4a1228aee4085bb282350e035432e76f8841","profile":{"lines_by_language":{"TypeScript":58292,"Python":45232,"SQL":2018,"JavaScript":866,"Shell":368},"files_by_category":{"source":331,"test":126,"other":59,"docs":32,"config":21,"generated":4,"binary":4},"source_lines":71196,"test_lines":35580},"pillars":{"ai_provenance":{"score":58.6,"confidence":0.95,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":0.5858,"suspected_share":0.0243,"estimated_share":0.5858,"ai_artifacts":0.0,"flagged_work_units":7.0,"flagged_releases":null},"summary":"Explicit AI attribution on 59% of first-party code added; an estimated 59% including velocity signals."},"quality":{"score":68.5,"confidence":0.9,"coverage":1.0,"label":"adequate","breakdown":{"complexity":41.9,"duplication":67.9,"lint":77.2,"testing":90.0,"docs":40.0,"type_safety":100.0,"process":null},"summary":"Code quality is adequate: test-to-source ratio 0.50, CI runs tests; 29% of function code in complex or long functions; 6% duplicated lines. Weakest area: docs."},"security":{"score":76.7,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":96.7,"sast":94.2,"dependencies":46.5,"ci_actions":98.0,"posture":20.0,"scorecard":null},"summary":"Security posture is adequate: 23 known vulnerabilities in 7 dependencies; 6 high-severity SAST findings. 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":29.0,"checked":29.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":300.0,"attributed_commits":193.0,"attributed_commit_share":0.6433333333333333,"effective_loc":131056.0,"attributed_loc":76768.0,"attributed_loc_share":0.5857648638749847,"tools_detected":2.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 155 attributed commits, 65,207 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"OpenAI Codex: 38 attributed commits, 11,561 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"72ec4a1228aee4085bb282350e035432e76f8841","url":"https://github.com/vllm-project/vllm-dashboard/commit/72ec4a1228aee4085bb282350e035432e76f8841","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"d309bbdb4249471af5b96201c1ad33fa3a54cd79","url":"https://github.com/vllm-project/vllm-dashboard/commit/d309bbdb4249471af5b96201c1ad33fa3a54cd79","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"9cf55dbe487060855dcd1442f141e6d5d247fd1f","url":"https://github.com/vllm-project/vllm-dashboard/commit/9cf55dbe487060855dcd1442f141e6d5d247fd1f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"dba284f8f3eb4d41fd4d6637f3a4677f7cd23fe7","url":"https://github.com/vllm-project/vllm-dashboard/commit/dba284f8f3eb4d41fd4d6637f3a4677f7cd23fe7","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"108f978466cd4c0e30c435e044897804bfc3cdf8","url":"https://github.com/vllm-project/vllm-dashboard/commit/108f978466cd4c0e30c435e044897804bfc3cdf8","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"4cfb3a164dac2a6583aa9729541034bdfdccbf3e","url":"https://github.com/vllm-project/vllm-dashboard/commit/4cfb3a164dac2a6583aa9729541034bdfdccbf3e","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"416525dd36b41c42c3652797b28cd2f15fb5f5b2","url":"https://github.com/vllm-project/vllm-dashboard/commit/416525dd36b41c42c3652797b28cd2f15fb5f5b2","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"0da170d976201cbe931ed0be41a505c99a864155","url":"https://github.com/vllm-project/vllm-dashboard/commit/0da170d976201cbe931ed0be41a505c99a864155","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"3cfc8f65950383ed9aa9cd52d8c5a7390e5ccc53","url":"https://github.com/vllm-project/vllm-dashboard/commit/3cfc8f65950383ed9aa9cd52d8c5a7390e5ccc53","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"cc57f03eedbeb6a6c8216a3d724a2f36154ec7d3","url":"https://github.com/vllm-project/vllm-dashboard/commit/cc57f03eedbeb6a6c8216a3d724a2f36154ec7d3","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"0271d0eb6bfae3e29a3a48915b8239add2e124ad","url":"https://github.com/vllm-project/vllm-dashboard/commit/0271d0eb6bfae3e29a3a48915b8239add2e124ad","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"71bb329d1c0249ced95d6b3a4fdf15dfdce642e4","url":"https://github.com/vllm-project/vllm-dashboard/commit/71bb329d1c0249ced95d6b3a4fdf15dfdce642e4","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"f709f5b7e61b413bcf807460ae7beacd997fa698","url":"https://github.com/vllm-project/vllm-dashboard/commit/f709f5b7e61b413bcf807460ae7beacd997fa698","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"1affdc1a16de16d21d20a05d74329e538b13904f","url":"https://github.com/vllm-project/vllm-dashboard/commit/1affdc1a16de16d21d20a05d74329e538b13904f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"2340029e800397782030d4ca05a530f2761243b8","url":"https://github.com/vllm-project/vllm-dashboard/commit/2340029e800397782030d4ca05a530f2761243b8","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"e3b248d3c80f84d5efd7019c3a7afc4481a02ae6","url":"https://github.com/vllm-project/vllm-dashboard/commit/e3b248d3c80f84d5efd7019c3a7afc4481a02ae6","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"170831a07e2a7b46ecdb69def2b2a1141473f4d2","url":"https://github.com/vllm-project/vllm-dashboard/commit/170831a07e2a7b46ecdb69def2b2a1141473f4d2","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"2aa6dc393c9fce121019a453c7ff529b06bf5032","url":"https://github.com/vllm-project/vllm-dashboard/commit/2aa6dc393c9fce121019a453c7ff529b06bf5032","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"79d76ee1c779a8acf386b5904221a7da700fe335","url":"https://github.com/vllm-project/vllm-dashboard/commit/79d76ee1c779a8acf386b5904221a7da700fe335","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"2ef4cf6066762089bc69dd1837e4b3d73a3213e2","url":"https://github.com/vllm-project/vllm-dashboard/commit/2ef4cf6066762089bc69dd1837e4b3d73a3213e2","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"79dbfc326b441cbffeb307291118150e31d6fa53","url":"https://github.com/vllm-project/vllm-dashboard/commit/79dbfc326b441cbffeb307291118150e31d6fa53","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"3b6cf0adafbd30449b6d12c3ea974163a6ce9250","url":"https://github.com/vllm-project/vllm-dashboard/commit/3b6cf0adafbd30449b6d12c3ea974163a6ce9250","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"7899ee45917ad1e9d6490bbd1ab6b43241eed8e8","url":"https://github.com/vllm-project/vllm-dashboard/commit/7899ee45917ad1e9d6490bbd1ab6b43241eed8e8","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"1602d249c5071a0c803d4fdc61e8382eabc1aa48","url":"https://github.com/vllm-project/vllm-dashboard/commit/1602d249c5071a0c803d4fdc61e8382eabc1aa48","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"20185d7b92db5a2e5fd58f3c3c99f582baf81df8","url":"https://github.com/vllm-project/vllm-dashboard/commit/20185d7b92db5a2e5fd58f3c3c99f582baf81df8","weight":0.9}],"data":{"attributed_loc_by_commit":{"e71e77cadff1f8f82be35603ab58f90b880da2f3":6842,"95ae556e20fa60fead98355ed346297b4ee5c2fc":1,"dd3c119cffbeb61baf2d13f055660c664fe756f7":1,"92ad736be95e2d3bb6647c6b4bc00da06792ca8f":18,"4b119335c0188e2ed529716ffc952978c54465db":223,"420ea44b8d5b5cb9446ec0e88758536423796768":158,"92dc546bc93cd16765c010c55ee3b8dd6c63b85c":986,"57fd7382438ba339f36c28a02c02a0f467387c9e":69,"0ebfb89207d230a7ff436e780b08a8f5279a4c44":193,"1f182f7807282fde3b35539d073cf421e9b5e222":13,"0a660ccec561c49c53a4d2c2061ce881012ead8f":349,"f4a805aacb5404c1802a442ce74e77017b413f32":11,"ba29599527bc40390ae838e0cd35cef5aa13f484":68,"f7507a9dfae3453f44abb7c4845303779aadd86c":2,"cf218f434f264982869cf631f5c0361d3aa760c7":22,"a481902006ec47b02ea15490755658e681ad339a":5,"d385f2c737b82a9d96212bc19701e9e4936d90e6":326,"c1c85dcd968a7727f9ef17e315d2f15b8f656672":50,"8fcaf5c0dd65a096e62e046afeaf8f362d7a568a":56,"1c62aae39304d1c29a58608eda829ec1830a3e46":51,"3b54ae8b9c180b9a70e9aff8f88286bca170f621":13,"50be8d78aa1dfcaefddf9f29752ae340de53214f":1,"e055614ffa3d3b3f93241bea32e56f3e93a95a41":22,"67827b8b8d1c4e97b766a271a4eaa0cc91e43bc4":763,"1357c2351da9003b055452e75317e1436516de0f":34,"38f47c3b189a0307c700959daf479a340d9ef0b4":153,"5c1e91519cf369b0471dd7521bd38dc2fafd528f":23,"364af971415255804e442e9994e57a469dde5a41":67,"a30316cf0c1a6ef27eb26a06138b1949732e7a29":8,"47adce911a55049895da994cc619759502991418":250,"60d2cf697287d96a00c7f37618d7cfd529abda8b":15,"a22d2537a2e94c3b2dc7f3f3b94e8814cf434f89":2,"570595dad0ae12666b9ffe01a7161772caedfa5b":6,"4126ae3c8b76fc655e1dd2165301d735f998d7a4":24,"c5ab500db21503eb7731cdbbe0baee0b368769b0":26,"448e66c2ca4220a180625670cd8708982f46fc58":14,"726e3d8f33fc2abbcdc4713cd00487698dbd6869":32,"169e537e54adf2707f6a68a643da626c48485d38":71,"ae8001c9ed414737feec855266253fbb02453be3":303,"99fe15bb4bbbbf5fae6a56c5ba752f5b05abd500":0,"b2f7c6fac5c2b64a14076d2c686f9d8aa3fb78b1":384,"595e48045c236d0f2aeca2046d8b6fbdd1245aa9":2,"741d4a9244018c9a6d3753ee3c39cddabcef5491":84,"8d1f94c68a3ddc93a134ad05d9afe12ba659b5c4":548,"0f36f29eeedb8050df72fa0cdd26de2f37ab4f6d":128,"b6941d5c745308d126abd0e576d9e85a6bec6202":169,"83732c8e3287a30495e70a532d2af5602085fbda":667,"1a661bb8324caa5308623fdc11c665ca6085fdf5":12,"f2880daf66e52575f6787f8a7c19e268131d277e":162,"d4f5d25f39f0f9147392646137cf9482793867f1":0,"9389d2e8df06d55fd3f978f54b63f3a1654911f4":919,"5e9f94006d86946191a0325dfc6afca9949558e5":796,"c06959cdbf2f687a46a23239442a0a600168f638":50,"4e21385c2848b671570427c8a218f5b467b1a6ec":130,"c5608ff9249582c6119bc943a6fe1414b4d919b7":612,"6f373fcc1489af3bbd7bbe971d7ad5c74652844e":1,"cdd4e9511500282c8cb540f67a8993bdf8542ec0":1,"e32a4586e8eeccda4d6d955882ec3981bb0a8101":458,"9e5b02a228446799320112c75ebe32a50eb870c4":32,"f845418e968c08328b6817830c35620a25a34800":129,"b9492c66e419195844e6e3a6999fa84db011dcc5":106,"86a900b17def51cd15e36f1682fa1f2f99a3853b":16,"b6830fcdeab3d81dbc318814ffa3e31db89888f8":87,"64498b0a1b75fafe34644b2d813db17091e30e1f":34,"5cd9d12d01ebfa87167f1a5057dba22a8f232d56":10,"236cea4ac221d39ad77331754becd5fe0fa2efa0":0,"81782d4e775d947ac14c748a400da746549e37ad":29,"da4e3cdaab95ed30bd96444d50a766aadd2fae72":166,"93a5ebca4fa18068eb918f141907da89f6e3de6c":23,"5ae1244b137dd19117e2c6b2ea355769d78565c7":116,"7f33b940151a1b4066773f0b8be1fa261748de05":676,"d7e0b131fecad204aafad5dcce5fd689104ad0cf":1248,"fbab5b4ce582d90964a6c7ad501eecd1cd26c45f":75,"dddd9341174f504ba8edc0134089e7697535d0c2":50,"358ee7c9309fc0e50a0ab1e7f3133548c771ca51":411,"48df5ac6b7fb658e839e2584838092fb4e9a3c4a":402,"2accd8170733099bc19fa8b9e618531389f0bce8":145,"c0011337656b5bcecaa6c858fed3edf669cc55d9":8,"6444778005436ae35c5ac3e97628960cb510ce7f":806,"91913587d1a11a53491f017403f549a667b858a1":203,"55d02048d2b2db6b42721868751928da6f180ece":18,"d5013f4804dee2dc82b5720b469b2af0f8378923":323,"6f584f7f4825c96bcd07d23bd310d1a7a0c06d6d":123,"fa63359b7c346822a690f4542b943074fdaac245":92,"ab99ba97499449d78145f3e8a501154ba138c425":477,"20b4b1a1d32d2c1a9be35644137942d5e67acbc7":17,"2af8fd72863e386220d0e0caaf08f1c6ffc87feb":110,"7a61ec879565798f9a001c06b26672ec70d8dc27":646,"957f6e659c46baff93aa1b9c5337276d37ae138f":242,"c9d03ea61a905e1bcddd3b339650b2ecfa40b4e1":391,"d8ff09d10c7cb94f4cc5eac2992fab146a25ac98":82,"f72af92ed408eda2c310cf0ce1fd034c4ba3a848":627,"9687a81768761a2ea9d3dab394d122ed7a6a9089":331,"e3f6010022a84a9c227ac75cc86c6131f881ca11":66,"adf34c3ef04633271bb2d2314e2bfaa41270ab3f":0,"21b2e92f763ccb4142f54e6a55ef1846ef4c4fd2":217,"6b43ddbb336fa015ffdd5aae0ac69581b749fc4f":38,"708f0c913576b6928a4f54ab518cdbb5d1685c91":48,"94ac3c1e189d1f5f431abb94c6047b234c28d41d":16,"ce17efc419a25379cb1328719e8be56b2ad83c87":11,"57a3833c10996dcbd05e2fc9d829c20788143c87":52,"339db2783cb33521e14f57c9b0c99f4100b5d2bb":367,"77e630618cab60889449e4000c5101a6a8ad97a4":0,"b6a17d2cf4c8401db761a40d343df302c7d5f294":110,"4ba4d63a2fc84fa5f280466ea62370d84b74c427":1610,"8185a1360dc3e18b36da29e72dbe271ba5f02061":7,"ff2cb2d857e89528e23f986d7f95a5eaba0a1852":391,"94e8e9f48996d9d32757a058e7aebf373c811c33":74,"0de85e333770137f8811eed4a622690d68f4cc2a":195,"e4f44cdec1d1b5d03443a64c8584d2b56748c092":133,"724b181fa4ed3007f8653c4d295fb15c73107284":233,"a16cc95f9d4a1b4e398144fd7df1913fcd33a059":238,"30877bab7bb98fab3110ffc4128c0703616337d1":133,"e9569bf9edfdb06acf8cb7971cca5880474cf63a":104,"e0abadfc59fc506bef03925e2019ec8d14552756":3881,"025f9706c9652c88e1221ca430833ff84de81083":112,"c8d386101f8d7a4f68ac1ceb709e06e8af9ffa9e":221,"19236066fc4718ec4c6e8a7eea368f5fdc41c4c3":7,"8b322ace5bc791e60a4a21fe61127f434e3970aa":9,"189879028171d879a5fa5c6cadbcf91fb4e4b340":1604,"492ffc5cf0e2114432355f95833b4410835adf62":67,"3d55a7e3aa3a209a0c13ead903a69eade1a423e0":40,"e64ec7ae0f8cb6a7795f34061e71a5bf8a08e14a":376,"82e9acc1500cbd2e2a1f41ef430a220f6d84cf44":23,"7c621cfd49ea8416cd28e70b3c8cc03632ad017c":67,"502a2cb3de7963e42121cee15721897df02d25b4":20,"d22188aa6fcd826e3b262c4a8b3d786490d79525":105,"ec58b0f104e5c0e13c8b7e5addceb39ea5c48da3":676,"6b57ca26fc1779ef30843790b1db440a890b6db6":8,"7c9fe9a9cd9ef721ed015423433f09f197e82ea8":1216,"01fe0c381991da0074f0887a3146de917d4f4e9c":1097,"9e833b6aea9b18f0c6ce1e52eb9e477c4254a1d9":752,"482a042f536d3a1eab9f26d02b05519ce3b5f848":584,"62a9b5218e8f2893ef54888ccaed3444e73533ef":398,"b43e74169fcb337c1b1d8f69e660964b060c0d39":1114,"8ebcc9ab09b56d1d5af9eab752bd70902dc39a6e":59,"15089e8344c61286b2b88f6b6ea6a511e17f4736":1451,"f5a6fcb7ac10d8849cd395d3e84c703130235f36":110,"1b5420911b425107be3fe4f604b1f5baf41a1c05":125,"0495431d9bc73ef0f121a8f741883d8957614ee5":1134,"225159d1afcdee6ab383cf0f8ffb086acd5409c8":1594,"de4f7dfb0746545a7ecdb6deab0368d10cebdfda":1777,"030324da9836cddfaf3554c0fc9e577ae9521caa":187,"3982b68a7aa878b97857752706865e4cf104f051":115,"81a8f03566c0b2f37800e472f4c043761737d2a7":129,"0fb9ed951604a5cdff18dd60fa84cecf4cac7a3b":71,"f8be25688643480cfa0aaabe372ece4f625dbe0e":85,"95f5afe6e523f497b9c1f4eae5db310925f1d5c6":1324,"a82bf6a648372fb452610f630e7a0fbb4ac00ce8":1349,"7f3225c2e20c3927608d06311adfc2a8141fefce":70,"71144fd0e139da48f50af324374fa4338cb850f4":116,"8d58214aaebea47b6aa22982ea0a73508b314a5a":109,"ca6cb0592353c6817bb80d422e0cb6a07c2efdcb":101,"c2e2bb9f43eaca6369f41fb7693e83d7c4edbec5":313,"bfcedfad526f167ea5a5ed008f3b1ace0c368e00":318,"04ffc9cf5d788e77d7e671cebe57f332ee3ae6c9":101,"12dfbd41e83f0528a2a5b9ccc9771e466458ede8":19,"d4e856b107e79f21d892c6431dc7deb483ba642c":6,"f9edbf797ae63758bbc8ef5f5c4e70cc7dd5379e":118,"2ffd3e6e6a840e29a53e31e4be876d43ca49c87d":250,"4c1e570c241f45e5266b617b234c0ad12c7e8dd6":858,"78a19d482d922311bfd17f967e15b62b094074f6":73,"4ca6973017eb2670bda01a3bbdc1262287ddc6d0":163,"559b3e929ad5605c58b4312e4a2abc2ef904368a":394,"c74f907cc125d5e2316d14d6a218f18766456319":52,"2cc675516cdb861a14abfbb33b7be87f4441bcfd":87,"68499fb82c9f91f53674acf6a75844bdb62cddad":306,"6e3b3f21734ee094a4268fe4fe055ee9aedabf22":499,"20185d7b92db5a2e5fd58f3c3c99f582baf81df8":107,"1602d249c5071a0c803d4fdc61e8382eabc1aa48":91,"7899ee45917ad1e9d6490bbd1ab6b43241eed8e8":239,"3b6cf0adafbd30449b6d12c3ea974163a6ce9250":4,"79dbfc326b441cbffeb307291118150e31d6fa53":140,"2ef4cf6066762089bc69dd1837e4b3d73a3213e2":78,"79d76ee1c779a8acf386b5904221a7da700fe335":153,"2aa6dc393c9fce121019a453c7ff529b06bf5032":5,"170831a07e2a7b46ecdb69def2b2a1141473f4d2":386,"e3b248d3c80f84d5efd7019c3a7afc4481a02ae6":250,"2340029e800397782030d4ca05a530f2761243b8":143,"1affdc1a16de16d21d20a05d74329e538b13904f":144,"f709f5b7e61b413bcf807460ae7beacd997fa698":51,"71bb329d1c0249ced95d6b3a4fdf15dfdce642e4":5982,"0271d0eb6bfae3e29a3a48915b8239add2e124ad":83,"cc57f03eedbeb6a6c8216a3d724a2f36154ec7d3":7944,"3cfc8f65950383ed9aa9cd52d8c5a7390e5ccc53":783,"0da170d976201cbe931ed0be41a505c99a864155":0,"416525dd36b41c42c3652797b28cd2f15fb5f5b2":1534,"4cfb3a164dac2a6583aa9729541034bdfdccbf3e":870,"108f978466cd4c0e30c435e044897804bfc3cdf8":35,"dba284f8f3eb4d41fd4d6637f3a4677f7cd23fe7":294,"9cf55dbe487060855dcd1442f141e6d5d247fd1f":1517,"d309bbdb4249471af5b96201c1ad33fa3a54cd79":331,"72ec4a1228aee4085bb282350e035432e76f8841":1076},"tools":{"claude-code":{"name":"Claude Code","commits":155,"loc":65207,"first_seen":1777356540,"last_seen":1794610280},"openai-codex":{"name":"OpenAI Codex","commits":38,"loc":11561,"first_seen":1784513614,"last_seen":1790984531}},"monthly":{"2026-04":{"loc":8394,"attributed_loc":6862},"2026-05":{"loc":6437,"attributed_loc":3666},"2026-06":{"loc":743,"attributed_loc":743},"2026-07":{"loc":3718,"attributed_loc":1146},"2026-08":{"loc":23792,"attributed_loc":7587},"2026-09":{"loc":38858,"attributed_loc":8447},"2026-10":{"loc":26184,"attributed_loc":26184},"2026-11":{"loc":22930,"attributed_loc":22133}}},"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":254.0,"flagged_units":7.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":91272.0,"flagged_loc":9471.0,"flagged_loc_share":0.10376676308177754,"max_loc_per_hour":3068.0,"median_loc_per_hour":74.50442588205959,"pr_timed_units":230.0,"excluded_import_loc":39784.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"1,534 lines of first-party code in ~0.5h (3,068 lines/hour, PR #283)","ref":"416525dd36b41c42c3652797b28cd2f15fb5f5b2","url":"https://github.com/vllm-project/vllm-dashboard/commit/416525dd36b41c42c3652797b28cd2f15fb5f5b2","weight":0.6},{"kind":"velocity-burst","description":"1,655 lines of first-party code in ~0.6h (2,885 lines/hour, PR #93)","ref":"e544b2d65781f04d1c234f1586226cf2148c61c1","url":"https://github.com/vllm-project/vllm-dashboard/commit/e544b2d65781f04d1c234f1586226cf2148c61c1","weight":0.6},{"kind":"velocity-burst","description":"1,349 lines of first-party code in ~0.5h (2,698 lines/hour, PR #239)","ref":"a82bf6a648372fb452610f630e7a0fbb4ac00ce8","url":"https://github.com/vllm-project/vllm-dashboard/commit/a82bf6a648372fb452610f630e7a0fbb4ac00ce8","weight":0.6},{"kind":"velocity-burst","description":"1,114 lines of first-party code in ~0.5h (2,228 lines/hour, PR #224)","ref":"b43e74169fcb337c1b1d8f69e660964b060c0d39","url":"https://github.com/vllm-project/vllm-dashboard/commit/b43e74169fcb337c1b1d8f69e660964b060c0d39","weight":0.6},{"kind":"velocity-burst","description":"1,076 lines of first-party code in ~0.5h (2,114 lines/hour, PR #296)","ref":"72ec4a1228aee4085bb282350e035432e76f8841","url":"https://github.com/vllm-project/vllm-dashboard/commit/72ec4a1228aee4085bb282350e035432e76f8841","weight":0.6},{"kind":"velocity-burst","description":"1,527 lines of first-party code in ~2.6h (580 lines/hour, 3 commit session)","ref":"878179d857e323f5d2005b7138ccc74150f84585","url":"https://github.com/vllm-project/vllm-dashboard/commit/878179d857e323f5d2005b7138ccc74150f84585","weight":0.1739620253164557},{"kind":"velocity-burst","description":"1,216 lines of first-party code in ~2.2h (561 lines/hour, PR #218)","ref":"7c9fe9a9cd9ef721ed015423433f09f197e82ea8","url":"https://github.com/vllm-project/vllm-dashboard/commit/7c9fe9a9cd9ef721ed015423433f09f197e82ea8","weight":0.1683260702384004}],"data":{"flagged_loc_by_commit":{"e544b2d65781f04d1c234f1586226cf2148c61c1":1655,"416525dd36b41c42c3652797b28cd2f15fb5f5b2":1534,"72ec4a1228aee4085bb282350e035432e76f8841":1076,"c7c1a90931a2e477aed91b61c479344cbb48c41f":3,"6479323689df2f08dd5b94ad110ac1fdfebbd517":1193,"878179d857e323f5d2005b7138ccc74150f84585":331,"7c9fe9a9cd9ef721ed015423433f09f197e82ea8":1216,"b43e74169fcb337c1b1d8f69e660964b060c0d39":1114,"a82bf6a648372fb452610f630e7a0fbb4ac00ce8":1349},"excluded_import_commits":["6a5688321efe676028850bb3aa09c14db010bdc2","b886b16cc7a39efe6b0c1f06bd797b76a716dbe1","cc57f03eedbeb6a6c8216a3d724a2f36154ec7d3","d6e3e4f2b651b692e27765efec80c9c52e8b05d3","e71e77cadff1f8f82be35603ab58f90b880da2f3"]},"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":71196.0,"index":0.183,"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":26.0,"per_kloc:emoji_in_code":0.365,"files:emoji_in_code":9.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":1.0,"secrets_low_confidence":0.0},"findings":[{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"src/lib/platform-scope.test.ts","line":59,"fingerprint":"src/lib/platform-scope.test.ts:generic-api-key:59"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":38.0,"findings_high":6.0,"findings_medium":28.0,"findings_low":4.0,"weighted_findings":11.75,"scanned_lines":69178.0,"parse_errors":0.0},"findings":[{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"alerting/infra.py","line":2507,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:alerting/infra.py:2507"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"alerting/postgres.py","line":379,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:alerting/postgres.py:379"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/gpu-reporter/quarantine-check-host.py","line":97,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/gpu-reporter/quarantine-check-host.py:97"},{"rule_id":"opengrep/python.lang.security.use-defused-xml","severity":"high","message":"The Python documentation recommends using `defusedxml` instead of `xml` because the native Python `xml` library is vulnerable to XML External Entity (XXE) attacks. These attacks can leak confidential data and \"XML bombs\" can cause denial of service. [confidence low]","path":"triage/extract.py","line":21,"fingerprint":"python.lang.security.use-defused-xml:triage/extract.py:21"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"triage/extract.py","line":134,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:triage/extract.py:134"},{"rule_id":"opengrep/python.lang.security.use-defused-xml","severity":"high","message":"The Python documentation recommends using `defusedxml` instead of `xml` because the native Python `xml` library is vulnerable to XML External Entity (XXE) attacks. These attacks can leak confidential data and \"XML bombs\" can cause denial of service. [confidence low]","path":"triage/relevance.py","line":24,"fingerprint":"python.lang.security.use-defused-xml:triage/relevance.py:24"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"alerting/analyzer.py","line":1249,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:alerting/analyzer.py:1249"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"alerting/fast_ci.py","line":173,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:alerting/fast_ci.py:173"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"alerting/full_ci.py","line":134,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:alerting/full_ci.py:134"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"alerting/full_ci.py","line":288,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:alerting/full_ci.py:288"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"alerting/kimi.py","line":258,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:alerting/kimi.py:258"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"alerting/main_ci_analysis.py","line":149,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:alerting/main_ci_analysis.py:149"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"alerting/slack.py","line":79,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:alerting/slack.py:79"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"scripts/gpu-reporter/gpu-reporter-k8s.py","line":444,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:scripts/gpu-reporter/gpu-reporter-k8s.py:444"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"scripts/gpu-reporter/gpu-reporter-k8s.py","line":831,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:scripts/gpu-reporter/gpu-reporter-k8s.py:831"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"scripts/gpu-reporter/gpu-reporter.py","line":619,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:scripts/gpu-reporter/gpu-reporter.py:619"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"scripts/gpu-reporter/gpu-reporter.py","line":800,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:scripts/gpu-reporter/gpu-reporter.py:800"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"scripts/gpu-reporter/quarantine-actuator-k8s.py","line":130,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:scripts/gpu-reporter/quarantine-actuator-k8s.py:130"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"scripts/gpu-reporter/quarantine-check-host.py","line":89,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:scripts/gpu-reporter/quarantine-check-host.py:89"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"scripts/gpu-reporter/quarantine-pauser-h200.py","line":86,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:scripts/gpu-reporter/quarantine-pauser-h200.py:86"},{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"src/app/eval/page.tsx","line":223,"fingerprint":"javascript.lang.security.html-in-template-string:src/app/eval/page.tsx:223"},{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"src/app/perf/benchmarks/page.tsx","line":229,"fingerprint":"javascript.lang.security.html-in-template-string:src/app/perf/benchmarks/page.tsx:229"},{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"src/app/perf/benchmarks/page.tsx","line":230,"fingerprint":"javascript.lang.security.html-in-template-string:src/app/perf/benchmarks/page.tsx:230"},{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"src/app/perf/benchmarks/page.tsx","line":232,"fingerprint":"javascript.lang.security.html-in-template-string:src/app/perf/benchmarks/page.tsx:232"},{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"src/app/perf/page.tsx","line":170,"fingerprint":"javascript.lang.security.html-in-template-string:src/app/perf/page.tsx:170"},{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"src/app/perf/page.tsx","line":171,"fingerprint":"javascript.lang.security.html-in-template-string:src/app/perf/page.tsx:171"},{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"src/app/perf/page.tsx","line":173,"fingerprint":"javascript.lang.security.html-in-template-string:src/app/perf/page.tsx:173"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `areas` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlle [confidence low]","path":"src/lib/test-areas.ts","line":239,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:src/lib/test-areas.ts:239"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `label` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlle [confidence low]","path":"src/lib/test-areas.ts","line":272,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:src/lib/test-areas.ts:272"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `flags` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlle [confidence low]","path":"src/lib/triage-rules.ts","line":80,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:src/lib/triage-rules.ts:80"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `pattern` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-control [confidence low]","path":"src/lib/triage-rules.ts","line":80,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:src/lib/triage-rules.ts:80"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"triage/github.py","line":58,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:triage/github.py:58"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"triage/maintainers.py","line":210,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:triage/maintainers.py:210"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"triage/maintainers.py","line":217,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:triage/maintainers.py:217"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-formatstring","severity":"low","message":"Detected string concatenation with a non-literal variable in a util.format / console.log function. If an attacker injects a format specifier in the string, it will forge the log message. Try to use constant values for the format string. [confidence low]","path":"src/lib/latest-test-timings.ts","line":438,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:src/lib/latest-test-timings.ts:438"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-formatstring","severity":"low","message":"Detected string concatenation with a non-literal variable in a util.format / console.log function. If an attacker injects a format specifier in the string, it will forge the log message. Try to use constant values for the format string. [confidence low]","path":"src/lib/quarantine-actions.ts","line":83,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:src/lib/quarantine-actions.ts:83"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-formatstring","severity":"low","message":"Detected string concatenation with a non-literal variable in a util.format / console.log function. If an attacker injects a format specifier in the string, it will forge the log message. Try to use constant values for the format string. [confidence low]","path":"src/lib/test-areas.ts","line":663,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:src/lib/test-areas.ts:663"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-formatstring","severity":"low","message":"Detected string concatenation with a non-literal variable in a util.format / console.log function. If an attacker injects a format specifier in the string, it will forge the log message. Try to use constant values for the format string. [confidence low]","path":"src/lib/triage-http.ts","line":44,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:src/lib/triage-http.ts:44"}],"evidence":[],"data":{"rulesets":["typescript","javascript","python","bash"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":7.0,"vulnerabilities":23.0,"vulns_critical":0.0,"vulns_high":14.0,"vulns_medium":9.0,"vulns_low":0.0,"vulns_unknown":0.0,"penalty":46.0},"findings":[{"rule_id":"osv/GHSA-8988-9cw3-xx77","severity":"high","message":"urllib3@2.7.0 (PyPI) is affected by PYSEC-2026-4175, GHSA-8988-9cw3-xx77","path":"alerting/uv.lock","line":null,"fingerprint":"urllib3@2.7.0 (PyPI):GHSA-8988-9cw3-xx77"},{"rule_id":"osv/GHSA-vxq7-64xx-v4gw","severity":"high","message":"urllib3@2.7.0 (PyPI) is affected by PYSEC-2026-4177, GHSA-vxq7-64xx-v4gw","path":"alerting/uv.lock","line":null,"fingerprint":"urllib3@2.7.0 (PyPI):GHSA-vxq7-64xx-v4gw"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-3jxr-9vmj-r5cp","path":"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","path":"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","path":"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","path":"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","path":"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@5.0.4 (npm) is affected by GHSA-3jxr-9vmj-r5cp","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.4 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@5.0.4 (npm) is affected by GHSA-6j4f-fj2g-mc7p","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.4 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@5.0.4 (npm) is affected by GHSA-mh99-v99m-4gvg","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.4 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@5.0.4 (npm) is affected by GHSA-qhr7-859c-m2p7","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.4 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@5.0.4 (npm) is affected by GHSA-rgw5-rvv9-x895","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.4 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-rf6f-7fwh-wjgh","severity":"high","message":"flatted@3.4.1 (npm) is affected by GHSA-rf6f-7fwh-wjgh","path":"package-lock.json","line":null,"fingerprint":"flatted@3.4.1 (npm):GHSA-rf6f-7fwh-wjgh"},{"rule_id":"osv/GHSA-c2c7-rcm5-vvqj","severity":"high","message":"picomatch@4.0.3 (npm) is affected by GHSA-c2c7-rcm5-vvqj","path":"package-lock.json","line":null,"fingerprint":"picomatch@4.0.3 (npm):GHSA-c2c7-rcm5-vvqj"},{"rule_id":"osv/GHSA-gh4c-6fx4-qh6g","severity":"medium","message":"urllib3@2.7.0 (PyPI) is affected by PYSEC-2026-4176, GHSA-gh4c-6fx4-qh6g","path":"alerting/uv.lock","line":null,"fingerprint":"urllib3@2.7.0 (PyPI):GHSA-gh4c-6fx4-qh6g"},{"rule_id":"osv/GHSA-p498-v437-472g","severity":"medium","message":"@humanfs/node@0.16.7 (npm) is affected by GHSA-p498-v437-472g","path":"package-lock.json","line":null,"fingerprint":"@humanfs/node@0.16.7 (npm):GHSA-p498-v437-472g"},{"rule_id":"osv/GHSA-f886-m6hf-6m8v","severity":"medium","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-f886-m6hf-6m8v","path":"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","path":"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@5.0.4 (npm) is affected by GHSA-f886-m6hf-6m8v","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.4 (npm):GHSA-f886-m6hf-6m8v"},{"rule_id":"osv/GHSA-jxxr-4gwj-5jf2","severity":"medium","message":"brace-expansion@5.0.4 (npm) is affected by GHSA-jxxr-4gwj-5jf2","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.4 (npm):GHSA-jxxr-4gwj-5jf2"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@5.0.4 (npm) is affected by GHSA-q2hr-2g5m-vwhr","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.4 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@10.2.4 (npm) is affected by GHSA-g3hv-75wg-m249","path":"package-lock.json","line":null,"fingerprint":"minimatch@10.2.4 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-3v7f-55p6-f55p","severity":"medium","message":"picomatch@4.0.3 (npm) is affected by GHSA-3v7f-55p6-f55p","path":"package-lock.json","line":null,"fingerprint":"picomatch@4.0.3 (npm):GHSA-3v7f-55p6-f55p"}],"evidence":[],"data":{"ecosystems":["PyPI","npm"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":1.0,"findings":1.0,"findings_high":0.0,"findings_medium":1.0,"findings_low":0.0,"penalty":1.2},"findings":[{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/triage.yml","line":28,"fingerprint":"artipacked:.github/workflows/triage.yml:28"}],"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":1.0,"check:lockfiles":1.0,"signed_commit_share":0.95,"unpinned_manifests":0.0},"findings":[],"evidence":[],"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":3483.0,"function_nloc":47642.0,"mean_ccn":3.64,"p90_ccn":8.0,"complex_functions":117.0,"long_functions":61.0,"many_param_functions":18.0,"risky_nloc_share":0.2898},"findings":[],"evidence":[{"kind":"complex-function","description":"QueueTraffic in src/app/queue/queue-traffic.tsx: complexity 120, 431 lines","ref":"src/app/queue/queue-traffic.tsx","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/src/app/queue/queue-traffic.tsx#L83","weight":1.0},{"kind":"complex-function","description":"plan_trigger_rules in alerting/infra.py: complexity 90, 263 lines","ref":"alerting/infra.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/infra.py#L842","weight":1.0},{"kind":"complex-function","description":"render_summary in alerting/daily_summary.py: complexity 75, 150 lines","ref":"alerting/daily_summary.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/daily_summary.py#L176","weight":1.0},{"kind":"complex-function","description":"plan_quarantine in alerting/infra.py: complexity 62, 212 lines","ref":"alerting/infra.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/infra.py#L1412","weight":1.0},{"kind":"complex-function","description":"(anonymous) in src/components/build-waterfall.tsx: complexity 59, 125 lines","ref":"src/components/build-waterfall.tsx","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/src/components/build-waterfall.tsx#L732","weight":0.9833333333333333},{"kind":"complex-function","description":"plan_infra_scan in alerting/infra.py: complexity 56, 155 lines","ref":"alerting/infra.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/infra.py#L1677","weight":0.9333333333333333},{"kind":"complex-function","description":"SampleItem in src/app/eval/page.tsx: complexity 56, 312 lines","ref":"src/app/eval/page.tsx","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/src/app/eval/page.tsx#L324","weight":0.9333333333333333},{"kind":"complex-function","description":"ItemDrawer in src/components/triage/item-drawer.tsx: complexity 44, 137 lines","ref":"src/components/triage/item-drawer.tsx","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/src/components/triage/item-drawer.tsx#L42","weight":0.7333333333333333},{"kind":"complex-function","description":"score_item in triage/scoring.py: complexity 44, 97 lines","ref":"triage/scoring.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/triage/scoring.py#L50","weight":0.7333333333333333},{"kind":"complex-function","description":"GpuDashboard in src/app/gpu/gpu-dashboard.tsx: complexity 42, 223 lines","ref":"src/app/gpu/gpu-dashboard.tsx","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/src/app/gpu/gpu-dashboard.tsx#L101","weight":0.7}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":55620.0,"duplicated_lines":3590.0,"duplicated_share":0.0645,"files":331.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: alerting/__init__.py:10 and alerting/postgres.py:12","ref":"alerting/__init__.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/__init__.py#L10","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: alerting/analyzer.py:185 and alerting/analyzer.py:198","ref":"alerting/analyzer.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/analyzer.py#L185","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: alerting/analyzer.py:292 and alerting/memory.py:992","ref":"alerting/analyzer.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/analyzer.py#L292","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: alerting/fast_ci.py:208 and alerting/memory.py:281","ref":"alerting/fast_ci.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/fast_ci.py#L208","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: alerting/fast_ci.py:511 and alerting/main_ci.py:528","ref":"alerting/fast_ci.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/fast_ci.py#L511","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: alerting/full_ci.py:358 and alerting/migration.py:204","ref":"alerting/full_ci.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/full_ci.py#L358","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: alerting/full_ci.py:373 and alerting/memory.py:396","ref":"alerting/full_ci.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/full_ci.py#L373","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: alerting/infra.py:341 and alerting/memory.py:621","ref":"alerting/infra.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/infra.py#L341","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: alerting/infra.py:362 and alerting/infra.py:571","ref":"alerting/infra.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/infra.py#L362","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: alerting/main_ci.py:404 and alerting/memory.py:488","ref":"alerting/main_ci.py","url":"https://github.com/vllm-project/vllm-dashboard/blob/72ec4a1228aee4085bb282350e035432e76f8841/alerting/main_ci.py#L404","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":138.0,"weighted_findings":71.5,"scanned_lines":69178.0,"category:best-practice":19.0,"category:correctness":118.0,"category:maintainability":1.0},"findings":[{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"alerting/full_ci.py","line":141,"fingerprint":"python.lang.best-practice.arbitrary-sleep:alerting/full_ci.py:141"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"triage/github.py","line":141,"fingerprint":"python.lang.best-practice.arbitrary-sleep:triage/github.py:141"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/daily_summary.py","line":311,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/daily_summary.py:311"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/infra.py","line":2065,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/infra.py:2065"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/infra.py","line":2077,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/infra.py:2077"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/infra.py","line":2083,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/infra.py:2083"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/infra.py","line":2121,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/infra.py:2121"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/infra.py","line":2124,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/infra.py:2124"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/job_failure_trigger.py","line":157,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/job_failure_trigger.py:157"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/selector_health.py","line":1350,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/selector_health.py:1350"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/selector_health.py","line":1355,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/selector_health.py:1355"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/selector_health.py","line":1372,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/selector_health.py:1372"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/selector_health.py","line":1393,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/selector_health.py:1393"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/selector_health.py","line":1413,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/selector_health.py:1413"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/selector_health.py","line":1416,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/selector_health.py:1416"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/selector_health.py","line":1431,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/selector_health.py:1431"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/selector_health.py","line":1433,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/selector_health.py:1433"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"alerting/selector_health.py","line":1444,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:alerting/selector_health.py:1444"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"migrations/runner.py","line":332,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:migrations/runner.py:332"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"scripts/configure-buildkite-otel.mjs","line":118,"fingerprint":"javascript.lang.correctness.no-stringify-keys:scripts/configure-buildkite-otel.mjs:118"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/gpu-reporter-k8s.py","line":640,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/gpu-reporter-k8s.py:640"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/gpu-reporter-k8s.py","line":651,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/gpu-reporter-k8s.py:651"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/gpu-reporter-k8s.py","line":659,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/gpu-reporter-k8s.py:659"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/gpu-reporter.py","line":249,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/gpu-reporter.py:249"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/gpu-reporter.py","line":278,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/gpu-reporter.py:278"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/gpu-reporter.py","line":471,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/gpu-reporter.py:471"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/gpu-reporter.py","line":480,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/gpu-reporter.py:480"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/gpu-reporter.py","line":675,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/gpu-reporter.py:675"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/gpu-reporter.py","line":678,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/gpu-reporter.py:678"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/gpu-reporter.py","line":754,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/gpu-reporter.py:754"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/gpu-reporter.py","line":755,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/gpu-reporter.py:755"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/quarantine-check-host.py","line":228,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/quarantine-check-host.py:228"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/quarantine-check-host.py","line":238,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/quarantine-check-host.py:238"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/gpu-reporter/quarantine-pauser-h200.py","line":255,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/gpu-reporter/quarantine-pauser-h200.py:255"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"src/components/build-chart.tsx","line":423,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/build-chart.tsx:423"},{"rule_id":"opengrep/javascript.lang.correctness.no-replaceall","severity":"medium","message":"The string method replaceAll is not supported in all versions of javascript, and is not supported by older browser versions. Consider using replace() with a regex as the first argument instead like mystring.replace(/bad/g, \"good\") instead of mystring.replaceAll(\"bad\", \"good\") (https://discourse.thre","path":"src/components/job-runs-chart.tsx","line":124,"fingerprint":"javascript.lang.correctness.no-replaceall:src/components/job-runs-chart.tsx:124"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"src/components/queue-traffic-charts.tsx","line":319,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/queue-traffic-charts.tsx:319"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"src/components/queue-traffic-charts.tsx","line":357,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/queue-traffic-charts.tsx:357"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"src/lib/github-build-authors.ts","line":81,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/lib/github-build-authors.ts:81"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"src/lib/github-build-authors.ts","line":94,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/lib/github-build-authors.ts:94"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"src/lib/latest-test-timings.ts","line":111,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/lib/latest-test-timings.ts:111"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"src/lib/latest-test-timings.ts","line":111,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/lib/latest-test-timings.ts:111"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"triage/backtest.py","line":390,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:triage/backtest.py:390"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_bot\" a function or an attribute? If it is a function, you may have meant item.is_bot() because item.is_bot is always true.","path":"triage/prepass.py","line":155,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:triage/prepass.py:155"},{"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":"src/app/api/builds/groups/route.ts","line":77,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/groups/route.ts:77"},{"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":"src/app/api/builds/groups/route.ts","line":77,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/groups/route.ts:77"},{"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":"src/app/api/builds/jobs/route.ts","line":98,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/jobs/route.ts:98"},{"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":"src/app/api/builds/jobs/route.ts","line":98,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/jobs/route.ts:98"},{"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":"src/app/api/builds/route.ts","line":76,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/route.ts:76"},{"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":"src/app/api/builds/route.ts","line":76,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/route.ts:76"},{"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":"src/app/api/builds/route.ts","line":83,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/route.ts:83"},{"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":"src/app/api/builds/route.ts","line":83,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/route.ts:83"},{"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":"src/app/api/builds/route.ts","line":117,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/route.ts:117"},{"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":"src/app/api/builds/route.ts","line":117,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/route.ts:117"},{"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":"src/app/api/builds/route.ts","line":213,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/route.ts:213"},{"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":"src/app/api/builds/summary/route.ts","line":63,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/summary/route.ts:63"},{"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":"src/app/api/builds/summary/route.ts","line":63,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/summary/route.ts:63"},{"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":"src/app/api/builds/summary/route.ts","line":70,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/summary/route.ts:70"},{"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":"src/app/api/builds/summary/route.ts","line":70,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/summary/route.ts:70"},{"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":"src/app/api/builds/summary/route.ts","line":105,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/summary/route.ts:105"},{"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":"src/app/api/builds/summary/route.ts","line":105,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/summary/route.ts:105"},{"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":"src/app/api/builds/summary/route.ts","line":402,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/summary/route.ts:402"},{"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":"src/app/api/builds/summary/route.ts","line":423,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/summary/route.ts:423"},{"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":"src/app/api/builds/summary/route.ts","line":423,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/builds/summary/route.ts:423"},{"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":"src/app/api/cost/route.ts","line":49,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/cost/route.ts:49"},{"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":"src/app/api/cost/route.ts","line":49,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/cost/route.ts:49"},{"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":"src/app/api/jobs/route.ts","line":68,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/jobs/route.ts:68"},{"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":"src/app/api/jobs/route.ts","line":68,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/jobs/route.ts:68"},{"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":"src/app/api/jobs/runs/route.ts","line":46,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/jobs/runs/route.ts:46"},{"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":"src/app/api/jobs/runs/route.ts","line":46,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/jobs/runs/route.ts:46"},{"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":"src/app/api/jobs/runs/route.ts","line":86,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/jobs/runs/route.ts:86"},{"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":"src/app/api/jobs/runs/route.ts","line":98,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/jobs/runs/route.ts:98"},{"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":"src/app/api/queue/route.ts","line":33,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/queue/route.ts:33"},{"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":"src/app/api/queue/route.ts","line":33,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/api/queue/route.ts:33"},{"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":"src/app/eval/page.tsx","line":224,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/eval/page.tsx:224"},{"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":"src/app/eval/page.tsx","line":224,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/eval/page.tsx:224"},{"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":"src/app/eval/page.tsx","line":225,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/eval/page.tsx:225"},{"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":"src/app/eval/page.tsx","line":225,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/eval/page.tsx:225"},{"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":"src/app/eval/page.tsx","line":226,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/eval/page.tsx:226"},{"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":"src/app/eval/page.tsx","line":226,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/eval/page.tsx:226"},{"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":"src/app/layout.tsx","line":40,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/layout.tsx:40"},{"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":"src/app/layout.tsx","line":40,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/layout.tsx:40"},{"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":"src/app/perf/benchmarks/page.tsx","line":230,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/benchmarks/page.tsx:230"},{"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":"src/app/perf/benchmarks/page.tsx","line":230,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/benchmarks/page.tsx:230"},{"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":"src/app/perf/benchmarks/page.tsx","line":230,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/benchmarks/page.tsx:230"},{"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":"src/app/perf/benchmarks/page.tsx","line":231,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/benchmarks/page.tsx:231"},{"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":"src/app/perf/benchmarks/page.tsx","line":231,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/benchmarks/page.tsx:231"},{"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":"src/app/perf/benchmarks/page.tsx","line":232,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/benchmarks/page.tsx:232"},{"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":"src/app/perf/benchmarks/page.tsx","line":232,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/benchmarks/page.tsx:232"},{"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":"src/app/perf/page.tsx","line":171,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/page.tsx:171"},{"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":"src/app/perf/page.tsx","line":171,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/page.tsx:171"},{"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":"src/app/perf/page.tsx","line":171,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/page.tsx:171"},{"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":"src/app/perf/page.tsx","line":172,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/page.tsx:172"},{"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":"src/app/perf/page.tsx","line":172,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/page.tsx:172"},{"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":"src/app/perf/page.tsx","line":173,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/page.tsx:173"},{"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":"src/app/perf/page.tsx","line":173,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/perf/page.tsx:173"},{"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":"src/app/queue/queue-traffic.tsx","line":337,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/queue/queue-traffic.tsx:337"},{"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":"src/app/queue/queue-traffic.tsx","line":337,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/queue/queue-traffic.tsx:337"},{"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":"src/app/queue/queue-traffic.tsx","line":645,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/queue/queue-traffic.tsx:645"},{"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":"src/app/queue/queue-traffic.tsx","line":645,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/queue/queue-traffic.tsx:645"},{"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":"src/app/queue/queue-traffic.tsx","line":807,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/queue/queue-traffic.tsx:807"},{"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":"src/app/queue/queue-traffic.tsx","line":807,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/app/queue/queue-traffic.tsx:807"},{"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":"src/lib/automatic-sharding-query.ts","line":29,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/automatic-sharding-query.ts:29"},{"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":"src/lib/automatic-sharding-query.ts","line":29,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/automatic-sharding-query.ts:29"},{"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":"src/lib/force-merge-stats.ts","line":37,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/force-merge-stats.ts:37"},{"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":"src/lib/force-merge-stats.ts","line":53,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/force-merge-stats.ts:53"},{"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":"src/lib/github-build-authors.ts","line":44,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/github-build-authors.ts:44"},{"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":"src/lib/github-build-authors.ts","line":44,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/github-build-authors.ts:44"},{"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":"src/lib/github-build-authors.ts","line":46,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/github-build-authors.ts:46"},{"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":"src/lib/github-build-authors.ts","line":46,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/github-build-authors.ts:46"},{"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":"src/lib/latest-test-timings-clickhouse.ts","line":31,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/latest-test-timings-clickhouse.ts:31"},{"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":"src/lib/latest-test-timings-clickhouse.ts","line":31,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/latest-test-timings-clickhouse.ts:31"},{"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":"src/lib/latest-test-timings-clickhouse.ts","line":104,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/latest-test-timings-clickhouse.ts:104"},{"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":"src/lib/latest-test-timings-clickhouse.ts","line":104,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/latest-test-timings-clickhouse.ts:104"},{"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":"src/lib/latest-test-timings-clickhouse.ts","line":140,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/latest-test-timings-clickhouse.ts:140"},{"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":"src/lib/latest-test-timings-clickhouse.ts","line":140,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/latest-test-timings-clickhouse.ts:140"},{"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":"src/lib/latest-test-timings-clickhouse.ts","line":152,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/latest-test-timings-clickhouse.ts:152"},{"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":"src/lib/latest-test-timings-clickhouse.ts","line":166,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/latest-test-timings-clickhouse.ts:166"},{"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":"src/lib/latest-test-timings-clickhouse.ts","line":166,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/latest-test-timings-clickhouse.ts:166"},{"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":"src/lib/otel-proto.ts","line":119,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/otel-proto.ts:119"},{"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":"src/lib/otel-proto.ts","line":119,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/otel-proto.ts:119"},{"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":"src/lib/perf-eval-clickhouse.ts","line":96,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:96"},{"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":"src/lib/perf-eval-clickhouse.ts","line":96,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:96"},{"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":"src/lib/perf-eval-clickhouse.ts","line":100,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:100"},{"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":"src/lib/perf-eval-clickhouse.ts","line":100,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:100"},{"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":"src/lib/perf-eval-clickhouse.ts","line":174,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:174"},{"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":"src/lib/perf-eval-clickhouse.ts","line":174,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:174"},{"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":"src/lib/perf-eval-clickhouse.ts","line":211,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:211"},{"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":"src/lib/perf-eval-clickhouse.ts","line":211,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:211"},{"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":"src/lib/perf-eval-clickhouse.ts","line":213,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:213"},{"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":"src/lib/perf-eval-clickhouse.ts","line":213,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:213"},{"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":"src/lib/perf-eval-clickhouse.ts","line":247,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:247"},{"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":"src/lib/perf-eval-clickhouse.ts","line":247,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:247"},{"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":"src/lib/perf-eval-clickhouse.ts","line":251,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:251"},{"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":"src/lib/perf-eval-clickhouse.ts","line":251,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:251"},{"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":"src/lib/perf-eval-clickhouse.ts","line":298,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:298"},{"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":"src/lib/perf-eval-clickhouse.ts","line":298,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:298"},{"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":"src/lib/perf-eval-clickhouse.ts","line":330,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:src/lib/perf-eval-clickhouse.ts:330"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.9995,"check:ci_present":1.0,"check:ci_runs_tests":1.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":35580.0,"source_lines":71196.0,"test_ratio":0.4997,"ci_files":1.0,"cochange_share":0.5979,"cochange_commits":281.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/triage.yml","ref":".github/workflows/triage.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI runs tests (pytest)","ref":null,"url":null,"weight":0.0}],"data":{"test_commands":["pytest"],"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":264.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":328.0,"escapes_per_kloc":4.828},"findings":[],"evidence":[{"kind":"typing","description":"Python strict type checking: alerting/pyproject.toml","ref":"alerting/pyproject.toml","url":null,"weight":0.0},{"kind":"typing","description":"TypeScript strict type checking: tsconfig.json","ref":"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":45397.0,"other_lines":25799.0,"files_blamed":331.0,"blame_failures":0.0,"quality:ai_findings":117.0,"quality:ai_per_kloc":2.577,"quality:other_findings":21.0,"quality:other_per_kloc":0.814,"quality:ratio":3.17,"security:ai_findings":26.0,"security:ai_per_kloc":0.573,"security:other_findings":12.0,"security:other_per_kloc":0.465,"security:ratio":1.23},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":true},"error":null}],"flags":[]}