https://github.com/Chinilshik-kalkulatorov/hamyon
· scanned 2026-06-17 01:23 UTC (1 month, 2 weeks ago)
35 raw signals (0 security + 35 graph)
Last scanned 1 month, 2 weeks ago · v2 · last Δ -1.2 (diff) · 27 actionable findings from 1 signal source. 8 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 498 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 |
|---|---|---|---|
main |
software | healthy | manage.py:6 |
_fake_redis |
software | healthy | tests/conftest.py:13 |
otp_inbox |
software | healthy | tests/conftest.py:21 |
capture |
software | healthy | tests/conftest.py:25 |
admin |
software | healthy | tests/conftest.py:34 |
alice |
software | healthy | tests/conftest.py:41 |
bob |
software | healthy | tests/conftest.py:49 |
alice_wallet |
software | healthy | tests/conftest.py:57 |
bob_wallet |
software | healthy | tests/conftest.py:64 |
auth_client |
software | healthy | tests/conftest.py:69 |
make |
software | healthy | tests/conftest.py:70 |
test_wallet_has_no_balance_field |
software | healthy | tests/test_ledger.py:11 |
test_balance_is_derived_from_entries |
software | healthy | tests/test_ledger.py:16 |
test_hold_and_reversal_affect_available |
software | healthy | tests/test_ledger.py:23 |
test_balance_computed_in_one_query |
software | healthy | tests/test_ledger.py:33 |
test_entries_are_append_only |
software | healthy | tests/test_ledger.py:38 |
test_balance_endpoint_read_only |
software | healthy | tests/test_api.py:15 |
test_balance_of_foreign_wallet_is_404 |
software | healthy | tests/test_api.py:25 |
test_blacklist_middleware_returns_empty_403 |
software | healthy | tests/test_api.py:30 |
test_blocked_wallet_in_body_also_403 |
software | healthy | tests/test_api.py:47 |
test_unblock_restores_access_and_keeps_audit |
software | healthy | tests/test_api.py:64 |
test_payment_e2e_through_api |
software | healthy | tests/test_api.py:76 |
test_kyc_approve_via_admin_endpoint |
software | healthy | tests/test_api.py:113 |
test_kyc_reject_requires_reason_and_is_final |
software | healthy | tests/test_api.py:140 |
test_dynamic_qr_scan_endpoint |
software | healthy | tests/test_api.py:157 |
test_static_qr_returns_png |
software | healthy | tests/test_api.py:171 |
test_notification_logged_for_transfer |
software | healthy | tests/test_api.py:178 |
filled_wallet |
software | healthy | tests/test_history.py:11 |
test_cursor_walk_visits_every_entry_once |
software | healthy | tests/test_history.py:26 |
test_history_runs_exactly_two_queries |
software | healthy | tests/test_history.py:47 |
test_filter_by_type_and_status |
software | healthy | tests/test_history.py:57 |
test_foreign_wallet_history_is_404 |
software | healthy | tests/test_history.py:74 |
test_invalid_cursor_is_400 |
software | healthy | tests/test_history.py:79 |
test_export_writes_csv_and_sends_link |
software | healthy | tests/test_history.py:86 |
balance |
software | healthy | tests/test_p2p.py:24 |
test_transfer_writes_two_entries_atomically |
software | healthy | tests/test_p2p.py:28 |
test_transfer_initiate_is_idempotent |
software | healthy | tests/test_p2p.py:50 |
test_insufficient_funds_blocks_initiate |
software | healthy | tests/test_p2p.py:61 |
test_blocked_recipient_blocks_transfer |
software | healthy | tests/test_p2p.py:66 |
test_blocked_sender_wallet_blocks_transfer |
software | healthy | tests/test_p2p.py:72 |
test_dynamic_qr_roundtrip |
software | healthy | tests/test_p2p.py:78 |
test_dynamic_qr_is_single_use |
software | healthy | tests/test_p2p.py:87 |
test_expired_qr_rejected |
software | healthy | tests/test_p2p.py:97 |
test_tampered_qr_rejected |
software | healthy | tests/test_p2p.py:113 |
balance |
software | healthy | tests/test_payments.py:30 |
initiate |
software | healthy | tests/test_payments.py:34 |
test_topup_flow_with_otp |
software | healthy | tests/test_payments.py:40 |
test_initiate_is_idempotent |
software | healthy | tests/test_payments.py:55 |
test_withdraw_places_hold_then_confirms |
software | healthy | tests/test_payments.py:66 |
test_cancel_releases_hold |
software | healthy | tests/test_payments.py:87 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
.env.example |
software | healthy | .env.example |
entrypoint.sh |
software | healthy | entrypoint.sh |
requirements.txt |
software | healthy | requirements.txt |
docker-compose.prod.yml |
software | healthy | docker-compose.prod.yml |
.env.prod.example |
software | healthy | .env.prod.example |
README.md |
software | healthy | README.md |
Makefile |
software | healthy | Makefile |
docker-compose.yml |
software | healthy | docker-compose.yml |
manage.py |
software | healthy | manage.py |
README.en.md |
software | healthy | README.en.md |
Dockerfile |
software | healthy | Dockerfile |
conftest.py |
software | healthy | tests/conftest.py |
test_ledger.py |
software | healthy | tests/test_ledger.py |
__init__.py |
software | healthy | tests/__init__.py |
test_api.py |
software | healthy | tests/test_api.py |
test_history.py |
software | healthy | tests/test_history.py |
test_p2p.py |
software | healthy | tests/test_p2p.py |
test_payments.py |
software | healthy | tests/test_payments.py |
test_otp.py |
software | healthy | tests/test_otp.py |
__init__.py |
software | healthy | apps/__init__.py |
middleware.py |
software | healthy | apps/blacklist/middleware.py |
admin.py |
software | healthy | apps/blacklist/admin.py |
views.py |
software | healthy | apps/blacklist/views.py |
__init__.py |
software | healthy | apps/blacklist/__init__.py |
models.py |
software | healthy | apps/blacklist/models.py |
apps.py |
software | healthy | apps/blacklist/apps.py |
serializers.py |
software | healthy | apps/blacklist/serializers.py |
urls.py |
software | healthy | apps/blacklist/urls.py |
service.py |
software | healthy | apps/blacklist/service.py |
__init__.py |
software | healthy | apps/blacklist/migrations/__init__.py |
0001_initial.py |
software | healthy | apps/blacklist/migrations/0001_initial.py |
0002_initial.py |
software | healthy | apps/blacklist/migrations/0002_initial.py |
admin.py |
software | healthy | apps/kyc/admin.py |
views.py |
software | healthy | apps/kyc/views.py |
__init__.py |
software | healthy | apps/kyc/__init__.py |
models.py |
software | healthy | apps/kyc/models.py |
services.py |
software | healthy | apps/kyc/services.py |
apps.py |
software | healthy | apps/kyc/apps.py |
serializers.py |
software | healthy | apps/kyc/serializers.py |
urls.py |
software | healthy | apps/kyc/urls.py |
__init__.py |
software | healthy | apps/kyc/migrations/__init__.py |
0001_initial.py |
software | healthy | apps/kyc/migrations/0001_initial.py |
0002_initial.py |
software | healthy | apps/kyc/migrations/0002_initial.py |
admin.py |
software | healthy | apps/users/admin.py |
__init__.py |
software | healthy | apps/users/__init__.py |
models.py |
software | healthy | apps/users/models.py |
apps.py |
software | healthy | apps/users/apps.py |
__init__.py |
software | healthy | apps/users/migrations/__init__.py |
0001_initial.py |
software | healthy | apps/users/migrations/0001_initial.py |
admin.py |
software | healthy | apps/p2p/admin.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
BlacklistMiddleware |
software | healthy | apps/blacklist/middleware.py:15 |
BlacklistEntryAdmin |
software | healthy | apps/blacklist/admin.py:7 |
BlockView |
software | healthy | apps/blacklist/views.py:12 |
UnblockView |
software | healthy | apps/blacklist/views.py:22 |
HistoryView |
software | healthy | apps/blacklist/views.py:36 |
BlacklistEntry |
software | healthy | apps/blacklist/models.py:7 |
TargetType |
software | healthy | apps/blacklist/models.py:11 |
Meta |
software | healthy | apps/blacklist/models.py:32 |
BlacklistConfig |
software | healthy | apps/blacklist/apps.py:4 |
BlacklistEntrySerializer |
software | healthy | apps/blacklist/serializers.py:6 |
Meta |
software | healthy | apps/blacklist/serializers.py:10 |
BlockSerializer |
software | healthy | apps/blacklist/serializers.py:18 |
UnblockSerializer |
software | healthy | apps/blacklist/serializers.py:24 |
Migration |
software | healthy | apps/blacklist/migrations/0001_initial.py:7 |
Migration |
software | healthy | apps/blacklist/migrations/0002_initial.py:8 |
KYCApplicationAdmin |
software | healthy | apps/kyc/admin.py:9 |
KYCSubmitView |
software | healthy | apps/kyc/views.py:14 |
KYCStatusView |
software | healthy | apps/kyc/views.py:30 |
KYCApproveView |
software | healthy | apps/kyc/views.py:42 |
KYCRejectView |
software | healthy | apps/kyc/views.py:52 |
KYCApplication |
software | healthy | apps/kyc/models.py:11 |
Status |
software | healthy | apps/kyc/models.py:18 |
Meta |
software | healthy | apps/kyc/models.py:48 |
KycConfig |
software | healthy | apps/kyc/apps.py:4 |
KYCApplicationSerializer |
software | healthy | apps/kyc/serializers.py:8 |
Meta |
software | healthy | apps/kyc/serializers.py:9 |
KYCSubmitSerializer |
software | healthy | apps/kyc/serializers.py:18 |
Migration |
software | healthy | apps/kyc/migrations/0001_initial.py:8 |
Migration |
software | healthy | apps/kyc/migrations/0002_initial.py:8 |
HamyonUserAdmin |
software | healthy | apps/users/admin.py:8 |
KYCLevel |
software | healthy | apps/users/models.py:5 |
User |
software | healthy | apps/users/models.py:11 |
UsersConfig |
software | healthy | apps/users/apps.py:4 |
Migration |
software | healthy | apps/users/migrations/0001_initial.py:9 |
TransferRequestAdmin |
software | healthy | apps/p2p/admin.py:7 |
TransferInitiateView |
software | healthy | apps/p2p/views.py:28 |
TransferConfirmView |
software | healthy | apps/p2p/views.py:65 |
TransferStatusView |
software | healthy | apps/p2p/views.py:77 |
StaticQRView |
software | healthy | apps/p2p/views.py:85 |
DynamicQRView |
software | healthy | apps/p2p/views.py:98 |
ScanView |
software | healthy | apps/p2p/views.py:110 |
QRError |
software | healthy | apps/p2p/qr.py:21 |
QRInvalidError |
software | healthy | apps/p2p/qr.py:25 |
QRAlreadyUsedError |
software | healthy | apps/p2p/qr.py:29 |
TransferRequest |
software | healthy | apps/p2p/models.py:9 |
Status |
software | healthy | apps/p2p/models.py:19 |
Meta |
software | healthy | apps/p2p/models.py:43 |
P2PConfig |
software | healthy | apps/p2p/apps.py:4 |
TransferRequestSerializer |
software | healthy | apps/p2p/serializers.py:6 |
Meta |
software | healthy | apps/p2p/serializers.py:7 |
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/admin/blacklist/block/ |
api | healthy | apps/blacklist/urls.py |
ANY /api/admin/blacklist/<uuid:pk>/unblock/ |
api | healthy | apps/blacklist/urls.py |
ANY /api/admin/blacklist/history/ |
api | healthy | apps/blacklist/urls.py |
ANY /api/kyc/submit/ |
api | healthy | apps/kyc/urls.py |
ANY /api/kyc/status/ |
api | healthy | apps/kyc/urls.py |
ANY /api/kyc/admin/<uuid:pk>/approve/ |
api | healthy | apps/kyc/urls.py |
ANY /api/kyc/admin/<uuid:pk>/reject/ |
api | healthy | apps/kyc/urls.py |
ANY /api/p2p/transfer/ |
api | healthy | apps/p2p/urls.py |
ANY /api/p2p/transfers/<uuid:pk>/confirm/ |
api | healthy | apps/p2p/urls.py |
ANY /api/p2p/transfers/<uuid:pk>/ |
api | healthy | apps/p2p/urls.py |
ANY /api/p2p/qr/dynamic/ |
api | healthy | apps/p2p/urls.py |
ANY /api/p2p/scan/ |
api | healthy | apps/p2p/urls.py |
ANY /api/payments/initiate/ |
api | healthy | apps/payments/urls.py |
ANY /api/payments/<uuid:pk>/confirm/ |
api | healthy | apps/payments/urls.py |
ANY /api/payments/<uuid:pk>/cancel/ |
api | healthy | apps/payments/urls.py |
ANY /api/payments/<uuid:pk>/ |
api | healthy | apps/payments/urls.py |
ANY /api/wallet/ |
api | healthy | apps/core/urls.py |
ANY /api/wallet/<uuid:wallet_id>/balance/ |
api | healthy | apps/core/urls.py |
ANY /api/wallet/<uuid:wallet_id>/qr/static/ |
api | healthy | apps/core/urls.py |
ANY /api/wallet/<uuid:wallet_id>/history/ |
api | healthy | apps/history/urls.py |
ANY /api/wallet/<uuid:wallet_id>/history/export/ |
api | healthy | apps/history/urls.py |
ANY /api/history/<uuid:pk>/ |
api | healthy | apps/history/urls.py |
ANY / |
api | healthy | config/urls.py |
ANY /admin/ |
api | healthy | config/urls.py |
ANY /api/auth/token/ |
api | healthy | config/urls.py |
ANY /api/ |
api | healthy | config/urls.py |
ANY /api/kyc/ |
api | healthy | config/urls.py |
ANY /api/admin/blacklist/ |
api | healthy | config/urls.py |
ANY /api/payments/ |
api | healthy | config/urls.py |
ANY /api/p2p/ |
api | healthy | config/urls.py |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
apps |
software | healthy | apps |
blacklist |
software | healthy | apps/blacklist |
migrations |
software | healthy | apps/blacklist/migrations |
kyc |
software | healthy | apps/kyc |
migrations |
software | healthy | apps/kyc/migrations |
users |
software | healthy | apps/users |
migrations |
software | healthy | apps/users/migrations |
p2p |
software | healthy | apps/p2p |
migrations |
software | healthy | apps/p2p/migrations |
payments |
software | healthy | apps/payments |
migrations |
software | healthy | apps/payments/migrations |
core |
software | healthy | apps/core |
management |
software | healthy | apps/core/management |
commands |
software | healthy | apps/core/management/commands |
services |
software | healthy | apps/core/services |
migrations |
software | healthy | apps/core/migrations |
notifications |
software | healthy | apps/notifications |
migrations |
software | healthy | apps/notifications/migrations |
otp |
software | healthy | apps/otp |
history |
software | healthy | apps/history |
config |
software | healthy | config |
| Label | Layer | Status | Path |
|---|---|---|---|
__init__.py |
data | healthy | apps/blacklist/migrations/__init__.py |
0001_initial.py |
data | healthy | apps/blacklist/migrations/0001_initial.py |
0002_initial.py |
data | healthy | apps/blacklist/migrations/0002_initial.py |
__init__.py |
data | healthy | apps/kyc/migrations/__init__.py |
0001_initial.py |
data | healthy | apps/kyc/migrations/0001_initial.py |
0002_initial.py |
data | healthy | apps/kyc/migrations/0002_initial.py |
__init__.py |
data | healthy | apps/users/migrations/__init__.py |
0001_initial.py |
data | healthy | apps/users/migrations/0001_initial.py |
__init__.py |
data | healthy | apps/p2p/migrations/__init__.py |
0001_initial.py |
data | healthy | apps/p2p/migrations/0001_initial.py |
__init__.py |
data | healthy | apps/payments/migrations/__init__.py |
0001_initial.py |
data | healthy | apps/payments/migrations/0001_initial.py |
__init__.py |
data | healthy | apps/core/migrations/__init__.py |
0001_initial.py |
data | healthy | apps/core/migrations/0001_initial.py |
0002_initial.py |
data | healthy | apps/core/migrations/0002_initial.py |
__init__.py |
data | healthy | apps/notifications/migrations/__init__.py |
0001_initial.py |
data | healthy | apps/notifications/migrations/0001_initial.py |
0002_initial.py |
data | healthy | apps/notifications/migrations/0002_initial.py |
| Label | Layer | Status | Path |
|---|---|---|---|
BlacklistEntry |
data | healthy | apps/blacklist/models.py |
KYCApplication |
data | healthy | apps/kyc/models.py |
TransferRequest |
data | healthy | apps/p2p/models.py |
PaymentRequest |
data | healthy | apps/payments/models.py |
Wallet |
data | healthy | apps/core/models.py |
LedgerEntry |
data | healthy | apps/core/models.py |
Transfer |
data | healthy | apps/core/models.py |
NotificationLog |
data | healthy | apps/notifications/models.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:80 |
network | healthy | docker-compose.prod.yml |
port:5544 |
network | healthy | docker-compose.yml |
port:5432 |
network | healthy | docker-compose.yml |
port:6380 |
network | healthy | docker-compose.yml |
port:6379 |
network | healthy | docker-compose.yml |
port:8000 |
network | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::tests/test_api.py |
security | healthy | tests/test_api.py |
auth::.env.example |
security | healthy | .env.example |
auth::apps/p2p/qr.py |
security | healthy | apps/p2p/qr.py |
auth::tests/test_p2p.py |
security | healthy | tests/test_p2p.py |
auth::README.md |
security | healthy | README.md |
auth::apps/core/management/commands/seed_demo.py |
security | healthy | apps/core/management/commands/seed_demo.py |
| Label | Layer | Status | Path |
|---|---|---|---|
redis |
data | healthy | .env.example |
postgres |
data | healthy | docker-compose.prod.yml |
postgresql |
data | healthy | docker-compose.prod.yml |
sqlite |
data | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
db |
hardware | healthy | docker-compose.yml |
redis |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
Chinilshik-kalkulatorov__hamyon |
software | healthy | /data/fable5_failed_archive/Chinilshik-kalkulatorov__hamyon |
| Label | Layer | Status | Path |
|---|---|---|---|
celery |
data | healthy | requirements.txt |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | docker-compose.prod.yml |
This page is publicly accessible at:
https://repobility.com/scan/90ef8f06-dfa3-4501-bccd-7d156679f699/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/90ef8f06-dfa3-4501-bccd-7d156679f699/
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.