A Jetpack Compose library that displays real-time debug information as an overlay on Android apps. See Architecture for system design overview.
| Module | Description |
|---|---|
debugoverlay-core |
Compose runtime and shared components |
debugoverlay |
Primary public API |
debugoverlay-extension-okhttp |
OkHttp network tracking |
debugoverlay-extension-timber |
Timber log capture |
sample |
Demo application |
Key entry points:
DebugOverlay—debugoverlay-core/src/main/kotlin/com/ms/square/debugoverlay/DebugOverlay.ktDebugOverlayDataRepository—debugoverlay-core/src/main/kotlin/com/ms/square/debugoverlay/internal/data/DebugOverlayDataRepository.ktOverlayViewManager—debugoverlay-core/src/main/kotlin/com/ms/square/debugoverlay/internal/OverlayViewManager.ktBugReportGenerator—debugoverlay-core/src/main/kotlin/com/ms/square/debugoverlay/internal/bugreport/BugReportGenerator.kt
Common tasks:
| Task | Where to look |
|---|---|
| Add new data source | internal/data/source/ — create new data source class, wire into DebugOverlayDataRepository |
| Add new debug panel tab | internal/ui/DebugPanelDialog.kt — add to DebugTab enum and DebugPanelTabContent |
| Modify overlay behavior | OverlayViewManager.kt — window attachment, lifecycle sync |
| Add bug report data | Implement BugReportDataContributor interface, register via DebugOverlay.addBugReportContributor() |
| Create new extension | Implement LogSource or NetworkRequestSource, self-register in init block |
| Modify bug report flow | BugReportGenerator.kt (orchestration), BugReportDraftStorage.kt (persistence) |
| Change metrics display | internal/ui/DebugOverlayPanel.kt (compact overlay), DebugOverlayPanelDataSource.kt (aggregation) |
# Format code (required before check)
./gradlew spotlessApply
# Run all checks (tests, lint, detekt, spotless)
./gradlew check
# Build sample app
./gradlew :sample:assembleDebugImportant: Always run spotlessApply after making code changes and before running check.
For non-trivial work, create tools/ai/plans/PLAN_<TASK_NAME>.md:
- Draft proposed steps
- Wait for maintainer approval
- Update after each approved step
- Reference code locations as
path/to/File.kt:42 - Include line numbers when showing code snippets
- Structure responses: Summary → Changes → Validation → Follow-ups
- Architecture — module structure, data flow, extension model, key decisions
- Coding Conventions — coroutines, string resources, formatting
- Build & Gradle — toolchain, modules, version catalog
- Testing — what to test, naming conventions, examples
- Code Review — review protocol, analysis dimensions
- Git Workflow — commit hygiene, GitHub CLI