https://github.com/TolgaYanar/huddle
· scanned 2026-06-16 00:39 UTC (2 months, 1 week ago)
84 raw signals (0 security + 84 graph)
Last scanned 2 months, 1 week ago · v1 · 84 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 1415 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
Icon |
software | healthy | apps/web/app/icon.tsx:Icon |
robots |
software | healthy | apps/web/app/robots.ts:robots |
OpenGraphImage |
software | healthy | apps/web/app/opengraph-image.tsx:OpenGraphImage |
timeAgo |
software | healthy | apps/web/app/home-client.tsx:timeAgo |
generateRoomId |
software | healthy | apps/web/app/home-client.tsx:generateRoomId |
normalizeRoomId |
software | healthy | apps/web/app/home-client.tsx:normalizeRoomId |
HomeClient |
software | healthy | apps/web/app/home-client.tsx:HomeClient |
AppleIcon |
software | healthy | apps/web/app/apple-icon.tsx:AppleIcon |
manifest |
software | healthy | apps/web/app/manifest.ts:manifest |
sitemap |
software | healthy | apps/web/app/sitemap.ts:sitemap |
Page |
software | healthy | apps/web/app/page.tsx:Page |
RootLayout |
software | healthy | apps/web/app/layout.tsx:RootLayout |
LoginPageInner |
software | healthy | apps/web/app/login/page.tsx:LoginPageInner |
getErrorMessage |
software | healthy | apps/web/app/login/page.tsx:getErrorMessage |
code |
software | healthy | apps/web/app/login/page.tsx:code |
LoginPage |
software | healthy | apps/web/app/login/page.tsx:LoginPage |
LoginLayout |
software | healthy | apps/web/app/login/layout.tsx:LoginLayout |
searchWikipedia |
software | healthy | apps/web/app/api/image-search/route.ts:searchWikipedia |
data |
software | healthy | apps/web/app/api/image-search/route.ts:data |
body |
software | healthy | apps/web/app/api/image-search/route.ts:body |
searchWikimediaCommons |
software | healthy | apps/web/app/api/image-search/route.ts:searchWikimediaCommo… |
GET |
software | healthy | apps/web/app/api/image-search/route.ts:GET |
isRecord |
software | healthy | apps/web/app/api/youtube-search/route.ts:isRecord |
pickThumbnailUrl |
software | healthy | apps/web/app/api/youtube-search/route.ts:pickThumbnailUrl |
normalizeCountryCode |
software | healthy | apps/web/app/api/youtube-search/route.ts:normalizeCountryCo… |
parsePrimaryLanguage |
software | healthy | apps/web/app/api/youtube-search/route.ts:parsePrimaryLangua… |
GET |
software | healthy | apps/web/app/api/youtube-search/route.ts:GET |
q |
software | healthy | apps/web/app/api/youtube-search/route.ts:q |
parseIso8601DurationToSeconds |
software | healthy | apps/web/app/api/youtube-preview/route.ts:parseIso8601Durat… |
GET |
software | healthy | apps/web/app/api/youtube-preview/route.ts:GET |
url |
software | healthy | apps/web/app/api/youtube-preview/route.ts:url |
cacheGet |
software | healthy | apps/web/app/api/image-generate/route.ts:cacheGet |
cacheSet |
software | healthy | apps/web/app/api/image-generate/route.ts:cacheSet |
pickInt |
software | healthy | apps/web/app/api/image-generate/route.ts:pickInt |
jsonError |
software | healthy | apps/web/app/api/image-generate/route.ts:jsonError |
GET |
software | healthy | apps/web/app/api/image-generate/route.ts:GET |
promptRaw |
software | healthy | apps/web/app/api/image-generate/route.ts:promptRaw |
GET |
software | healthy | apps/web/app/api/url-preview/route.ts:GET |
extractMeta |
software | healthy | apps/web/app/api/url-preview/route.ts:extractMeta |
extractTitleTag |
software | healthy | apps/web/app/api/url-preview/route.ts:extractTitleTag |
escapeRegExp |
software | healthy | apps/web/app/api/url-preview/route.ts:escapeRegExp |
decodeEntities |
software | healthy | apps/web/app/api/url-preview/route.ts:decodeEntities |
absolutizeUrl |
software | healthy | apps/web/app/api/url-preview/route.ts:absolutizeUrl |
readTextWithLimit |
software | healthy | apps/web/app/api/url-preview/route.ts:readTextWithLimit |
GET |
software | healthy | apps/web/app/api/_lib/rateLimit.ts:GET |
getClientIp |
software | healthy | apps/web/app/api/_lib/rateLimit.ts:getClientIp |
createRouteRateLimiter |
software | healthy | apps/web/app/api/_lib/rateLimit.ts:createRouteRateLimiter |
tryHit |
software | healthy | apps/web/app/api/_lib/rateLimit.ts:tryHit |
parseIpv4Octets |
software | healthy | apps/web/app/api/_lib/ssrf.ts:parseIpv4Octets |
isPrivateIpv4 |
software | healthy | apps/web/app/api/_lib/ssrf.ts:isPrivateIpv4 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
ANDROID_VIDEO_FIX.md |
software | healthy | ANDROID_VIDEO_FIX.md |
package.json |
software | healthy | package.json |
turbo.json |
software | healthy | turbo.json |
package-lock.json |
software | healthy | package-lock.json |
tsconfig.json |
software | healthy | tsconfig.json |
WEBSOCKET_FIX.md |
software | healthy | WEBSOCKET_FIX.md |
postcss.config.mjs |
software | healthy | apps/web/postcss.config.mjs |
README.md |
software | healthy | apps/web/README.md |
tailwind.config.ts |
software | healthy | apps/web/tailwind.config.ts |
package.json |
software | healthy | apps/web/package.json |
next.config.js |
software | healthy | apps/web/next.config.js |
eslint.config.js |
software | healthy | apps/web/eslint.config.js |
tsconfig.json |
software | healthy | apps/web/tsconfig.json |
vitest.config.ts |
software | healthy | apps/web/vitest.config.ts |
vitest.setup.ts |
software | healthy | apps/web/vitest.setup.ts |
jest-dom.d.ts |
software | healthy | apps/web/types/jest-dom.d.ts |
icon.tsx |
software | healthy | apps/web/app/icon.tsx |
robots.ts |
software | healthy | apps/web/app/robots.ts |
opengraph-image.tsx |
software | healthy | apps/web/app/opengraph-image.tsx |
globals.css |
software | healthy | apps/web/app/globals.css |
home-client.tsx |
software | healthy | apps/web/app/home-client.tsx |
apple-icon.tsx |
software | healthy | apps/web/app/apple-icon.tsx |
manifest.ts |
software | healthy | apps/web/app/manifest.ts |
sitemap.ts |
software | healthy | apps/web/app/sitemap.ts |
page.tsx |
software | healthy | apps/web/app/page.tsx |
layout.tsx |
software | healthy | apps/web/app/layout.tsx |
page.module.css |
software | healthy | apps/web/app/page.module.css |
page.tsx |
software | healthy | apps/web/app/login/page.tsx |
layout.tsx |
software | healthy | apps/web/app/login/layout.tsx |
route.ts |
software | healthy | apps/web/app/api/image-search/route.ts |
route.ts |
software | healthy | apps/web/app/api/youtube-search/route.ts |
route.ts |
software | healthy | apps/web/app/api/youtube-preview/route.ts |
route.ts |
software | healthy | apps/web/app/api/image-generate/route.ts |
route.ts |
software | healthy | apps/web/app/api/url-preview/route.ts |
rateLimit.ts |
software | healthy | apps/web/app/api/_lib/rateLimit.ts |
ssrf.ts |
software | healthy | apps/web/app/api/_lib/ssrf.ts |
youtube.ts |
software | healthy | apps/web/app/api/_lib/youtube.ts |
ssrf.test.ts |
software | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
youtube.test.ts |
software | healthy | apps/web/app/api/_lib/__tests__/youtube.test.ts |
rateLimit.test.ts |
software | healthy | apps/web/app/api/_lib/__tests__/rateLimit.test.ts |
route.ts |
software | healthy | apps/web/app/api/youtube-playlist/route.ts |
route.ts |
software | healthy | apps/web/app/api/video-info/route.ts |
PasswordToggleButton.tsx |
software | healthy | apps/web/app/components/PasswordToggleButton.tsx |
ErrorBoundary.tsx |
software | healthy | apps/web/app/components/ErrorBoundary.tsx |
Modal.tsx |
software | healthy | apps/web/app/components/Modal.tsx |
ErrorBoundary.test.tsx |
software | healthy | apps/web/app/components/__tests__/ErrorBoundary.test.tsx |
PasswordToggleButton.test.tsx |
software | healthy | apps/web/app/components/__tests__/PasswordToggleButton.test… |
Modal.test.tsx |
software | healthy | apps/web/app/components/__tests__/Modal.test.tsx |
page.tsx |
software | healthy | apps/web/app/netflix/page.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
apps |
software | healthy | apps |
web |
software | healthy | apps/web |
types |
software | healthy | apps/web/types |
app |
software | healthy | apps/web/app |
login |
software | healthy | apps/web/app/login |
api |
software | healthy | apps/web/app/api |
image-search |
software | healthy | apps/web/app/api/image-search |
youtube-search |
software | healthy | apps/web/app/api/youtube-search |
youtube-preview |
software | healthy | apps/web/app/api/youtube-preview |
image-generate |
software | healthy | apps/web/app/api/image-generate |
url-preview |
software | healthy | apps/web/app/api/url-preview |
_lib |
software | healthy | apps/web/app/api/_lib |
__tests__ |
software | healthy | apps/web/app/api/_lib/__tests__ |
youtube-playlist |
software | healthy | apps/web/app/api/youtube-playlist |
video-info |
software | healthy | apps/web/app/api/video-info |
components |
software | healthy | apps/web/app/components |
__tests__ |
software | healthy | apps/web/app/components/__tests__ |
netflix |
software | healthy | apps/web/app/netflix |
lib |
software | healthy | apps/web/app/lib |
__tests__ |
software | healthy | apps/web/app/lib/__tests__ |
r |
software | healthy | apps/web/app/r |
[roomId] |
software | healthy | apps/web/app/r/[roomId] |
types |
software | healthy | apps/web/app/r/[roomId]/types |
components |
software | healthy | apps/web/app/r/[roomId]/components |
youtubeIFramePlayer |
software | healthy | apps/web/app/r/[roomId]/components/youtubeIFramePlayer |
cupGame |
software | healthy | apps/web/app/r/[roomId]/components/cupGame |
callSidebar |
software | healthy | apps/web/app/r/[roomId]/components/callSidebar |
netflixSyncPlayer |
software | healthy | apps/web/app/r/[roomId]/components/netflixSyncPlayer |
__tests__ |
software | healthy | apps/web/app/r/[roomId]/components/netflixSyncPlayer/__test… |
sections |
software | healthy | apps/web/app/r/[roomId]/components/netflixSyncPlayer/sectio… |
playlistPanel |
software | healthy | apps/web/app/r/[roomId]/components/playlistPanel |
videoControls |
software | healthy | apps/web/app/r/[roomId]/components/videoControls |
addVideosToPlaylistModal |
software | healthy | apps/web/app/r/[roomId]/components/addVideosToPlaylistModal |
imageEditor |
software | healthy | apps/web/app/r/[roomId]/components/imageEditor |
playerSection |
software | healthy | apps/web/app/r/[roomId]/components/playerSection |
mediaRenderer |
software | healthy | apps/web/app/r/[roomId]/components/playerSection/mediaRende… |
youtube |
software | healthy | apps/web/app/r/[roomId]/components/playerSection/youtube |
roomClient |
software | healthy | apps/web/app/r/[roomId]/roomClient |
lib |
software | healthy | apps/web/app/r/[roomId]/lib |
hooks |
software | healthy | apps/web/app/r/[roomId]/hooks |
webrtcPeers |
software | healthy | apps/web/app/r/[roomId]/hooks/webrtcPeers |
useVideoPlayer |
software | healthy | apps/web/app/r/[roomId]/hooks/useVideoPlayer |
__tests__ |
software | healthy | apps/web/app/r/[roomId]/hooks/useVideoPlayer/__tests__ |
playbackHandlersImpl |
software | healthy | apps/web/app/r/[roomId]/hooks/useVideoPlayer/playbackHandle… |
activityLog |
software | healthy | apps/web/app/r/[roomId]/hooks/activityLog |
__tests__ |
software | healthy | apps/web/app/r/[roomId]/hooks/activityLog/__tests__ |
terms |
software | healthy | apps/web/app/terms |
icon-512 |
software | healthy | apps/web/app/icon-512 |
icon-192 |
software | healthy | apps/web/app/icon-192 |
privacy |
software | healthy | apps/web/app/privacy |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
192.0.0.0 |
network | healthy | apps/web/app/api/_lib/ssrf.ts |
255.255.255.255 |
network | healthy | apps/web/app/api/_lib/ssrf.ts |
10.0.0.1 |
network | healthy | apps/web/app/api/_lib/ssrf.ts |
127.0.0.1 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
169.254.169.254 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
10.1.2.3 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
100.64.0.1 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
172.16.0.1 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
192.0.0.192 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
192.168.1.1 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
198.18.0.1 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
224.0.0.1 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
240.0.0.1 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
8.8.8.8 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
1.1.1.1 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
93.184.216.34 |
network | healthy | apps/web/app/api/_lib/__tests__/ssrf.test.ts |
1.2.3.4 |
network | healthy | apps/web/app/api/_lib/__tests__/rateLimit.test.ts |
2.2.2.2 |
network | healthy | apps/web/app/api/_lib/__tests__/rateLimit.test.ts |
9.9.9.9 |
network | healthy | apps/web/app/api/_lib/__tests__/rateLimit.test.ts |
6.6.6.6 |
network | healthy | apps/web/app/api/_lib/__tests__/rateLimit.test.ts |
7.7.7.7 |
network | healthy | apps/web/app/api/_lib/__tests__/rateLimit.test.ts |
3.3.3.3 |
network | healthy | apps/web/app/api/_lib/__tests__/rateLimit.test.ts |
12.22.37.29 |
network | healthy | apps/web/app/r/[roomId]/components/videoControls/icons.tsx |
05.24.24.41 |
network | healthy | apps/web/app/r/[roomId]/components/videoControls/icons.tsx |
10.0.0.2 |
network | healthy | apps/server/src/auth/__tests__/rateLimiter.test.js |
10.0.0.3 |
network | healthy | apps/server/src/auth/__tests__/rateLimiter.test.js |
10.0.0.4 |
network | healthy | apps/server/src/auth/__tests__/rateLimiter.test.js |
10.0.0.5 |
network | healthy | apps/server/src/auth/__tests__/rateLimiter.test.js |
5.5.5.5 |
network | healthy | apps/server/src/auth/__tests__/rateLimiter.test.js |
10.0.2.2 |
network | healthy | mobile/android/app/build.gradle.kts |
192.168.1.108 |
network | healthy | mobile/android/app/build.gradle.kts |
| Label | Layer | Status | Path |
|---|---|---|---|
Icon |
frontend | healthy | apps/web/app/icon.tsx |
OpenGraphImage |
frontend | healthy | apps/web/app/opengraph-image.tsx |
AppleIcon |
frontend | healthy | apps/web/app/apple-icon.tsx |
Page |
frontend | healthy | apps/web/app/page.tsx |
RootLayout |
frontend | healthy | apps/web/app/layout.tsx |
LoginPage |
frontend | healthy | apps/web/app/login/page.tsx |
LoginLayout |
frontend | healthy | apps/web/app/login/layout.tsx |
NetflixPage |
frontend | healthy | apps/web/app/netflix/page.tsx |
RoomClient |
frontend | healthy | apps/web/app/r/[roomId]/room-client.tsx |
React |
frontend | healthy | apps/web/app/r/[roomId]/components/youtubeIFramePlayer/YouT… |
NetflixSyncPlayer |
frontend | healthy | apps/web/app/r/[roomId]/components/netflixSyncPlayer/Netfli… |
VideoControls |
frontend | healthy | apps/web/app/r/[roomId]/components/videoControls/VideoContr… |
TermsOfServicePage |
frontend | healthy | apps/web/app/terms/page.tsx |
TermsLayout |
frontend | healthy | apps/web/app/terms/layout.tsx |
PrivacyPolicyPage |
frontend | healthy | apps/web/app/privacy/page.tsx |
RegisterPage |
frontend | healthy | apps/web/app/register/page.tsx |
RegisterLayout |
frontend | healthy | apps/web/app/register/layout.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /api/auth/me |
api | healthy | apps/server/src/routes/auth.js |
POST /api/auth/register |
api | healthy | apps/server/src/routes/auth.js |
POST /api/auth/login |
api | healthy | apps/server/src/routes/auth.js |
POST /api/auth/register-token |
api | healthy | apps/server/src/routes/auth.js |
POST /api/auth/login-token |
api | healthy | apps/server/src/routes/auth.js |
POST /api/auth/logout |
api | healthy | apps/server/src/routes/auth.js |
GET /health |
api | healthy | apps/server/src/routes/health.js |
GET /api/saved-rooms |
api | healthy | apps/server/src/routes/savedRooms.js |
POST /api/saved-rooms |
api | healthy | apps/server/src/routes/savedRooms.js |
DELETE /api/saved-rooms/:roomId |
api | healthy | apps/server/src/routes/savedRooms.js |
| Label | Layer | Status | Path |
|---|---|---|---|
User |
data | healthy | apps/server/prisma/migrations/20260427000000_init/migration… |
Session |
data | healthy | apps/server/prisma/migrations/20260427000000_init/migration… |
SavedRoom |
data | healthy | apps/server/prisma/migrations/20260427000000_init/migration… |
RoomMessage |
data | healthy | apps/server/prisma/migrations/20260427000000_init/migration… |
RoomActivity |
data | healthy | apps/server/prisma/migrations/20260427000000_init/migration… |
RoomState |
data | healthy | apps/server/prisma/migrations/20260427000000_init/migration… |
RoomPlaylist |
data | healthy | apps/server/prisma/migrations/20260427000000_init/migration… |
RoomPlaylistItem |
data | healthy | apps/server/prisma/migrations/20260427000000_init/migration… |
| Label | Layer | Status | Path |
|---|---|---|---|
/page.tsx |
frontend | healthy | apps/web/app/page.tsx |
/login |
frontend | healthy | apps/web/app/login/page.tsx |
/netflix |
frontend | healthy | apps/web/app/netflix/page.tsx |
/r/[roomId] |
frontend | healthy | apps/web/app/r/[roomId]/page.tsx |
/terms |
frontend | healthy | apps/web/app/terms/page.tsx |
/privacy |
frontend | healthy | apps/web/app/privacy/page.tsx |
/register |
frontend | healthy | apps/web/app/register/page.tsx |
/socket.io/ |
frontend | healthy | apps/server/src/socket/createIo.js |
| Label | Layer | Status | Path |
|---|---|---|---|
components |
software | healthy | apps/web/app/components/ErrorBoundary.tsx:components |
ErrorBoundary |
software | healthy | apps/web/app/components/ErrorBoundary.tsx:ErrorBoundary |
and |
software | healthy | apps/extension-netflix-party/src/content/metadata.ts:and |
varies |
software | healthy | apps/extension-netflix-party/src/content/metadata.ts:varies |
| Label | Layer | Status | Path |
|---|---|---|---|
postgresql |
data | healthy | README.md |
postgres |
data | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-tjrgdt2v |
software | healthy | /tmp/repobility-clone-tjrgdt2v |
| Label | Layer | Status | Path |
|---|---|---|---|
migration.sql |
data | healthy | apps/server/prisma/migrations/20260427000000_init/migration… |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | apps/web/app/api/_lib/rateLimit.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
port:4000 |
network | healthy | apps/server/.env.example |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | apps/server/src/socket/helpers/__tests__/gameMatch.test.js |
| Label | Layer | Status | Path |
|---|---|---|---|
generic_api_key::apps/server/.env.example |
security | healthy | apps/server/.env.example |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::apps/web/app/api/video-info/route.ts |
security | healthy | apps/web/app/api/video-info/route.ts |
This page is publicly accessible at:
https://repobility.com/scan/14bad2f4-c7f2-41bf-857e-fd136dbaf79f/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/14bad2f4-c7f2-41bf-857e-fd136dbaf79f/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.