Scan timing: clone 1.48s · analysis 1.81s · 0.2 MB · GitHub preflight 464ms
https://github.com/LagrangeDev/lagrange-python
· scanned 2026-06-05 18:26 UTC (4 days, 19 hours ago)
· 10 languages
186 raw signals (56 security + 130 graph) 11th percentile · Python · small (2-20K LoC) System graph score 95 (lower by 48)
Last scanned 4 days, 19 hours ago · v2 · 76 actionable findings from 2 signal sources. 45 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
75.0 | 0.15 | 11.25 |
security_score |
67.6 | 0.25 | 16.90 |
testing_score |
0.0 | 0.20 | 0.00 |
documentation_score |
33.0 | 0.15 | 4.95 |
practices_score |
42.0 | 0.15 | 6.30 |
code_quality |
79.0 | 0.10 | 7.90 |
| Overall | 1.00 | 47.3 |
All 881 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 |
|---|---|---|---|
pdm_build_hook_enabled |
software | dead | pdm_build.py:16 |
pdm_build_initialize |
software | dead | pdm_build.py:30 |
msg_handler |
software | dead | main.py:11 |
handle_kick |
software | dead | main.py:31 |
handle_grp_sign |
software | dead | main.py:36 |
handle_group_reaction |
software | dead | main.py:58 |
__init__ |
software | healthy | lagrange/__init__.py:22 |
subscribe |
software | healthy | lagrange/__init__.py:40 |
login |
software | healthy | lagrange/__init__.py:43 |
run |
software | healthy | lagrange/__init__.py:51 |
launch |
software | healthy | lagrange/__init__.py:85 |
__init__ |
software | healthy | lagrange/client/network.py:23 |
using_v6 |
software | healthy | lagrange/client/network.py:49 |
destroy_connection |
software | healthy | lagrange/client/network.py:54 |
write |
software | healthy | lagrange/client/network.py:58 |
send |
software | healthy | lagrange/client/network.py:71 |
_cancel_all_task |
software | healthy | lagrange/client/network.py:82 |
on_connected |
software | healthy | lagrange/client/network.py:87 |
on_close |
software | healthy | lagrange/client/network.py:99 |
on_error |
software | healthy | lagrange/client/network.py:105 |
on_message |
software | healthy | lagrange/client/network.py:120 |
__init__ |
software | healthy | lagrange/client/client.py:85 |
events |
software | healthy | lagrange/client/client.py:102 |
push_deliver |
software | healthy | lagrange/client/client.py:106 |
register |
software | healthy | lagrange/client/client.py:109 |
_disconnect_cb |
software | healthy | lagrange/client/client.py:116 |
easy_login |
software | healthy | lagrange/client/client.py:120 |
login |
software | healthy | lagrange/client/client.py:131 |
send_oidb_svc |
software | healthy | lagrange/client/client.py:171 |
push_handler |
software | healthy | lagrange/client/client.py:184 |
_send_msg_raw |
software | healthy | lagrange/client/client.py:188 |
send_grp_msg |
software | healthy | lagrange/client/client.py:214 |
send_friend_msg |
software | dead | lagrange/client/client.py:220 |
upload_grp_image |
software | healthy | lagrange/client/client.py:226 |
upload_friend_image |
software | dead | lagrange/client/client.py:232 |
upload_grp_audio |
software | dead | lagrange/client/client.py:238 |
upload_friend_audio |
software | dead | lagrange/client/client.py:241 |
fetch_audio_url |
software | healthy | lagrange/client/client.py:244 |
down_grp_audio |
software | dead | lagrange/client/client.py:247 |
down_friend_audio |
software | dead | lagrange/client/client.py:250 |
fetch_image_url |
software | healthy | lagrange/client/client.py:253 |
_get_grp_img_url |
software | healthy | lagrange/client/client.py:261 |
_get_pri_img_url |
software | healthy | lagrange/client/client.py:264 |
get_grp_list |
software | dead | lagrange/client/client.py:267 |
get_grp_member_info |
software | healthy | lagrange/client/client.py:284 |
get_grp_members |
software | healthy | lagrange/client/client.py:289 |
get_grp_msg |
software | healthy | lagrange/client/client.py:304 |
get_friend_list |
software | dead | lagrange/client/client.py:325 |
recall_grp_msg |
software | healthy | lagrange/client/client.py:381 |
rename_grp_name |
software | dead | lagrange/client/client.py:390 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
Lagrange |
software | healthy | lagrange/__init__.py:19 |
ClientNetwork |
software | healthy | lagrange/client/network.py:19 |
Client |
software | healthy | lagrange/client/client.py:84 |
Events |
software | healthy | lagrange/client/event.py:15 |
BaseClient |
software | healthy | lagrange/client/base.py:38 |
Sex |
software | healthy | lagrange/client/models.py:9 |
UserInfo |
software | healthy | lagrange/client/models.py:17 |
BotFriend |
software | healthy | lagrange/client/models.py:72 |
PacketBuilder |
software | healthy | lagrange/client/packet.py:8 |
MessageInfo |
software | healthy | lagrange/client/events/group.py:13 |
GroupEvent |
software | healthy | lagrange/client/events/group.py:21 |
GroupMessage |
software | healthy | lagrange/client/events/group.py:26 |
GroupRecall |
software | healthy | lagrange/client/events/group.py:41 |
GroupNudge |
software | healthy | lagrange/client/events/group.py:46 |
GroupSign |
software | healthy | lagrange/client/events/group.py:56 |
GroupMuteMember |
software | healthy | lagrange/client/events/group.py:67 |
GroupMemberJoinRequest |
software | healthy | lagrange/client/events/group.py:76 |
GroupMemberJoined |
software | healthy | lagrange/client/events/group.py:83 |
GroupMemberQuit |
software | healthy | lagrange/client/events/group.py:90 |
GroupMemberGotSpecialTitle |
software | healthy | lagrange/client/events/group.py:106 |
GroupNameChanged |
software | healthy | lagrange/client/events/group.py:114 |
GroupReaction |
software | healthy | lagrange/client/events/group.py:121 |
GroupAlbumUpdate |
software | healthy | lagrange/client/events/group.py:140 |
GroupInvite |
software | healthy | lagrange/client/events/group.py:148 |
GroupMemberJoinedByInvite |
software | healthy | lagrange/client/events/group.py:153 |
GroupSelfJoined |
software | healthy | lagrange/client/events/group.py:159 |
GroupSelfRequireReject |
software | healthy | lagrange/client/events/group.py:165 |
GroupBotAdded |
software | healthy | lagrange/client/events/group.py:171 |
BotGrayTip |
software | healthy | lagrange/client/events/group.py:176 |
GroupBotJoined |
software | healthy | lagrange/client/events/group.py:181 |
BaseEvent |
software | healthy | lagrange/client/events/__init__.py:4 |
FriendEvent |
software | healthy | lagrange/client/events/friend.py:12 |
FriendMessage |
software | healthy | lagrange/client/events/friend.py:20 |
FriendRecall |
software | healthy | lagrange/client/events/friend.py:29 |
FriendRequest |
software | healthy | lagrange/client/events/friend.py:35 |
ClientOffline |
software | healthy | lagrange/client/events/service.py:8 |
ClientOnline |
software | healthy | lagrange/client/events/service.py:26 |
ServerKick |
software | healthy | lagrange/client/events/service.py:18 |
OtherClientInfo |
software | healthy | lagrange/client/events/service.py:24 |
BaseElem |
software | healthy | lagrange/client/message/elems.py:10 |
CompatibleText |
software | healthy | lagrange/client/message/elems.py:21 |
MediaInfo |
software | healthy | lagrange/client/message/elems.py:34 |
Text |
software | healthy | lagrange/client/message/elems.py:44 |
Quote |
software | healthy | lagrange/client/message/elems.py:53 |
Json |
software | healthy | lagrange/client/message/elems.py:76 |
Service |
software | healthy | lagrange/client/message/elems.py:88 |
AtAll |
software | healthy | lagrange/client/message/elems.py:97 |
At |
software | healthy | lagrange/client/message/elems.py:106 |
Image |
software | healthy | lagrange/client/message/elems.py:117 |
Video |
software | healthy | lagrange/client/message/elems.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 |
|---|---|---|---|
pdm_build.py |
software | healthy | pdm_build.py |
pyproject.toml |
software | healthy | pyproject.toml |
main.py |
software | healthy | main.py |
__init__.py |
software | healthy | lagrange/__init__.py |
version.py |
software | warning | lagrange/version.py |
network.py |
software | healthy | lagrange/client/network.py |
client.py |
software | healthy | lagrange/client/client.py |
__init__.py |
software | healthy | lagrange/client/__init__.py |
event.py |
software | healthy | lagrange/client/event.py |
base.py |
software | healthy | lagrange/client/base.py |
models.py |
software | healthy | lagrange/client/models.py |
packet.py |
software | healthy | lagrange/client/packet.py |
group.py |
software | healthy | lagrange/client/events/group.py |
__init__.py |
software | healthy | lagrange/client/events/__init__.py |
friend.py |
software | healthy | lagrange/client/events/friend.py |
service.py |
software | healthy | lagrange/client/events/service.py |
elems.py |
software | healthy | lagrange/client/message/elems.py |
__init__.py |
software | healthy | lagrange/client/message/__init__.py |
types.py |
software | warning | lagrange/client/message/types.py |
encoder.py |
software | healthy | lagrange/client/message/encoder.py |
decoder.py |
software | healthy | lagrange/client/message/decoder.py |
__init__.py |
software | healthy | lagrange/client/highway/__init__.py |
frame.py |
software | healthy | lagrange/client/highway/frame.py |
highway.py |
software | healthy | lagrange/client/highway/highway.py |
utils.py |
software | healthy | lagrange/client/highway/utils.py |
encoders.py |
software | healthy | lagrange/client/highway/encoders.py |
__init__.py |
software | healthy | lagrange/client/server_push/__init__.py |
msg.py |
software | healthy | lagrange/client/server_push/msg.py |
log.py |
software | warning | lagrange/client/server_push/log.py |
binder.py |
software | healthy | lagrange/client/server_push/binder.py |
service.py |
software | healthy | lagrange/client/server_push/service.py |
__init__.py |
software | healthy | lagrange/client/wtlogin/__init__.py |
enum.py |
software | healthy | lagrange/client/wtlogin/enum.py |
sso.py |
software | healthy | lagrange/client/wtlogin/sso.py |
exchange.py |
software | healthy | lagrange/client/wtlogin/exchange.py |
ntlogin.py |
software | healthy | lagrange/client/wtlogin/ntlogin.py |
status_service.py |
software | healthy | lagrange/client/wtlogin/status_service.py |
oicq.py |
software | healthy | lagrange/client/wtlogin/oicq.py |
__init__.py |
software | healthy | lagrange/client/wtlogin/tlv/__init__.py |
qrcode.py |
software | healthy | lagrange/client/wtlogin/tlv/qrcode.py |
common.py |
software | healthy | lagrange/client/wtlogin/tlv/common.py |
sig.py |
software | healthy | lagrange/info/sig.py |
__init__.py |
software | healthy | lagrange/info/__init__.py |
serialize.py |
software | healthy | lagrange/info/serialize.py |
app.py |
software | healthy | lagrange/info/app.py |
device.py |
software | healthy | lagrange/info/device.py |
network.py |
software | healthy | lagrange/utils/network.py |
operator.py |
software | healthy | lagrange/utils/operator.py |
__init__.py |
software | healthy | lagrange/utils/__init__.py |
log.py |
software | healthy | lagrange/utils/log.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
lagrange |
software | healthy | lagrange |
client |
software | healthy | lagrange/client |
events |
software | healthy | lagrange/client/events |
message |
software | healthy | lagrange/client/message |
highway |
software | healthy | lagrange/client/highway |
server_push |
software | healthy | lagrange/client/server_push |
wtlogin |
software | healthy | lagrange/client/wtlogin |
tlv |
software | healthy | lagrange/client/wtlogin/tlv |
info |
software | healthy | lagrange/info |
utils |
software | healthy | lagrange/utils |
crypto |
software | healthy | lagrange/utils/crypto |
ecdh |
software | healthy | lagrange/utils/crypto/ecdh |
image |
software | healthy | lagrange/utils/image |
binary |
software | healthy | lagrange/utils/binary |
protobuf |
software | healthy | lagrange/utils/binary/protobuf |
audio |
software | healthy | lagrange/utils/audio |
pb |
software | healthy | lagrange/pb |
login |
software | healthy | lagrange/pb/login |
message |
software | healthy | lagrange/pb/message |
rich_text |
software | healthy | lagrange/pb/message/rich_text |
status |
software | healthy | lagrange/pb/status |
service |
software | healthy | lagrange/pb/service |
highway |
software | healthy | lagrange/pb/highway |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
actions |
software | healthy | .github/actions |
setup-python |
software | healthy | .github/actions/setup-python |
| Label | Layer | Status | Path |
|---|---|---|---|
port:443 |
network | healthy | lagrange/utils/httpcat.py |
port:80 |
network | healthy | lagrange/utils/httpcat.py |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-yiw7mqst |
software | healthy | /tmp/repobility-clone-yiw7mqst |
| Label | Layer | Status | Path |
|---|---|---|---|
2.1.1.1 |
network | healthy | lagrange/client/message/decoder.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::release |
cicd | healthy | .github/workflows/release.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
release |
cicd | healthy | .github/workflows/release.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
GITHUB_TOKEN |
cicd | healthy | — |
This page is publicly accessible at:
https://repobility.com/scan/35d3b381-1b85-4e26-8074-d09fb3338809/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/35d3b381-1b85-4e26-8074-d09fb3338809/
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.