{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T15:32:50.717996Z","repo":{"ref":{"host":"github.com","owner":"Eugeny","name":"tabby"},"default_branch":"master","clone_url":"https://github.com/Eugeny/tabby.git","html_url":"https://github.com/Eugeny/tabby","description":"A terminal for a more modern age","stars":75433,"forks":4347,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":100050,"primary_language":"TypeScript","license_spdx":"MIT","created_at":"2016-12-23T09:06:10Z","pushed_at":"2026-11-13T04:03:23Z","security_policy_url":null,"distribution":{"owner_created_at":"2009-12-03T17:12:54Z","owner_type":"User","release_assets":[{"name":"tabby-1.0.238-linux-arm64.pacman","size":112041456,"download_count":390,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-arm64.pacman"},{"name":"latest-arm64-linux-arm64.yml","size":1358,"download_count":832,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/latest-arm64-linux-arm64.yml"},{"name":"tabby-1.0.238-portable-arm64.zip","size":184261614,"download_count":1246,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-portable-arm64.zip"},{"name":"tabby-1.0.238-linux-armv7l.pacman","size":116559804,"download_count":234,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-armv7l.pacman"},{"name":"latest-armv7l-linux-arm.yml","size":1366,"download_count":232,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/latest-armv7l-linux-arm.yml"},{"name":"tabby-1.0.238-setup-arm64.exe","size":150590024,"download_count":6835,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-setup-arm64.exe"},{"name":"tabby-1.0.238-setup-arm64.exe.blockmap","size":158188,"download_count":395,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-setup-arm64.exe.blockmap"},{"name":"latest-arm64.yml","size":357,"download_count":683,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/latest-arm64.yml"},{"name":"tabby-1.0.238-linux-x64.pacman","size":117117196,"download_count":707,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-x64.pacman"},{"name":"latest-x64-linux.yml","size":1342,"download_count":593,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/latest-x64-linux.yml"},{"name":"tabby-1.0.238-portable-x64.zip","size":185884613,"download_count":10987,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-portable-x64.zip"},{"name":"tabby-1.0.238-setup-x64.exe","size":169744184,"download_count":71683,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-setup-x64.exe"},{"name":"tabby-1.0.238-setup-x64.exe.blockmap","size":179731,"download_count":489,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-setup-x64.exe.blockmap"},{"name":"latest-x64.yml","size":353,"download_count":1122,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/latest-x64.yml"},{"name":"tabby-1.0.238-linux-armv7l.AppImage","size":165589059,"download_count":313,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-armv7l.AppImage"},{"name":"tabby-1.0.238-linux-arm64.AppImage","size":169287060,"download_count":852,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-arm64.AppImage"},{"name":"tabby-1.0.238-linux-x64.AppImage","size":168153321,"download_count":2081,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-x64.AppImage"},{"name":"tabby-1.0.238-linux-armv7l.deb","size":128403336,"download_count":576,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-armv7l.deb"},{"name":"tabby-1.0.238-linux-x64.deb","size":130349456,"download_count":12493,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-x64.deb"},{"name":"tabby-1.0.238-linux-arm64.deb","size":125550188,"download_count":2792,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-arm64.deb"},{"name":"tabby-1.0.238-linux-armv7l.rpm","size":112602113,"download_count":243,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-armv7l.rpm"},{"name":"tabby-1.0.238-linux-armv7l.tar.gz","size":158095256,"download_count":425,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-armv7l.tar.gz"},{"name":"tabby-1.0.238-linux-arm64.tar.gz","size":159821007,"download_count":600,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-arm64.tar.gz"},{"name":"tabby-1.0.238-linux-x64.rpm","size":113337069,"download_count":2191,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-x64.rpm"},{"name":"tabby-1.0.238-linux-arm64.rpm","size":108328641,"download_count":608,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-arm64.rpm"},{"name":"tabby-1.0.238-linux-x64.tar.gz","size":159098403,"download_count":958,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-x64.tar.gz"},{"name":"tabby-1.0.238-macos-x86_64.dmg","size":168689034,"download_count":4155,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-macos-x86_64.dmg"},{"name":"tabby-1.0.238-macos-x86_64.dmg.blockmap","size":177605,"download_count":231,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-macos-x86_64.dmg.blockmap"},{"name":"tabby-1.0.238-macos-x86_64.zip","size":163103385,"download_count":2194,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-macos-x86_64.zip"},{"name":"latest-x86_64-mac.yml","size":661,"download_count":13260,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/latest-x86_64-mac.yml"},{"name":"tabby-1.0.238-macos-arm64.dmg","size":162632008,"download_count":12367,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-macos-arm64.dmg"},{"name":"tabby-1.0.238-macos-arm64.dmg.blockmap","size":170950,"download_count":246,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-macos-arm64.dmg.blockmap"},{"name":"tabby-1.0.238-macos-arm64.zip","size":157072503,"download_count":21852,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-macos-arm64.zip"},{"name":"latest-arm64-mac.yml","size":657,"download_count":103745,"release_tag":"v1.0.238","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/latest-arm64-mac.yml"},{"name":"tabby-1.0.237-linux-arm64.AppImage","size":169279056,"download_count":313,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-arm64.AppImage"},{"name":"tabby-1.0.237-linux-x64.AppImage","size":168141130,"download_count":930,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-x64.AppImage"},{"name":"tabby-1.0.237-linux-armv7l.AppImage","size":165580919,"download_count":93,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-armv7l.AppImage"},{"name":"tabby-1.0.237-linux-x64.deb","size":130343632,"download_count":4785,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-x64.deb"},{"name":"tabby-1.0.237-linux-armv7l.deb","size":128397196,"download_count":173,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-armv7l.deb"},{"name":"tabby-1.0.237-macos-x86_64.dmg.blockmap","size":176749,"download_count":79,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-macos-x86_64.dmg.blockmap"},{"name":"tabby-1.0.237-macos-x86_64.dmg","size":168668815,"download_count":1305,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-macos-x86_64.dmg"},{"name":"tabby-1.0.237-macos-x86_64.zip","size":163093408,"download_count":1007,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-macos-x86_64.zip"},{"name":"latest-x86_64-mac.yml","size":661,"download_count":3402,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/latest-x86_64-mac.yml"},{"name":"tabby-1.0.237-linux-arm64.deb","size":125543952,"download_count":914,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-arm64.deb"},{"name":"tabby-1.0.237-macos-arm64.zip","size":157061026,"download_count":8274,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-macos-arm64.zip"},{"name":"tabby-1.0.237-macos-arm64.dmg.blockmap","size":170739,"download_count":69,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-macos-arm64.dmg.blockmap"},{"name":"tabby-1.0.237-macos-arm64.dmg","size":162649415,"download_count":4004,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-macos-arm64.dmg"},{"name":"latest-arm64-mac.yml","size":657,"download_count":26721,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/latest-arm64-mac.yml"},{"name":"tabby-1.0.237-linux-arm64.tar.gz","size":159810950,"download_count":198,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-arm64.tar.gz"},{"name":"tabby-1.0.237-linux-x64.rpm","size":113342757,"download_count":710,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-x64.rpm"},{"name":"tabby-1.0.237-linux-armv7l.rpm","size":112593625,"download_count":92,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-armv7l.rpm"},{"name":"tabby-1.0.237-linux-arm64.rpm","size":108300533,"download_count":239,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-arm64.rpm"},{"name":"tabby-1.0.237-linux-armv7l.tar.gz","size":158086305,"download_count":120,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-armv7l.tar.gz"},{"name":"tabby-1.0.237-linux-x64.tar.gz","size":159088261,"download_count":313,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-x64.tar.gz"},{"name":"tabby-1.0.237-linux-armv7l.pacman","size":116518608,"download_count":79,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-armv7l.pacman"},{"name":"latest-armv7l-linux-arm.yml","size":1366,"download_count":76,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/latest-armv7l-linux-arm.yml"},{"name":"tabby-1.0.237-linux-x64.pacman","size":117094632,"download_count":199,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-x64.pacman"},{"name":"latest-x64-linux.yml","size":1342,"download_count":156,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/latest-x64-linux.yml"},{"name":"tabby-1.0.237-linux-arm64.pacman","size":111976440,"download_count":117,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-linux-arm64.pacman"},{"name":"latest-arm64-linux-arm64.yml","size":1358,"download_count":274,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/latest-arm64-linux-arm64.yml"},{"name":"tabby-1.0.237-portable-arm64.zip","size":184250146,"download_count":240,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-portable-arm64.zip"},{"name":"tabby-1.0.237-setup-arm64.exe","size":150580128,"download_count":2478,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-setup-arm64.exe"},{"name":"tabby-1.0.237-setup-arm64.exe.blockmap","size":158324,"download_count":269,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-setup-arm64.exe.blockmap"},{"name":"latest-arm64.yml","size":357,"download_count":174,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/latest-arm64.yml"},{"name":"tabby-1.0.237-portable-x64.zip","size":185873267,"download_count":3285,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-portable-x64.zip"},{"name":"tabby-1.0.237-setup-x64.exe","size":169734624,"download_count":25340,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-setup-x64.exe"},{"name":"tabby-1.0.237-setup-x64.exe.blockmap","size":179382,"download_count":295,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/tabby-1.0.237-setup-x64.exe.blockmap"},{"name":"latest-x64.yml","size":353,"download_count":352,"release_tag":"v1.0.237","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.237/latest-x64.yml"},{"name":"tabby-1.0.236-linux-arm64.AppImage","size":169266844,"download_count":76,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-arm64.AppImage"},{"name":"tabby-1.0.236-linux-x64.AppImage","size":168133080,"download_count":174,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-x64.AppImage"},{"name":"tabby-1.0.236-linux-armv7l.AppImage","size":165568920,"download_count":33,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-armv7l.AppImage"},{"name":"tabby-1.0.236-linux-x64.deb","size":130362388,"download_count":1057,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-x64.deb"},{"name":"tabby-1.0.236-linux-arm64.deb","size":125537776,"download_count":192,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-arm64.deb"},{"name":"tabby-1.0.236-linux-armv7l.deb","size":128391196,"download_count":40,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-armv7l.deb"},{"name":"tabby-1.0.236-macos-x86_64.dmg.blockmap","size":177849,"download_count":26,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-macos-x86_64.dmg.blockmap"},{"name":"tabby-1.0.236-macos-x86_64.zip","size":163081038,"download_count":160,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-macos-x86_64.zip"},{"name":"tabby-1.0.236-macos-x86_64.dmg","size":168681007,"download_count":268,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-macos-x86_64.dmg"},{"name":"latest-x86_64-mac.yml","size":661,"download_count":540,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/latest-x86_64-mac.yml"},{"name":"tabby-1.0.236-linux-x64.rpm","size":113309593,"download_count":174,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-x64.rpm"},{"name":"tabby-1.0.236-linux-arm64.tar.gz","size":159802199,"download_count":41,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-arm64.tar.gz"},{"name":"tabby-1.0.236-linux-arm64.rpm","size":108289437,"download_count":57,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-arm64.rpm"},{"name":"tabby-1.0.236-linux-armv7l.tar.gz","size":158076935,"download_count":33,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-armv7l.tar.gz"},{"name":"tabby-1.0.236-linux-x64.tar.gz","size":159078326,"download_count":365,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-x64.tar.gz"},{"name":"tabby-1.0.236-linux-armv7l.rpm","size":112603201,"download_count":37,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-armv7l.rpm"},{"name":"tabby-1.0.236-macos-arm64.zip","size":157048858,"download_count":2660,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-macos-arm64.zip"},{"name":"tabby-1.0.236-macos-arm64.dmg","size":162667672,"download_count":724,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-macos-arm64.dmg"},{"name":"tabby-1.0.236-macos-arm64.dmg.blockmap","size":172238,"download_count":23,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-macos-arm64.dmg.blockmap"},{"name":"latest-arm64-mac.yml","size":657,"download_count":4062,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/latest-arm64-mac.yml"},{"name":"tabby-1.0.236-linux-x64.pacman","size":117017852,"download_count":53,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-x64.pacman"},{"name":"latest-x64-linux.yml","size":1342,"download_count":36,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/latest-x64-linux.yml"},{"name":"tabby-1.0.236-linux-armv7l.pacman","size":116507680,"download_count":26,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-armv7l.pacman"},{"name":"latest-armv7l-linux-arm.yml","size":1366,"download_count":24,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/latest-armv7l-linux-arm.yml"},{"name":"tabby-1.0.236-linux-arm64.pacman","size":111966600,"download_count":37,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-linux-arm64.pacman"},{"name":"latest-arm64-linux-arm64.yml","size":1358,"download_count":54,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/latest-arm64-linux-arm64.yml"},{"name":"tabby-1.0.236-portable-arm64.zip","size":186031848,"download_count":64,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-portable-arm64.zip"},{"name":"tabby-1.0.236-setup-arm64.exe.blockmap","size":159872,"download_count":214,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-setup-arm64.exe.blockmap"},{"name":"tabby-1.0.236-setup-arm64.exe","size":152015616,"download_count":697,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-setup-arm64.exe"},{"name":"latest-arm64.yml","size":357,"download_count":38,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/latest-arm64.yml"},{"name":"tabby-1.0.236-portable-x64.zip","size":187625812,"download_count":912,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-portable-x64.zip"},{"name":"tabby-1.0.236-setup-x64.exe","size":171142128,"download_count":4605,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-setup-x64.exe"},{"name":"tabby-1.0.236-setup-x64.exe.blockmap","size":180664,"download_count":210,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/tabby-1.0.236-setup-x64.exe.blockmap"},{"name":"latest-x64.yml","size":353,"download_count":93,"release_tag":"v1.0.236","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.236/latest-x64.yml"},{"name":"tabby-1.0.235-linux-arm64.AppImage","size":156940806,"download_count":1493,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-arm64.AppImage"},{"name":"tabby-1.0.235-linux-x64.AppImage","size":156775494,"download_count":3858,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-x64.AppImage"},{"name":"tabby-1.0.235-linux-armv7l.AppImage","size":145342868,"download_count":516,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-armv7l.AppImage"},{"name":"tabby-1.0.235-linux-arm64.tar.gz","size":148059759,"download_count":1144,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-arm64.tar.gz"},{"name":"tabby-1.0.235-linux-x64.tar.gz","size":148191070,"download_count":1962,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-x64.tar.gz"},{"name":"tabby-1.0.235-macos-arm64.zip","size":144740760,"download_count":27119,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-macos-arm64.zip"},{"name":"tabby-1.0.235-linux-armv7l.tar.gz","size":138576619,"download_count":837,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-armv7l.tar.gz"},{"name":"tabby-1.0.235-macos-arm64.dmg.blockmap","size":157252,"download_count":394,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-macos-arm64.dmg.blockmap"},{"name":"tabby-1.0.235-macos-arm64.dmg","size":150174643,"download_count":15683,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-macos-arm64.dmg"},{"name":"latest-arm64-mac.yml","size":657,"download_count":177983,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/latest-arm64-mac.yml"},{"name":"tabby-1.0.235-linux-x64.deb","size":120938104,"download_count":17515,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-x64.deb"},{"name":"tabby-1.0.235-linux-arm64.deb","size":115428020,"download_count":4137,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-arm64.deb"},{"name":"tabby-1.0.235-linux-armv7l.deb","size":113024000,"download_count":1025,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-armv7l.deb"},{"name":"tabby-1.0.235-macos-x86_64.dmg","size":156904358,"download_count":4362,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-macos-x86_64.dmg"},{"name":"tabby-1.0.235-macos-x86_64.dmg.blockmap","size":164694,"download_count":325,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-macos-x86_64.dmg.blockmap"},{"name":"tabby-1.0.235-macos-x86_64.zip","size":151418095,"download_count":2822,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-macos-x86_64.zip"},{"name":"latest-x86_64-mac.yml","size":661,"download_count":21050,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/latest-x86_64-mac.yml"},{"name":"tabby-1.0.235-linux-armv7l.rpm","size":98961161,"download_count":467,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-armv7l.rpm"},{"name":"tabby-1.0.235-linux-arm64.rpm","size":100159265,"download_count":962,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-arm64.rpm"},{"name":"tabby-1.0.235-linux-x64.rpm","size":105168973,"download_count":3423,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-x64.rpm"},{"name":"tabby-1.0.235-linux-armv7l.pacman","size":102390284,"download_count":427,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-armv7l.pacman"},{"name":"latest-armv7l-linux-arm.yml","size":1364,"download_count":316,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/latest-armv7l-linux-arm.yml"},{"name":"tabby-1.0.235-portable-arm64.zip","size":173595765,"download_count":1096,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-portable-arm64.zip"},{"name":"tabby-1.0.235-portable-x64.zip","size":174563816,"download_count":15758,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-portable-x64.zip"},{"name":"tabby-1.0.235-linux-x64.pacman","size":108818320,"download_count":935,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-x64.pacman"},{"name":"latest-x64-linux.yml","size":1342,"download_count":770,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/latest-x64-linux.yml"},{"name":"tabby-1.0.235-linux-arm64.pacman","size":103044964,"download_count":527,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-linux-arm64.pacman"},{"name":"latest-arm64-linux-arm64.yml","size":1358,"download_count":1139,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/latest-arm64-linux-arm64.yml"},{"name":"tabby-1.0.235-setup-arm64.exe.blockmap","size":150603,"download_count":742,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-setup-arm64.exe.blockmap"},{"name":"tabby-1.0.235-setup-arm64.exe","size":142692784,"download_count":6987,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-setup-arm64.exe"},{"name":"latest-arm64.yml","size":357,"download_count":824,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/latest-arm64.yml"},{"name":"tabby-1.0.235-setup-x64.exe.blockmap","size":164075,"download_count":977,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-setup-x64.exe.blockmap"},{"name":"tabby-1.0.235-setup-x64.exe","size":154572456,"download_count":95692,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-setup-x64.exe"},{"name":"latest-x64.yml","size":353,"download_count":1319,"release_tag":"v1.0.235","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.235/latest-x64.yml"},{"name":"tabby-1.0.234-linux-armv7l.AppImage","size":146613499,"download_count":837,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-armv7l.AppImage"},{"name":"tabby-1.0.234-linux-x64.AppImage","size":157980713,"download_count":3492,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-x64.AppImage"},{"name":"tabby-1.0.234-linux-arm64.AppImage","size":158276561,"download_count":1641,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-arm64.AppImage"},{"name":"tabby-1.0.234-linux-armv7l.tar.gz","size":139745761,"download_count":1140,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-armv7l.tar.gz"},{"name":"tabby-1.0.234-linux-arm64.tar.gz","size":149209502,"download_count":1589,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-arm64.tar.gz"},{"name":"tabby-1.0.234-linux-armv7l.deb","size":114112592,"download_count":1466,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-armv7l.deb"},{"name":"tabby-1.0.234-linux-x64.tar.gz","size":149304334,"download_count":2016,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-x64.tar.gz"},{"name":"tabby-1.0.234-linux-arm64.deb","size":116525676,"download_count":5061,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-arm64.deb"},{"name":"tabby-1.0.234-linux-armv7l.rpm","size":99744125,"download_count":730,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-armv7l.rpm"},{"name":"tabby-1.0.234-linux-x64.deb","size":122003780,"download_count":18935,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-x64.deb"},{"name":"tabby-1.0.234-linux-arm64.rpm","size":101053285,"download_count":1205,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-arm64.rpm"},{"name":"tabby-1.0.234-macos-x86_64.dmg.blockmap","size":161501,"download_count":601,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-macos-x86_64.dmg.blockmap"},{"name":"tabby-1.0.234-macos-x86_64.dmg","size":154103833,"download_count":5220,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-macos-x86_64.dmg"},{"name":"tabby-1.0.234-macos-x86_64.zip","size":148676092,"download_count":3221,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-macos-x86_64.zip"},{"name":"latest-x86_64-mac.yml","size":661,"download_count":24966,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/latest-x86_64-mac.yml"},{"name":"tabby-1.0.234-linux-armv7l.pacman","size":102833540,"download_count":582,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-armv7l.pacman"},{"name":"latest-armv7l-linux-arm.yml","size":1364,"download_count":611,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/latest-armv7l-linux-arm.yml"},{"name":"tabby-1.0.234-linux-x64.rpm","size":106144537,"download_count":3959,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-x64.rpm"},{"name":"tabby-1.0.234-macos-arm64.dmg.blockmap","size":160831,"download_count":642,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-macos-arm64.dmg.blockmap"},{"name":"tabby-1.0.234-macos-arm64.zip","size":146709434,"download_count":28299,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-macos-arm64.zip"},{"name":"tabby-1.0.234-macos-arm64.dmg","size":152240016,"download_count":18686,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-macos-arm64.dmg"},{"name":"latest-arm64-mac.yml","size":657,"download_count":193294,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/latest-arm64-mac.yml"},{"name":"tabby-1.0.234-linux-arm64.pacman","size":103917144,"download_count":702,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-arm64.pacman"},{"name":"latest-arm64-linux-arm64.yml","size":1358,"download_count":1812,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/latest-arm64-linux-arm64.yml"},{"name":"tabby-1.0.234-linux-x64.pacman","size":109235240,"download_count":1100,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-linux-x64.pacman"},{"name":"latest-x64-linux.yml","size":1342,"download_count":994,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/latest-x64-linux.yml"},{"name":"tabby-1.0.234-portable-x64.zip","size":167073377,"download_count":17113,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-portable-x64.zip"},{"name":"tabby-1.0.234-portable-arm64.zip","size":166948615,"download_count":1682,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-portable-arm64.zip"},{"name":"tabby-1.0.234-setup-x64.exe","size":150056176,"download_count":103244,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-setup-x64.exe"},{"name":"tabby-1.0.234-setup-x64.exe.blockmap","size":157739,"download_count":1455,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-setup-x64.exe.blockmap"},{"name":"latest-x64.yml","size":353,"download_count":1859,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/latest-x64.yml"},{"name":"tabby-1.0.234-setup-arm64.exe.blockmap","size":145508,"download_count":1230,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-setup-arm64.exe.blockmap"},{"name":"tabby-1.0.234-setup-arm64.exe","size":138073864,"download_count":9217,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/tabby-1.0.234-setup-arm64.exe"},{"name":"latest-arm64.yml","size":357,"download_count":1297,"release_tag":"v1.0.234","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.234/latest-arm64.yml"},{"name":"tabby-1.0.233-linux-x64.AppImage","size":158095829,"download_count":621,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-x64.AppImage"},{"name":"tabby-1.0.233-linux-armv7l.AppImage","size":146728199,"download_count":111,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-armv7l.AppImage"},{"name":"tabby-1.0.233-linux-arm64.AppImage","size":158264340,"download_count":339,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-arm64.AppImage"},{"name":"tabby-1.0.233-linux-armv7l.tar.gz","size":139739370,"download_count":203,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-armv7l.tar.gz"},{"name":"tabby-1.0.233-linux-x64.tar.gz","size":149299787,"download_count":374,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-x64.tar.gz"},{"name":"tabby-1.0.233-linux-armv7l.deb","size":114346236,"download_count":273,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-armv7l.deb"},{"name":"tabby-1.0.233-linux-arm64.tar.gz","size":149203820,"download_count":257,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-arm64.tar.gz"},{"name":"tabby-1.0.233-linux-x64.deb","size":122204268,"download_count":4185,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-x64.deb"},{"name":"tabby-1.0.233-linux-armv7l.rpm","size":99875077,"download_count":117,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-armv7l.rpm"},{"name":"tabby-1.0.233-linux-arm64.deb","size":116523080,"download_count":993,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-arm64.deb"},{"name":"tabby-1.0.233-linux-x64.rpm","size":106259529,"download_count":810,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-x64.rpm"},{"name":"tabby-1.0.233-linux-armv7l.pacman","size":103058260,"download_count":89,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-armv7l.pacman"},{"name":"latest-armv7l-linux-arm.yml","size":1364,"download_count":85,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/latest-armv7l-linux-arm.yml"},{"name":"tabby-1.0.233-linux-arm64.rpm","size":101040853,"download_count":282,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-arm64.rpm"},{"name":"tabby-1.0.233-linux-x64.pacman","size":109417348,"download_count":192,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-x64.pacman"},{"name":"latest-x64-linux.yml","size":1342,"download_count":146,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/latest-x64-linux.yml"},{"name":"tabby-1.0.233-portable-x64.zip","size":167065501,"download_count":3297,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-portable-x64.zip"},{"name":"tabby-1.0.233-setup-x64.exe","size":150048104,"download_count":24434,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-setup-x64.exe"},{"name":"tabby-1.0.233-setup-x64.exe.blockmap","size":158569,"download_count":743,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-setup-x64.exe.blockmap"},{"name":"tabby-1.0.233-linux-arm64.pacman","size":103919408,"download_count":122,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-linux-arm64.pacman"},{"name":"latest-x64.yml","size":353,"download_count":294,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/latest-x64.yml"},{"name":"latest-arm64-linux-arm64.yml","size":1358,"download_count":271,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/latest-arm64-linux-arm64.yml"},{"name":"tabby-1.0.233-portable-arm64.zip","size":166940144,"download_count":331,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-portable-arm64.zip"},{"name":"tabby-1.0.233-setup-arm64.exe.blockmap","size":146020,"download_count":699,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-setup-arm64.exe.blockmap"},{"name":"tabby-1.0.233-setup-arm64.exe","size":138064864,"download_count":2337,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-setup-arm64.exe"},{"name":"latest-arm64.yml","size":357,"download_count":197,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/latest-arm64.yml"},{"name":"tabby-1.0.233-macos-x86_64.dmg","size":154119486,"download_count":895,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-macos-x86_64.dmg"},{"name":"tabby-1.0.233-macos-arm64.zip","size":146700963,"download_count":66142,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-macos-arm64.zip"},{"name":"tabby-1.0.233-macos-arm64.dmg","size":152282802,"download_count":3737,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-macos-arm64.dmg"},{"name":"tabby-1.0.233-macos-x86_64.zip","size":148667508,"download_count":593,"release_tag":"v1.0.233","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.233/tabby-1.0.233-macos-x86_64.zip"},{"name":"tabby-1.0.232-linux-armv7l.AppImage","size":147060142,"download_count":61,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-armv7l.AppImage"},{"name":"tabby-1.0.232-linux-x64.AppImage","size":158431738,"download_count":329,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-x64.AppImage"},{"name":"tabby-1.0.232-linux-arm64.AppImage","size":158600251,"download_count":140,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-arm64.AppImage"},{"name":"tabby-1.0.232-macos-arm64.zip","size":146614756,"download_count":2724,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-macos-arm64.zip"},{"name":"tabby-1.0.232-macos-x86_64.dmg","size":151705139,"download_count":722,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-macos-x86_64.dmg"},{"name":"tabby-1.0.232-macos-x86_64.dmg.blockmap","size":157271,"download_count":62,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-macos-x86_64.dmg.blockmap"},{"name":"tabby-1.0.232-macos-arm64.dmg.blockmap","size":158090,"download_count":121,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-macos-arm64.dmg.blockmap"},{"name":"tabby-1.0.232-macos-arm64.dmg","size":151472973,"download_count":2641,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-macos-arm64.dmg"},{"name":"latest-arm64-mac.yml","size":657,"download_count":8464,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/latest-arm64-mac.yml"},{"name":"tabby-1.0.232-macos-x86_64.zip","size":146997490,"download_count":1816,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-macos-x86_64.zip"},{"name":"latest-x86_64-mac.yml","size":661,"download_count":1219,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/latest-x86_64-mac.yml"},{"name":"tabby-1.0.232-linux-armv7l.tar.gz","size":140048743,"download_count":95,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-armv7l.tar.gz"},{"name":"tabby-1.0.232-linux-arm64.tar.gz","size":149513922,"download_count":112,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-arm64.tar.gz"},{"name":"tabby-1.0.232-linux-armv7l.deb","size":114583568,"download_count":118,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-armv7l.deb"},{"name":"tabby-1.0.232-linux-x64.tar.gz","size":149610417,"download_count":192,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-x64.tar.gz"},{"name":"tabby-1.0.232-linux-arm64.deb","size":116763464,"download_count":415,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-arm64.deb"},{"name":"tabby-1.0.232-linux-x64.deb","size":122440900,"download_count":1756,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-x64.deb"},{"name":"tabby-1.0.232-linux-armv7l.rpm","size":100084217,"download_count":68,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-armv7l.rpm"},{"name":"tabby-1.0.232-linux-arm64.rpm","size":101253837,"download_count":191,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-arm64.rpm"},{"name":"tabby-1.0.232-linux-x64.rpm","size":106487009,"download_count":454,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-x64.rpm"},{"name":"tabby-1.0.232-linux-armv7l.pacman","size":103261128,"download_count":52,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-armv7l.pacman"},{"name":"latest-armv7l-linux-arm.yml","size":1366,"download_count":43,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/latest-armv7l-linux-arm.yml"},{"name":"tabby-1.0.232-linux-arm64.pacman","size":104120572,"download_count":69,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-arm64.pacman"},{"name":"latest-arm64-linux-arm64.yml","size":1358,"download_count":128,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/latest-arm64-linux-arm64.yml"},{"name":"tabby-1.0.232-linux-x64.pacman","size":109633184,"download_count":100,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-linux-x64.pacman"},{"name":"latest-x64-linux.yml","size":1342,"download_count":86,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/latest-x64-linux.yml"},{"name":"tabby-1.0.232-portable-arm64.zip","size":167249352,"download_count":173,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-portable-arm64.zip"},{"name":"tabby-1.0.232-setup-arm64.exe.blockmap","size":133290,"download_count":657,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-setup-arm64.exe.blockmap"},{"name":"tabby-1.0.232-setup-arm64.exe","size":126882632,"download_count":1659,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-setup-arm64.exe"},{"name":"latest-arm64.yml","size":357,"download_count":101,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/latest-arm64.yml"},{"name":"tabby-1.0.232-portable-x64.zip","size":167374586,"download_count":1650,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-portable-x64.zip"},{"name":"tabby-1.0.232-setup-x64.exe.blockmap","size":130878,"download_count":719,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-setup-x64.exe.blockmap"},{"name":"tabby-1.0.232-setup-x64.exe","size":124950816,"download_count":13808,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/tabby-1.0.232-setup-x64.exe"},{"name":"latest-x64.yml","size":353,"download_count":205,"release_tag":"v1.0.232","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.232/latest-x64.yml"},{"name":"tabby-1.0.231-macos-arm64.dmg.blockmap","size":158774,"download_count":142,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-macos-arm64.dmg.blockmap"},{"name":"tabby-1.0.231-macos-arm64.zip","size":146631021,"download_count":6126,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-macos-arm64.zip"},{"name":"tabby-1.0.231-macos-x86_64.dmg","size":151680057,"download_count":322,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-macos-x86_64.dmg"},{"name":"tabby-1.0.231-macos-x86_64.dmg.blockmap","size":159699,"download_count":51,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-macos-x86_64.dmg.blockmap"},{"name":"tabby-1.0.231-linux-armv7l.AppImage","size":147060250,"download_count":53,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-linux-armv7l.AppImage"},{"name":"tabby-1.0.231-linux-x64.AppImage","size":158431778,"download_count":123,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-linux-x64.AppImage"},{"name":"tabby-1.0.231-linux-arm64.AppImage","size":158600348,"download_count":66,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-linux-arm64.AppImage"},{"name":"tabby-1.0.231-linux-armv7l.tar.gz","size":140055717,"download_count":45,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-linux-armv7l.tar.gz"},{"name":"tabby-1.0.231-linux-arm64.tar.gz","size":149520358,"download_count":67,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-linux-arm64.tar.gz"},{"name":"tabby-1.0.231-linux-armv7l.deb","size":114588940,"download_count":79,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-linux-armv7l.deb"},{"name":"tabby-1.0.231-linux-x64.tar.gz","size":149615090,"download_count":85,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-linux-x64.tar.gz"},{"name":"tabby-1.0.231-linux-arm64.deb","size":116769740,"download_count":127,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-linux-arm64.deb"},{"name":"tabby-1.0.231-linux-armv7l.rpm","size":100072889,"download_count":38,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-linux-armv7l.rpm"},{"name":"tabby-1.0.231-linux-x64.deb","size":122445464,"download_count":471,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-linux-x64.deb"},{"name":"tabby-1.0.231-portable-x64.zip","size":165629854,"download_count":725,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-portable-x64.zip"},{"name":"tabby-1.0.231-linux-arm64.rpm","size":101251305,"download_count":56,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-linux-arm64.rpm"},{"name":"tabby-1.0.231-linux-x64.rpm","size":106498897,"download_count":160,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-linux-x64.rpm"},{"name":"tabby-1.0.231-setup-x64.exe","size":123454744,"download_count":6204,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-setup-x64.exe"},{"name":"tabby-1.0.231-setup-x64.exe.blockmap","size":129626,"download_count":694,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-setup-x64.exe.blockmap"},{"name":"latest-x64.yml","size":353,"download_count":98,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/latest-x64.yml"},{"name":"tabby-1.0.231-portable-arm64.zip","size":165504602,"download_count":171,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-portable-arm64.zip"},{"name":"tabby-1.0.231-setup-arm64.exe.blockmap","size":131885,"download_count":635,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-setup-arm64.exe.blockmap"},{"name":"tabby-1.0.231-setup-arm64.exe","size":125387856,"download_count":1292,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/tabby-1.0.231-setup-arm64.exe"},{"name":"latest-arm64.yml","size":357,"download_count":32,"release_tag":"v1.0.231","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.231/latest-arm64.yml"},{"name":"tabby-1.0.230-linux-x64.AppImage","size":157964292,"download_count":3469,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-x64.AppImage"},{"name":"tabby-1.0.230-linux-armv7l.AppImage","size":146596917,"download_count":553,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-armv7l.AppImage"},{"name":"tabby-1.0.230-linux-arm64.AppImage","size":158268604,"download_count":2281,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-arm64.AppImage"},{"name":"tabby-1.0.230-linux-armv7l.tar.gz","size":139663875,"download_count":1202,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-armv7l.tar.gz"},{"name":"tabby-1.0.230-linux-arm64.tar.gz","size":149125851,"download_count":1555,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-arm64.tar.gz"},{"name":"tabby-1.0.230-linux-x64.tar.gz","size":149217078,"download_count":2282,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-x64.tar.gz"},{"name":"tabby-1.0.230-linux-armv7l.deb","size":114183408,"download_count":1774,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-armv7l.deb"},{"name":"tabby-1.0.230-linux-x64.deb","size":122087088,"download_count":22967,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-x64.deb"},{"name":"tabby-1.0.230-linux-arm64.deb","size":116861812,"download_count":7669,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-arm64.deb"},{"name":"tabby-1.0.230-linux-armv7l.rpm","size":99870673,"download_count":481,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-armv7l.rpm"},{"name":"tabby-1.0.230-linux-x64.rpm","size":106203745,"download_count":4780,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-x64.rpm"},{"name":"tabby-1.0.230-linux-armv7l.pacman","size":103189348,"download_count":444,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-armv7l.pacman"},{"name":"tabby-1.0.230-linux-arm64.rpm","size":101061913,"download_count":1258,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-arm64.rpm"},{"name":"latest-armv7l-linux-arm.yml","size":1364,"download_count":489,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/latest-armv7l-linux-arm.yml"},{"name":"tabby-1.0.230-linux-x64.pacman","size":109555544,"download_count":1229,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-x64.pacman"},{"name":"latest-x64-linux.yml","size":1342,"download_count":1274,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/latest-x64-linux.yml"},{"name":"tabby-1.0.230-portable-arm64.zip","size":170078258,"download_count":2098,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-portable-arm64.zip"},{"name":"tabby-1.0.230-linux-arm64.pacman","size":103730592,"download_count":751,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-linux-arm64.pacman"},{"name":"latest-arm64-linux-arm64.yml","size":1358,"download_count":2603,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/latest-arm64-linux-arm64.yml"},{"name":"tabby-1.0.230-macos-arm64.zip","size":146720333,"download_count":16475,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-macos-arm64.zip"},{"name":"tabby-1.0.230-setup-arm64.exe.blockmap","size":135626,"download_count":1307,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-setup-arm64.exe.blockmap"},{"name":"tabby-1.0.230-setup-arm64.exe","size":128911120,"download_count":11018,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-setup-arm64.exe"},{"name":"latest-arm64.yml","size":357,"download_count":1701,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/latest-arm64.yml"},{"name":"tabby-1.0.230-macos-arm64.dmg.blockmap","size":159264,"download_count":480,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-macos-arm64.dmg.blockmap"},{"name":"tabby-1.0.230-macos-arm64.dmg","size":152276254,"download_count":25615,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-macos-arm64.dmg"},{"name":"latest-arm64-mac.yml","size":657,"download_count":229489,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/latest-arm64-mac.yml"},{"name":"tabby-1.0.230-portable-x64.zip","size":170304591,"download_count":21570,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-portable-x64.zip"},{"name":"tabby-1.0.230-setup-x64.exe.blockmap","size":133576,"download_count":1742,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-setup-x64.exe.blockmap"},{"name":"tabby-1.0.230-setup-x64.exe","size":127063968,"download_count":123909,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-setup-x64.exe"},{"name":"latest-x64.yml","size":353,"download_count":2645,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/latest-x64.yml"},{"name":"tabby-1.0.230-macos-x86_64.zip","size":148686805,"download_count":6417,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-macos-x86_64.zip"},{"name":"tabby-1.0.230-macos-x86_64.dmg","size":154070477,"download_count":7375,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-macos-x86_64.dmg"},{"name":"tabby-1.0.230-macos-x86_64.dmg.blockmap","size":161675,"download_count":448,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/tabby-1.0.230-macos-x86_64.dmg.blockmap"},{"name":"latest-x86_64-mac.yml","size":661,"download_count":34174,"release_tag":"v1.0.230","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.230/latest-x86_64-mac.yml"},{"name":"tabby-1.0.229-linux-x64.AppImage","size":156574330,"download_count":2227,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-x64.AppImage"},{"name":"tabby-1.0.229-linux-armv7l.AppImage","size":145207453,"download_count":339,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-armv7l.AppImage"},{"name":"tabby-1.0.229-linux-arm64.AppImage","size":156874796,"download_count":1377,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-arm64.AppImage"},{"name":"tabby-1.0.229-macos-arm64.zip","size":145391604,"download_count":12328,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-macos-arm64.zip"},{"name":"tabby-1.0.229-macos-arm64.dmg.blockmap","size":158219,"download_count":314,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-macos-arm64.dmg.blockmap"},{"name":"tabby-1.0.229-macos-arm64.dmg","size":150820591,"download_count":14302,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-macos-arm64.dmg"},{"name":"latest-arm64-mac.yml","size":657,"download_count":132208,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/latest-arm64-mac.yml"},{"name":"tabby-1.0.229-linux-armv7l.tar.gz","size":138366522,"download_count":631,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-armv7l.tar.gz"},{"name":"tabby-1.0.229-linux-x64.tar.gz","size":147927155,"download_count":1305,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-x64.tar.gz"},{"name":"tabby-1.0.229-linux-arm64.tar.gz","size":147831716,"download_count":925,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-arm64.tar.gz"},{"name":"tabby-1.0.229-linux-armv7l.deb","size":113478612,"download_count":977,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-armv7l.deb"},{"name":"tabby-1.0.229-linux-x64.deb","size":121383972,"download_count":13618,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-x64.deb"},{"name":"tabby-1.0.229-linux-arm64.deb","size":115678320,"download_count":4799,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-arm64.deb"},{"name":"tabby-1.0.229-linux-armv7l.rpm","size":99212481,"download_count":315,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-armv7l.rpm"},{"name":"tabby-1.0.229-macos-x86_64.zip","size":147358510,"download_count":1872,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-macos-x86_64.zip"},{"name":"tabby-1.0.229-macos-x86_64.dmg","size":152645614,"download_count":4266,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-macos-x86_64.dmg"},{"name":"tabby-1.0.229-macos-x86_64.dmg.blockmap","size":160565,"download_count":266,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-macos-x86_64.dmg.blockmap"},{"name":"latest-x86_64-mac.yml","size":661,"download_count":21244,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/latest-x86_64-mac.yml"},{"name":"tabby-1.0.229-linux-x64.rpm","size":105397925,"download_count":2692,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-x64.rpm"},{"name":"tabby-1.0.229-linux-arm64.rpm","size":100499177,"download_count":774,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-arm64.rpm"},{"name":"tabby-1.0.229-linux-armv7l.pacman","size":102635616,"download_count":271,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-armv7l.pacman"},{"name":"latest-armv7l-linux-arm.yml","size":1364,"download_count":329,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/latest-armv7l-linux-arm.yml"},{"name":"tabby-1.0.229-linux-x64.pacman","size":109009140,"download_count":701,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-x64.pacman"},{"name":"latest-x64-linux.yml","size":1342,"download_count":715,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/latest-x64-linux.yml"},{"name":"tabby-1.0.229-linux-arm64.pacman","size":103488844,"download_count":497,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-linux-arm64.pacman"},{"name":"latest-arm64-linux-arm64.yml","size":1358,"download_count":1355,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/latest-arm64-linux-arm64.yml"},{"name":"tabby-1.0.229-portable-x64.zip","size":166136624,"download_count":11929,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-portable-x64.zip"},{"name":"tabby-1.0.229-setup-x64.exe.blockmap","size":130192,"download_count":1511,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-setup-x64.exe.blockmap"},{"name":"tabby-1.0.229-setup-x64.exe","size":123800872,"download_count":68773,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-setup-x64.exe"},{"name":"latest-x64.yml","size":353,"download_count":1480,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/latest-x64.yml"},{"name":"tabby-1.0.229-portable-arm64.zip","size":165877745,"download_count":1179,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-portable-arm64.zip"},{"name":"tabby-1.0.229-setup-arm64.exe.blockmap","size":133127,"download_count":1337,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-setup-arm64.exe.blockmap"},{"name":"tabby-1.0.229-setup-arm64.exe","size":125613080,"download_count":6406,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/tabby-1.0.229-setup-arm64.exe"},{"name":"latest-arm64.yml","size":357,"download_count":947,"release_tag":"v1.0.229","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.229/latest-arm64.yml"}]}},"commit_sha":"467ce8ebfa467fb88cf6d154c9a5891e3d3647f0","profile":{"lines_by_language":{"TypeScript":30196,"JavaScript":2018,"C++":378,"Lua":5},"files_by_category":{"other":389,"source":331,"config":74,"binary":29,"docs":24,"generated":17,"vendored":15,"oversized":7,"test":6},"source_lines":32218,"test_lines":379},"pillars":{"ai_provenance":{"score":0.5,"confidence":0.95,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":0.0053,"suspected_share":0.0,"estimated_share":0.0053,"ai_artifacts":0.0,"flagged_work_units":0.0,"flagged_releases":0.0,"style_index":0.016},"summary":"Explicit AI attribution on 1% of first-party code added; an estimated 1% including velocity signals."},"quality":{"score":58.9,"confidence":0.9,"coverage":1.0,"label":"weak","breakdown":{"complexity":74.8,"duplication":84.1,"lint":64.0,"testing":37.4,"docs":65.0,"type_safety":0.0,"process":null},"summary":"Code quality is weak: test-to-source ratio 0.01, no CI test run detected; 10% of function code in complex or long functions; 3% duplicated lines. Weakest area: type safety."},"security":{"score":46.9,"confidence":0.85,"coverage":1.0,"label":"poor","breakdown":{"secrets":87.5,"sast":68.8,"dependencies":2.9,"ci_actions":0.1,"posture":60.0,"scorecard":null},"summary":"Security posture is poor: 89 known vulnerabilities in 34 dependencies; 7 high-severity SAST findings; 26 high-severity workflow issues. Weakest area: ci actions."}},"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":157.0,"checked":157.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":5037.0,"attributed_commits":14.0,"attributed_commit_share":0.0027794322017073653,"effective_loc":68661.0,"attributed_loc":366.0,"attributed_loc_share":0.005330536986061956,"tools_detected":3.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 7 attributed commits, 181 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"GitHub Copilot coding agent: 6 attributed commits, 167 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"Cursor agent: 1 attributed commits, 18 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"a78fff991b891cbcf4c2cc6ba172c81ec92151dc","url":"https://github.com/Eugeny/tabby/commit/a78fff991b891cbcf4c2cc6ba172c81ec92151dc","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"49ae72ad24c8dd3175ef5caca3b79d8b1d4659c2","url":"https://github.com/Eugeny/tabby/commit/49ae72ad24c8dd3175ef5caca3b79d8b1d4659c2","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"2af22b99de3bebec73559a51523a2f79884450ad","url":"https://github.com/Eugeny/tabby/commit/2af22b99de3bebec73559a51523a2f79884450ad","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"cdae0b6ea2b6f7cd490e2f0ae8371d1e9c7c2f7a","url":"https://github.com/Eugeny/tabby/commit/cdae0b6ea2b6f7cd490e2f0ae8371d1e9c7c2f7a","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"7e26a579bc42a54e56f4c965ae7b00713ce8c454","url":"https://github.com/Eugeny/tabby/commit/7e26a579bc42a54e56f4c965ae7b00713ce8c454","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"9cd1697f6f6e3ba6471c2d771b028241b98e2239","url":"https://github.com/Eugeny/tabby/commit/9cd1697f6f6e3ba6471c2d771b028241b98e2239","weight":0.9},{"kind":"attributed-commit","description":"Cursor agent: trailer 'Co-authored-by: Cursor Agent'","ref":"ea8013003b3c9cefecb55f713fc9d03075d6c192","url":"https://github.com/Eugeny/tabby/commit/ea8013003b3c9cefecb55f713fc9d03075d6c192","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"8d89013e340de4ddfa1e874eeaa88b0f2d17fb24","url":"https://github.com/Eugeny/tabby/commit/8d89013e340de4ddfa1e874eeaa88b0f2d17fb24","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: author Copilot","ref":"b82ac4c9add2ae51dbaffcd84fec81d56013ba3e","url":"https://github.com/Eugeny/tabby/commit/b82ac4c9add2ae51dbaffcd84fec81d56013ba3e","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: copilot'","ref":"d8fdecda8169afa1127e5d3da833e939fd8513e9","url":"https://github.com/Eugeny/tabby/commit/d8fdecda8169afa1127e5d3da833e939fd8513e9","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"5e1bdbf28d527730e6f4bc5bae8f5b689a0cebb2","url":"https://github.com/Eugeny/tabby/commit/5e1bdbf28d527730e6f4bc5bae8f5b689a0cebb2","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"02216ff4e7a0c3a34338c8a52dbd12b40e373cc5","url":"https://github.com/Eugeny/tabby/commit/02216ff4e7a0c3a34338c8a52dbd12b40e373cc5","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"431ea2156337240820b61f64ec80070837af195f","url":"https://github.com/Eugeny/tabby/commit/431ea2156337240820b61f64ec80070837af195f","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"bbcb026433177fff61c90018b026f7a144867d83","url":"https://github.com/Eugeny/tabby/commit/bbcb026433177fff61c90018b026f7a144867d83","weight":0.9}],"data":{"attributed_loc_by_commit":{"bbcb026433177fff61c90018b026f7a144867d83":16,"431ea2156337240820b61f64ec80070837af195f":56,"02216ff4e7a0c3a34338c8a52dbd12b40e373cc5":22,"5e1bdbf28d527730e6f4bc5bae8f5b689a0cebb2":88,"d8fdecda8169afa1127e5d3da833e939fd8513e9":0,"b82ac4c9add2ae51dbaffcd84fec81d56013ba3e":1,"8d89013e340de4ddfa1e874eeaa88b0f2d17fb24":0,"ea8013003b3c9cefecb55f713fc9d03075d6c192":18,"9cd1697f6f6e3ba6471c2d771b028241b98e2239":12,"7e26a579bc42a54e56f4c965ae7b00713ce8c454":33,"cdae0b6ea2b6f7cd490e2f0ae8371d1e9c7c2f7a":40,"2af22b99de3bebec73559a51523a2f79884450ad":54,"49ae72ad24c8dd3175ef5caca3b79d8b1d4659c2":10,"a78fff991b891cbcf4c2cc6ba172c81ec92151dc":16},"tools":{"github-copilot":{"name":"GitHub Copilot coding agent","commits":6,"loc":167,"first_seen":1760946424,"last_seen":1789218090},"claude-code":{"name":"Claude Code","commits":7,"loc":181,"first_seen":1776802519,"last_seen":1791317315},"cursor":{"name":"Cursor agent","commits":1,"loc":18,"first_seen":1789155066,"last_seen":1789155066}},"monthly":{"2016-12":{"loc":1745,"attributed_loc":0},"2017-01":{"loc":156,"attributed_loc":0},"2017-03":{"loc":2271,"attributed_loc":0},"2017-04":{"loc":2489,"attributed_loc":0},"2017-05":{"loc":3757,"attributed_loc":0},"2017-06":{"loc":705,"attributed_loc":0},"2017-07":{"loc":1530,"attributed_loc":0},"2017-08":{"loc":188,"attributed_loc":0},"2017-09":{"loc":164,"attributed_loc":0},"2017-10":{"loc":218,"attributed_loc":0},"2017-11":{"loc":777,"attributed_loc":0},"2017-12":{"loc":161,"attributed_loc":0},"2018-01":{"loc":121,"attributed_loc":0},"2018-02":{"loc":13,"attributed_loc":0},"2018-03":{"loc":350,"attributed_loc":0},"2018-04":{"loc":88,"attributed_loc":0},"2018-05":{"loc":231,"attributed_loc":0},"2018-06":{"loc":0,"attributed_loc":0},"2018-07":{"loc":10,"attributed_loc":0},"2018-08":{"loc":2469,"attributed_loc":0},"2018-09":{"loc":785,"attributed_loc":0},"2018-10":{"loc":857,"attributed_loc":0},"2018-11":{"loc":172,"attributed_loc":0},"2018-12":{"loc":920,"attributed_loc":0},"2019-01":{"loc":729,"attributed_loc":0},"2019-02":{"loc":266,"attributed_loc":0},"2019-03":{"loc":1606,"attributed_loc":0},"2019-04":{"loc":76,"attributed_loc":0},"2019-05":{"loc":434,"attributed_loc":0},"2019-06":{"loc":2028,"attributed_loc":0},"2019-07":{"loc":630,"attributed_loc":0},"2019-08":{"loc":111,"attributed_loc":0},"2019-09":{"loc":186,"attributed_loc":0},"2019-10":{"loc":43,"attributed_loc":0},"2019-11":{"loc":62,"attributed_loc":0},"2019-12":{"loc":789,"attributed_loc":0},"2020-01":{"loc":408,"attributed_loc":0},"2020-02":{"loc":1535,"attributed_loc":0},"2020-03":{"loc":1259,"attributed_loc":0},"2020-04":{"loc":313,"attributed_loc":0},"2020-05":{"loc":67,"attributed_loc":0},"2020-06":{"loc":49,"attributed_loc":0},"2020-07":{"loc":105,"attributed_loc":0},"2020-08":{"loc":212,"attributed_loc":0},"2020-09":{"loc":0,"attributed_loc":0},"2020-10":{"loc":53,"attributed_loc":0},"2020-11":{"loc":46,"attributed_loc":0},"2020-12":{"loc":755,"attributed_loc":0},"2021-01":{"loc":910,"attributed_loc":0},"2021-02":{"loc":305,"attributed_loc":0},"2021-03":{"loc":318,"attributed_loc":0},"2021-04":{"loc":893,"attributed_loc":0},"2021-05":{"loc":2174,"attributed_loc":0},"2021-06":{"loc":4876,"attributed_loc":0},"2021-07":{"loc":6674,"attributed_loc":0},"2021-08":{"loc":1368,"attributed_loc":0},"2021-09":{"loc":590,"attributed_loc":0},"2021-10":{"loc":269,"attributed_loc":0},"2021-11":{"loc":235,"attributed_loc":0},"2021-12":{"loc":1103,"attributed_loc":0},"2022-01":{"loc":1402,"attributed_loc":0},"2022-02":{"loc":771,"attributed_loc":0},"2022-03":{"loc":222,"attributed_loc":0},"2022-04":{"loc":364,"attributed_loc":0},"2022-05":{"loc":481,"attributed_loc":0},"2022-06":{"loc":109,"attributed_loc":0},"2022-07":{"loc":107,"attributed_loc":0},"2022-08":{"loc":21,"attributed_loc":0},"2022-09":{"loc":166,"attributed_loc":0},"2022-10":{"loc":214,"attributed_loc":0},"2022-11":{"loc":571,"attributed_loc":0},"2022-12":{"loc":326,"attributed_loc":0},"2023-01":{"loc":194,"attributed_loc":0},"2023-02":{"loc":898,"attributed_loc":0},"2023-03":{"loc":458,"attributed_loc":0},"2023-04":{"loc":439,"attributed_loc":0},"2023-05":{"loc":214,"attributed_loc":0},"2023-06":{"loc":257,"attributed_loc":0},"2023-07":{"loc":1007,"attributed_loc":0},"2023-08":{"loc":630,"attributed_loc":0},"2023-09":{"loc":63,"attributed_loc":0},"2023-10":{"loc":49,"attributed_loc":0},"2023-11":{"loc":46,"attributed_loc":0},"2023-12":{"loc":30,"attributed_loc":0},"2024-01":{"loc":115,"attributed_loc":0},"2024-02":{"loc":9,"attributed_loc":0},"2024-03":{"loc":49,"attributed_loc":0},"2024-04":{"loc":0,"attributed_loc":0},"2024-05":{"loc":1,"attributed_loc":0},"2024-06":{"loc":3,"attributed_loc":0},"2024-07":{"loc":112,"attributed_loc":0},"2024-08":{"loc":418,"attributed_loc":0},"2024-09":{"loc":6,"attributed_loc":0},"2024-10":{"loc":615,"attributed_loc":0},"2024-11":{"loc":277,"attributed_loc":0},"2024-12":{"loc":68,"attributed_loc":0},"2025-01":{"loc":300,"attributed_loc":0},"2025-02":{"loc":55,"attributed_loc":0},"2025-03":{"loc":37,"attributed_loc":0},"2025-04":{"loc":0,"attributed_loc":0},"2025-05":{"loc":43,"attributed_loc":0},"2025-06":{"loc":132,"attributed_loc":0},"2025-07":{"loc":302,"attributed_loc":0},"2025-08":{"loc":1,"attributed_loc":0},"2025-09":{"loc":2,"attributed_loc":0},"2025-10":{"loc":91,"attributed_loc":16},"2025-11":{"loc":103,"attributed_loc":0},"2025-12":{"loc":21,"attributed_loc":0},"2026-01":{"loc":345,"attributed_loc":56},"2026-02":{"loc":298,"attributed_loc":0},"2026-03":{"loc":0,"attributed_loc":0},"2026-04":{"loc":219,"attributed_loc":110},"2026-05":{"loc":761,"attributed_loc":1},"2026-06":{"loc":1245,"attributed_loc":0},"2026-07":{"loc":385,"attributed_loc":0},"2026-09":{"loc":1561,"attributed_loc":157},"2026-10":{"loc":394,"attributed_loc":26}}},"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-5","metrics":{"work_units":1342.0,"flagged_units":0.0,"pre_ai_era_bursts":1.0,"pre_ai_era_measured_loc":41058.0,"pre_ai_era_burst_loc":3444.0,"measured_loc":68661.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":861.0,"median_loc_per_hour":49.13814491452335,"pr_timed_units":148.0,"excluded_import_loc":0.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":[]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-5","metrics":{"releases":99.0,"flagged_releases":0.0,"max_loc_per_day":492.2},"findings":[],"evidence":[],"data":{"releases":[{"from":"v1.0.137","to":"v1.0.138","loc":421,"days":15.78,"loc_per_day":26.7,"flagged":false},{"from":"v1.0.138","to":"v1.0.139","loc":261,"days":11.11,"loc_per_day":23.5,"flagged":false},{"from":"v1.0.139","to":"v1.0.140","loc":5721,"days":38.02,"loc_per_day":150.5,"flagged":false},{"from":"v1.0.140","to":"v1.0.141","loc":9,"days":1.69,"loc_per_day":5.3,"flagged":false},{"from":"v1.0.141","to":"v1.0.142","loc":0,"days":3.17,"loc_per_day":0.0,"flagged":false},{"from":"v1.0.142","to":"v1.0.143","loc":399,"days":3.37,"loc_per_day":118.5,"flagged":false},{"from":"v1.0.143","to":"v1.0.144","loc":401,"days":2.98,"loc_per_day":134.7,"flagged":false},{"from":"v1.0.144","to":"v1.0.145","loc":2900,"days":5.89,"loc_per_day":492.2,"flagged":false},{"from":"v1.0.145","to":"v1.0.146","loc":39,"days":1.54,"loc_per_day":25.3,"flagged":false},{"from":"v1.0.146","to":"v1.0.147","loc":2272,"days":7.04,"loc_per_day":322.6,"flagged":false},{"from":"v1.0.147","to":"v1.0.148","loc":189,"days":2.22,"loc_per_day":85.1,"flagged":false},{"from":"v1.0.148","to":"v1.0.149","loc":940,"days":10.16,"loc_per_day":92.5,"flagged":false},{"from":"v1.0.149","to":"v1.0.150","loc":285,"days":2.93,"loc_per_day":97.4,"flagged":false},{"from":"v1.0.150","to":"v1.0.151","loc":622,"days":4.08,"loc_per_day":152.5,"flagged":false},{"from":"v1.0.151","to":"v1.0.152","loc":292,"days":1.55,"loc_per_day":188.1,"flagged":false},{"from":"v1.0.152","to":"v1.0.154","loc":194,"days":10.42,"loc_per_day":18.6,"flagged":false},{"from":"v1.0.154","to":"v1.0.155","loc":13,"days":2.56,"loc_per_day":5.1,"flagged":false},{"from":"v1.0.155","to":"v1.0.156","loc":299,"days":14.58,"loc_per_day":20.5,"flagged":false},{"from":"v1.0.156","to":"v1.0.157","loc":151,"days":6.99,"loc_per_day":21.6,"flagged":false},{"from":"v1.0.157","to":"v1.0.158","loc":360,"days":15.04,"loc_per_day":23.9,"flagged":false},{"from":"v1.0.158","to":"v1.0.159","loc":38,"days":12.91,"loc_per_day":2.9,"flagged":false},{"from":"v1.0.159","to":"v1.0.160","loc":217,"days":17.47,"loc_per_day":12.4,"flagged":false},{"from":"v1.0.160","to":"v1.0.161","loc":23,"days":3.03,"loc_per_day":7.6,"flagged":false},{"from":"v1.0.161","to":"v1.0.162","loc":83,"days":16.34,"loc_per_day":5.1,"flagged":false},{"from":"v1.0.162","to":"v1.0.163","loc":29,"days":0.95,"loc_per_day":30.6,"flagged":false},{"from":"v1.0.163","to":"v1.0.164","loc":2,"days":1.25,"loc_per_day":1.6,"flagged":false},{"from":"v1.0.164","to":"v1.0.165","loc":468,"days":23.07,"loc_per_day":20.3,"flagged":false},{"from":"v1.0.165","to":"v1.0.166","loc":0,"days":0.49,"loc_per_day":0.0,"flagged":false},{"from":"v1.0.166","to":"v1.0.167","loc":0,"days":0.11,"loc_per_day":0.0,"flagged":false},{"from":"v1.0.167","to":"v1.0.168","loc":14,"days":3.01,"loc_per_day":4.7,"flagged":false},{"from":"v1.0.168","to":"v1.0.169","loc":134,"days":10.99,"loc_per_day":12.2,"flagged":false},{"from":"v1.0.169","to":"v1.0.170","loc":1459,"days":23.04,"loc_per_day":63.3,"flagged":false},{"from":"v1.0.170","to":"v1.0.171","loc":887,"days":26.83,"loc_per_day":33.1,"flagged":false},{"from":"v1.0.171","to":"v1.0.172","loc":1,"days":0.96,"loc_per_day":1.0,"flagged":false},{"from":"v1.0.172","to":"v1.0.173","loc":457,"days":11.5,"loc_per_day":39.7,"flagged":false},{"from":"v1.0.173","to":"v1.0.174","loc":83,"days":23.64,"loc_per_day":3.5,"flagged":false},{"from":"v1.0.174","to":"v1.0.175","loc":431,"days":30.36,"loc_per_day":14.2,"flagged":false},{"from":"v1.0.175","to":"v1.0.176","loc":13,"days":1.43,"loc_per_day":9.1,"flagged":false},{"from":"v1.0.176","to":"v1.0.177","loc":91,"days":19.89,"loc_per_day":4.6,"flagged":false},{"from":"v1.0.177","to":"v1.0.178","loc":412,"days":18.29,"loc_per_day":22.5,"flagged":false},{"from":"v1.0.178","to":"v1.0.179","loc":37,"days":2.4,"loc_per_day":15.4,"flagged":false},{"from":"v1.0.179","to":"v1.0.180","loc":91,"days":18.55,"loc_per_day":4.9,"flagged":false},{"from":"v1.0.180","to":"v1.0.181","loc":1,"days":0.14,"loc_per_day":7.0,"flagged":false},{"from":"v1.0.181","to":"v1.0.182","loc":120,"days":41.33,"loc_per_day":2.9,"flagged":false},{"from":"v1.0.182","to":"v1.0.183","loc":4,"days":2.47,"loc_per_day":1.6,"flagged":false},{"from":"v1.0.183","to":"v1.0.184","loc":247,"days":61.18,"loc_per_day":4.0,"flagged":false},{"from":"v1.0.184","to":"v1.0.186","loc":558,"days":33.25,"loc_per_day":16.8,"flagged":false},{"from":"v1.0.186","to":"v1.0.187","loc":167,"days":17.0,"loc_per_day":9.8,"flagged":false},{"from":"v1.0.187","to":"v1.0.188","loc":367,"days":45.08,"loc_per_day":8.1,"flagged":false},{"from":"v1.0.188","to":"v1.0.189","loc":327,"days":46.55,"loc_per_day":7.0,"flagged":false},{"from":"v1.0.189","to":"v1.0.190","loc":783,"days":25.52,"loc_per_day":30.7,"flagged":false},{"from":"v1.0.190","to":"v1.0.191","loc":4,"days":0.71,"loc_per_day":5.7,"flagged":false},{"from":"v1.0.191","to":"v1.0.192","loc":19,"days":0.71,"loc_per_day":26.8,"flagged":false},{"from":"v1.0.192","to":"v1.0.193","loc":1,"days":0.04,"loc_per_day":24.0,"flagged":false},{"from":"v1.0.193","to":"v1.0.194","loc":291,"days":2.0,"loc_per_day":145.7,"flagged":false},{"from":"v1.0.194","to":"v1.0.195","loc":0,"days":0.09,"loc_per_day":0.0,"flagged":false},{"from":"v1.0.195","to":"v1.0.196","loc":35,"days":0.34,"loc_per_day":102.6,"flagged":false},{"from":"v1.0.196","to":"v1.0.197","loc":468,"days":36.86,"loc_per_day":12.7,"flagged":false},{"from":"v1.0.197","to":"v1.0.198","loc":2069,"days":120.65,"loc_per_day":17.1,"flagged":false},{"from":"v1.0.198","to":"v1.0.199","loc":12,"days":3.16,"loc_per_day":3.8,"flagged":false},{"from":"v1.0.199","to":"v1.0.200","loc":2,"days":0.35,"loc_per_day":5.7,"flagged":false},{"from":"v1.0.200","to":"v1.0.201","loc":132,"days":37.62,"loc_per_day":3.5,"flagged":false},{"from":"v1.0.201","to":"v1.0.202","loc":25,"days":29.48,"loc_per_day":0.8,"flagged":false},{"from":"v1.0.202","to":"v1.0.204","loc":3,"days":10.47,"loc_per_day":0.3,"flagged":false},{"from":"v1.0.204","to":"v1.0.205","loc":39,"days":5.95,"loc_per_day":6.6,"flagged":false},{"from":"v1.0.205","to":"v1.0.206","loc":159,"days":101.43,"loc_per_day":1.6,"flagged":false},{"from":"v1.0.206","to":"v1.0.207","loc":5,"days":2.59,"loc_per_day":1.9,"flagged":false},{"from":"v1.0.207","to":"v1.0.208","loc":46,"days":110.42,"loc_per_day":0.4,"flagged":false},{"from":"v1.0.208","to":"v1.0.209","loc":63,"days":17.56,"loc_per_day":3.6,"flagged":false},{"from":"v1.0.209","to":"v1.0.210","loc":15,"days":5.53,"loc_per_day":2.7,"flagged":false},{"from":"v1.0.210","to":"v1.0.211","loc":34,"days":3.02,"loc_per_day":11.3,"flagged":false},{"from":"v1.0.211","to":"v1.0.212","loc":422,"days":60.82,"loc_per_day":6.9,"flagged":false},{"from":"v1.0.212","to":"v1.0.213","loc":0,"days":0.6,"loc_per_day":0.0,"flagged":false},{"from":"v1.0.213","to":"v1.0.214","loc":1,"days":4.97,"loc_per_day":0.2,"flagged":false},{"from":"v1.0.214","to":"v1.0.215","loc":2,"days":3.02,"loc_per_day":0.7,"flagged":false},{"from":"v1.0.215","to":"v1.0.216","loc":927,"days":90.12,"loc_per_day":10.3,"flagged":false},{"from":"v1.0.216","to":"v1.0.217","loc":100,"days":14.2,"loc_per_day":7.0,"flagged":false},{"from":"v1.0.217","to":"v1.0.218","loc":38,"days":0.08,"loc_per_day":456.4,"flagged":false},{"from":"v1.0.218","to":"v1.0.219","loc":18,"days":1.1,"loc_per_day":16.4,"flagged":false},{"from":"v1.0.219","to":"v1.0.220","loc":86,"days":7.06,"loc_per_day":12.2,"flagged":false},{"from":"v1.0.220","to":"v1.0.221","loc":40,"days":6.05,"loc_per_day":6.6,"flagged":false},{"from":"v1.0.221","to":"v1.0.222","loc":109,"days":41.41,"loc_per_day":2.6,"flagged":false},{"from":"v1.0.222","to":"v1.0.223","loc":34,"days":6.64,"loc_per_day":5.1,"flagged":false},{"from":"v1.0.223","to":"v1.0.224","loc":477,"days":135.77,"loc_per_day":3.5,"flagged":false},{"from":"v1.0.224","to":"v1.0.225","loc":0,"days":14.83,"loc_per_day":0.0,"flagged":false},{"from":"v1.0.225","to":"v1.0.226","loc":0,"days":8.25,"loc_per_day":0.0,"flagged":false},{"from":"v1.0.226","to":"v1.0.227","loc":1,"days":7.93,"loc_per_day":0.1,"flagged":false},{"from":"v1.0.227","to":"v1.0.228","loc":77,"days":51.22,"loc_per_day":1.5,"flagged":false},{"from":"v1.0.228","to":"v1.0.229","loc":119,"days":26.48,"loc_per_day":4.5,"flagged":false},{"from":"v1.0.229","to":"v1.0.230","loc":145,"days":63.46,"loc_per_day":2.3,"flagged":false},{"from":"v1.0.230","to":"v1.0.231","loc":738,"days":100.66,"loc_per_day":7.3,"flagged":false},{"from":"v1.0.231","to":"v1.0.232","loc":61,"days":10.07,"loc_per_day":6.1,"flagged":false},{"from":"v1.0.232","to":"v1.0.233","loc":489,"days":3.25,"loc_per_day":150.6,"flagged":false},{"from":"v1.0.233","to":"v1.0.234","loc":207,"days":9.51,"loc_per_day":21.8,"flagged":false},{"from":"v1.0.234","to":"v1.0.234-fork-base","loc":4,"days":3.5,"loc_per_day":1.1,"flagged":false},{"from":"v1.0.234-fork-base","to":"v1.0.235","loc":1630,"days":53.45,"loc_per_day":30.5,"flagged":false},{"from":"v1.0.235","to":"v1.0.236","loc":1034,"days":72.27,"loc_per_day":14.3,"flagged":false},{"from":"v1.0.236","to":"v1.0.237","loc":527,"days":1.23,"loc_per_day":427.0,"flagged":false},{"from":"v1.0.237","to":"v1.0.238","loc":370,"days":11.96,"loc_per_day":30.9,"flagged":false}]},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":32218.0,"index":0.016,"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":1.0,"per_kloc:emoji_in_code":0.031,"files:emoji_in_code":1.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":2.0,"secrets_low_confidence":2.0},"findings":[{"rule_id":"gitleaks/jwt","severity":"low","message":"Possible jwt secret in history (commit fa4c544c9c); removed from the current tree but still retrievable","path":"README.md","line":158,"fingerprint":"fa4c544c9c372622389172dcb0c630ed4de3355f:README.md:jwt:158"},{"rule_id":"gitleaks/aws-access-token","severity":"low","message":"Possible aws-access-token secret in history (commit fa4c544c9c); removed from the current tree but still retrievable","path":"README.md","line":158,"fingerprint":"fa4c544c9c372622389172dcb0c630ed4de3355f:README.md:aws-access-token:158"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit 5a9b4e56b7); removed from the current tree but still retrievable","path":"package.json","line":82,"fingerprint":"5a9b4e56b786736e7ac9f104c43915d0793e5e22:package.json:generic-api-key:82"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit f35fc846ec); removed from the current tree but still retrievable","path":"dist/app.bundle.js","line":19,"fingerprint":"f35fc846ec97a6e3eaec1e986aa9e93252cf84dc:dist/app.bundle.js:generic-api-key:19"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":123.0,"findings_high":7.0,"findings_medium":111.0,"findings_low":5.0,"weighted_findings":34.363,"scanned_lines":32213.0,"parse_errors":3.0},"findings":[{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `configuration`. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low]","path":"scripts/build-windows.mjs","line":41,"fingerprint":"javascript.lang.security.detect-child-process:scripts/build-windows.mjs:41"},{"rule_id":"opengrep/javascript.browser.security.insecure-document-method","severity":"high","message":"User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"tabby-core/src/directives/dropZone.directive.ts","line":23,"fingerprint":"javascript.browser.security.insecure-document-method:tabby-core/src/directives/dropZone.directive.ts:23"},{"rule_id":"opengrep/javascript.browser.security.insecure-innerhtml","severity":"high","message":"User controlled data in a `this.dropHint.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"tabby-core/src/directives/dropZone.directive.ts","line":23,"fingerprint":"javascript.browser.security.insecure-innerhtml:tabby-core/src/directives/dropZone.directive.ts:23"},{"rule_id":"opengrep/javascript.browser.security.insecure-document-method","severity":"high","message":"User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"tabby-core/src/directives/fastHtmlBind.directive.ts","line":22,"fingerprint":"javascript.browser.security.insecure-document-method:tabby-core/src/directives/fastHtmlBind.directive.ts:22"},{"rule_id":"opengrep/javascript.browser.security.insecure-innerhtml","severity":"high","message":"User controlled data in a `this.el.nativeElement.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"tabby-core/src/directives/fastHtmlBind.directive.ts","line":22,"fingerprint":"javascript.browser.security.insecure-innerhtml:tabby-core/src/directives/fastHtmlBind.directive.ts:22"},{"rule_id":"opengrep/javascript.browser.security.insecure-document-method","severity":"high","message":"User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"tabby-core/src/services/themes.service.ts","line":226,"fingerprint":"javascript.browser.security.insecure-document-method:tabby-core/src/services/themes.service.ts:226"},{"rule_id":"opengrep/javascript.browser.security.insecure-innerhtml","severity":"high","message":"User controlled data in a `document.querySelector('style#custom-css')!.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"tabby-core/src/services/themes.service.ts","line":226,"fingerprint":"javascript.browser.security.insecure-innerhtml:tabby-core/src/services/themes.service.ts:226"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"app/src/plugins.ts","line":73,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:app/src/plugins.ts:73"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"app/src/plugins.ts","line":163,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:app/src/plugins.ts:163"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"app/src/plugins.ts","line":163,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:app/src/plugins.ts:163"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"app/src/plugins.ts","line":164,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:app/src/plugins.ts:164"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"app/webpack.config.main.mjs","line":22,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:app/webpack.config.main.mjs:22"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"app/webpack.config.mjs","line":42,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:app/webpack.config.mjs:42"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-core/src/components/appRoot.component.pug","line":70,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-core/src/components/appRoot.component.pug:70"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-core/src/components/appRoot.component.pug","line":97,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-core/src/components/appRoot.component.pug:97"},{"rule_id":"opengrep/typescript.angular.security.audit.angular-bypasssecuritytrust","severity":"medium","message":"Detected the use of `bypassSecurityTrustHtml`. This can introduce a Cross-Site-Scripting (XSS) vulnerability if this comes from user-provided input. If you have to use `bypassSecurityTrustHtml`, ensure it does not come from user-input or use the appropriate prevention mechanism e.g. input validation [confidence medium]","path":"tabby-core/src/components/startPage.component.ts","line":28,"fingerprint":"typescript.angular.security.audit.angular-bypasssecuritytrust:tabby-core/src/components/startPage.component.ts:28"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-core/src/components/tabHeader.component.pug","line":1,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-core/src/components/tabHeader.component.pug:1"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-core/src/components/tabHeader.component.pug","line":2,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-core/src/components/tabHeader.component.pug:2"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-core/src/components/tabHeader.component.pug","line":28,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-core/src/components/tabHeader.component.pug:28"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-core/src/components/transfersMenu.component.pug","line":3,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-core/src/components/transfersMenu.component.pug:3"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-core/src/components/transfersMenu.component.pug","line":5,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-core/src/components/transfersMenu.component.pug:5"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-core/src/components/transfersMenu.component.pug","line":6,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-core/src/components/transfersMenu.component.pug:6"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-core/src/components/transfersMenu.component.pug","line":19,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-core/src/components/transfersMenu.component.pug:19"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-core/src/components/transfersMenu.component.pug","line":23,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-core/src/components/transfersMenu.component.pug:23"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-require","severity":"medium","message":"Detected the use of require(variable). Calling require with a non-literal argument might allow an attacker to load and run arbitrary code, or access arbitrary files. [confidence low]","path":"tabby-core/src/services/locale.service.ts","line":244,"fingerprint":"javascript.lang.security.audit.detect-non-literal-require:tabby-core/src/services/locale.service.ts:244"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-core/src/services/log.service.ts","line":29,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-core/src/services/log.service.ts:29"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/colorSchemes.ts","line":20,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/colorSchemes.ts:20"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `electron` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/services/log.service.ts","line":13,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/services/log.service.ts:13"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `electron` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/services/log.service.ts","line":14,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/services/log.service.ts:14"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/services/log.service.ts","line":21,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/services/log.service.ts:21"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-electron/src/services/log.service.ts","line":39,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-electron/src/services/log.service.ts:39"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/services/platform.service.ts","line":29,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/services/platform.service.ts:29"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/services/platform.service.ts","line":30,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/services/platform.service.ts:30"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/services/platform.service.ts","line":30,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/services/platform.service.ts:30"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/services/platform.service.ts","line":65,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/services/platform.service.ts:65"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/services/platform.service.ts","line":68,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/services/platform.service.ts:68"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/services/platform.service.ts","line":68,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/services/platform.service.ts:68"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/services/platform.service.ts","line":70,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/services/platform.service.ts:70"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/services/platform.service.ts","line":70,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/services/platform.service.ts:70"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/services/platform.service.ts","line":332,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/services/platform.service.ts:332"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `relativePath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/services/platform.service.ts","line":499,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/services/platform.service.ts:499"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `relativePath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/services/platform.service.ts","line":504,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/services/platform.service.ts:504"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `item` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/sftpContextMenu.ts","line":51,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/sftpContextMenu.ts:51"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `item` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/sftpContextMenu.ts","line":55,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/sftpContextMenu.ts:55"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/shells/windowsBase.ts","line":45,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/shells/windowsBase.ts:45"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/shells/windowsBase.ts","line":50,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/shells/windowsBase.ts:50"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/sshImporters.ts","line":99,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/sshImporters.ts:99"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/sshImporters.ts","line":101,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/sshImporters.ts:101"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/sshImporters.ts","line":127,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/sshImporters.ts:127"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/sshImporters.ts","line":128,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/sshImporters.ts:128"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-electron/src/sshImporters.ts","line":145,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-electron/src/sshImporters.ts:145"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/sshImporters.ts","line":279,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/sshImporters.ts:279"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/sshImporters.ts","line":386,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/sshImporters.ts:386"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-electron/src/sshImporters.ts","line":446,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-electron/src/sshImporters.ts:446"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `uri` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-linkifier/src/handlers.ts","line":61,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-linkifier/src/handlers.ts:61"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-linkifier/src/handlers.ts","line":73,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-linkifier/src/handlers.ts:73"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-linkifier/src/handlers.ts","line":73,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-linkifier/src/handlers.ts:73"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-local/src/cli.ts","line":25,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-local/src/cli.ts:25"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-local/src/cli.ts","line":25,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-local/src/cli.ts:25"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-local/src/cli.ts","line":90,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-local/src/cli.ts:90"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-local/src/cli.ts","line":90,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-local/src/cli.ts:90"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `path` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-local/src/util.ts","line":28,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-local/src/util.ts:28"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-plugin-manager/src/components/pluginsSettingsTab.component.pug","line":42,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-plugin-manager/src/components/pluginsSettingsTab.component.pug:42"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-plugin-manager/src/components/pluginsSettingsTab.component.pug","line":86,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-plugin-manager/src/components/pluginsSettingsTab.component.pug:86"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-plugin-manager/src/components/pluginsSettingsTab.component.pug","line":113,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-plugin-manager/src/components/pluginsSettingsTab.component.pug:113"},{"rule_id":"opengrep/javascript.lang.security.audit.prototype-pollution.prototype-pollution-loop","severity":"medium","message":"Possibility of prototype polluting function detected. By adding or modifying attributes of an object prototype, it is possible to create attributes that exist on every object, or replace critical attributes with malicious ones. This can be problematic if the software depends on existence or non-exis [confidence low]","path":"tabby-settings/src/components/hotkeySettingsTab.component.ts","line":40,"fingerprint":"javascript.lang.security.audit.prototype-pollution.prototype-pollution-loop:tabby-settings/src/components/hotkeySettingsTab.component.ts:40"},{"rule_id":"opengrep/javascript.lang.security.audit.prototype-pollution.prototype-pollution-loop","severity":"medium","message":"Possibility of prototype polluting function detected. By adding or modifying attributes of an object prototype, it is possible to create attributes that exist on every object, or replace critical attributes with malicious ones. This can be problematic if the software depends on existence or non-exis [confidence low]","path":"tabby-settings/src/components/hotkeySettingsTab.component.ts","line":55,"fingerprint":"javascript.lang.security.audit.prototype-pollution.prototype-pollution-loop:tabby-settings/src/components/hotkeySettingsTab.component.ts:55"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-settings/src/components/windowSettingsTab.component.pug","line":201,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-settings/src/components/windowSettingsTab.component.pug:201"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-settings/src/components/windowSettingsTab.component.pug","line":229,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-settings/src/components/windowSettingsTab.component.pug:229"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-settings/src/components/windowSettingsTab.component.pug","line":238,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-settings/src/components/windowSettingsTab.component.pug:238"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-settings/src/components/windowSettingsTab.component.pug","line":251,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-settings/src/components/windowSettingsTab.component.pug:251"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-settings/src/components/windowSettingsTab.component.pug","line":264,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-settings/src/components/windowSettingsTab.component.pug:264"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-ssh/src/components/sftpPanel.component.pug","line":40,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-ssh/src/components/sftpPanel.component.pug:40"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-ssh/src/components/sftpPanel.component.ts","line":165,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-ssh/src/components/sftpPanel.component.ts:165"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-ssh/src/components/sftpPanel.component.ts","line":184,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-ssh/src/components/sftpPanel.component.ts:184"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"tabby-ssh/src/components/sftpPanel.component.ts","line":241,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:tabby-ssh/src/components/sftpPanel.component.ts:241"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `query` 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":"tabby-terminal/src/components/appearanceSettingsTab.component.ts","line":30,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:tabby-terminal/src/components/appearanceSettingsTab.component.ts:30"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-terminal/src/components/colorSchemeSelector.component.pug","line":2,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-terminal/src/components/colorSchemeSelector.component.pug:2"},{"rule_id":"opengrep/javascript.express.security.audit.xss.pug.template-explicit-unescape","severity":"medium","message":"Detected an explicit unescape in a Pug template, using either '!=' or '!{...}'. If external data can reach these locations, your application is exposed to a cross-site scripting (XSS) vulnerability. If you must do this, ensure no external data can reach this location. [confidence low]","path":"tabby-terminal/src/components/terminalSettingsTab.component.pug","line":221,"fingerprint":"javascript.express.security.audit.xss.pug.template-explicit-unescape:tabby-terminal/src/components/terminalSettingsTab.component.pug:221"},{"rule_id":"opengrep/javascript.lang.security.audit.prototype-pollution.prototype-pollution-loop","severity":"medium","message":"Possibility of prototype polluting function detected. By adding or modifying attributes of an object prototype, it is possible to create attributes that exist on every object, or replace critical attributes with malicious ones. This can be problematic if the software depends on existence or non-exis [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":4,"fingerprint":"javascript.lang.security.audit.prototype-pollution.prototype-pollution-loop:tabby-web-demo/data/v86_all.js:4"},{"rule_id":"opengrep/javascript.lang.security.audit.prototype-pollution.prototype-pollution-loop","severity":"medium","message":"Possibility of prototype polluting function detected. By adding or modifying attributes of an object prototype, it is possible to create attributes that exist on every object, or replace critical attributes with malicious ones. This can be problematic if the software depends on existence or non-exis [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":5,"fingerprint":"javascript.lang.security.audit.prototype-pollution.prototype-pollution-loop:tabby-web-demo/data/v86_all.js:5"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":60,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:60"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":60,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:60"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":60,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:60"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":60,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:60"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":60,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:60"},{"rule_id":"opengrep/javascript.browser.security.wildcard-postmessage-configuration","severity":"medium","message":"The target origin of the window.postMessage() API is set to \"*\". This could allow for information disclosure due to the possibility of any origin allowed to receive the message. [confidence medium]","path":"tabby-web-demo/data/v86_all.js","line":70,"fingerprint":"javascript.browser.security.wildcard-postmessage-configuration:tabby-web-demo/data/v86_all.js:70"},{"rule_id":"opengrep/javascript.browser.security.insufficient-postmessage-origin-validation","severity":"medium","message":"No validation of origin is done by the addEventListener API. It may be possible to exploit this flaw to perform Cross Origin attacks such as Cross-Site Scripting(XSS). [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":70,"fingerprint":"javascript.browser.security.insufficient-postmessage-origin-validation:tabby-web-demo/data/v86_all.js:70"},{"rule_id":"opengrep/javascript.lang.security.audit.prototype-pollution.prototype-pollution-assignment","severity":"medium","message":"Possibility of prototype polluting assignment detected. By adding or modifying attributes of an object prototype, it is possible to create attributes that exist on every object, or replace critical attributes with malicious ones. This can be problematic if the software depends on existence or non-ex [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":167,"fingerprint":"javascript.lang.security.audit.prototype-pollution.prototype-pollution-assignment:tabby-web-demo/data/v86_all.js:167"},{"rule_id":"opengrep/javascript.lang.security.audit.prototype-pollution.prototype-pollution-assignment","severity":"medium","message":"Possibility of prototype polluting assignment detected. By adding or modifying attributes of an object prototype, it is possible to create attributes that exist on every object, or replace critical attributes with malicious ones. This can be problematic if the software depends on existence or non-ex [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":168,"fingerprint":"javascript.lang.security.audit.prototype-pollution.prototype-pollution-assignment:tabby-web-demo/data/v86_all.js:168"},{"rule_id":"opengrep/javascript.lang.security.audit.prototype-pollution.prototype-pollution-assignment","severity":"medium","message":"Possibility of prototype polluting assignment detected. By adding or modifying attributes of an object prototype, it is possible to create attributes that exist on every object, or replace critical attributes with malicious ones. This can be problematic if the software depends on existence or non-ex [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":168,"fingerprint":"javascript.lang.security.audit.prototype-pollution.prototype-pollution-assignment:tabby-web-demo/data/v86_all.js:168"},{"rule_id":"opengrep/javascript.lang.security.audit.prototype-pollution.prototype-pollution-assignment","severity":"medium","message":"Possibility of prototype polluting assignment detected. By adding or modifying attributes of an object prototype, it is possible to create attributes that exist on every object, or replace critical attributes with malicious ones. This can be problematic if the software depends on existence or non-ex [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":168,"fingerprint":"javascript.lang.security.audit.prototype-pollution.prototype-pollution-assignment:tabby-web-demo/data/v86_all.js:168"},{"rule_id":"opengrep/javascript.lang.security.audit.prototype-pollution.prototype-pollution-assignment","severity":"medium","message":"Possibility of prototype polluting assignment detected. By adding or modifying attributes of an object prototype, it is possible to create attributes that exist on every object, or replace critical attributes with malicious ones. This can be problematic if the software depends on existence or non-ex [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":168,"fingerprint":"javascript.lang.security.audit.prototype-pollution.prototype-pollution-assignment:tabby-web-demo/data/v86_all.js:168"},{"rule_id":"opengrep/javascript.lang.security.audit.prototype-pollution.prototype-pollution-assignment","severity":"medium","message":"Possibility of prototype polluting assignment detected. By adding or modifying attributes of an object prototype, it is possible to create attributes that exist on every object, or replace critical attributes with malicious ones. This can be problematic if the software depends on existence or non-ex [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":169,"fingerprint":"javascript.lang.security.audit.prototype-pollution.prototype-pollution-assignment:tabby-web-demo/data/v86_all.js:169"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":189,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:189"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":189,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:189"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":189,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:189"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":189,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:189"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":189,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:189"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":189,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:189"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":190,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:190"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":190,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:190"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":190,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:190"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":190,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:190"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":190,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:190"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":190,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:190"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":190,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:tabby-web-demo/data/v86_all.js:190"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `g` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":712,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-web-demo/data/v86_all.js:712"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `r` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":712,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-web-demo/data/v86_all.js:712"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `r` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":712,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-web-demo/data/v86_all.js:712"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `g` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"tabby-web-demo/data/v86_all.js","line":712,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:tabby-web-demo/data/v86_all.js:712"},{"rule_id":"opengrep/javascript.browser.security.wildcard-postmessage-configuration","severity":"medium","message":"The target origin of the window.postMessage() API is set to \"*\". This could allow for information disclosure due to the possibility of any origin allowed to receive the message. [confidence medium]","path":"web/entry.ts","line":26,"fingerprint":"javascript.browser.security.wildcard-postmessage-configuration:web/entry.ts:26"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"web/webpack.config.mjs","line":46,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:web/webpack.config.mjs:46"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"webpack.plugin.config.mjs","line":46,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:webpack.plugin.config.mjs:46"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"webpack.plugin.config.mjs","line":58,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:webpack.plugin.config.mjs:58"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"webpack.plugin.config.mjs","line":62,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:webpack.plugin.config.mjs:62"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"webpack.plugin.config.mjs","line":62,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:webpack.plugin.config.mjs:62"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"webpack.plugin.config.mjs","line":175,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:webpack.plugin.config.mjs:175"},{"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":"app/lib/urlHandler.ts","line":56,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/lib/urlHandler.ts:56"},{"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":"app/src/plugins.ts","line":262,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/src/plugins.ts:262"},{"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":"tabby-electron/src/sshImporters.ts","line":130,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:tabby-electron/src/sshImporters.ts:130"},{"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":"tabby-ssh/src/services/passwordStorage.service.ts","line":54,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:tabby-ssh/src/services/passwordStorage.service.ts:54"},{"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":"tabby-web-demo/data/v86_all.js","line":711,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:tabby-web-demo/data/v86_all.js:711"}],"evidence":[],"data":{"rulesets":["typescript","javascript","c"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":34.0,"vulnerabilities":89.0,"vulns_critical":2.0,"vulns_high":41.0,"vulns_medium":37.0,"vulns_low":7.0,"vulns_unknown":2.0,"penalty":212.0},"findings":[{"rule_id":"osv/GHSA-76p3-8jx3-jpfq","severity":"critical","message":"loader-utils@0.2.17 (npm) is affected by GHSA-76p3-8jx3-jpfq","path":"yarn.lock","line":null,"fingerprint":"loader-utils@0.2.17 (npm):GHSA-76p3-8jx3-jpfq"},{"rule_id":"osv/GHSA-pqg4-j6r4-53mv","severity":"critical","message":"shell-quote@1.10.0 (npm) is affected by GHSA-pqg4-j6r4-53mv","path":"yarn.lock","line":null,"fingerprint":"shell-quote@1.10.0 (npm):GHSA-pqg4-j6r4-53mv"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@5.0.9 (npm) is affected by GHSA-6j4f-fj2g-mc7p; also in yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"brace-expansion@5.0.9 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@5.0.9 (npm) is affected by GHSA-qhr7-859c-m2p7; also in yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"brace-expansion@5.0.9 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-p2f4-r6v6-j797","severity":"high","message":"builder-util-runtime@9.1.1 (npm) is affected by GHSA-p2f4-r6v6-j797","path":"app/yarn.lock","line":null,"fingerprint":"builder-util-runtime@9.1.1 (npm):GHSA-p2f4-r6v6-j797"},{"rule_id":"osv/GHSA-9jxc-qjr9-vjxq","severity":"high","message":"electron-updater@5.3.0 (npm) is affected by GHSA-9jxc-qjr9-vjxq","path":"app/yarn.lock","line":null,"fingerprint":"electron-updater@5.3.0 (npm):GHSA-9jxc-qjr9-vjxq"},{"rule_id":"osv/GHSA-2883-xcg3-v3hh","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-2883-xcg3-v3hh","path":"app/yarn.lock","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-2883-xcg3-v3hh"},{"rule_id":"osv/GHSA-52cp-r559-cp3m","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-52cp-r559-cp3m","path":"app/yarn.lock","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-52cp-r559-cp3m"},{"rule_id":"osv/GHSA-5p4m-2wfm-xmqj","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-5p4m-2wfm-xmqj","path":"app/yarn.lock","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-5p4m-2wfm-xmqj"},{"rule_id":"osv/GHSA-2m5v-pch6-74hx","severity":"high","message":"undici@8.10.2 (npm) is affected by GHSA-2m5v-pch6-74hx; also in yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-2m5v-pch6-74hx"},{"rule_id":"osv/GHSA-4w7w-5xrc-9h26","severity":"high","message":"undici@8.10.2 (npm) is affected by GHSA-4w7w-5xrc-9h26; also in yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-4w7w-5xrc-9h26"},{"rule_id":"osv/GHSA-qrxm-fqhp-jwvm","severity":"high","message":"undici@8.10.2 (npm) is affected by GHSA-qrxm-fqhp-jwvm; also in yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-qrxm-fqhp-jwvm"},{"rule_id":"osv/GHSA-xjj6-f33q-929c","severity":"high","message":"undici@8.10.2 (npm) is affected by GHSA-xjj6-f33q-929c; also in yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-xjj6-f33q-929c"},{"rule_id":"osv/GHSA-w5hq-g745-h8pq","severity":"high","message":"uuid@3.4.0 (npm) is affected by GHSA-w5hq-g745-h8pq; also in tabby-electron/yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"uuid@3.4.0 (npm):GHSA-w5hq-g745-h8pq"},{"rule_id":"osv/GHSA-w5hq-g745-h8pq","severity":"high","message":"uuid@9.0.1 (npm) is affected by GHSA-w5hq-g745-h8pq","path":"tabby-core/yarn.lock","line":null,"fingerprint":"uuid@9.0.1 (npm):GHSA-w5hq-g745-h8pq"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@1.1.18 (npm) is affected by GHSA-6j4f-fj2g-mc7p; also in tabby-terminal/yarn.lock; also in web/yarn.lock; also in yarn.lock","path":"tabby-ssh/yarn.lock","line":null,"fingerprint":"brace-expansion@1.1.18 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@1.1.18 (npm) is affected by GHSA-qhr7-859c-m2p7; also in tabby-terminal/yarn.lock; also in web/yarn.lock; also in yarn.lock","path":"tabby-ssh/yarn.lock","line":null,"fingerprint":"brace-expansion@1.1.18 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-ph9p-34f9-6g65","severity":"high","message":"tmp@0.0.33 (npm) is affected by GHSA-ph9p-34f9-6g65; also in web/yarn.lock; also in yarn.lock","path":"tabby-terminal/yarn.lock","line":null,"fingerprint":"tmp@0.0.33 (npm):GHSA-ph9p-34f9-6g65"},{"rule_id":"osv/GHSA-39pv-4j6c-2g6v","severity":"high","message":"@angular/common@15.2.10 (npm) is affected by GHSA-39pv-4j6c-2g6v","path":"yarn.lock","line":null,"fingerprint":"@angular/common@15.2.10 (npm):GHSA-39pv-4j6c-2g6v"},{"rule_id":"osv/GHSA-48r7-hpm6-gfxm","severity":"high","message":"@angular/common@15.2.10 (npm) is affected by GHSA-48r7-hpm6-gfxm","path":"yarn.lock","line":null,"fingerprint":"@angular/common@15.2.10 (npm):GHSA-48r7-hpm6-gfxm"},{"rule_id":"osv/GHSA-58c5-g7wp-6w37","severity":"high","message":"@angular/common@15.2.10 (npm) is affected by GHSA-58c5-g7wp-6w37","path":"yarn.lock","line":null,"fingerprint":"@angular/common@15.2.10 (npm):GHSA-58c5-g7wp-6w37"},{"rule_id":"osv/GHSA-jhpw-976m-542j","severity":"high","message":"@angular/common@15.2.10 (npm) is affected by GHSA-jhpw-976m-542j","path":"yarn.lock","line":null,"fingerprint":"@angular/common@15.2.10 (npm):GHSA-jhpw-976m-542j"},{"rule_id":"osv/GHSA-p3vc-36g9-x9gr","severity":"high","message":"@angular/common@15.2.10 (npm) is affected by GHSA-p3vc-36g9-x9gr","path":"yarn.lock","line":null,"fingerprint":"@angular/common@15.2.10 (npm):GHSA-p3vc-36g9-x9gr"},{"rule_id":"osv/GHSA-q6f4-qqrg-jv6x","severity":"high","message":"@angular/common@15.2.10 (npm) is affected by GHSA-q6f4-qqrg-jv6x","path":"yarn.lock","line":null,"fingerprint":"@angular/common@15.2.10 (npm):GHSA-q6f4-qqrg-jv6x"},{"rule_id":"osv/GHSA-jj27-h5hq-8x99","severity":"high","message":"@angular/compiler@15.2.10 (npm) is affected by GHSA-jj27-h5hq-8x99","path":"yarn.lock","line":null,"fingerprint":"@angular/compiler@15.2.10 (npm):GHSA-jj27-h5hq-8x99"},{"rule_id":"osv/GHSA-jrmj-c5cx-3cw6","severity":"high","message":"@angular/compiler@15.2.10 (npm) is affected by GHSA-jrmj-c5cx-3cw6","path":"yarn.lock","line":null,"fingerprint":"@angular/compiler@15.2.10 (npm):GHSA-jrmj-c5cx-3cw6"},{"rule_id":"osv/GHSA-v4hv-rgfq-gp49","severity":"high","message":"@angular/compiler@15.2.10 (npm) is affected by GHSA-v4hv-rgfq-gp49","path":"yarn.lock","line":null,"fingerprint":"@angular/compiler@15.2.10 (npm):GHSA-v4hv-rgfq-gp49"},{"rule_id":"osv/GHSA-jj27-h5hq-8x99","severity":"high","message":"@angular/core@15.2.10 (npm) is affected by GHSA-jj27-h5hq-8x99","path":"yarn.lock","line":null,"fingerprint":"@angular/core@15.2.10 (npm):GHSA-jj27-h5hq-8x99"},{"rule_id":"osv/GHSA-jrmj-c5cx-3cw6","severity":"high","message":"@angular/core@15.2.10 (npm) is affected by GHSA-jrmj-c5cx-3cw6","path":"yarn.lock","line":null,"fingerprint":"@angular/core@15.2.10 (npm):GHSA-jrmj-c5cx-3cw6"},{"rule_id":"osv/GHSA-prjf-86w9-mfqv","severity":"high","message":"@angular/core@15.2.10 (npm) is affected by GHSA-prjf-86w9-mfqv","path":"yarn.lock","line":null,"fingerprint":"@angular/core@15.2.10 (npm):GHSA-prjf-86w9-mfqv"},{"rule_id":"osv/GHSA-rgjc-h3x7-9mwg","severity":"high","message":"@angular/core@15.2.10 (npm) is affected by GHSA-rgjc-h3x7-9mwg","path":"yarn.lock","line":null,"fingerprint":"@angular/core@15.2.10 (npm):GHSA-rgjc-h3x7-9mwg"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@2.1.4 (npm) is affected by GHSA-6j4f-fj2g-mc7p","path":"yarn.lock","line":null,"fingerprint":"brace-expansion@2.1.4 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@2.1.4 (npm) is affected by GHSA-qhr7-859c-m2p7","path":"yarn.lock","line":null,"fingerprint":"brace-expansion@2.1.4 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-jr5w-w6x2-84p9","severity":"high","message":"electron@43.7.0 (npm) is affected by GHSA-jr5w-w6x2-84p9","path":"yarn.lock","line":null,"fingerprint":"electron@43.7.0 (npm):GHSA-jr5w-w6x2-84p9"},{"rule_id":"osv/GHSA-9c47-m6qq-7p4h","severity":"high","message":"json5@0.5.1 (npm) is affected by GHSA-9c47-m6qq-7p4h","path":"yarn.lock","line":null,"fingerprint":"json5@0.5.1 (npm):GHSA-9c47-m6qq-7p4h"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@9.0.3 (npm) is affected by GHSA-23c5-xmqv-rm74","path":"yarn.lock","line":null,"fingerprint":"minimatch@9.0.3 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@9.0.3 (npm) is affected by GHSA-3ppc-4f35-3m26","path":"yarn.lock","line":null,"fingerprint":"minimatch@9.0.3 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@9.0.3 (npm) is affected by GHSA-7r86-cg39-jmmj","path":"yarn.lock","line":null,"fingerprint":"minimatch@9.0.3 (npm):GHSA-7r86-cg39-jmmj"},{"rule_id":"osv/GHSA-68fv-2mgg-jv7q","severity":"high","message":"source-map-js@1.2.1 (npm) is affected by GHSA-68fv-2mgg-jv7q","path":"yarn.lock","line":null,"fingerprint":"source-map-js@1.2.1 (npm):GHSA-68fv-2mgg-jv7q"},{"rule_id":"osv/GHSA-2m5v-pch6-74hx","severity":"high","message":"undici@7.29.1 (npm) is affected by GHSA-2m5v-pch6-74hx","path":"yarn.lock","line":null,"fingerprint":"undici@7.29.1 (npm):GHSA-2m5v-pch6-74hx"},{"rule_id":"osv/GHSA-4w7w-5xrc-9h26","severity":"high","message":"undici@7.29.1 (npm) is affected by GHSA-4w7w-5xrc-9h26","path":"yarn.lock","line":null,"fingerprint":"undici@7.29.1 (npm):GHSA-4w7w-5xrc-9h26"},{"rule_id":"osv/GHSA-qrxm-fqhp-jwvm","severity":"high","message":"undici@7.29.1 (npm) is affected by GHSA-qrxm-fqhp-jwvm","path":"yarn.lock","line":null,"fingerprint":"undici@7.29.1 (npm):GHSA-qrxm-fqhp-jwvm"},{"rule_id":"osv/GHSA-xjj6-f33q-929c","severity":"high","message":"undici@7.29.1 (npm) is affected by GHSA-xjj6-f33q-929c","path":"yarn.lock","line":null,"fingerprint":"undici@7.29.1 (npm):GHSA-xjj6-f33q-929c"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@5.0.9 (npm) is affected by GHSA-q2hr-2g5m-vwhr; also in yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"brace-expansion@5.0.9 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-3g3m-2fjr-6pw4","severity":"medium","message":"glob@13.0.6 (npm) is affected by GHSA-3g3m-2fjr-6pw4","path":"app/yarn.lock","line":null,"fingerprint":"glob@13.0.6 (npm):GHSA-3g3m-2fjr-6pw4"},{"rule_id":"osv/GHSA-h3mg-xc3c-68pw","severity":"medium","message":"ip-address@10.7.0 (npm) is affected by GHSA-h3mg-xc3c-68pw","path":"app/yarn.lock","line":null,"fingerprint":"ip-address@10.7.0 (npm):GHSA-h3mg-xc3c-68pw"},{"rule_id":"osv/GHSA-j6r3-76f7-8jcv","severity":"medium","message":"ip-address@10.7.0 (npm) is affected by GHSA-j6r3-76f7-8jcv","path":"app/yarn.lock","line":null,"fingerprint":"ip-address@10.7.0 (npm):GHSA-j6r3-76f7-8jcv"},{"rule_id":"osv/GHSA-rxp7-6hxx-x8q5","severity":"medium","message":"ip-address@10.7.0 (npm) is affected by GHSA-rxp7-6hxx-x8q5","path":"app/yarn.lock","line":null,"fingerprint":"ip-address@10.7.0 (npm):GHSA-rxp7-6hxx-x8q5"},{"rule_id":"osv/GHSA-h67p-54hq-rp68","severity":"medium","message":"js-yaml@4.1.0 (npm) is affected by GHSA-h67p-54hq-rp68","path":"app/yarn.lock","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-h67p-54hq-rp68"},{"rule_id":"osv/GHSA-mh29-5h37-fv8m","severity":"medium","message":"js-yaml@4.1.0 (npm) is affected by GHSA-mh29-5h37-fv8m","path":"app/yarn.lock","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-mh29-5h37-fv8m"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@10.2.6 (npm) is affected by GHSA-g3hv-75wg-m249; also in yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"minimatch@10.2.6 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-4qv8-2p9j-2685","severity":"medium","message":"undici@8.10.2 (npm) is affected by GHSA-4qv8-2p9j-2685; also in yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-4qv8-2p9j-2685"},{"rule_id":"osv/GHSA-55wc-3pg8-jfw6","severity":"medium","message":"undici@8.10.2 (npm) is affected by GHSA-55wc-3pg8-jfw6; also in yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-55wc-3pg8-jfw6"},{"rule_id":"osv/GHSA-9fm3-97px-rjf6","severity":"medium","message":"undici@8.10.2 (npm) is affected by GHSA-9fm3-97px-rjf6; also in yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-9fm3-97px-rjf6"},{"rule_id":"osv/GHSA-f72v-6w45-q472","severity":"medium","message":"undici@8.10.2 (npm) is affected by GHSA-f72v-6w45-q472; also in yarn.lock","path":"app/yarn.lock","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-f72v-6w45-q472"},{"rule_id":"osv/GHSA-gcqx-w48m-w2h4","severity":"medium","message":"deepmerge@4.3.1 (npm) is affected by GHSA-gcqx-w48m-w2h4; also in web/yarn.lock","path":"tabby-core/yarn.lock","line":null,"fingerprint":"deepmerge@4.3.1 (npm):GHSA-gcqx-w48m-w2h4"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@1.1.18 (npm) is affected by GHSA-q2hr-2g5m-vwhr; also in tabby-terminal/yarn.lock; also in web/yarn.lock; also in yarn.lock","path":"tabby-ssh/yarn.lock","line":null,"fingerprint":"brace-expansion@1.1.18 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-6cpc-mj5c-m9rq","severity":"medium","message":"cli@0.4.5 (npm) is affected by GHSA-6cpc-mj5c-m9rq","path":"tabby-ssh/yarn.lock","line":null,"fingerprint":"cli@0.4.5 (npm):GHSA-6cpc-mj5c-m9rq"},{"rule_id":"osv/GHSA-848j-6mx2-7j84","severity":"medium","message":"elliptic@6.6.1 (npm) is affected by GHSA-848j-6mx2-7j84","path":"web/yarn.lock","line":null,"fingerprint":"elliptic@6.6.1 (npm):GHSA-848j-6mx2-7j84"},{"rule_id":"osv/GHSA-477h-4r7f-fvrx","severity":"medium","message":"pbkdf2@3.1.6 (npm) is affected by GHSA-477h-4r7f-fvrx","path":"web/yarn.lock","line":null,"fingerprint":"pbkdf2@3.1.6 (npm):GHSA-477h-4r7f-fvrx"},{"rule_id":"osv/GHSA-6pq8-jhm2-2vcw","severity":"medium","message":"qs@6.16.0 (npm) is affected by GHSA-6pq8-jhm2-2vcw","path":"web/yarn.lock","line":null,"fingerprint":"qs@6.16.0 (npm):GHSA-6pq8-jhm2-2vcw"},{"rule_id":"osv/GHSA-jfgx-762w-99vr","severity":"medium","message":"@angular/common@15.2.10 (npm) is affected by GHSA-jfgx-762w-99vr","path":"yarn.lock","line":null,"fingerprint":"@angular/common@15.2.10 (npm):GHSA-jfgx-762w-99vr"},{"rule_id":"osv/GHSA-p297-fm68-3q8c","severity":"medium","message":"@angular/common@15.2.10 (npm) is affected by GHSA-p297-fm68-3q8c","path":"yarn.lock","line":null,"fingerprint":"@angular/common@15.2.10 (npm):GHSA-p297-fm68-3q8c"},{"rule_id":"osv/GHSA-58w9-8g37-x9v5","severity":"medium","message":"@angular/compiler@15.2.10 (npm) is affected by GHSA-58w9-8g37-x9v5","path":"yarn.lock","line":null,"fingerprint":"@angular/compiler@15.2.10 (npm):GHSA-58w9-8g37-x9v5"},{"rule_id":"osv/GHSA-f3m7-gqxr-g87x","severity":"medium","message":"@angular/compiler@15.2.10 (npm) is affected by GHSA-f3m7-gqxr-g87x","path":"yarn.lock","line":null,"fingerprint":"@angular/compiler@15.2.10 (npm):GHSA-f3m7-gqxr-g87x"},{"rule_id":"osv/GHSA-hh8m-fm6v-7cvg","severity":"medium","message":"@angular/compiler@15.2.10 (npm) is affected by GHSA-hh8m-fm6v-7cvg","path":"yarn.lock","line":null,"fingerprint":"@angular/compiler@15.2.10 (npm):GHSA-hh8m-fm6v-7cvg"},{"rule_id":"osv/GHSA-692r-grfm-v8x7","severity":"medium","message":"@angular/core@15.2.10 (npm) is affected by GHSA-692r-grfm-v8x7","path":"yarn.lock","line":null,"fingerprint":"@angular/core@15.2.10 (npm):GHSA-692r-grfm-v8x7"},{"rule_id":"osv/GHSA-f3m7-gqxr-g87x","severity":"medium","message":"@angular/core@15.2.10 (npm) is affected by GHSA-f3m7-gqxr-g87x","path":"yarn.lock","line":null,"fingerprint":"@angular/core@15.2.10 (npm):GHSA-f3m7-gqxr-g87x"},{"rule_id":"osv/GHSA-hh8m-fm6v-7cvg","severity":"medium","message":"@angular/core@15.2.10 (npm) is affected by GHSA-hh8m-fm6v-7cvg","path":"yarn.lock","line":null,"fingerprint":"@angular/core@15.2.10 (npm):GHSA-hh8m-fm6v-7cvg"},{"rule_id":"osv/GHSA-593m-55hh-j8gv","severity":"medium","message":"@sentry/browser@6.7.1 (npm) is affected by GHSA-593m-55hh-j8gv","path":"yarn.lock","line":null,"fingerprint":"@sentry/browser@6.7.1 (npm):GHSA-593m-55hh-j8gv"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@2.1.4 (npm) is affected by GHSA-q2hr-2g5m-vwhr","path":"yarn.lock","line":null,"fingerprint":"brace-expansion@2.1.4 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-pxg6-pf52-xh8x","severity":"medium","message":"cookie@0.4.2 (npm) is affected by GHSA-pxg6-pf52-xh8x","path":"yarn.lock","line":null,"fingerprint":"cookie@0.4.2 (npm):GHSA-pxg6-pf52-xh8x"},{"rule_id":"osv/GHSA-x562-297c-g43g","severity":"medium","message":"electron@43.7.0 (npm) is affected by GHSA-x562-297c-g43g","path":"yarn.lock","line":null,"fingerprint":"electron@43.7.0 (npm):GHSA-x562-297c-g43g"},{"rule_id":"osv/GHSA-hrr3-gc8f-f4qj","severity":"medium","message":"fast-uri@3.1.7 (npm) is affected by GHSA-hrr3-gc8f-f4qj","path":"yarn.lock","line":null,"fingerprint":"fast-uri@3.1.7 (npm):GHSA-hrr3-gc8f-f4qj"},{"rule_id":"osv/GHSA-w74x-v6f9-j3xg","severity":"medium","message":"fast-uri@3.1.7 (npm) is affected by GHSA-w74x-v6f9-j3xg","path":"yarn.lock","line":null,"fingerprint":"fast-uri@3.1.7 (npm):GHSA-w74x-v6f9-j3xg"},{"rule_id":"osv/GHSA-wjr9-j795-jxcr","severity":"medium","message":"fast-uri@3.1.7 (npm) is affected by GHSA-wjr9-j795-jxcr","path":"yarn.lock","line":null,"fingerprint":"fast-uri@3.1.7 (npm):GHSA-wjr9-j795-jxcr"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@9.0.3 (npm) is affected by GHSA-g3hv-75wg-m249","path":"yarn.lock","line":null,"fingerprint":"minimatch@9.0.3 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@9.0.9 (npm) is affected by GHSA-g3hv-75wg-m249","path":"yarn.lock","line":null,"fingerprint":"minimatch@9.0.9 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-4qv8-2p9j-2685","severity":"medium","message":"undici@7.29.1 (npm) is affected by GHSA-4qv8-2p9j-2685","path":"yarn.lock","line":null,"fingerprint":"undici@7.29.1 (npm):GHSA-4qv8-2p9j-2685"},{"rule_id":"osv/GHSA-55wc-3pg8-jfw6","severity":"medium","message":"undici@7.29.1 (npm) is affected by GHSA-55wc-3pg8-jfw6","path":"yarn.lock","line":null,"fingerprint":"undici@7.29.1 (npm):GHSA-55wc-3pg8-jfw6"},{"rule_id":"osv/GHSA-9fm3-97px-rjf6","severity":"medium","message":"undici@7.29.1 (npm) is affected by GHSA-9fm3-97px-rjf6","path":"yarn.lock","line":null,"fingerprint":"undici@7.29.1 (npm):GHSA-9fm3-97px-rjf6"},{"rule_id":"osv/GHSA-f72v-6w45-q472","severity":"medium","message":"undici@7.29.1 (npm) is affected by GHSA-f72v-6w45-q472","path":"yarn.lock","line":null,"fingerprint":"undici@7.29.1 (npm):GHSA-f72v-6w45-q472"},{"rule_id":"osv/GHSA-xfqm-j7pc-xrfc","severity":"low","message":"messageformat@2.3.0 (npm) is affected by GHSA-xfqm-j7pc-xrfc","path":"tabby-core/yarn.lock","line":null,"fingerprint":"messageformat@2.3.0 (npm):GHSA-xfqm-j7pc-xrfc"},{"rule_id":"osv/GHSA-52f5-9888-hmc6","severity":"low","message":"tmp@0.0.33 (npm) is affected by GHSA-52f5-9888-hmc6; also in web/yarn.lock; also in yarn.lock","path":"tabby-terminal/yarn.lock","line":null,"fingerprint":"tmp@0.0.33 (npm):GHSA-52f5-9888-hmc6"},{"rule_id":"osv/GHSA-4x5r-pxfx-6jf8","severity":"low","message":"@babel/core@7.19.3 (npm) is affected by GHSA-4x5r-pxfx-6jf8","path":"yarn.lock","line":null,"fingerprint":"@babel/core@7.19.3 (npm):GHSA-4x5r-pxfx-6jf8"},{"rule_id":"osv/GHSA-3qxv-5xgr-q7w9","severity":"low","message":"electron@43.7.0 (npm) is affected by GHSA-3qxv-5xgr-q7w9","path":"yarn.lock","line":null,"fingerprint":"electron@43.7.0 (npm):GHSA-3qxv-5xgr-q7w9"},{"rule_id":"osv/GHSA-h3v5-h239-pg29","severity":"low","message":"electron@43.7.0 (npm) is affected by GHSA-h3v5-h239-pg29","path":"yarn.lock","line":null,"fingerprint":"electron@43.7.0 (npm):GHSA-h3v5-h239-pg29"},{"rule_id":"osv/GHSA-333x-w4r6-6crp","severity":"low","message":"fast-uri@3.1.7 (npm) is affected by GHSA-333x-w4r6-6crp","path":"yarn.lock","line":null,"fingerprint":"fast-uri@3.1.7 (npm):GHSA-333x-w4r6-6crp"},{"rule_id":"osv/GHSA-xhq7-xmqj-769h","severity":"low","message":"fast-uri@3.1.7 (npm) is affected by GHSA-xhq7-xmqj-769h","path":"yarn.lock","line":null,"fingerprint":"fast-uri@3.1.7 (npm):GHSA-xhq7-xmqj-769h"}],"evidence":[],"data":{"ecosystems":["npm"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":4.0,"findings":57.0,"findings_high":26.0,"findings_medium":26.0,"findings_low":5.0,"penalty":393.0},"findings":[{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":9,"fingerprint":"unpinned-uses:.github/workflows/build.yml:9"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":14,"fingerprint":"unpinned-uses:.github/workflows/build.yml:14"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":58,"fingerprint":"unpinned-uses:.github/workflows/build.yml:58"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":63,"fingerprint":"unpinned-uses:.github/workflows/build.yml:63"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":126,"fingerprint":"unpinned-uses:.github/workflows/build.yml:126"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":132,"fingerprint":"unpinned-uses:.github/workflows/build.yml:132"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":170,"fingerprint":"unpinned-uses:.github/workflows/build.yml:170"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":175,"fingerprint":"unpinned-uses:.github/workflows/build.yml:175"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":195,"fingerprint":"unpinned-uses:.github/workflows/build.yml:195"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":269,"fingerprint":"unpinned-uses:.github/workflows/build.yml:269"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":275,"fingerprint":"unpinned-uses:.github/workflows/build.yml:275"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":281,"fingerprint":"unpinned-uses:.github/workflows/build.yml:281"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":287,"fingerprint":"unpinned-uses:.github/workflows/build.yml:287"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":293,"fingerprint":"unpinned-uses:.github/workflows/build.yml:293"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":299,"fingerprint":"unpinned-uses:.github/workflows/build.yml:299"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":327,"fingerprint":"unpinned-uses:.github/workflows/build.yml:327"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":389,"fingerprint":"unpinned-uses:.github/workflows/build.yml:389"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":540,"fingerprint":"unpinned-uses:.github/workflows/build.yml:540"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build.yml","line":546,"fingerprint":"unpinned-uses:.github/workflows/build.yml:546"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/codeql-analysis.yml","line":41,"fingerprint":"unpinned-uses:.github/workflows/codeql-analysis.yml:41"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/codeql-analysis.yml","line":45,"fingerprint":"unpinned-uses:.github/workflows/codeql-analysis.yml:45"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/codeql-analysis.yml","line":56,"fingerprint":"unpinned-uses:.github/workflows/codeql-analysis.yml:56"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/codeql-analysis.yml","line":70,"fingerprint":"unpinned-uses:.github/workflows/codeql-analysis.yml:70"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docs.yml","line":10,"fingerprint":"unpinned-uses:.github/workflows/docs.yml:10"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docs.yml","line":15,"fingerprint":"unpinned-uses:.github/workflows/docs.yml:15"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":15,"fingerprint":"unpinned-uses:.github/workflows/release.yml:15"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":3,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:3"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":9,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:9"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":15,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:15"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":21,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:21"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":27,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:27"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":33,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:33"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":39,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:39"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":45,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:45"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":51,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:51"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":57,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:57"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":63,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:63"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":69,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:69"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/build.yml","line":8,"fingerprint":"artipacked:.github/workflows/build.yml:8"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/build.yml","line":57,"fingerprint":"artipacked:.github/workflows/build.yml:57"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/build.yml","line":169,"fingerprint":"artipacked:.github/workflows/build.yml:169"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/build.yml","line":326,"fingerprint":"artipacked:.github/workflows/build.yml:326"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/build.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/build.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/build.yml","line":4,"fingerprint":"excessive-permissions:.github/workflows/build.yml:4"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/build.yml","line":40,"fingerprint":"excessive-permissions:.github/workflows/build.yml:40"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/build.yml","line":138,"fingerprint":"excessive-permissions:.github/workflows/build.yml:138"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/build.yml","line":306,"fingerprint":"excessive-permissions:.github/workflows/build.yml:306"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/codeql-analysis.yml","line":40,"fingerprint":"artipacked:.github/workflows/codeql-analysis.yml:40"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/docs.yml","line":9,"fingerprint":"artipacked:.github/workflows/docs.yml:9"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/docs.yml","line":4,"fingerprint":"excessive-permissions:.github/workflows/docs.yml:4"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/release.yml","line":10,"fingerprint":"excessive-permissions:.github/workflows/release.yml:10"},{"rule_id":"zizmor/archived-uses","severity":"medium","message":"action or reusable workflow from archived repository [confidence high]","path":".github/workflows/release.yml","line":15,"fingerprint":"archived-uses:.github/workflows/release.yml:15"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/build.yml","line":21,"fingerprint":"adhoc-packages:.github/workflows/build.yml:21"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/build.yml","line":226,"fingerprint":"adhoc-packages:.github/workflows/build.yml:226"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/build.yml","line":397,"fingerprint":"adhoc-packages:.github/workflows/build.yml:397"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/build.yml","line":438,"fingerprint":"adhoc-packages:.github/workflows/build.yml:438"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/build.yml","line":490,"fingerprint":"adhoc-packages:.github/workflows/build.yml:490"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":1.0,"check:signed_commits":1.0,"check:lockfiles":1.0,"signed_commit_share":1.0,"unpinned_manifests":0.0},"findings":[],"evidence":[{"kind":"posture","description":"Dependency updates: .github/dependabot.yml","ref":".github/dependabot.yml","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":2.0,"binary_assets":198.0,"suspicious":0.0},"findings":[],"evidence":[{"kind":"binary-release-asset","description":"release v1.0.238 ships tabby-1.0.238-portable-arm64.zip (1246 downloads)","ref":"tabby-1.0.238-portable-arm64.zip","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-portable-arm64.zip","weight":0.0},{"kind":"binary-release-asset","description":"release v1.0.238 ships tabby-1.0.238-setup-arm64.exe (6835 downloads)","ref":"tabby-1.0.238-setup-arm64.exe","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-setup-arm64.exe","weight":0.0},{"kind":"binary-release-asset","description":"release v1.0.238 ships tabby-1.0.238-portable-x64.zip (10987 downloads)","ref":"tabby-1.0.238-portable-x64.zip","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-portable-x64.zip","weight":0.0},{"kind":"binary-release-asset","description":"release v1.0.238 ships tabby-1.0.238-setup-x64.exe (71683 downloads)","ref":"tabby-1.0.238-setup-x64.exe","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-setup-x64.exe","weight":0.0},{"kind":"binary-release-asset","description":"release v1.0.238 ships tabby-1.0.238-linux-armv7l.AppImage (313 downloads)","ref":"tabby-1.0.238-linux-armv7l.AppImage","url":"https://github.com/Eugeny/tabby/releases/download/v1.0.238/tabby-1.0.238-linux-armv7l.AppImage","weight":0.0},{"kind":"readme-download-lure","description":"links to file hosts or shorteners: t.me/","ref":"README.de-DE.md","url":null,"weight":0.0},{"kind":"readme-download-lure","description":"links to file hosts or shorteners: t.me/","ref":"README.es-ES.md","url":null,"weight":0.0},{"kind":"readme-download-lure","description":"links to file hosts or shorteners: t.me/","ref":"README.id-ID.md","url":null,"weight":0.0},{"kind":"readme-download-lure","description":"links to file hosts or shorteners: t.me/","ref":"README.it-IT.md","url":null,"weight":0.0},{"kind":"readme-download-lure","description":"links to file hosts or shorteners: t.me/","ref":"README.ja-JP.md","url":null,"weight":0.0},{"kind":"readme-download-lure","description":"links to file hosts or shorteners: t.me/","ref":"README.ko-KR.md","url":null,"weight":0.0},{"kind":"readme-download-lure","description":"links to file hosts or shorteners: t.me/","ref":"README.md","url":null,"weight":0.0},{"kind":"readme-download-lure","description":"links to file hosts or shorteners: t.me/","ref":"README.pl-PL.md","url":null,"weight":0.0},{"kind":"readme-download-lure","description":"links to file hosts or shorteners: t.me/","ref":"README.pt-BR.md","url":null,"weight":0.0},{"kind":"readme-download-lure","description":"links to file hosts or shorteners: t.me/","ref":"README.ru-RU.md","url":null,"weight":0.0},{"kind":"readme-download-lure","description":"links to file hosts or shorteners: t.me/","ref":"README.zh-CN.md","url":null,"weight":0.0}],"data":{"signals":["binary-release-assets","readme-download-lure"],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":4308.0,"function_nloc":22298.0,"mean_ccn":2.27,"p90_ccn":4.0,"complex_functions":46.0,"long_functions":4.0,"many_param_functions":6.0,"risky_nloc_share":0.0966},"findings":[],"evidence":[{"kind":"complex-function","description":"Virtio9p.prototype.ReceiveRequest in tabby-web-demo/data/v86_all.js: complexity 71, 21 lines","ref":"tabby-web-demo/data/v86_all.js","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-web-demo/data/v86_all.js#L31","weight":1.0},{"kind":"complex-function","description":"migrate in tabby-core/src/services/config.service.ts: complexity 50, 137 lines","ref":"tabby-core/src/services/config.service.ts","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-core/src/services/config.service.ts#L326","weight":0.8333333333333334},{"kind":"complex-function","description":"APIC.prototype.read32 in tabby-web-demo/data/v86_all.js: complexity 44, 4 lines","ref":"tabby-web-demo/data/v86_all.js","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-web-demo/data/v86_all.js#L377","weight":0.7333333333333333},{"kind":"complex-function","description":"d in tabby-web-demo/data/v86_all.js: complexity 41, 6 lines","ref":"tabby-web-demo/data/v86_all.js","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-web-demo/data/v86_all.js#L732","weight":0.6833333333333333},{"kind":"complex-function","description":"IDEInterface.prototype.ata_command in tabby-web-demo/data/v86_all.js: complexity 37, 6 lines","ref":"tabby-web-demo/data/v86_all.js","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-web-demo/data/v86_all.js#L106","weight":0.6166666666666667},{"kind":"complex-function","description":"VGAScreen.prototype.port3D5_write in tabby-web-demo/data/v86_all.js: complexity 36, 7 lines","ref":"tabby-web-demo/data/v86_all.js","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-web-demo/data/v86_all.js#L281","weight":0.6},{"kind":"complex-function","description":"_handleAuth in tabby-ssh/src/session/ssh.ts: complexity 32, 121 lines","ref":"tabby-ssh/src/session/ssh.ts","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-ssh/src/session/ssh.ts#L657","weight":0.5333333333333333},{"kind":"complex-function","description":"PS2.prototype.port60_write in tabby-web-demo/data/v86_all.js: complexity 32, 7 lines","ref":"tabby-web-demo/data/v86_all.js","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-web-demo/data/v86_all.js#L318","weight":0.5333333333333333},{"kind":"complex-function","description":"pushKeyEvent in tabby-core/src/services/hotkeys.service.ts: complexity 31, 90 lines","ref":"tabby-core/src/services/hotkeys.service.ts","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-core/src/services/hotkeys.service.ts#L130","weight":0.5166666666666667},{"kind":"complex-function","description":"(anonymous) in tabby-core/src/components/splitTab.component.ts: complexity 30, 86 lines","ref":"tabby-core/src/components/splitTab.component.ts","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-core/src/components/splitTab.component.ts#L292","weight":0.5}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":20773.0,"duplicated_lines":599.0,"duplicated_share":0.0288,"files":331.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: app/lib/utfSplitter.ts:1 and tabby-core/src/utfSplitter.ts:1","ref":"app/lib/utfSplitter.ts","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/app/lib/utfSplitter.ts#L1","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/webpack.config.main.mjs:14 and app/webpack.config.mjs:33","ref":"app/webpack.config.main.mjs","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/app/webpack.config.main.mjs#L14","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/webpack.config.main.mjs:25 and web/webpack.config.mjs:55","ref":"app/webpack.config.main.mjs","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/app/webpack.config.main.mjs#L25","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/webpack.config.mjs:9 and webpack.plugin.config.mjs:12","ref":"app/webpack.config.mjs","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/app/webpack.config.mjs#L9","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/webpack.config.mjs:29 and web/webpack.config.mjs:33","ref":"app/webpack.config.mjs","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/app/webpack.config.mjs#L29","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/build-linux.mjs:17 and scripts/build-windows.mjs:19","ref":"scripts/build-linux.mjs","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/scripts/build-linux.mjs#L17","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/build-linux.mjs:20 and scripts/build-macos.mjs:35","ref":"scripts/build-linux.mjs","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/scripts/build-linux.mjs#L20","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: tabby-core/src/components/profileTree.component.ts:140 and tabby-settings/src/components/profilesSettingsTab.component.ts:208","ref":"tabby-core/src/components/profileTree.component.ts","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-core/src/components/profileTree.component.ts#L140","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: tabby-core/src/components/promptModal.component.ts:14 and tabby-settings/src/components/setVaultPassphraseModal.component.ts:11","ref":"tabby-core/src/components/promptModal.component.ts","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-core/src/components/promptModal.component.ts#L14","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: tabby-core/src/services/profiles.service.ts:146 and tabby-core/src/services/profiles.service.ts:163","ref":"tabby-core/src/services/profiles.service.ts","url":"https://github.com/Eugeny/tabby/blob/467ce8ebfa467fb88cf6d154c9a5891e3d3647f0/tabby-core/src/services/profiles.service.ts#L146","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":116.0,"weighted_findings":57.5,"scanned_lines":32213.0,"category:best-practice":28.0,"category:correctness":88.0},"findings":[{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"app/lib/cli.ts","line":109,"fingerprint":"javascript.lang.best-practice.lazy-load-module:app/lib/cli.ts:109"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-core/src/commands.ts","line":34,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-core/src/commands.ts:34"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-core/src/commands.ts","line":35,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-core/src/commands.ts:35"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-core/src/commands.ts","line":42,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-core/src/commands.ts:42"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-core/src/directives/dropZone.directive.ts","line":23,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-core/src/directives/dropZone.directive.ts:23"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-core/src/services/locale.service.ts","line":216,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-core/src/services/locale.service.ts:216"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-core/src/services/locale.service.ts","line":244,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-core/src/services/locale.service.ts:244"},{"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":"tabby-core/src/services/profiles.service.ts","line":213,"fingerprint":"javascript.lang.correctness.no-stringify-keys:tabby-core/src/services/profiles.service.ts:213"},{"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":"tabby-core/src/utils.ts","line":24,"fingerprint":"javascript.lang.correctness.no-replaceall:tabby-core/src/utils.ts:24"},{"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":"tabby-electron/src/index.ts","line":162,"fingerprint":"javascript.lang.correctness.no-replaceall:tabby-electron/src/index.ts:162"},{"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":"tabby-electron/src/index.ts","line":163,"fingerprint":"javascript.lang.correctness.no-replaceall:tabby-electron/src/index.ts:163"},{"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":"tabby-electron/src/index.ts","line":164,"fingerprint":"javascript.lang.correctness.no-replaceall:tabby-electron/src/index.ts:164"},{"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":"tabby-electron/src/index.ts","line":165,"fingerprint":"javascript.lang.correctness.no-replaceall:tabby-electron/src/index.ts:165"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/services/electron.service.ts","line":30,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/services/electron.service.ts:30"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/services/log.service.ts","line":11,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/services/log.service.ts:11"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/services/platform.service.ts","line":84,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/services/platform.service.ts:84"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/shells/cmder.ts","line":34,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/shells/cmder.ts:34"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/shells/cmder.ts","line":53,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/shells/cmder.ts:53"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/shells/cygwin32.ts","line":38,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/shells/cygwin32.ts:38"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/shells/cygwin64.ts","line":38,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/shells/cygwin64.ts:38"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/shells/gitBash.ts","line":45,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/shells/gitBash.ts:45"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/shells/msys2.ts","line":43,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/shells/msys2.ts:43"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/shells/powershellCore.ts","line":47,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/shells/powershellCore.ts:47"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/shells/windowsStock.ts","line":52,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/shells/windowsStock.ts:52"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/shells/windowsStock.ts","line":60,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/shells/windowsStock.ts:60"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-electron/src/shells/windowsStock.ts","line":75,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-electron/src/shells/windowsStock.ts:75"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-local/src/buttonProvider.ts","line":19,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-local/src/buttonProvider.ts:19"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-settings/src/buttonProvider.ts","line":27,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-settings/src/buttonProvider.ts:27"},{"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":"tabby-ssh/src/session/ssh.ts","line":962,"fingerprint":"javascript.lang.correctness.no-replaceall:tabby-ssh/src/session/ssh.ts:962"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-terminal/src/api/baseTerminalTab.component.ts","line":361,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-terminal/src/api/baseTerminalTab.component.ts:361"},{"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":"tabby-terminal/src/api/baseTerminalTab.component.ts","line":548,"fingerprint":"javascript.lang.correctness.no-replaceall:tabby-terminal/src/api/baseTerminalTab.component.ts:548"},{"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":"tabby-terminal/src/api/baseTerminalTab.component.ts","line":550,"fingerprint":"javascript.lang.correctness.no-replaceall:tabby-terminal/src/api/baseTerminalTab.component.ts:550"},{"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":"tabby-terminal/src/middleware/streamProcessing.ts","line":71,"fingerprint":"javascript.lang.correctness.no-replaceall:tabby-terminal/src/middleware/streamProcessing.ts:71"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-debugger","severity":"medium","message":"found debugger call; should this be in production code?","path":"tabby-web-demo/data/v86_all.js","line":553,"fingerprint":"javascript.lang.best-practice.javascript-debugger:tabby-web-demo/data/v86_all.js:553"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-debugger","severity":"medium","message":"found debugger call; should this be in production code?","path":"tabby-web-demo/data/v86_all.js","line":600,"fingerprint":"javascript.lang.best-practice.javascript-debugger:tabby-web-demo/data/v86_all.js:600"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-prompt","severity":"medium","message":"found prompt() call; should this be in production code?","path":"tabby-web-demo/data/v86_all.js","line":637,"fingerprint":"javascript.lang.best-practice.javascript-prompt:tabby-web-demo/data/v86_all.js:637"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-web-demo/data/v86_all.js","line":712,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-web-demo/data/v86_all.js:712"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"tabby-web-demo/src/buttonProvider.ts","line":21,"fingerprint":"javascript.lang.best-practice.lazy-load-module:tabby-web-demo/src/buttonProvider.ts:21"},{"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":"scripts/i18n-extract.mjs","line":19,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:scripts/i18n-extract.mjs:19"},{"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":"scripts/i18n-extract.mjs","line":19,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:scripts/i18n-extract.mjs:19"},{"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":"scripts/test-hooks.mjs","line":11,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:scripts/test-hooks.mjs:11"},{"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":"scripts/test-hooks.mjs","line":11,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:scripts/test-hooks.mjs:11"},{"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":"tabby-core/src/components/checkbox.component.ts","line":8,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:tabby-core/src/components/checkbox.component.ts:8"},{"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":"tabby-core/src/components/checkbox.component.ts","line":8,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:tabby-core/src/components/checkbox.component.ts:8"},{"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":"tabby-core/src/components/splitTabPaneLabel.component.ts","line":12,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:tabby-core/src/components/splitTabPaneLabel.component.ts:12"},{"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":"tabby-core/src/components/splitTabPaneLabel.component.ts","line":12,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:tabby-core/src/components/splitTabPaneLabel.component.ts:12"},{"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":"tabby-local/src/cli.ts","line":50,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:tabby-local/src/cli.ts:50"},{"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":"tabby-local/src/cli.ts","line":50,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:tabby-local/src/cli.ts:50"},{"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":"tabby-settings/src/components/settingsTabBody.component.ts","line":8,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:tabby-settings/src/components/settingsTabBody.component.ts:8"},{"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":"tabby-settings/src/components/settingsTabBody.component.ts","line":8,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:tabby-settings/src/components/settingsTabBody.component.ts:8"},{"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":"tabby-terminal/src/cli.ts","line":31,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:tabby-terminal/src/cli.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":"tabby-terminal/src/cli.ts","line":31,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:tabby-terminal/src/cli.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":"tabby-terminal/src/components/colorSchemeSelector.component.ts","line":14,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:tabby-terminal/src/components/colorSchemeSelector.component.ts:14"},{"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":"tabby-terminal/src/components/colorSchemeSelector.component.ts","line":14,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:tabby-terminal/src/components/colorSchemeSelector.component.ts:14"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`d` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":38,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:38"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`d[0]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":40,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:40"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`this.data_end` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":120,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:120"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`this.counter_reload[a]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":219,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:219"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`a` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":263,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:263"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`this.svga_width` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":291,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:291"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`this.svga_height` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":291,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:291"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`a` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":439,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:439"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`b` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":463,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:463"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`b` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":464,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:464"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`a` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":470,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:470"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`this.irq` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":492,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:492"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`this.irq` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":492,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:492"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`this.irq` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":492,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:492"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`this.dma_channel_8bit` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":493,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:493"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`this.dma_channel_8bit` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":493,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:493"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`this.dma_channel_16bit` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":493,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:493"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`this.dma_channel_16bit` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":493,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:493"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`a` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":524,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:524"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`d` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":550,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:550"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`b` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":601,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:601"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`b` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":601,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:601"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`t` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":632,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:632"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`e` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":653,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:653"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`g` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":653,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:653"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":655,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:655"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`v` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":718,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:718"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`this.serial_adapter` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":737,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:737"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`d` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":758,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:758"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c.mode` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":787,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:787"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":834,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:834"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":834,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:834"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":834,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:834"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":834,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:834"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":834,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:834"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":834,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:834"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":834,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:834"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":834,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:834"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":834,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:834"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":834,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:834"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":834,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:834"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`c[d++]` is assigned twice; the first assignment is useless","path":"tabby-web-demo/data/v86_all.js","line":834,"fingerprint":"javascript.lang.correctness.useless-assignment:tabby-web-demo/data/v86_all.js:834"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.0235,"check:ci_present":1.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":0.1856,"test_lines":379.0,"source_lines":32218.0,"test_ratio":0.0118,"ci_files":4.0,"cochange_share":0.0464,"cochange_commits":194.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/build.yml","ref":".github/workflows/build.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/codeql-analysis.yml","ref":".github/workflows/codeql-analysis.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/docs.yml","ref":".github/workflows/docs.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/release.yml","ref":".github/workflows/release.yml","url":null,"weight":0.0}],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":1.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":335.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0},{"kind":"docs","description":"LICENSE","ref":"LICENSE","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":0.0,"check:low_escape_density":0.0,"escapes":229.0,"escapes_per_kloc":7.68},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"x-blame","pillar":"ai_provenance","status":"ok","tool_version":"git-blame","metrics":{"ai_lines":343.0,"other_lines":31875.0,"files_blamed":331.0,"blame_failures":0.0,"quality:ai_findings":0.0,"quality:ai_per_kloc":0.0,"quality:other_findings":116.0,"quality:other_per_kloc":3.639,"security:ai_findings":2.0,"security:ai_per_kloc":5.831,"security:other_findings":100.0,"security:other_per_kloc":3.137},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":false},"error":null}],"flags":[]}