Public scan — anyone with this URL can view this analysis. Sign up to track your own repos privately, run scheduled re-scans, and get AI fix prompts via your dashboard.

arielwernick/virtual_bookshelf

https://github.com/arielwernick/virtual_bookshelf · scanned 2026-06-17 01:35 UTC (1 month, 2 weeks ago)

48 raw signals (0 security + 48 graph)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 1 month, 2 weeks ago · v2 · last Δ -11.5 (diff) · 37 actionable findings from 1 signal source. 11 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.

JSON
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all

All 862 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.

LabelLayerStatusPath
needsExternalApiRateLimit software healthy middleware.ts:needsExternalApiRateLimit
middleware software healthy middleware.ts:middleware
RootLayout software healthy app/layout.tsx:RootLayout
getDemoShelvesData software healthy app/page.tsx:getDemoShelvesData
Home software healthy app/page.tsx:Home
DashboardPage software healthy app/dashboard/page.tsx:DashboardPage
fetchDashboard software healthy app/dashboard/page.tsx:fetchDashboard
handleCreateShelf software healthy app/dashboard/page.tsx:handleCreateShelf
SharedShelfClient software healthy app/s/[shareToken]/SharedShelfClient.tsx:SharedShelfClient
SharedShelfInteractive software healthy app/s/[shareToken]/SharedShelfInteractive.tsx:SharedShelfIn…
itemCard software healthy app/s/[shareToken]/SharedShelfInteractive.tsx:itemCard
ShelfNotFound software healthy app/s/[shareToken]/page.tsx:ShelfNotFound
generateMetadata software healthy app/s/[shareToken]/page.tsx:generateMetadata
getShelfData software healthy app/s/[shareToken]/page.tsx:getShelfData
SharedShelfPage software healthy app/s/[shareToken]/page.tsx:SharedShelfPage
ShelfPage software healthy app/shelf/[shelfId]/page.tsx:ShelfPage
fetchData software healthy app/shelf/[shelfId]/page.tsx:fetchData
EditShelfPage software healthy app/shelf/[shelfId]/edit/page.tsx:EditShelfPage
fetchShelf software healthy app/shelf/[shelfId]/edit/page.tsx:fetchShelf
handleSaveName software healthy app/shelf/[shelfId]/edit/page.tsx:handleSaveName
handleSaveDescription software healthy app/shelf/[shelfId]/edit/page.tsx:handleSaveDescription
handleDeleteItem software healthy app/shelf/[shelfId]/edit/page.tsx:handleDeleteItem
handleReorder software healthy app/shelf/[shelfId]/edit/page.tsx:handleReorder
handleSaveNote software healthy app/shelf/[shelfId]/edit/page.tsx:handleSaveNote
handleDeleteShelf software healthy app/shelf/[shelfId]/edit/page.tsx:handleDeleteShelf
LoginPageContent software healthy app/login/page.tsx:LoginPageContent
getValidatedReturnUrl software healthy app/login/page.tsx:getValidatedReturnUrl
handleGoogleSignIn software healthy app/login/page.tsx:handleGoogleSignIn
handleChange software healthy app/login/page.tsx:handleChange
handleSubmit software healthy app/login/page.tsx:handleSubmit
LoginPage software healthy app/login/page.tsx:LoginPage
getRedis software healthy app/api/finance/chart/route.ts:getRedis
GET software healthy app/api/finance/chart/route.ts:GET
quotes software healthy app/api/finance/chart/route.ts:quotes
getRedis software healthy app/api/finance/quote/route.ts:getRedis
logoUrlFromWebsite software healthy app/api/finance/quote/route.ts:logoUrlFromWebsite
GET software healthy app/api/finance/quote/route.ts:GET
website software healthy app/api/finance/quote/route.ts:website
getRedis software healthy app/api/finance/news/route.ts:getRedis
GET software healthy app/api/finance/news/route.ts:GET
headlines software healthy app/api/finance/news/route.ts:headlines
PATCH software healthy app/api/shelf/update-title/route.ts:PATCH
GET software healthy app/api/shelf/dashboard/route.ts:GET
GET software healthy app/api/shelf/share/[shareToken]/route.ts:GET
POST software healthy app/api/shelf/update-description/route.ts:POST
POST software healthy app/api/shelf/create/route.ts:POST
GET software healthy app/api/shelf/[shelfId]/route.ts:GET
PATCH software healthy app/api/shelf/[shelfId]/route.ts:PATCH
DELETE software healthy app/api/shelf/[shelfId]/route.ts:DELETE
createRequest software healthy app/api/shelf/[shelfId]/route.test.ts:createRequest

Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.

LabelLayerStatusPath
vitest.config.ts software healthy vitest.config.ts
CLAUDE.md software healthy CLAUDE.md
CONTRIBUTING.md software healthy CONTRIBUTING.md
eslint.config.mjs software healthy eslint.config.mjs
playwright.config.ts software healthy playwright.config.ts
package-lock.json software healthy package-lock.json
README.md software healthy README.md
middleware.ts software healthy middleware.ts
postcss.config.mjs software healthy postcss.config.mjs
package.json software healthy package.json
next.config.ts software healthy next.config.ts
tsconfig.json software healthy tsconfig.json
globals.css software healthy app/globals.css
layout.tsx software healthy app/layout.tsx
page.tsx software healthy app/page.tsx
page.tsx software healthy app/dashboard/page.tsx
SharedShelfClient.tsx software healthy app/s/[shareToken]/SharedShelfClient.tsx
SharedShelfInteractive.tsx software healthy app/s/[shareToken]/SharedShelfInteractive.tsx
page.tsx software healthy app/s/[shareToken]/page.tsx
page.tsx software healthy app/shelf/[shelfId]/page.tsx
page.tsx software healthy app/shelf/[shelfId]/edit/page.tsx
page.tsx software healthy app/login/page.tsx
route.ts software healthy app/api/finance/chart/route.ts
route.ts software healthy app/api/finance/quote/route.ts
route.ts software healthy app/api/finance/news/route.ts
route.ts software healthy app/api/shelf/update-title/route.ts
route.ts software healthy app/api/shelf/dashboard/route.ts
route.ts software healthy app/api/shelf/share/[shareToken]/route.ts
route.ts software healthy app/api/shelf/update-description/route.ts
route.ts software healthy app/api/shelf/create/route.ts
route.ts software healthy app/api/shelf/[shelfId]/route.ts
route.test.ts software healthy app/api/shelf/[shelfId]/route.test.ts
route.ts software healthy app/api/shelf/[shelfId]/reorder/route.ts
route.tsx software healthy app/api/og/landing/route.tsx
route.tsx software healthy app/api/og/[shareToken]/route.tsx
route.ts software healthy app/api/auth/google/route.ts
route.ts software healthy app/api/auth/google/callback/route.ts
route.ts software healthy app/api/auth/debug/route.ts
route.ts software healthy app/api/auth/login/route.ts
route.test.ts software healthy app/api/auth/login/route.test.ts
route.ts software healthy app/api/auth/signup/route.ts
route.test.ts software healthy app/api/auth/signup/route.test.ts
route.ts software healthy app/api/auth/me/route.ts
route.ts software healthy app/api/auth/logout/route.ts
route.ts software healthy app/api/search/books/route.ts
route.ts software healthy app/api/search/episodes/route.ts
route.test.ts software healthy app/api/search/episodes/route.test.ts
route.ts software healthy app/api/search/episodes/in-show/route.ts
route.ts software healthy app/api/search/music/route.ts
route.ts software healthy app/api/items/route.ts

Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.

LabelLayerStatusPath
app software healthy app
dashboard software healthy app/dashboard
s software healthy app/s
[shareToken] software healthy app/s/[shareToken]
shelf software healthy app/shelf
[shelfId] software healthy app/shelf/[shelfId]
edit software healthy app/shelf/[shelfId]/edit
login software healthy app/login
api software healthy app/api
finance software healthy app/api/finance
chart software healthy app/api/finance/chart
quote software healthy app/api/finance/quote
news software healthy app/api/finance/news
shelf software healthy app/api/shelf
update-title software healthy app/api/shelf/update-title
dashboard software healthy app/api/shelf/dashboard
share software healthy app/api/shelf/share
[shareToken] software healthy app/api/shelf/share/[shareToken]
update-description software healthy app/api/shelf/update-description
create software healthy app/api/shelf/create
[shelfId] software healthy app/api/shelf/[shelfId]
reorder software healthy app/api/shelf/[shelfId]/reorder
og software healthy app/api/og
landing software healthy app/api/og/landing
[shareToken] software healthy app/api/og/[shareToken]
auth software healthy app/api/auth
google software healthy app/api/auth/google
callback software healthy app/api/auth/google/callback
debug software healthy app/api/auth/debug
login software healthy app/api/auth/login
signup software healthy app/api/auth/signup
me software healthy app/api/auth/me
logout software healthy app/api/auth/logout
search software healthy app/api/search
books software healthy app/api/search/books
episodes software healthy app/api/search/episodes
in-show software healthy app/api/search/episodes/in-show
music software healthy app/api/search/music
items software healthy app/api/items
[id] software healthy app/api/items/[id]
from-url software healthy app/api/items/from-url
reorder software healthy app/api/items/reorder
import software healthy app/api/import
parse software healthy app/api/import/parse
metadata software healthy app/api/import/metadata
resolve software healthy app/api/import/resolve
create software healthy app/api/import/create
signup software healthy app/signup
embed software healthy app/embed
[shareToken] software healthy app/embed/[shareToken]

Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.

LabelLayerStatusPath
password_literal::app/api/auth/login/route.test.ts security healthy app/api/auth/login/route.test.ts
password_literal::app/api/auth/login/route.test.ts security healthy app/api/auth/login/route.test.ts
password_literal::app/api/auth/login/route.test.ts security healthy app/api/auth/login/route.test.ts
password_literal::app/api/auth/login/route.test.ts security healthy app/api/auth/login/route.test.ts
password_literal::app/api/auth/login/route.test.ts security healthy app/api/auth/login/route.test.ts
password_literal::app/api/auth/login/route.test.ts security healthy app/api/auth/login/route.test.ts
password_literal::app/api/auth/login/route.test.ts security healthy app/api/auth/login/route.test.ts
password_literal::app/api/auth/login/route.test.ts security healthy app/api/auth/login/route.test.ts
password_literal::app/api/auth/signup/route.test.ts security healthy app/api/auth/signup/route.test.ts
password_literal::app/api/auth/signup/route.test.ts security healthy app/api/auth/signup/route.test.ts
password_literal::app/api/auth/signup/route.test.ts security healthy app/api/auth/signup/route.test.ts
password_literal::app/api/auth/signup/route.test.ts security healthy app/api/auth/signup/route.test.ts
password_literal::app/api/auth/signup/route.test.ts security healthy app/api/auth/signup/route.test.ts
password_literal::app/api/auth/signup/route.test.ts security healthy app/api/auth/signup/route.test.ts
password_literal::app/api/auth/signup/route.test.ts security healthy app/api/auth/signup/route.test.ts
password_literal::app/api/auth/signup/route.test.ts security healthy app/api/auth/signup/route.test.ts
password_literal::app/api/auth/signup/route.test.ts security healthy app/api/auth/signup/route.test.ts
password_literal::app/api/auth/signup/route.test.ts security healthy app/api/auth/signup/route.test.ts
password_literal::app/api/auth/signup/route.test.ts security healthy app/api/auth/signup/route.test.ts
password_literal::app/api/auth/signup/route.test.ts security healthy app/api/auth/signup/route.test.ts
password_literal::scripts/seed-demo.deprecated.ts security healthy scripts/seed-demo.deprecated.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
password_literal::lib/constants/errors.ts security healthy lib/constants/errors.ts

LabelLayerStatusPath
db-migration-validation.ts data healthy test/db-migration-validation.ts
MIGRATION_005_n1_query_optimization.sql data healthy lib/db/MIGRATION_005_n1_query_optimization.sql
MIGRATION_002_top5_shelf.sql data healthy lib/db/MIGRATION_002_top5_shelf.sql
MIGRATION_004_video_support.sql data healthy lib/db/MIGRATION_004_video_support.sql
MIGRATION_004_link_type.sql data healthy lib/db/MIGRATION_004_link_type.sql
MIGRATION_001_google_oauth.sql data healthy lib/db/MIGRATION_001_google_oauth.sql
MIGRATION_003_podcast_episodes.sql data healthy lib/db/MIGRATION_003_podcast_episodes.sql
MIGRATION_004_remove_top5.sql data healthy lib/db/MIGRATION_004_remove_top5.sql
MIGRATION_006_stock_type.sql data healthy lib/db/MIGRATION_006_stock_type.sql
002_schema_hardening.down.sql data healthy migrations/002_schema_hardening.down.sql
001_initial_schema.down.sql data healthy migrations/001_initial_schema.down.sql
001_initial_schema.sql data healthy migrations/001_initial_schema.sql
002_schema_hardening.sql data healthy migrations/002_schema_hardening.sql

LabelLayerStatusPath
auth::app/signup/page.tsx security healthy app/signup/page.tsx
auth::lib/utils/session.ts security healthy lib/utils/session.ts
auth::README.md security healthy README.md
auth::lib/utils/session.test.ts security healthy lib/utils/session.test.ts
auth::docs/security-tasks/README.md security healthy docs/security-tasks/README.md
auth::lib/utils/logger.ts security healthy lib/utils/logger.ts
auth::app/api/auth/google/callback/route.ts security healthy app/api/auth/google/callback/route.ts
auth::lib/utils/rateLimit.ts security healthy lib/utils/rateLimit.ts
auth::app/login/page.tsx security healthy app/login/page.tsx
auth::app/api/auth/google/route.ts security healthy app/api/auth/google/route.ts
auth::lib/utils/logger.test.ts security healthy lib/utils/logger.test.ts
auth::CLAUDE.md security healthy CLAUDE.md
auth::lib/constants/errors.ts security healthy lib/constants/errors.ts

LabelLayerStatusPath
RootLayout frontend healthy app/layout.tsx
DashboardPage frontend healthy app/dashboard/page.tsx
ShelfPage frontend healthy app/shelf/[shelfId]/page.tsx
EditShelfPage frontend healthy app/shelf/[shelfId]/edit/page.tsx
LoginPage frontend healthy app/login/page.tsx
SignupPage frontend healthy app/signup/page.tsx
EmbedShelfPage frontend healthy app/embed/[shareToken]/page.tsx
ImportPage frontend healthy app/import/page.tsx

LabelLayerStatusPath
9.504.5.092 network healthy app/page.tsx
2.91.832.092 network healthy app/page.tsx
2.651.64.7 network healthy app/page.tsx
4.943.359.309 network healthy app/page.tsx
268.18.58.688 network healthy app/page.tsx
120.0.0.0 network healthy lib/utils/urlResolver.ts
127.0.0.1 network healthy lib/utils/rateLimit.ts

LabelLayerStatusPath
/ frontend healthy app/api/auth/google/route.ts
/login frontend healthy e2e/explore.spec.ts
/signup frontend healthy e2e/explore.spec.ts
/dashboard frontend healthy e2e/explore.spec.ts
/import frontend healthy e2e/explore-auth.auth.spec.ts

LabelLayerStatusPath
ai-refinement cicd healthy .github/workflows/refine-idea.yml
release cicd healthy .github/workflows/release.yml
test cicd healthy .github/workflows/test.yml
lint cicd healthy .github/workflows/test.yml
build cicd healthy .github/workflows/test.yml

LabelLayerStatusPath
postgresql data healthy CLAUDE.md
redis data healthy middleware.ts
postgres data healthy lib/db/migrate.ts

LabelLayerStatusPath
users data healthy lib/db/schema.sql
shelves data healthy lib/db/schema.sql
items data healthy lib/db/schema.sql

LabelLayerStatusPath
gha::refine-idea cicd healthy .github/workflows/refine-idea.yml
gha::release cicd healthy .github/workflows/release.yml
gha::test cicd healthy .github/workflows/test.yml

LabelLayerStatusPath
MicrolinkQuotaExceededError software healthy lib/api/microlink.ts:MicrolinkQuotaExceededError
Logger software healthy lib/utils/logger.ts:Logger

LabelLayerStatusPath
arielwernick__virtual_bookshelf software healthy /data/fable5_failed_archive/arielwernick__virtual_bookshelf

LabelLayerStatusPath
vps::aws hardware healthy lib/utils/urlResolver.test.ts

LabelLayerStatusPath
gpu (detected) hardware healthy lib/utils/textParser.integration.test.ts

LabelLayerStatusPath
GITHUB_TOKEN cicd healthy
For AI agents: Voting guide (TP/FP) MCP manifest Stdio wrapper SARIF Integrate Findings queue Vote TP/FP on findings to calibrate the engine.
For AI agents + API integrations
Email me when this repo regresses
Free. We re-scan periodically; new criticals → your inbox. No signup required for the scan itself.
API access

This page is publicly accessible at: https://repobility.com/scan/2153ce2e-aead-4cb0-b6d8-b1f48aaaf4bb/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/2153ce2e-aead-4cb0-b6d8-b1f48aaaf4bb/

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.