https://github.com/adamklie/greenroom
· scanned 2026-06-17 01:29 UTC (1 month, 2 weeks ago)
114 raw signals (0 security + 114 graph)
Last scanned 1 month, 2 weeks ago · v2 · last Δ -29.0 (diff) · 104 actionable findings from 1 signal source. 10 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 976 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 |
|---|---|---|---|
database_url |
software | healthy | backend/app/config.py:104 |
vault_files_dir |
software | healthy | backend/app/config.py:108 |
vault_backups_dir |
software | healthy | backend/app/config.py:112 |
vault_exports_dir |
software | healthy | backend/app/config.py:116 |
ensure_vault_layout |
software | healthy | backend/app/config.py:119 |
lifespan |
software | healthy | backend/app/main.py:17 |
_bg |
software | healthy | backend/app/main.py:33 |
health |
software | healthy | backend/app/main.py:79 |
spa_catchall |
software | healthy | backend/app/main.py:107 |
get_db |
software | dead | backend/app/database.py:14 |
_schedule_autobackup_on_commit |
software | healthy | backend/app/database.py:27 |
_get_secret |
software | healthy | backend/app/auth/jwt.py:29 |
encode_token |
software | healthy | backend/app/auth/jwt.py:43 |
decode_token |
software | healthy | backend/app/auth/jwt.py:55 |
send |
software | healthy | backend/app/auth/email.py:41 |
get_emailer |
software | healthy | backend/app/auth/email.py:76 |
_hash_token |
software | healthy | backend/app/auth/router.py:56 |
_set_session_cookie |
software | healthy | backend/app/auth/router.py:60 |
request_magic_link |
software | healthy | backend/app/auth/router.py:73 |
exchange_magic_link |
software | healthy | backend/app/auth/router.py:101 |
logout |
software | healthy | backend/app/auth/router.py:136 |
me |
software | healthy | backend/app/auth/router.py:142 |
_synthetic_admin |
software | healthy | backend/app/auth/deps.py:39 |
_read_cookie_user |
software | healthy | backend/app/auth/deps.py:52 |
current_user |
software | dead | backend/app/auth/deps.py:70 |
_require_role |
software | healthy | backend/app/auth/deps.py:84 |
dep |
software | dead | backend/app/auth/deps.py:92 |
generate_identifier |
software | healthy | backend/app/models/audio_file.py:10 |
check_health |
software | healthy | backend/app/routers/files.py:44 |
move_file |
software | healthy | backend/app/routers/files.py:57 |
consolidate_one |
software | healthy | backend/app/routers/files.py:73 |
consolidate_all |
software | healthy | backend/app/routers/files.py:88 |
list_options |
software | healthy | backend/app/routers/options.py:31 |
create_option |
software | healthy | backend/app/routers/options.py:51 |
delete_option |
software | healthy | backend/app/routers/options.py:70 |
_extract_audio |
software | healthy | backend/app/routers/upload.py:29 |
upload_file |
software | healthy | backend/app/routers/upload.py:43 |
_setlist_to_read |
software | healthy | backend/app/routers/setlists.py:19 |
list_setlists |
software | healthy | backend/app/routers/setlists.py:49 |
create_setlist |
software | healthy | backend/app/routers/setlists.py:55 |
get_setlist |
software | healthy | backend/app/routers/setlists.py:75 |
update_setlist |
software | healthy | backend/app/routers/setlists.py:83 |
delete_setlist |
software | healthy | backend/app/routers/setlists.py:114 |
_take_to_read |
software | healthy | backend/app/routers/sessions.py:15 |
list_sessions |
software | healthy | backend/app/routers/sessions.py:26 |
get_session |
software | healthy | backend/app/routers/sessions.py:54 |
best_takes |
software | healthy | backend/app/routers/sessions.py:82 |
update_take |
software | healthy | backend/app/routers/sessions.py:101 |
add_take_tag |
software | healthy | backend/app/routers/sessions.py:113 |
remove_take_tag |
software | healthy | backend/app/routers/sessions.py:129 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
CLAUDE.md |
software | healthy | CLAUDE.md |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
fly.toml |
software | healthy | fly.toml |
README.md |
software | healthy | README.md |
Makefile |
software | healthy | Makefile |
docker-compose.yml |
software | healthy | docker-compose.yml |
.pre-commit-config.yaml |
software | healthy | .pre-commit-config.yaml |
Dockerfile |
software | healthy | Dockerfile |
dev.sh |
software | healthy | dev.sh |
package-lock.json |
software | healthy | backend/package-lock.json |
pyproject.toml |
software | healthy | backend/pyproject.toml |
package.json |
software | healthy | backend/package.json |
__init__.py |
software | healthy | backend/app/__init__.py |
config.py |
software | healthy | backend/app/config.py |
main.py |
software | healthy | backend/app/main.py |
database.py |
software | healthy | backend/app/database.py |
__init__.py |
software | healthy | backend/app/utils/__init__.py |
take.py |
software | healthy | backend/app/schemas/take.py |
setlist.py |
software | healthy | backend/app/schemas/setlist.py |
song.py |
software | healthy | backend/app/schemas/song.py |
session.py |
software | healthy | backend/app/schemas/session.py |
lyrics_version.py |
software | healthy | backend/app/schemas/lyrics_version.py |
__init__.py |
software | healthy | backend/app/schemas/__init__.py |
dashboard.py |
software | healthy | backend/app/schemas/dashboard.py |
audio_file.py |
software | healthy | backend/app/schemas/audio_file.py |
song_tab.py |
software | healthy | backend/app/schemas/song_tab.py |
tag.py |
software | healthy | backend/app/schemas/tag.py |
jwt.py |
software | healthy | backend/app/auth/jwt.py |
__init__.py |
software | healthy | backend/app/auth/__init__.py |
email.py |
software | healthy | backend/app/auth/email.py |
router.py |
software | healthy | backend/app/auth/router.py |
deps.py |
software | healthy | backend/app/auth/deps.py |
take.py |
software | healthy | backend/app/models/take.py |
activity.py |
software | healthy | backend/app/models/activity.py |
setlist.py |
software | healthy | backend/app/models/setlist.py |
option.py |
software | healthy | backend/app/models/option.py |
song.py |
software | healthy | backend/app/models/song.py |
session.py |
software | healthy | backend/app/models/session.py |
lyrics_version.py |
software | healthy | backend/app/models/lyrics_version.py |
__init__.py |
software | healthy | backend/app/models/__init__.py |
user.py |
software | healthy | backend/app/models/user.py |
audio_file.py |
software | healthy | backend/app/models/audio_file.py |
song_tab.py |
software | healthy | backend/app/models/song_tab.py |
tag.py |
software | healthy | backend/app/models/tag.py |
files.py |
software | healthy | backend/app/routers/files.py |
options.py |
software | healthy | backend/app/routers/options.py |
upload.py |
software | healthy | backend/app/routers/upload.py |
setlists.py |
software | healthy | backend/app/routers/setlists.py |
sessions.py |
software | healthy | backend/app/routers/sessions.py |
dedup.py |
software | healthy | backend/app/routers/dedup.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
Settings |
software | healthy | backend/app/config.py:16 |
Base |
software | healthy | backend/app/database.py:10 |
TakeRead |
software | healthy | backend/app/schemas/take.py:8 |
TakeUpdate |
software | healthy | backend/app/schemas/take.py:34 |
SetlistItemCreate |
software | healthy | backend/app/schemas/setlist.py:8 |
SetlistItemRead |
software | healthy | backend/app/schemas/setlist.py:15 |
SetlistCreate |
software | healthy | backend/app/schemas/setlist.py:28 |
SetlistRead |
software | healthy | backend/app/schemas/setlist.py:35 |
SetlistUpdate |
software | healthy | backend/app/schemas/setlist.py:49 |
SongBase |
software | healthy | backend/app/schemas/song.py:8 |
SongCreate |
software | healthy | backend/app/schemas/song.py:22 |
SongRead |
software | healthy | backend/app/schemas/song.py:26 |
SongUpdate |
software | healthy | backend/app/schemas/song.py:47 |
SongDetail |
software | healthy | backend/app/schemas/song.py:69 |
SessionRead |
software | healthy | backend/app/schemas/session.py:11 |
SessionDetail |
software | healthy | backend/app/schemas/session.py:23 |
LyricsVersionRead |
software | healthy | backend/app/schemas/lyrics_version.py:8 |
LyricsUpdate |
software | healthy | backend/app/schemas/lyrics_version.py:19 |
DashboardStats |
software | healthy | backend/app/schemas/dashboard.py:6 |
RecentSong |
software | healthy | backend/app/schemas/dashboard.py:18 |
RecentAudioFile |
software | healthy | backend/app/schemas/dashboard.py:27 |
RecentSession |
software | healthy | backend/app/schemas/dashboard.py:41 |
DashboardResponse |
software | healthy | backend/app/schemas/dashboard.py:49 |
AudioFileRead |
software | healthy | backend/app/schemas/audio_file.py:8 |
AudioFileUpdate |
software | healthy | backend/app/schemas/audio_file.py:53 |
AudioFileBulkUpdate |
software | healthy | backend/app/schemas/audio_file.py:76 |
SongTabRead |
software | healthy | backend/app/schemas/song_tab.py:8 |
SongTabUpdate |
software | healthy | backend/app/schemas/song_tab.py:23 |
TagRead |
software | healthy | backend/app/schemas/tag.py:4 |
TagCreate |
software | healthy | backend/app/schemas/tag.py:14 |
MagicLinkEmailer |
software | healthy | backend/app/auth/email.py:16 |
StubEmailer |
software | healthy | backend/app/auth/email.py:20 |
ResendEmailer |
software | healthy | backend/app/auth/email.py:31 |
RequestMagicLink |
software | healthy | backend/app/auth/router.py:43 |
MeResponse |
software | healthy | backend/app/auth/router.py:50 |
Take |
software | healthy | backend/app/models/take.py:9 |
ActivityLog |
software | healthy | backend/app/models/activity.py:9 |
Setlist |
software | healthy | backend/app/models/setlist.py:9 |
SetlistItem |
software | healthy | backend/app/models/setlist.py:26 |
Option |
software | healthy | backend/app/models/option.py:9 |
Song |
software | healthy | backend/app/models/song.py:9 |
PracticeSession |
software | healthy | backend/app/models/session.py:9 |
LyricsVersion |
software | healthy | backend/app/models/lyrics_version.py:9 |
User |
software | healthy | backend/app/models/user.py:16 |
MagicToken |
software | healthy | backend/app/models/user.py:33 |
AudioFile |
software | healthy | backend/app/models/audio_file.py:17 |
SongTab |
software | healthy | backend/app/models/song_tab.py:9 |
Tag |
software | healthy | backend/app/models/tag.py:29 |
MoveRequest |
software | healthy | backend/app/routers/files.py:20 |
BrokenLinkRead |
software | healthy | backend/app/routers/files.py:24 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
GET /api/health |
api | healthy | backend/app/main.py |
GET /{full_path:path} |
api | healthy | backend/app/main.py |
POST /request |
api | healthy | backend/app/auth/router.py |
GET /exchange |
api | healthy | backend/app/auth/router.py |
POST /logout |
api | healthy | backend/app/auth/router.py |
GET /me |
api | healthy | backend/app/auth/router.py |
GET /health |
api | healthy | backend/app/routers/files.py |
POST /audio/{audio_file_id}/move |
api | healthy | backend/app/routers/files.py |
POST /audio/{audio_file_id}/consolidate |
api | healthy | backend/app/routers/files.py |
POST /consolidate-all |
api | healthy | backend/app/routers/files.py |
GET / |
api | healthy | backend/app/routers/options.py |
POST / |
api | healthy | backend/app/routers/options.py |
DELETE /{option_id} |
api | healthy | backend/app/routers/options.py |
GET /{setlist_id} |
api | healthy | backend/app/routers/setlists.py |
PATCH /{setlist_id} |
api | healthy | backend/app/routers/setlists.py |
DELETE /{setlist_id} |
api | healthy | backend/app/routers/setlists.py |
GET /{session_id} |
api | healthy | backend/app/routers/sessions.py |
GET /takes/best |
api | healthy | backend/app/routers/sessions.py |
PATCH /takes/{take_id} |
api | healthy | backend/app/routers/sessions.py |
POST /takes/{take_id}/tags |
api | healthy | backend/app/routers/sessions.py |
DELETE /takes/{take_id}/tags/{tag_name} |
api | healthy | backend/app/routers/sessions.py |
GET /duplicates |
api | healthy | backend/app/routers/dedup.py |
POST /merge |
api | healthy | backend/app/routers/dedup.py |
GET /practice-frequency |
api | healthy | backend/app/routers/analytics.py |
GET /rating-trends |
api | healthy | backend/app/routers/analytics.py |
GET /skill-radar |
api | healthy | backend/app/routers/analytics.py |
GET /song-progress |
api | healthy | backend/app/routers/analytics.py |
GET /session-summary |
api | healthy | backend/app/routers/analytics.py |
GET /status-funnel |
api | healthy | backend/app/routers/analytics.py |
GET /list-videos |
api | healthy | backend/app/routers/gopro.py |
POST /analyze |
api | healthy | backend/app/routers/gopro.py |
POST /process |
api | healthy | backend/app/routers/gopro.py |
POST /upload-raw |
api | healthy | backend/app/routers/gopro.py |
POST /multipart-init |
api | healthy | backend/app/routers/gopro.py |
POST /multipart-complete |
api | healthy | backend/app/routers/gopro.py |
POST /multipart-abort |
api | healthy | backend/app/routers/gopro.py |
GET /{song_id} |
api | healthy | backend/app/routers/songs.py |
PATCH /{song_id} |
api | healthy | backend/app/routers/songs.py |
DELETE /{song_id} |
api | healthy | backend/app/routers/songs.py |
POST /{song_id}/restore |
api | healthy | backend/app/routers/songs.py |
PUT /{song_id}/lyrics |
api | healthy | backend/app/routers/songs.py |
GET /{song_id}/lyrics/versions |
api | healthy | backend/app/routers/songs.py |
POST /{song_id}/tags |
api | healthy | backend/app/routers/songs.py |
DELETE /{song_id}/tags/{tag_name} |
api | healthy | backend/app/routers/songs.py |
POST /{song_id}/promote |
api | healthy | backend/app/routers/songs.py |
PATCH /audio-files/{audio_file_id} |
api | healthy | backend/app/routers/songs.py |
GET /issues |
api | healthy | backend/app/routers/feedback.py |
POST /{audio_file_id}/trim |
api | healthy | backend/app/routers/trim.py |
GET /{audio_file_id} |
api | healthy | backend/app/routers/audio_files.py |
PATCH /bulk |
api | healthy | backend/app/routers/audio_files.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
backend |
software | healthy | backend |
app |
software | healthy | backend/app |
utils |
software | healthy | backend/app/utils |
schemas |
software | healthy | backend/app/schemas |
auth |
software | healthy | backend/app/auth |
models |
software | healthy | backend/app/models |
routers |
software | healthy | backend/app/routers |
services |
software | healthy | backend/app/services |
tests |
software | healthy | backend/tests |
scripts |
software | healthy | backend/scripts |
alembic |
software | healthy | backend/alembic |
versions |
software | healthy | backend/alembic/versions |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
frontend |
software | healthy | frontend |
src |
software | healthy | frontend/src |
api |
software | healthy | frontend/src/api |
auth |
software | healthy | frontend/src/auth |
components |
software | healthy | frontend/src/components |
pages |
software | healthy | frontend/src/pages |
alphatab |
software | healthy | frontend/alphatab |
soundfont |
software | healthy | frontend/alphatab/soundfont |
public |
software | healthy | frontend/public |
alphatab |
software | healthy | frontend/public/alphatab |
docs |
software | healthy | docs |
infra |
software | healthy | infra |
.claude |
software | healthy | .claude |
hooks |
software | healthy | .claude/hooks |
skills |
software | healthy | .claude/skills |
ingest-recordings |
software | healthy | .claude/skills/ingest-recordings |
add-router |
software | healthy | .claude/skills/add-router |
run-greenroom |
software | healthy | .claude/skills/run-greenroom |
debug-servers |
software | healthy | .claude/skills/debug-servers |
add-page |
software | healthy | .claude/skills/add-page |
review-pr |
software | healthy | .claude/skills/review-pr |
| Label | Layer | Status | Path |
|---|---|---|---|
audio_files_new |
data | healthy | backend/app/services/unify_audio.py |
audio_file_tags |
data | healthy | backend/app/services/unify_audio.py |
Base |
data | healthy | backend/app/database.py |
Take |
data | healthy | backend/app/models/take.py |
takes |
data | healthy | backend/app/models/take.py |
ActivityLog |
data | healthy | backend/app/models/activity.py |
activity_log |
data | healthy | backend/app/models/activity.py |
Setlist |
data | healthy | backend/app/models/setlist.py |
SetlistItem |
data | healthy | backend/app/models/setlist.py |
setlists |
data | healthy | backend/app/models/setlist.py |
setlist_items |
data | healthy | backend/app/models/setlist.py |
Option |
data | healthy | backend/app/models/option.py |
options |
data | healthy | backend/app/models/option.py |
Song |
data | healthy | backend/app/models/song.py |
songs |
data | healthy | backend/app/models/song.py |
PracticeSession |
data | healthy | backend/app/models/session.py |
practice_sessions |
data | healthy | backend/app/models/session.py |
LyricsVersion |
data | healthy | backend/app/models/lyrics_version.py |
lyrics_versions |
data | healthy | backend/app/models/lyrics_version.py |
User |
data | healthy | backend/app/models/user.py |
MagicToken |
data | healthy | backend/app/models/user.py |
users |
data | healthy | backend/app/models/user.py |
magic_tokens |
data | healthy | backend/app/models/user.py |
AudioFile |
data | healthy | backend/app/models/audio_file.py |
audio_files |
data | healthy | backend/app/models/audio_file.py |
SongTab |
data | healthy | backend/app/models/song_tab.py |
song_tabs |
data | healthy | backend/app/models/song_tab.py |
Tag |
data | healthy | backend/app/models/tag.py |
tags |
data | healthy | backend/app/models/tag.py |
| Label | Layer | Status | Path |
|---|---|---|---|
/ProcessSession |
frontend | healthy | frontend/src/pages/ProcessSession.tsx |
/Import |
frontend | healthy | frontend/src/pages/Import.tsx |
/Trash |
frontend | healthy | frontend/src/pages/Trash.tsx |
/SetlistBuilder |
frontend | healthy | frontend/src/pages/SetlistBuilder.tsx |
/Feedback |
frontend | healthy | frontend/src/pages/Feedback.tsx |
/Sessions |
frontend | healthy | frontend/src/pages/Sessions.tsx |
/Schemas |
frontend | healthy | frontend/src/pages/Schemas.tsx |
/Settings |
frontend | healthy | frontend/src/pages/Settings.tsx |
/Songs |
frontend | healthy | frontend/src/pages/Songs.tsx |
/Library |
frontend | healthy | frontend/src/pages/Library.tsx |
/Dashboard |
frontend | healthy | frontend/src/pages/Dashboard.tsx |
/ |
frontend | healthy | frontend/src/App.tsx |
/covers |
frontend | healthy | frontend/src/App.tsx |
/originals |
frontend | healthy | frontend/src/App.tsx |
/ideas |
frontend | healthy | frontend/src/App.tsx |
/sessions |
frontend | healthy | frontend/src/App.tsx |
/process |
frontend | healthy | frontend/src/App.tsx |
/library |
frontend | healthy | frontend/src/App.tsx |
/setlists |
frontend | healthy | frontend/src/App.tsx |
/import |
frontend | healthy | frontend/src/App.tsx |
/feedback |
frontend | healthy | frontend/src/App.tsx |
/schemas |
frontend | healthy | frontend/src/App.tsx |
/trash |
frontend | healthy | frontend/src/App.tsx |
/settings |
frontend | healthy | frontend/src/App.tsx |
/login |
frontend | healthy | frontend/src/App.tsx |
* |
frontend | healthy | frontend/src/App.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
App |
frontend | healthy | frontend/src/App.tsx |
Login |
frontend | healthy | frontend/src/auth/Login.tsx |
ProcessSession |
frontend | healthy | frontend/src/pages/ProcessSession.tsx |
Import |
frontend | healthy | frontend/src/pages/Import.tsx |
Trash |
frontend | healthy | frontend/src/pages/Trash.tsx |
SetlistBuilder |
frontend | healthy | frontend/src/pages/SetlistBuilder.tsx |
Feedback |
frontend | healthy | frontend/src/pages/Feedback.tsx |
Sessions |
frontend | healthy | frontend/src/pages/Sessions.tsx |
Schemas |
frontend | healthy | frontend/src/pages/Schemas.tsx |
Settings |
frontend | healthy | frontend/src/pages/Settings.tsx |
Songs |
frontend | healthy | frontend/src/pages/Songs.tsx |
Library |
frontend | healthy | frontend/src/pages/Library.tsx |
Dashboard |
frontend | healthy | frontend/src/pages/Dashboard.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::backend/app/config.py |
security | healthy | backend/app/config.py |
auth::backend/app/auth/jwt.py |
security | healthy | backend/app/auth/jwt.py |
auth::backend/tests/test_auth.py |
security | healthy | backend/tests/test_auth.py |
auth::README.md |
security | healthy | README.md |
auth::backend/app/auth/router.py |
security | healthy | backend/app/auth/router.py |
auth::backend/app/auth/__init__.py |
security | healthy | backend/app/auth/__init__.py |
auth::backend/app/auth/deps.py |
security | healthy | backend/app/auth/deps.py |
| Label | Layer | Status | Path |
|---|---|---|---|
backend |
cicd | healthy | .github/workflows/test.yml |
frontend |
cicd | healthy | .github/workflows/test.yml |
backend-tests |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
greenroom |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::test |
cicd | healthy | .github/workflows/test.yml |
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
adamklie__greenroom |
software | healthy | /data/fable5_failed_archive/adamklie__greenroom |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8080 |
network | healthy | docker-compose.yml |
This page is publicly accessible at:
https://repobility.com/scan/0df45938-f509-45df-8761-150733f11b3d/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/0df45938-f509-45df-8761-150733f11b3d/
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.