AI Slop Code Risk Monitor

caamer20/Telegram-Drive

SlopCodeMonitor badge for caamer20/Telegram-Drive Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Turn your Telegram account into an unlimited, secure cloud storage drive. an Open-source desktop app built with Tauri, Rust, and React.

2.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for caamer20/Telegram-Drive, a Rust project with 5,633 GitHub stars. SynthScan examined 163,718 lines of code across 466 source files, recording 155 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 2.1 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

2.1
Adjusted Signal
2.1
Raw Pattern Score
100%
Time Factor
2026-10-15
Last Push
5.6K
Stars
Rust
Language
163.7K
Lines of Code
466
Files
155
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 2.2/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 54 finding(s).

Hallucinated Dependency & Supply Chain Risk 1.0/100 · LOW

Are imports declared and package/API names verified? 26 finding(s).

Agent Over-Engineering Ratio 7.9/100 · LOW

Are wrappers, guards, and repeated structures necessary? 108 finding(s).

PR Review Velocity Impact 9.3/100 · LOW

Which changes need focused human review? 155 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 2MEDIUM 78LOW 75

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 155 distinct pattern matches across 8 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Decorative Section Separators75 hits · 234 pts
SeverityFileLineSnippetContext
MEDIUMapp/src-tauri/src/api_routes.rs397// ──────────────────────────────── Endpoints ────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs1// ── Transcode Module ────────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs31// ── Constants ───────────────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs62// ── Quality presets ─────────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs104// ── Types ───────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs224// ── TranscodeManager ────────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs639// ── FFmpeg Detection ────────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs706// ── Source Cache (Phase 2) ──────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs818// ── HLS Transcode (Phase 3) ─────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs1035// ── Execute Full Transcode Pipeline ─────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs1089 // ── Step 1: Cache original if needed ────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs1142 // ── Step 2: Detect source resolution ────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs1172 // ── Step 3: Transcode ───────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs1219// ── Tauri Commands ──────────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs1545// ── Cache management commands ───────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs1563// ── Cached variants command ─────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs1596// ── Detailed cache info (per-file per-quality with sizes) ──────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs1810// ── Clear transcode cache (all, per-file, or per-variant) ──────────COMMENT
MEDIUMapp/src-tauri/src/transcode.rs2064// ── HLS Serving Routes (Phase 4) ────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/fmp4_remux.rs1// ── fMP4 Remux Module ───────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/fmp4_remux.rs23// ── Constants ────────────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/fmp4_remux.rs28// ── Types ────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/fmp4_remux.rs67// ── FFmpeg Remux ─────────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/fmp4_remux.rs219// ── Tauri Commands ───────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/fmp4_remux.rs429// ── Actix Serving Route ──────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/vpn_optimizer.rs337 // ── Helpers that return effective values ────────────────COMMENT
MEDIUMapp/src-tauri/src/crypto_commands.rs125// ── Tauri Commands ──────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/mp4_utils.rs1// ── Shared MP4 Box Parsing ─────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/commands/video_metadata.rs40// ── Internal helpers ─────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/commands/archive.rs107// ── Shared preparation ──────────────────────────────────────────────────COMMENT
MEDIUMapp/src-tauri/src/commands/archive.rs673// ── Shared utilities ────────────────────────────────────────────────────COMMENT
MEDIUM⚡…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx59 // ── Effective stream URL: use fMP4 URL when available ────────────COMMENT
MEDIUM⚡…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx62 // ── Original MSE streaming (for "original" quality) ──────────────COMMENT
MEDIUM⚡…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx72 // ── Refs for late-bound values needed by progressive handler ─────COMMENT
MEDIUM⚡…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx77 // ── Handle progressive MP4 detection — trigger fMP4 remux ──────COMMENT
MEDIUM⚡…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx266 // ── Volume state ─────────────────────────────────────────────────COMMENT
MEDIUM⚡…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx272 // ── Source / playing resolution tracking ──────────────────────────COMMENT
MEDIUM⚡…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx276 // ── Source height for upscale prevention ──────────────────────────COMMENT
MEDIUM⚡…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx286 // ── Debug overlay ───────────────────────────────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx44 // ── Restart counter for MSE pipeline reinit ──────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx48 // ── fMP4 remux state ────────────────────────────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx190 // ── progressive callback for useAdaptiveStreaming ────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx212 // ── HLS transcode state ──────────────────────────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx456 // ── Fetch transcode capabilities ──────────────────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx471 // ── Poll transcode status ────────────────────────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx529 // ── Start HLS transcode for a quality ───────────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx598 // ── Handle quality change ────────────────────────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx723 // ── Initialize hls.js when playlist is ready ─────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx853 // ── Cancel ongoing transcode ─────────────────────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx885 // ── Retry failed transcode ───────────────────────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx890 // ── Cleanup ──────────────────────────────────────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx904 // ── Keyboard shortcuts ───────────────────────────────────────────COMMENT
MEDIUM…c/components/desktop/dashboard/AdaptiveMediaPlayer.tsx935 // ── Determine current display state ──────────────────────────────COMMENT
MEDIUM…rc/components/desktop/dashboard/ArchiveViewerModal.tsx603// ── Extract & Upload button per archive entry ────────────────────────────COMMENT
MEDIUMapp/src/components/mobile/MobileDashboard.tsx93 // ── Android deep-link listener (https://t.me/ links) ──────────────────COMMENT
MEDIUMapp/src/components/mobile/MobileDashboard.tsx112 // ── Android share-received listener (warm start) ──────────────────────COMMENT
MEDIUMapp/src/components/mobile/MobileDashboard.tsx133 // ── Android cold-start share check ────────────────────────────────────COMMENT
MEDIUMapp/src/components/mobile/MobileDashboard.tsx251 // ── Connection diagnostics state ──────────────────────────────────────COMMENT
MEDIUMapp/src/components/mobile/MobileDashboard.tsx454 // ── Android cached shared files ───────────────────────────────────────COMMENT
MEDIUMapp/src/components/mobile/MobileDashboard.tsx816 // ── Copy Telegram native t.me link ────────────────────────────────────COMMENT
15 more matches not shown…
Hyper-Verbose Identifiers33 hits · 36 pts
SeverityFileLineSnippetContext
LOW…/components/desktop/dashboard/fileActionDescriptors.ts36export function resolvePublicFolderUsername(CODE
LOW…src/components/shared/EncryptionTransparencyDialog.tsx13export function EncryptionTransparencyDialog({ onClose, state }: EncryptionTransparencyDialogProps) {CODE
LOWapp/src/components/shared/EncryptionSettingsSection.tsx294export function EncryptionSettingsSection({ vaultOnly = false }: { vaultOnly?: boolean } = {}) {CODE
LOWapp/src/components/shared/FfmpegInstallNotice.tsx8export async function openFfmpegWindowsDownloads(): Promise<void> {CODE
LOWapp/src/components/dev/StorageCleanupBrowserFixture.tsx14function StorageCleanupBrowserFixture() {CODE
LOWapp/src/components/dev/RuntimeCopyBrowserFixture.tsx12export function RuntimeCopyBrowserFixture(){CODE
LOW…rc/components/dev/LocalizationArraysBrowserFixture.tsx15export function LocalizationArraysBrowserFixture() {CODE
LOWapp/src/i18n/resolveLanguage.ts21export function resolveLanguagePreference(CODE
LOWapp/src/services/fileListRefresh.ts177export async function invalidateFolderFileQueries(CODE
LOWapp/src/services/fileListRefresh.ts190export async function invalidateOwnedFileQueries(queryClient: QueryClient, ownerId: string): Promise<void> {CODE
LOWapp/src/services/desktopLifecycle.ts41export function normalizeDesktopPreferences(CODE
LOW⚡app/src/services/desktopLifecycle.ts64export function getNotificationPermission(): Promise<NotificationPermission> {CODE
LOW⚡app/src/services/desktopLifecycle.ts68export function requestNotificationPermission(): Promise<NotificationPermission> {CODE
LOW⚡app/src/services/desktopLifecycle.ts76export function markDesktopFrontendUnready(): Promise<void> {CODE
LOWapp/src/services/transcodeCacheClient.ts14export function getDetailedTranscodeCache(refresh = false): Promise<DetailedCacheInfo> {CODE
LOWapp/src/services/transcodeCacheClient.ts21export function transcodeCacheErrorMessage(error: unknown): string {CODE
LOWapp/src/services/androidReauthentication.ts3export async function requireAndroidReauthentication(reason: string): Promise<void> {CODE
LOWapp/src/services/mediaKeyboard.ts2export function shouldHandleMediaShortcut(event: KeyboardEvent): boolean {CODE
LOWapp/src/services/videoUploadMode.ts6export function supportsTelegramMediaUpload(path: string): boolean {CODE
LOW⚡app/src/services/supporterVisibility.ts19export function sponsorAdCooldownRemaining(CODE
LOW⚡app/src/services/supporterVisibility.ts29export function shouldOfferNewSupporterPurchase(status: SupporterVisibilityStatus): boolean {CODE
LOW⚡app/src/services/supporterVisibility.ts33export function announceSupporterValueMoment(moment: SupporterValueMoment): void {CODE
LOWapp/src/services/supporterVisibility.ts48export function shouldShowSupporterPrompt(CODE
LOWapp/src/services/desktopTransferEngine.ts186export async function configureDesktopTransferLimits(maxUploads: number, maxDownloads: number) {CODE
LOWapp/src/services/desktopTransferEngine.ts217export async function supplyTransferPromptToken(id: string, promptToken: number): Promise<void> {CODE
LOWapp/src/services/androidTransferPolicy.ts24export function evaluateAndroidTransferPolicy(CODE
LOWsupporter-service/src/crypto.ts121function validateEntitlementClaims(claims: EntitlementClaims): void {CODE
LOWsupporter-service/src/index.ts299function matchesOriginalUnpaidOrder(env: Env, claim: CheckoutClaimRow, order: PayPalOrder): boolean {CODE
LOWsupporter-service/src/db.ts58export async function releaseCheckoutCompletion(env: Env, claimId: string): Promise<void> {CODE
LOWsupporter-service/src/db.ts66export async function acknowledgeCheckoutReceipt(env: Env, claimId: string, acknowledgedAt: number): Promise<void> {CODE
LOWsupporter-service/src/db.ts147export async function findEntitlementByRecoveryHash(env: Env, recoveryHash: string): Promise<EntitlementRow | null> {CODE
LOWsupporter-service/src/db.ts250export async function revokeEntitlementByCapture(env: Env, captureId: string, reason: string, now: number): Promise<boolCODE
LOWsupporter-service/src/paypal.ts170export function validatedWebhookVerificationFields(env: Env, headers: Headers): WebhookVerificationFields | null {CODE
Fake / Example Data24 hits · 24 pts
SeverityFileLineSnippetContext
LOWapp/src/i18n/locales/tr.json1585 "placeholder": "En az 12 karakter",CODE
LOWapp/src/i18n/locales/th-TH.json1585 "placeholder": "อย่างน้อย 12 อักขระ",CODE
LOWapp/src/i18n/locales/ja.json1585 "placeholder": "12文字以上",CODE
LOWapp/src/i18n/locales/de.json1585 "placeholder": "Mindestens 12 Zeichen",CODE
LOWapp/src/i18n/locales/ur-PK.json1585 "placeholder": "کم از کم 12 حروف",CODE
LOWapp/src/i18n/locales/ru.json1599 "placeholder": "Не менее 12 символов",CODE
LOWapp/src/i18n/locales/zh-CN.json1585 "placeholder": "至少 12 个字符",CODE
LOWapp/src/i18n/locales/en.json1585 "placeholder": "At least 12 characters",CODE
LOWapp/src/i18n/locales/ms-MY.json1585 "placeholder": "Sekurang-kurangnya 12 aksara",CODE
LOWapp/src/i18n/locales/it.json1592 "placeholder": "Almeno 12 caratteri",CODE
LOWapp/src/i18n/locales/uk-UA.json1599 "placeholder": "Щонайменше 12 символів",CODE
LOWapp/src/i18n/locales/pl-PL.json1599 "placeholder": "Co najmniej 12 znaków",CODE
LOWapp/src/i18n/locales/fr.json1592 "placeholder": "Au moins 12 caractères",CODE
LOWapp/src/i18n/locales/fa-IR.json1585 "placeholder": "حداقل 12 نویسه",CODE
LOWapp/src/i18n/locales/hi.json1585 "placeholder": "कम से कम 12 अक्षर",CODE
LOWapp/src/i18n/locales/pt-BR.json1592 "placeholder": "Pelo menos 12 caracteres",CODE
LOWapp/src/i18n/locales/ko.json1585 "placeholder": "최소 12자",CODE
LOWapp/src/i18n/locales/bn-BD.json1585 "placeholder": "অন্তত 12 অক্ষর",CODE
LOWapp/src/i18n/locales/zh-TW.json1585 "placeholder": "至少 12 個字元",CODE
LOWapp/src/i18n/locales/vi.json1585 "placeholder": "Ít nhất 12 ký tự",CODE
LOWapp/src/i18n/locales/id.json1585 "placeholder": "Minimal 12 karakter",CODE
LOWapp/src/i18n/locales/fil-PH.json1585 "placeholder": "Hindi bababa sa 12 karakter",CODE
LOWapp/src/i18n/locales/es.json1592 "placeholder": "Al menos 12 caracteres",CODE
LOWapp/src/i18n/locales/ar.json1613 "placeholder": "12 حرفًا على الأقل",CODE
Magic Placeholder Names2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHREST_API_Documentation.md35curl -H "X-API-Key: YOUR_API_KEY" \CODE
HIGHREST_API_Documentation.md223 -H "X-API-Key: YOUR_API_KEY" \CODE
Over-Commented Block10 hits · 10 pts
SeverityFileLineSnippetContext
LOWapp/src-tauri/src/transfer_engine.rs21use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};COMMENT
LOWapp/src-tauri/src/transcode.rs1// ── Transcode Module ────────────────────────────────────────────────────COMMENT
LOWapp/src-tauri/src/fmp4_remux.rs61impl Default for Fmp4RemuxState {COMMENT
LOWapp/src-tauri/src/lib.rs1041 // SAFETY NET: Wrap all Android JNI initialization in catch_unwind to preventCOMMENT
LOWapp/src-tauri/src/folder_layout.rs1//! The folder list and its groups live in two shared tables, but theyCOMMENT
LOWapp/src-tauri/src/jni_cache.rs21#[cfg(target_os = "android")]COMMENT
LOWapp/src-tauri/src/resumable_upload.rs1//! Uploads that continue where they stopped.COMMENT
LOWapp/src-tauri/src/resumable_upload.rs21 time::{Duration, Instant},COMMENT
LOWapp/src-tauri/src/crypto/vault/mod.rs61 bundle: &[u8],COMMENT
LOWapp/src-tauri/src/commands/mod.rs21/// Tracks the lifecycle of the Telegram connectionCOMMENT
Modern AI Meta-Vocabulary3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMapp/src-tauri/src/commands/fs.rs3160#[allow(clippy::too_many_arguments)] // Tauri command dependency injection is intentionally explicit.COMMENT
MEDIUMapp/src-tauri/src/commands/fs.rs3868#[allow(clippy::too_many_arguments)] // Internal transfer orchestration keeps injected state explicit.COMMENT
MEDIUMapp/src-tauri/src/commands/fs.rs5788#[allow(clippy::too_many_arguments)] // Tauri command dependency injection is intentionally explicit.COMMENT
Verbosity Indicators4 hits · 9 pts
SeverityFileLineSnippetContext
LOW⚡…rc/components/desktop/dashboard/ArchiveViewerModal.tsx179 // Step 1: ExtractCOMMENT
LOW⚡…rc/components/desktop/dashboard/ArchiveViewerModal.tsx188 // Step 2: UploadCOMMENT
LOW⚡…rc/components/desktop/dashboard/ArchiveViewerModal.tsx681 // Step 1: ExtractCOMMENT
LOW⚡…rc/components/desktop/dashboard/ArchiveViewerModal.tsx691 // Step 2: Upload to the selected target folderCOMMENT
Structural Annotation Overuse4 hits · 9 pts
SeverityFileLineSnippetContext
LOW⚡…rc/components/desktop/dashboard/ArchiveViewerModal.tsx179 // Step 1: ExtractCOMMENT
LOW⚡…rc/components/desktop/dashboard/ArchiveViewerModal.tsx188 // Step 2: UploadCOMMENT
LOW⚡…rc/components/desktop/dashboard/ArchiveViewerModal.tsx681 // Step 1: ExtractCOMMENT
LOW⚡…rc/components/desktop/dashboard/ArchiveViewerModal.tsx691 // Step 2: Upload to the selected target folderCOMMENT