https://github.com/simonhg321/drop-watcher
· scanned 2026-06-16 00:13 UTC (2 months, 2 weeks ago)
75 raw signals (0 security + 75 graph)
Last scanned 2 months, 2 weeks ago · v1 · 72 actionable findings from 1 signal source. 3 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 1090 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 |
|---|---|---|---|
normalize_watch_url |
software | healthy | urls.py:19 |
domain_from_url |
software | healthy | urls.py:26 |
_maker_index |
software | healthy | makers.py:14 |
expand_maker |
software | healthy | makers.py:36 |
load_recent_alerts |
software | healthy | generate_alerts.py:39 |
format_timestamp |
software | healthy | generate_alerts.py:107 |
render_alert_card |
software | healthy | generate_alerts.py:118 |
generate_alerts_page |
software | healthy | generate_alerts.py:180 |
fetch_page |
software | healthy | lunar_hunter.py:144 |
_grail_match |
software | healthy | lunar_hunter.py:150 |
_lunar_match |
software | healthy | lunar_hunter.py:167 |
scan_reddit |
software | healthy | lunar_hunter.py:172 |
_ebay_active |
software | healthy | lunar_hunter.py:211 |
_ebay_token |
software | healthy | lunar_hunter.py:217 |
_ebay_search |
software | healthy | lunar_hunter.py:238 |
_ebay_finds_from_summaries |
software | healthy | lunar_hunter.py:256 |
scan_ebay |
software | healthy | lunar_hunter.py:279 |
scan_source |
software | healthy | lunar_hunter.py:302 |
_seen_key |
software | healthy | lunar_hunter.py:351 |
_shell |
software | healthy | lunar_hunter.py:361 |
build_find_email |
software | healthy | lunar_hunter.py:384 |
_short_url |
software | healthy | lunar_hunter.py:421 |
build_armed_email |
software | healthy | lunar_hunter.py:425 |
build_find_sms |
software | healthy | lunar_hunter.py:456 |
send_find_sms |
software | healthy | lunar_hunter.py:467 |
run |
software | healthy | lunar_hunter.py:478 |
arm |
software | healthy | lunar_hunter.py:527 |
_discount_ratios |
software | healthy | scam_source_filter.py:62 |
score_source |
software | healthy | scam_source_filter.py:70 |
count_ai_calls |
software | healthy | generate_public_stats.py:37 |
safe_referrer_domains |
software | healthy | generate_public_stats.py:45 |
load_security_counts |
software | healthy | generate_public_stats.py:67 |
generate_page |
software | healthy | generate_public_stats.py:85 |
main |
software | healthy | generate_public_stats.py:406 |
_init_db |
software | healthy | db.py:232 |
_migrate |
software | healthy | db.py:238 |
get_db |
software | healthy | db.py:283 |
get_all_watchers |
software | healthy | db.py:308 |
get_active_watchers |
software | healthy | db.py:314 |
get_watchers_by_email |
software | healthy | db.py:322 |
get_watcher_by_id |
software | healthy | db.py:330 |
get_watcher_by_verify_token |
software | healthy | db.py:338 |
get_watcher_by_unsub_token |
software | healthy | db.py:346 |
get_watchers_by_unsub_token |
software | dead | db.py:354 |
add_watcher |
software | healthy | db.py:363 |
update_watcher |
software | healthy | db.py:402 |
update_watchers_by_email |
software | healthy | db.py:418 |
revive_aged_out |
software | healthy | db.py:434 |
delete_watcher |
software | healthy | db.py:447 |
find_watcher_by_email_url |
software | healthy | db.py:452 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
urls.py |
software | healthy | urls.py |
requirements-dev.txt |
software | healthy | requirements-dev.txt |
SCALING.md |
software | healthy | SCALING.md |
makers.py |
software | healthy | makers.py |
generate_alerts.py |
software | healthy | generate_alerts.py |
lunar_hunter.py |
software | healthy | lunar_hunter.py |
scam_source_filter.py |
software | healthy | scam_source_filter.py |
generate_public_stats.py |
software | healthy | generate_public_stats.py |
pull_html.sh |
software | healthy | pull_html.sh |
db.py |
software | healthy | db.py |
maker_resolve.py |
software | healthy | maker_resolve.py |
README.md |
software | healthy | README.md |
generate_security.py |
software | healthy | generate_security.py |
NKD_MORNING_CHECKLIST.md |
software | healthy | NKD_MORNING_CHECKLIST.md |
generate_cool_makers.py |
software | healthy | generate_cool_makers.py |
daily_cap.py |
software | healthy | daily_cap.py |
backfill_alerter.py |
software | healthy | backfill_alerter.py |
per_user_alerter.py |
software | healthy | per_user_alerter.py |
morning_briefer.py |
software | healthy | morning_briefer.py |
record_match.py |
software | healthy | record_match.py |
generate_dashboard.py |
software | healthy | generate_dashboard.py |
config_load.py |
software | healthy | config_load.py |
sms_status.py |
software | healthy | sms_status.py |
watcher_io.py |
software | healthy | watcher_io.py |
SESSION_TOKEN.md |
software | healthy | SESSION_TOKEN.md |
alerter.py |
software | healthy | alerter.py |
backfill_makers.py |
software | healthy | backfill_makers.py |
watchdog.py |
software | healthy | watchdog.py |
linkpick.py |
software | healthy | linkpick.py |
synonyms.py |
software | healthy | synonyms.py |
matching.py |
software | healthy | matching.py |
dealer_scout.py |
software | healthy | dealer_scout.py |
BUGS.md |
software | healthy | BUGS.md |
NKD_WALKTHROUGH.md |
software | healthy | NKD_WALKTHROUGH.md |
LICENSE |
software | healthy | LICENSE |
safe_fetch.py |
software | healthy | safe_fetch.py |
scam_gate.py |
software | healthy | scam_gate.py |
paths.py |
software | healthy | paths.py |
discord_logger.py |
software | healthy | discord_logger.py |
requirements.txt |
software | healthy | requirements.txt |
sharp.py |
software | healthy | sharp.py |
SECURITY.md |
software | healthy | SECURITY.md |
sms_alerter.py |
software | healthy | sms_alerter.py |
record_index.py |
software | healthy | record_index.py |
nkd.py |
software | healthy | nkd.py |
generate_traffic.py |
software | healthy | generate_traffic.py |
generate_simon_status.py |
software | healthy | generate_simon_status.py |
match_and_alert.py |
software | healthy | match_and_alert.py |
watcher_signup.py |
software | healthy | watcher_signup.py |
preflight.py |
software | healthy | archive/preflight.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
Product |
software | healthy | scam_source_filter.py:47 |
Verdict |
software | healthy | scam_source_filter.py:56 |
PermissiveSSLAdapter |
software | healthy | archive/preflight.py:31 |
C |
software | healthy | archive/preflight.py:55 |
TestAlerterNullHardening |
software | healthy | tests/test_sky_review_fixes.py:22 |
TestResolveDropItemLinks |
software | healthy | tests/test_sky_review_fixes.py:51 |
TestShopifyFilterQuery |
software | healthy | tests/test_sky_review_fixes.py:103 |
TestBestAnchorFloor |
software | healthy | tests/test_sky_review_fixes.py:120 |
TestWatcherDbFixes |
software | healthy | tests/test_sky_review_fixes.py:140 |
TestLoadNoUserAlertDomains |
software | healthy | tests/test_no_user_alerts.py:20 |
TestSuppressedDomainNeverMatches |
software | healthy | tests/test_no_user_alerts.py:48 |
TestSignupAPI |
software | healthy | tests/test_core.py:164 |
TestAlertMatching |
software | healthy | tests/test_core.py:404 |
TestMatchesForWatcherDrop |
software | healthy | tests/test_core.py:495 |
TestAISpend |
software | healthy | tests/test_core.py:580 |
TestAISchemaNullTolerance |
software | healthy | tests/test_core.py:598 |
TestBackfill |
software | healthy | tests/test_core.py:624 |
TestAIInterpreter |
software | healthy | tests/test_core.py:875 |
TestSSRF |
software | healthy | tests/test_core.py:945 |
TestFileIO |
software | healthy | tests/test_core.py:1010 |
TestDiscordLogger |
software | healthy | tests/test_core.py:1061 |
TestTokenReport |
software | healthy | tests/test_core.py:1114 |
TestP0Bugfixes |
software | healthy | tests/test_core.py:1183 |
TestP1Security |
software | healthy | tests/test_core.py:1247 |
TestSignupSSRF |
software | healthy | tests/test_core.py:1264 |
TestMatching |
software | healthy | tests/test_core.py:1299 |
TestPageFingerprint |
software | healthy | tests/test_core.py:1328 |
TestGlobalMatch |
software | healthy | tests/test_core.py:1356 |
TestFetchText |
software | healthy | tests/test_core.py:1451 |
TestUrlNormalization |
software | healthy | tests/test_core.py:1472 |
TestConfigLoad |
software | healthy | tests/test_core.py:1500 |
TestCollectionFetch |
software | healthy | tests/test_core.py:1518 |
TestGrailRoster |
software | healthy | tests/test_core.py:1565 |
TestEbayScan |
software | healthy | tests/test_core.py:1620 |
TestEmailAuditLog |
software | healthy | tests/test_core.py:1741 |
TestGlobalWatchModel |
software | healthy | tests/test_core.py:1791 |
TestNewShopCap |
software | healthy | tests/test_core.py:1809 |
TestWatchEndpointGlobal |
software | healthy | tests/test_core.py:1825 |
TestSynonyms |
software | healthy | tests/test_core.py:1942 |
TestExpandMaker |
software | healthy | tests/test_core.py:1972 |
TestWebWatcherSkipsGlobal |
software | healthy | tests/test_core.py:2029 |
TestFeedbackSanitizer |
software | healthy | tests/test_core.py:2048 |
TestFeedbackAPI |
software | healthy | tests/test_core.py:2098 |
TestDealerScoutInstantAlert |
software | healthy | tests/test_core.py:2185 |
TestAssessKeywordQuality |
software | healthy | tests/test_core.py:2234 |
TestFilterUnpurchasable |
software | healthy | tests/test_core.py:2274 |
TestAlertEpisodes |
software | healthy | tests/test_core.py:2358 |
TestEpisodeCooldown |
software | healthy | tests/test_core.py:2458 |
TestEpisodeSweep |
software | healthy | tests/test_core.py:2480 |
TestClickEngagement |
software | healthy | tests/test_core.py:2578 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
ANY /api/watch |
api | healthy | watcher_signup.py |
ANY /api/keyword-quality |
api | healthy | watcher_signup.py |
ANY /api/makers |
api | healthy | watcher_signup.py |
ANY /api/resend-link |
api | healthy | watcher_signup.py |
ANY /api/my-watch/<watch_id> |
api | healthy | watcher_signup.py |
ANY /api/watch-maker/<watch_id> |
api | healthy | watcher_signup.py |
ANY /api/my-watch/<token> |
api | healthy | watcher_signup.py |
ANY /api/my-alerts/<token> |
api | healthy | watcher_signup.py |
ANY /api/verify/<token> |
api | healthy | watcher_signup.py |
ANY /api/verify-phone |
api | healthy | watcher_signup.py |
ANY /api/pageview |
api | healthy | watcher_signup.py |
ANY /api/watch-remove/<watch_id>/<token> |
api | healthy | watcher_signup.py |
ANY /api/ack/<token> |
api | healthy | watcher_signup.py |
ANY /api/unsubscribe/<token> |
api | healthy | watcher_signup.py |
ANY /api/stats |
api | healthy | watcher_signup.py |
ANY /api/check-url |
api | healthy | watcher_signup.py |
ANY /api/nkd/<token> |
api | healthy | watcher_signup.py |
ANY /api/nkd/wall |
api | healthy | watcher_signup.py |
ANY /api/feedback |
api | healthy | watcher_signup.py |
ANY /go_shankyou/<token> |
api | healthy | watcher_signup.py |
ANY /sharp/<token> |
api | healthy | watcher_signup.py |
| Label | Layer | Status | Path |
|---|---|---|---|
watchers |
data | healthy | db.py |
drops |
data | healthy | db.py |
alert_hwm |
data | healthy | db.py |
alert_tracking |
data | healthy | db.py |
api_usage |
data | healthy | db.py |
ai_calls |
data | healthy | db.py |
seen_content |
data | healthy | db.py |
seen_items |
data | healthy | db.py |
seen_feeds |
data | healthy | db.py |
discord_sent |
data | healthy | db.py |
pageviews |
data | healthy | db.py |
nkd_scores |
data | healthy | db.py |
dealer_candidates |
data | healthy | db.py |
outbound_clicks |
data | healthy | db.py |
alert_episodes |
data | healthy | db.py |
page_scans |
data | healthy | db.py |
sent_alerts |
data | healthy | db.py |
product_records |
data | healthy | db.py |
| Label | Layer | Status | Path |
|---|---|---|---|
archive |
software | healthy | archive |
config |
software | healthy | config |
tests |
software | healthy | tests |
html |
software | healthy | html |
the_vault |
software | healthy | html/the_vault |
mockups |
software | healthy | html/mockups |
stats |
software | healthy | html/stats |
backup |
software | healthy | backup |
ghost-theme |
software | healthy | backup/ghost-theme |
castaways |
software | healthy | backup/ghost-theme/castaways |
assets |
software | healthy | backup/ghost-theme/castaways/assets |
css |
software | healthy | backup/ghost-theme/castaways/assets/css |
agents |
software | healthy | agents |
onboarding |
software | healthy | onboarding |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | watchdog.py |
127.0.0.0 |
network | healthy | safe_fetch.py |
10.0.0.0 |
network | healthy | safe_fetch.py |
172.16.0.0 |
network | healthy | safe_fetch.py |
192.168.0.0 |
network | healthy | safe_fetch.py |
169.254.0.0 |
network | healthy | safe_fetch.py |
100.64.0.0 |
network | healthy | safe_fetch.py |
198.18.0.0 |
network | healthy | safe_fetch.py |
169.254.169.254 |
network | healthy | safe_fetch.py |
192.168.1.1 |
network | healthy | tests/test_core.py |
104.21.45.67 |
network | healthy | tests/test_core.py |
1.2.3.4 |
network | healthy | tests/test_core.py |
5.6.7.8 |
network | healthy | tests/test_core.py |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::linode |
hardware | healthy | README.md |
vps::aws |
hardware | healthy | generate_security.py |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::html/the_vault/spec.html |
security | healthy | html/the_vault/spec.html |
auth::lunar_hunter.py |
security | healthy | lunar_hunter.py |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-tb1dky5a |
software | healthy | /tmp/repobility-clone-tb1dky5a |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | generate_public_stats.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:5001 |
network | healthy | watcher_signup.py |
This page is publicly accessible at:
https://repobility.com/scan/fc5b2789-43e1-4cc6-bb65-59df4837c8e5/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/fc5b2789-43e1-4cc6-bb65-59df4837c8e5/
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.