https://github.com/xingfanxia/guandan_calc
· scanned 2026-06-16 01:02 UTC (2 months, 1 week ago)
73 raw signals (0 security + 73 graph)
Last scanned 2 months, 1 week ago · v1 · 72 actionable findings from 1 signal source. 1 repeated signal grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 1124 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 |
|---|---|---|---|
corsHeaders |
software | healthy | api/_cors.js:corsHeaders |
handleCorsPreflight |
software | healthy | api/_cors.js:handleCorsPreflight |
jsonResponse |
software | healthy | api/_cors.js:jsonResponse |
parseJsonBody |
software | healthy | api/_cors.js:parseJsonBody |
pickGameResultFields |
software | healthy | api/players/_pending.js:pickGameResultFields |
derivePendingId |
software | healthy | api/players/_pending.js:derivePendingId |
buildSummary |
software | healthy | api/players/_pending.js:buildSummary |
enqueuePendingSession |
software | healthy | api/players/_pending.js:enqueuePendingSession |
parsePendingRecord |
software | healthy | api/players/_pending.js:parsePendingRecord |
getPendingSession |
software | healthy | api/players/_pending.js:getPendingSession |
removePendingSession |
software | healthy | api/players/_pending.js:removePendingSession |
summarizePending |
software | healthy | api/players/_pending.js:summarizePending |
listPendingSessions |
software | healthy | api/players/_pending.js:listPendingSessions |
generatePlayerId |
software | healthy | api/players/_utils.js:generatePlayerId |
validateHandle |
software | healthy | api/players/_utils.js:validateHandle |
isAllowedPhotoDataUrl |
software | healthy | api/players/_utils.js:isAllowedPhotoDataUrl |
validatePlayerData |
software | healthy | api/players/_utils.js:validatePlayerData |
initializePlayerStats |
software | healthy | api/players/_utils.js:initializePlayerStats |
createBaseStatsStructure |
software | healthy | api/players/_utils.js:createBaseStatsStructure |
validateAdminToken |
software | healthy | api/players/_utils.js:validateAdminToken |
constantTimeEqual |
software | healthy | api/players/_utils.js:constantTimeEqual |
generateOwnershipToken |
software | healthy | api/players/_utils.js:generateOwnershipToken |
hashToken |
software | healthy | api/players/_utils.js:hashToken |
validateOwnershipToken |
software | healthy | api/players/_utils.js:validateOwnershipToken |
extractBearerToken |
software | healthy | api/players/_utils.js:extractBearerToken |
sanitizePlayer |
software | healthy | api/players/_utils.js:sanitizePlayer |
parsePlayerRecord |
software | healthy | api/players/_utils.js:parsePlayerRecord |
applyStorageHandle |
software | healthy | api/players/_utils.js:applyStorageHandle |
normalizeRecordMap |
software | healthy | api/players/_utils.js:normalizeRecordMap |
toNonNegativeFiniteNumber |
software | healthy | api/players/_utils.js:toNonNegativeFiniteNumber |
summarizeLadderForList |
software | healthy | api/players/_utils.js:summarizeLadderForList |
summarizeStatsForList |
software | healthy | api/players/_utils.js:summarizeStatsForList |
summarizePlayerForList |
software | healthy | api/players/_utils.js:summarizePlayerForList |
parseListPagination |
software | healthy | api/players/_utils.js:parseListPagination |
calculateRoomDurationSeconds |
software | healthy | api/players/backfill-duration.js:calculateRoomDurationSecon… |
handler |
software | healthy | api/players/backfill-duration.js:handler |
handler |
software | healthy | api/players/migrate-single.js:handler |
migratePlayerToModeStats |
software | healthy | api/players/migrate-modes.js:migratePlayerToModeStats |
handler |
software | healthy | api/players/migrate-modes.js:handler |
handler |
software | healthy | api/players/reset-stats.js:handler |
handler |
software | healthy | api/players/delete.js:handler |
replayApprovedSession |
software | healthy | api/players/pending.js:replayApprovedSession |
handler |
software | healthy | api/players/pending.js:handler |
normalizeProfileVoteCount |
software | healthy | api/players/[handle].js:normalizeProfileVoteCount |
normalizeProfileHandleCandidate |
software | healthy | api/players/[handle].js:normalizeProfileHandleCandidate |
normalizeRoomPlayerProfileHandle |
software | healthy | api/players/[handle].js:normalizeRoomPlayerProfileHandle |
findRoomPlayerByProfileHandle |
software | healthy | api/players/[handle].js:findRoomPlayerByProfileHandle |
getRoomPlayerTeamKey |
software | healthy | api/players/[handle].js:getRoomPlayerTeamKey |
resolveRoomPlayerTeamWon |
software | healthy | api/players/[handle].js:resolveRoomPlayerTeamWon |
applyProfileVoteStats |
software | healthy | api/players/[handle].js:applyProfileVoteStats |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
vite.config.js |
software | healthy | vite.config.js |
DESIGN.md |
software | healthy | DESIGN.md |
players.html |
software | healthy | players.html |
vercel.json |
software | healthy | vercel.json |
player-profile.html |
software | healthy | player-profile.html |
MODULAR_STATUS.md |
software | healthy | MODULAR_STATUS.md |
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
package.json |
software | healthy | package.json |
MODULAR_REWRITE_COMPLETE.md |
software | healthy | MODULAR_REWRITE_COMPLETE.md |
index.html |
software | healthy | index.html |
package-lock.json |
software | healthy | package-lock.json |
admin.html |
software | healthy | admin.html |
.env.example |
software | healthy | .env.example |
rooms.html |
software | healthy | rooms.html |
LICENSE |
software | healthy | LICENSE |
TODO.md |
software | healthy | TODO.md |
_cors.js |
software | healthy | api/_cors.js |
_pending.js |
software | healthy | api/players/_pending.js |
_utils.js |
software | healthy | api/players/_utils.js |
backfill-duration.js |
software | healthy | api/players/backfill-duration.js |
migrate-single.js |
software | healthy | api/players/migrate-single.js |
migrate-modes.js |
software | healthy | api/players/migrate-modes.js |
reset-stats.js |
software | healthy | api/players/reset-stats.js |
delete.js |
software | healthy | api/players/delete.js |
pending.js |
software | healthy | api/players/pending.js |
[handle].js |
software | healthy | api/players/[handle].js |
list.js |
software | healthy | api/players/list.js |
_modeMigration.js |
software | healthy | api/players/_modeMigration.js |
touch.js |
software | healthy | api/players/touch.js |
create.js |
software | healthy | api/players/create.js |
[code].js |
software | healthy | api/rooms/[code].js |
_auth.js |
software | healthy | api/rooms/_auth.js |
_index.js |
software | healthy | api/rooms/_index.js |
_votes.js |
software | healthy | api/rooms/_votes.js |
_record.js |
software | healthy | api/rooms/_record.js |
_summary.js |
software | healthy | api/rooms/_summary.js |
list.js |
software | healthy | api/rooms/list.js |
create.js |
software | healthy | api/rooms/create.js |
[code].js |
software | healthy | api/rooms/reset-vote/[code].js |
[code].js |
software | healthy | api/rooms/vote/[code].js |
[code].js |
software | healthy | api/rooms/favorite/[code].js |
HANDOFF-2026-05-05-security-bootstrap-vr.md |
software | healthy | docs/HANDOFF-2026-05-05-security-bootstrap-vr.md |
README.md |
software | healthy | docs/README.md |
MODE_SPECIFIC_STATS_PLAN.md |
software | healthy | docs/MODE_SPECIFIC_STATS_PLAN.md |
PROFILE_EDIT_PLAN.md |
software | healthy | docs/PROFILE_EDIT_PLAN.md |
HANDOFF.md |
software | healthy | docs/HANDOFF.md |
HANDOFF-2026-05-02-audit.md |
software | healthy | docs/HANDOFF-2026-05-02-audit.md |
FEATURE_STATUS.md |
software | healthy | docs/FEATURE_STATUS.md |
PWA_SETUP.md |
software | healthy | docs/PWA_SETUP.md |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
api |
software | healthy | api |
players |
software | healthy | api/players |
rooms |
software | healthy | api/rooms |
reset-vote |
software | healthy | api/rooms/reset-vote |
vote |
software | healthy | api/rooms/vote |
favorite |
software | healthy | api/rooms/favorite |
docs |
software | healthy | docs |
architecture |
software | healthy | docs/architecture |
design |
software | healthy | docs/design |
demos |
software | healthy | docs/design/demos |
reports |
software | healthy | docs/reports |
phase0-1-visual |
software | healthy | docs/reports/phase0-1-visual |
phase1-5-visual |
software | healthy | docs/reports/phase1-5-visual |
guides |
software | healthy | docs/guides |
features |
software | healthy | docs/features |
shared |
software | healthy | shared |
scripts |
software | healthy | scripts |
ops |
software | healthy | scripts/ops |
visual |
software | healthy | scripts/visual |
public |
software | healthy | public |
icons |
software | healthy | public/icons |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
player |
software | healthy | src/player |
api |
software | healthy | src/api |
ui |
software | healthy | src/ui |
controllers |
software | healthy | src/controllers |
ranking |
software | healthy | src/ranking |
game |
software | healthy | src/game |
share |
software | healthy | src/share |
core |
software | healthy | src/core |
styles |
software | healthy | src/styles |
stats |
software | healthy | src/stats |
export |
software | healthy | src/export |
| Label | Layer | Status | Path |
|---|---|---|---|
MemoryStorage |
software | healthy | scripts/ops/verify-voting-session-state.mjs:MemoryStorage |
ThrowingStorage |
software | healthy | scripts/ops/verify-voting-session-state.mjs:ThrowingStorage |
FakeClassList |
software | healthy | scripts/ops/verify-drag-drop-events.mjs:FakeClassList |
FakeNode |
software | healthy | scripts/ops/verify-drag-drop-events.mjs:FakeNode |
FakeImage |
software | healthy | scripts/ops/verify-mobile-photo-export.mjs:FakeImage |
FakeClassList |
software | healthy | scripts/ops/verify-ui-mode-validation.mjs:FakeClassList |
FakeNode |
software | healthy | scripts/ops/verify-ui-mode-validation.mjs:FakeNode |
from |
software | healthy | src/player/touchHandler.js:from |
is |
software | healthy | src/ranking/rankingRenderer.js:is |
drives |
software | healthy | src/ranking/rankingRenderer.js:drives |
preserved |
software | healthy | src/ranking/rankingRenderer.js:preserved |
suffix |
software | healthy | src/ranking/rankingRenderer.js:suffix |
and |
software | healthy | src/ranking/rankingRenderer.js:and |
list |
software | healthy | src/ranking/rankingRenderer.js:list |
so |
software | healthy | src/ranking/rankingRenderer.js:so |
GameConfig |
software | healthy | src/core/config.js:GameConfig |
GameState |
software | healthy | src/core/state.js:GameState |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-odpf9hpi |
software | healthy | /tmp/repobility-clone-odpf9hpi |
| Label | Layer | Status | Path |
|---|---|---|---|
redis |
data | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
_modeMigration.js |
data | healthy | api/players/_modeMigration.js |
| Label | Layer | Status | Path |
|---|---|---|---|
port:3000 |
network | healthy | vite.config.js |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | scripts/ops/verify-voting-session-state.mjs |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::visual-regression |
cicd | healthy | .github/workflows/visual-regression.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
visual-smoke |
cicd | healthy | .github/workflows/visual-regression.yml |
This page is publicly accessible at:
https://repobility.com/scan/9bd41b8b-cfaa-4f35-89c3-c46f05d31dc4/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/9bd41b8b-cfaa-4f35-89c3-c46f05d31dc4/
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.