Leaderboard github.com
spr-networks/bitchat-plugin
Vibe Coded Bitchat Plugin for Linux using bluer #rust #linux #bitchat #bluetooth #mesh
AI provenance
0%
none-detected
- Confidence
- 44%
- Coverage
- 100%
Estimated share of AI-generated code. Explicit attribution is a lower bound.
Code quality
55/100
weak
- Confidence
- 90%
- Coverage
- 100%
Complexity, duplication, lint density, tests, CI, docs and review process.
Security
74/100
adequate
- Confidence
- 85%
- Coverage
- 100%
Secrets, static analysis, vulnerable dependencies, CI and supply-chain posture.
- Repository: https://github.com/spr-networks/bitchat-plugin
- Commit:
9e366c497fc860c58ee756347ca03ad3225cd127 - Generated: 2026-11-13T23:50:35+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
Scores
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 0 | none-detected | 44% | 100% |
| Code quality | 55 | weak | 90% | 100% |
| Security | 74 | adequate | 85% | 100% |
AI provenance
No AI attribution or AI-consistent velocity signals detected.
-
Explicitly attributed share (lower bound): 0.0%
-
Unattributed share in AI-consistent velocity bursts: 0.0%
-
Estimated AI-generated share: 0.0%
-
Stylometry index: 1.32 per 1,000 lines (narrated steps 1, placeholders 0, assistant phrasing 0, emoji 22). Reported as a signal, not scored.
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2025-08 | 9,826 | 0% |
Evidence
- step-by-step narration comment: // First, try to parse as a packet to check message type (src/mesh/blu)
AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.
Code quality
Code quality is weak: test-to-source ratio 0.08, no CI test run detected; 40% of function code in complex or long functions; 5% duplicated lines. Weakest area: complexity.
| Area | Score |
|---|---|
| Complexity (lizard) | 30 |
| Duplication | 73 |
| Code smells (Opengrep) | 100 |
| Tests and CI | 34 |
| Documentation | 65 |
| Type safety | n/a |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 291; mean complexity 4.5, 90th percentile 7; 13 complex and 5 long functions
- Duplicated lines: 5.2% of 6,277 compared
- Tests: 715 test lines for 9,067 source lines (ratio 0.08); CI test commands: none detected; 33% of recent source commits also change tests
- Docs missing or thin: contributing, changelog
Most complex functions:
- run_app in src/main.rs: complexity 227, 1398 lines
- process_packet in src/mesh/packet_processor.rs: complexity 55, 130 lines
- render in src/tui/widgets/sidebar.rs: complexity 49, 166 lines
- to_binary_payload in src/model/bitchat_message.rs: complexity 40, 72 lines
- from_binary_payload in src/model/bitchat_message.rs: complexity 37, 104 lines
Security
Security posture is adequate: 11 known vulnerabilities in 10 dependencies; 1 high-severity SAST findings. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 97 |
| Static analysis (Opengrep) | 92 |
| Vulnerable dependencies (OSV) | 56 |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 20 |
| OpenSSF Scorecard | n/a |
-
Known vulnerabilities: 11 in 10 packages (critical 0, high 1, medium 3, low 1)
-
Posture checks passed: signed commits, lockfiles; missing: security policy, dependency updates
Top findings
| Severity | Finding | Location |
|---|---|---|
| high | opengrep/dockerfile.security.missing-user: By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium] |
Dockerfile:51 |
| high | osv/GHSA-vvp9-7p8x-rfvv: lz4_flex@0.11.5 (crates.io) is affected by RUSTSEC-2026-0041, GHSA-vvp9-7p8x-rfvv |
Cargo.lock |
| medium | osv/RUSTSEC-2026-0190: anyhow@1.0.98 (crates.io) is affected by RUSTSEC-2026-0190 |
Cargo.lock |
| medium | osv/GHSA-434x-w66g-qw3r: bytes@1.10.1 (crates.io) is affected by RUSTSEC-2026-0007, GHSA-434x-w66g-qw3r |
Cargo.lock |
| medium | osv/RUSTSEC-2026-0253: lru@0.12.5 (crates.io) is affected by RUSTSEC-2026-0253 |
Cargo.lock |
| medium | osv/RUSTSEC-2024-0436: paste@1.0.15 (crates.io) is affected by RUSTSEC-2024-0436 |
Cargo.lock |
| medium | osv/RUSTSEC-2026-0441: pin-utils@0.1.0 (crates.io) is affected by RUSTSEC-2026-0441 |
Cargo.lock |
| medium | osv/GHSA-cq8v-f236-94qc: rand@0.8.5 (crates.io) is affected by RUSTSEC-2026-0097, GHSA-cq8v-f236-94qc |
Cargo.lock |
| medium | osv/GHSA-qx2v-8332-m4fv: slab@0.4.10 (crates.io) is affected by RUSTSEC-2025-0047, GHSA-qx2v-8332-m4fv |
Cargo.lock |
| medium | osv/GHSA-r6v5-fh4h-64xc: time@0.3.41 (crates.io) is affected by RUSTSEC-2026-0009, GHSA-r6v5-fh4h-64xc |
Cargo.lock |
| medium | osv/RUSTSEC-2026-0386: tokio@1.46.1 (crates.io) is affected by RUSTSEC-2026-0386 |
Cargo.lock |
| low | gitleaks/generic-api-key: Possible generic-api-key secret in history (commit 51cdd4c005); removed from the current tree but still retrievable |
bitchat-data/state.json:4 |
| low | opengrep/rust.lang.security.unsafe-usage: Detected 'unsafe' usage, please audit for secure usage [confidence high] |
src/tui/tui_logger.rs:106 |
| low | osv/GHSA-rhfx-m35p-ff5j: lru@0.12.5 (crates.io) is affected by RUSTSEC-2026-0002, GHSA-rhfx-m35p-ff5j |
Cargo.lock |
Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.
Repository profile
- Source lines: 9,067; test lines: 715
| Language | Lines |
|---|---|
| Rust | 9,782 |