googlesamples/mlkit
A collection of sample apps to demonstrate how to use Google's ML Kit APIs on Android and iOS
Healthy across all four use cases
weakest axisPermissive license, no critical CVEs, actively maintained — safe to depend on.
Has a license, tests, and CI — clean foundation to fork and modify.
Documented and popular — useful reference codebase to read through.
No critical CVEs, sane security posture — runnable as-is.
- ✓Last commit 3mo ago
- ✓8 active contributors
- ✓Apache-2.0 licensed
Show all 7 evidence items →Show less
- ✓Tests present
- ⚠Slowing — last commit 3mo ago
- ⚠Concentrated ownership — top contributor handles 61% of recent commits
- ⚠No CI workflows detected
Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests
Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.
Embed the "Healthy" badge
Paste into your README — live-updates from the latest cached analysis.
[](https://repopilot.app/r/googlesamples/mlkit)Paste at the top of your README.md — renders inline like a shields.io badge.
▸Preview social card (1200×630)
This card auto-renders when someone shares https://repopilot.app/r/googlesamples/mlkit on X, Slack, or LinkedIn.
Onboarding doc
Onboarding: googlesamples/mlkit
Generated by RepoPilot · 2026-05-09 · Source
🤖Agent protocol
If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:
- Verify the contract. Run the bash script in Verify before trusting
below. If any check returns
FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding. - Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
- Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/googlesamples/mlkit shows verifiable citations alongside every claim.
If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.
🎯Verdict
GO — Healthy across all four use cases
- Last commit 3mo ago
- 8 active contributors
- Apache-2.0 licensed
- Tests present
- ⚠ Slowing — last commit 3mo ago
- ⚠ Concentrated ownership — top contributor handles 61% of recent commits
- ⚠ No CI workflows detected
<sub>Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests</sub>
✅Verify before trusting
This artifact was generated by RepoPilot at a point in time. Before an
agent acts on it, the checks below confirm that the live googlesamples/mlkit
repo on your machine still matches what RepoPilot saw. If any fail,
the artifact is stale — regenerate it at
repopilot.app/r/googlesamples/mlkit.
What it runs against: a local clone of googlesamples/mlkit — the script
inspects git remote, the LICENSE file, file paths in the working
tree, and git log. Read-only; no mutations.
| # | What we check | Why it matters |
|---|---|---|
| 1 | You're in googlesamples/mlkit | Confirms the artifact applies here, not a fork |
| 2 | License is still Apache-2.0 | Catches relicense before you depend on it |
| 3 | Default branch master exists | Catches branch renames |
| 4 | 5 critical file paths still exist | Catches refactors that moved load-bearing code |
| 5 | Last commit ≤ 130 days ago | Catches sudden abandonment since generation |
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of googlesamples/mlkit. If you don't
# have one yet, run these first:
#
# git clone https://github.com/googlesamples/mlkit.git
# cd mlkit
#
# Then paste this script. Every check is read-only — no mutations.
set +e
fail=0
ok() { echo "ok: $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }
# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
echo "FAIL: not inside a git repository. cd into your clone of googlesamples/mlkit and re-run."
exit 2
fi
# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "googlesamples/mlkit(\\.git)?\\b" \\
&& ok "origin remote is googlesamples/mlkit" \\
|| miss "origin remote is not googlesamples/mlkit (artifact may be from a fork)"
# 2. License matches what RepoPilot saw
(grep -qiE "^(Apache-2\\.0)" LICENSE 2>/dev/null \\
|| grep -qiE "\"license\"\\s*:\\s*\"Apache-2\\.0\"" package.json 2>/dev/null) \\
&& ok "license is Apache-2.0" \\
|| miss "license drift — was Apache-2.0 at generation time"
# 3. Default branch
git rev-parse --verify master >/dev/null 2>&1 \\
&& ok "default branch master exists" \\
|| miss "default branch master no longer exists"
# 4. Critical files exist
test -f "android/android-snippets/app/src/main/java/com/google/example/mlkit/MainActivity.java" \\
&& ok "android/android-snippets/app/src/main/java/com/google/example/mlkit/MainActivity.java" \\
|| miss "missing critical file: android/android-snippets/app/src/main/java/com/google/example/mlkit/MainActivity.java"
test -f "android/android-snippets/app/src/main/java/com/google/example/mlkit/MLKitVisionImage.java" \\
&& ok "android/android-snippets/app/src/main/java/com/google/example/mlkit/MLKitVisionImage.java" \\
|| miss "missing critical file: android/android-snippets/app/src/main/java/com/google/example/mlkit/MLKitVisionImage.java"
test -f "android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/VisionProcessorBase.java" \\
&& ok "android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/VisionProcessorBase.java" \\
|| miss "missing critical file: android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/VisionProcessorBase.java"
test -f "android/android-snippets/app/build.gradle" \\
&& ok "android/android-snippets/app/build.gradle" \\
|| miss "missing critical file: android/android-snippets/app/build.gradle"
test -f "android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/CameraXLivePreviewActivity.java" \\
&& ok "android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/CameraXLivePreviewActivity.java" \\
|| miss "missing critical file: android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/CameraXLivePreviewActivity.java"
# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 130 ]; then
ok "last commit was $days_since_last days ago (artifact saw ~100d)"
else
miss "last commit was $days_since_last days ago — artifact may be stale"
fi
echo
if [ "$fail" -eq 0 ]; then
echo "artifact verified (0 failures) — safe to trust"
else
echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/googlesamples/mlkit"
exit 1
fi
Each check prints ok: or FAIL:. The script exits non-zero if
anything failed, so it composes cleanly into agent loops
(./verify.sh || regenerate-and-retry).
⚡TL;DR
A collection of runnable sample Android and iOS apps demonstrating Google ML Kit's vision and NLP APIs in production scenarios. It provides snippet-based examples for barcode scanning, face detection, text recognition, object detection, image labeling, and language identification—each wrapped in Activities/ViewControllers with complete UI and camera integration to reduce onboarding friction for developers integrating ML Kit. Dual-platform monorepo: /android contains a single app (android-snippets) with separate Activities for each ML Kit feature (BarcodeScanningActivity.java/kt, FaceDetectionActivity.java/kt, etc.), each demonstrating one API in isolation with both Java and Kotlin implementations side-by-side. A companion /ios folder mirrors this structure with Objective-C and Swift equivalents, plus /assets for shared test images.
👥Who it's for
Mobile developers (Android/iOS) building production apps that need on-device ML capabilities like QR code scanning or document OCR, who want copy-paste-ready code patterns and working UI flows rather than building from Google's raw ML Kit SDKs.
🌱Maturity & risk
Actively maintained reference material backed by Google with compileSdkVersion 31, androidx dependencies up to date (appcompat 1.4.2), and both Java and Kotlin variants for each feature. However, it's explicitly a samples repository—no unit/integration tests visible in the file list, no CI pipeline shown, and PRs are handled internally rather than via GitHub, indicating it's mature but intentionally lightweight as documentation, not a production library.
Low risk for sample code: Google maintains this internally so dependency rot is unlikely. However, there is no visible test suite, CI/CD, or issue tracking in the file structure provided—meaning you inherit Google's release schedule and cannot fork confidently for production use. The repo explicitly states 'we no longer accept pull requests directly,' signaling it's read-only documentation, not a collaborative project.
Active areas of work
Unknown from file structure alone—no git history, recent commits, or open issues visible. The repo description states PR handling moved internal-only, so public activity is limited to releases synced outward.
🚀Get running
Clone the repo, open /android/android-snippets in Android Studio, sync Gradle (auto-downloads ML Kit SDKs from the dependency block), and select any Activity (e.g., BarcodeScanningActivity.kt) as the launch target to run on an emulator or device. No additional setup; build.gradle includes all ML Kit libraries (barcode-scanning:17.0.2, image-labeling:17.0.7, etc.) and multiDexEnabled handles APK size.
Daily commands:
In Android Studio: File → Open → select /android/android-snippets, wait for Gradle sync, connect a device or start an emulator, then click Run (green play button) or ./gradlew installDebug from the command line. Models download on first app launch (~20-50 MB per feature). For iOS, open /ios in Xcode and select a .xcodeproj, then ▶ Run.
🗺️Map of the codebase
android/android-snippets/app/src/main/java/com/google/example/mlkit/MainActivity.java— Entry point for the Android snippets app; demonstrates how to navigate between different ML Kit feature samplesandroid/android-snippets/app/src/main/java/com/google/example/mlkit/MLKitVisionImage.java— Core abstraction for converting Android image formats to ML Kit VisionImage; essential for all vision-based featuresandroid/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/VisionProcessorBase.java— Abstract base class for all vision processors in the AutoML sample; defines the processing pipeline that all detectors inheritandroid/android-snippets/app/build.gradle— Gradle build configuration; defines all ML Kit dependencies and Android SDK versions used across the projectandroid/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/CameraXLivePreviewActivity.java— Modern CameraX-based live preview implementation; reference for real-time ML Kit inference on camera framesandroid/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/StillImageActivity.java— Static image processing activity; shows how to process gallery/file-based images with ML Kit detectors
🛠️How to make changes
Add a New ML Kit Feature to Snippets
- Create new Activity class in android/android-snippets/app/src/main/java/com/google/example/mlkit/ following the pattern of existing activities like BarcodeScanningActivity.java (
android/android-snippets/app/src/main/java/com/google/example/mlkit/NewFeatureActivity.java) - Create corresponding Kotlin version in android/android-snippets/app/src/main/java/com/google/example/mlkit/kotlin/ (
android/android-snippets/app/src/main/java/com/google/example/mlkit/kotlin/NewFeatureActivity.kt) - Add menu item to MainActivity to navigate to the new feature (
android/android-snippets/app/src/main/java/com/google/example/mlkit/MainActivity.java) - Update AndroidManifest.xml to declare the new Activity (
android/android-snippets/app/src/main/AndroidManifest.xml) - Add required ML Kit dependency to build.gradle (
android/android-snippets/app/build.gradle)
Add a New Vision Processor to AutoML Demo
- Create new processor class extending VisionProcessorBase in android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/ following ObjectDetectorProcessor.java pattern (
android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/NewFeatureProcessor.java) - Create corresponding Graphic class in the same directory to render results (e.g., ObjectGraphic.java) (
android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/NewFeatureGraphic.java) - Register processor in CameraXLivePreviewActivity.onCreateSuccessListener() or StillImageActivity (
android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/CameraXLivePreviewActivity.java) - Add preference toggle in PreferenceUtils to enable/disable the new processor (
android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/preference/PreferenceUtils.java)
Integrate New Camera Technology or Framework
- Create new CameraProvider class in android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/ (alternatives: CameraSource.java is legacy, CameraXViewModel.java is modern) (
android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/NewCameraProvider.java) - Ensure it provides frames in a format compatible with MLKitVisionImage conversion (reference BitmapUtils.java) (
android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/BitmapUtils.java) - Wire new provider into activity that manages camera lifecycle (CameraXLivePreviewActivity or StillImageActivity) (
android/automl/app/src/main/java/com/google/mlkit/vision/automl/demo/CameraXLivePreviewActivity.java) - Add camera permissions to AndroidManifest.xml and request runtime permissions following existing patterns (
android/automl/app/src/main/AndroidManifest.xml)
🪤Traps & gotchas
Camera runtime permissions: Activities request CAMERA and READ_EXTERNAL_STORAGE at runtime (Android 6+) but the code snippets may not show the full permission dialogue flow—test on a device. Model download on first run: First instantiation of any ML Kit detector downloads 20–50 MB models; the Activity may stall briefly without a progress indicator. ProGuard/R8 minification: build.gradle disables minifyEnabled for easier debugging, but enabling it requires the proguard-rules.pro exclusions to prevent ML Kit SDK crashes. Min SDK 19: API 19 (KitKat) is old; camera APIs differ significantly, so multi-API camera code can be fragile. Kotlin stdlib conflict: Two kotlin-stdlib versions (stdlib-jdk7 + stdlib) can cause gradle resolution issues—run ./gradlew dependencies to debug.
🏗️Architecture
💡Concepts to learn
- InputImage (ML Kit abstraction) — ML Kit detects accept only InputImage objects, not raw Bitmaps; understanding YUV-to-RGB conversion, rotation handling, and proxy vs. copy semantics is critical for performance tuning in camera pipelines.
- On-device ML model auto-download and caching — ML Kit models download silently on first use without explicit manifest—you must handle network errors, disk space checks, and user experience during 50 MB downloads; this is a hidden async boundary in seemingly synchronous code.
- Camera frames (YUV420 planar format) and rotation handling — Android camera delivers YUV420 frames, not RGB—ML Kit requires explicit rotation metadata to match device orientation. Failure to rotate causes detection results to be off-axis.
- MultiDex (65K method limit) — ML Kit SDKs + AndroidX add ~150K methods, exceeding Android's 64K DEX limit; multiDexEnabled = true is mandatory here, adding ~5 ms to app startup.
- Batch detection (Task-based async API) — ML Kit uses Google Play Services Tasks (not Coroutines or RxJava) for async detection; .addOnSuccessListener() callbacks are non-cancellable and can leak if Activity is destroyed during processing.
- EXIF rotation metadata handling — Images from device cameras or gallery include EXIF rotation tags that must be read (via exifinterface:1.3.3) and applied to ML Kit InputImage; ignoring this causes upside-down detections.
🔗Related repos
google/mediapipe— Lower-level multimodal ML inference framework underlying some ML Kit features; useful if you need custom models or finer-grained control than ML Kit's high-level APIs.tensorflow/examples— TensorFlow Lite examples for Android and iOS; provides alternative on-device ML patterns and custom model workflows that complement or replace ML Kit for specialized tasks.android/architecture-samples— Google's canonical Android architecture guide (MVVM, Repository pattern, Jetpack components); the ML Kit samples skip these patterns intentionally for readability, but production apps should integrate this architecture.firebase/quickstart-android— Firebase SDKs for Android including ML Kit integration within a broader app context (analytics, auth, Cloud Storage); shows how ML Kit fits into a full Firebase stack.
🪄PR ideas
To work on one of these in Claude Code or Cursor, paste:
Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.
Add instrumented tests for ML Kit feature Activities
The repo contains multiple feature Activities (BarcodeScanningActivity, FaceDetectionActivity, TextRecognitionActivity, etc.) in both Java and Kotlin, but there are no visible test files in the android/android-snippets/app/src directory. Adding instrumented tests would validate that ML Kit integrations work correctly on real devices/emulators and catch regressions when ML Kit dependencies are updated.
- [ ] Create android/android-snippets/app/src/androidTest/java/com/google/example/mlkit directory structure
- [ ] Add instrumented tests for BarcodeScanningActivity.java and BarcodeScanningActivity.kt that verify detector initialization and basic callback handling
- [ ] Add instrumented tests for TextRecognitionActivity that validate text recognition results on sample images
- [ ] Add instrumented tests for FaceDetectionActivity that verify face detection callbacks execute
- [ ] Update build.gradle with androidTest dependencies (androidx.test:runner, androidx.test.espresso:espresso-core)
- [ ] Document how to run tests in android/android-snippets/README.md
Add GitHub Actions workflow for building and testing Android samples
The repo lacks CI/CD pipelines to validate that Android samples compile and pass tests on pull requests. Given that ML Kit dependencies are frequently updated and minSdkVersion 19 / compileSdkVersion 31 span multiple Android versions, a GitHub Actions workflow would catch breaking changes early and ensure code quality for contributors.
- [ ] Create .github/workflows/android-build.yml that runs on push to main and pull requests
- [ ] Configure workflow to build android/android-snippets using gradlew with compileSdkVersion 31
- [ ] Add step to run lint checks (gradlew lint) to catch Android-specific code issues
- [ ] Add step to run instrumented tests on Android emulator (API 29-31) using reactivecircus/android-emulator-runner
- [ ] Add step to verify no Kotlin compilation warnings in kotlin/ subdirectory
- [ ] Document CI requirements and coverage in android/README.md
Create comprehensive README for ML Kit snippets with feature matrix and setup guide
The android/android-snippets/README.md is minimal and doesn't document which features are implemented, what ML Kit models are used, expected outputs, or setup instructions for each Activity. New contributors need clarity on what each Activity demonstrates, dependencies required, and how to extend examples.
- [ ] Update android/android-snippets/README.md with a feature matrix table listing: Activity name, ML Kit API used, language versions (Java/Kotlin), model type (bundled/downloaded), and min SDK
- [ ] Add 'Getting Started' section documenting how to build and run the app, including Android SDK requirements and device/emulator setup
- [ ] Add 'Feature Guides' section with subsections for each ML Kit feature (Barcode Scanning, Face Detection, Text Recognition, etc.) including: what the Activity demonstrates, code snippet location, expected input/output, and how to test with sample images
- [ ] Document the difference between bundled models (Face Detection, Text Recognition) vs. downloaded models (Image Labeling, Barcode Scanning) in the dependencies section
- [ ] Add troubleshooting section for common issues (model download failures, permission denials, unsupported devices)
- [ ] Link to official ML Kit documentation for each feature
🌿Good first issues
- Add a language identification feature Activity (LanguageIdentificationActivity already exists in the snippet list but not in the main file paths shown—verify it's wired into MainActivity and has Kotlin parity; if missing Kotlin or tests, add them).
- Create a simple integration test for one Activity (e.g., BarcodeScanningActivity) that verifies a test image decodes correctly and produces non-null results; add it under
app/src/androidTest/. No tests currently visible. - Document the camera permission flow with a code comment block in MLKitVisionImage.kt explaining why both CAMERA and READ_EXTERNAL_STORAGE are needed and what happens if denied; this is a common friction point for new users.
⭐Top contributors
Click to expand
Top contributors
- @a-googler — 61 commits
- @lipenny000 — 13 commits
- @zongmins — 9 commits
- @miworking — 5 commits
- @zhouyiself — 5 commits
📝Recent commits
Click to expand
Recent commits
3bdf018— Merge "List of included changes: - Add demo app for speech recognition feature" (Ming-Da Tsai)6147752— List of included changes: (a-googler)98a3e09— List of included changes: (a-googler)7887909— List of included changes: (a-googler)da17257— Update Digital Ink sample. (a-googler)80d6bc6— Fix the issue where debug info was not displaying, and remove the duplicated LICENSE file since the root one is sufficie (a-googler)4a0e42e— Minor tweak to the GenAI demo. (a-googler)9499682— List of included changes: (a-googler)9d15101— Merge "List of included changes: - Upgrade GoogleMLKit version from 8.0.0 to 9.0.0." (miworking)6dfdf4e— Merge "List of included changes: - Upgrade GoogleMLKit version from 8.0.0 to 9.0.0." (miworking)
🔒Security observations
The codebase demonstrates a sample application for ML Kit APIs with several moderate security concerns. The primary issues are outdated dependencies (compileSdkVersion 31 is significantly behind current standards), disabled minification in release builds exposing reverse engineering risks, and use of deprecated libraries. The project lacks visible security hardening measures such as code obfuscation, certificate pinning, or secure data storage implementations (though these may exist in actual application code not shown). The ProGuard configuration and test dependency isolation cannot be fully assessed without reviewing additional files. Immediate actions should focus on updating the SDK versions, enabling minification, and removing deprecated libraries.
- High · Outdated Android Gradle Plugin and Dependencies —
android/android-snippets/app/build.gradle. The project uses compileSdkVersion 31 and targetSdkVersion 31, which are outdated. Current Android development targets API level 34+. Additionally, several dependencies have known vulnerabilities and are not at their latest versions. This exposes the application to known security issues fixed in newer versions. Fix: Update compileSdkVersion and targetSdkVersion to at least 34. Update all dependencies to their latest stable versions, particularly: androidx.appcompat (currently 1.4.2), androidx.legacy-support-v4, and ML Kit libraries. - High · Minification Disabled in Release Build —
android/android-snippets/app/build.gradle, line: minifyEnabled false. The release build type has minifyEnabled set to false. This means the APK will contain unobfuscated code, making it easier for attackers to reverse engineer the application and understand its logic, potentially exposing proprietary algorithms and security weaknesses. Fix: Enable minification for release builds by setting minifyEnabled true and ensure proguardFiles are properly configured to obfuscate sensitive code. - Medium · MultiDex Enabled Without Explicit Configuration —
android/android-snippets/app/build.gradle, line: multiDexEnabled true. While multiDexEnabled true is set to handle the 65K method limit, there's no explicit configuration for MultiDex in the code. This could lead to runtime issues or security problems if not properly initialized in the Application class. Fix: Ensure the Application class properly initializes MultiDex by calling MultiDex.install(context) in the attachBaseContext() method, or update the minSdkVersion to 21+ where native multidex support is available. - Medium · Duplicate Dependency Declaration —
android/android-snippets/app/build.gradle. androidx.appcompat:appcompat:1.4.2 is declared twice in the dependencies block. This could indicate maintenance issues and may lead to version conflict resolution problems. Fix: Remove the duplicate androidx.appcompat:appcompat:1.4.2 declaration to keep the dependency list clean and maintainable. - Medium · Legacy Support Library Usage —
android/android-snippets/app/build.gradle. The project depends on androidx.legacy:legacy-support-v4:1.0.0, which is deprecated. Legacy support libraries are no longer maintained and may contain unpatched vulnerabilities. Fix: Migrate away from androidx.legacy:legacy-support-v4 by updating code to use AndroidX direct replacements. Verify what functionality is needed and use specific AndroidX libraries instead. - Low · Missing ProGuard Configuration for ML Kit Libraries —
android/android-snippets/app/proguard-rules.pro. While proguard-rules.pro is referenced, there's no visibility into its content. ML Kit libraries may require specific ProGuard/R8 rules to function correctly when minification is enabled. Fix: Ensure proguard-rules.pro contains all necessary rules for ML Kit libraries. Include rules to preserve ML Kit model classes and native method signatures. - Low · Test Instrumentation Runner Not Verified —
android/android-snippets/app/build.gradle. The project uses androidx.test.runner.AndroidJUnitRunner for testing. While standard, ensure that test dependencies are not included in release builds. Fix: Verify that androidTestImplementation is used for test dependencies, not implementation. Ensure no testing frameworks are included in release builds.
LLM-derived; treat as a starting point, not a security audit.
👉Where to read next
- Open issues — current backlog
- Recent PRs — what's actively shipping
- Source on GitHub
Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.