didi/DoKit
38.3
Weak · 24 September 2026
147.8k
lines of production code
Java
with Objective-C, Kotlin, JavaScript, C
5
measurements over time
What this system is
This system is a cross-platform debugging and development toolkit (DoKit/DoraemonKit) that provides a suite of diagnostic, monitoring, and testing utilities for iOS, Android, Flutter, and Web applications. It enables developers to inspect and modify application states, including network traffic, memory usage, UI hierarchy, and performance metrics, directly within the app. The toolkit supports multi-device control, automated testing, and environment simulation (such as GPS and weak network conditions) to facilitate comprehensive debugging and quality assurance workflows.
How it got here
2018–2019 — iOS SDK expansion and miniapp support
51 changes.
This period focused on significantly expanding the iOS SDK with new debugging tools, including memory leak detection, network interception, and performance monitoring. It also introduced comprehensive support for WeChat Mini Programs and added localization and dark mode compatibility across the platform.
2020 — iOS and Flutter debugging expansion
45 changes.
This period focused on significantly expanding the DoraemonKit iOS toolkit with extensive performance, UI, and network debugging plugins, alongside the initial release of DoKit for Flutter. The work introduced new capabilities for monitoring app health, analyzing view hierarchies, and simulating network conditions, while also establishing a Swift demo application and Android build system improvements.
2021 — multi-platform debugging expansion
55 changes.
This period focused on expanding the DoKit debugging toolkit across Flutter, Web, Android, and iOS platforms. Significant additions include comprehensive APM and network monitoring for Flutter, a full-featured web debugging suite with console and network inspection, and new Android modules for memory leak detection and thread monitoring. The work also established a multi-device control feature for iOS and Android, alongside a no-op Android SDK for safer integration.
2022 — multi-device control and automation features
7 changes.
This period focused on expanding the toolkit's capabilities for remote device management and automated testing across iOS, Android, and Web platforms. Key additions included multi-device synchronization, automated UI testing infrastructure, and GPS simulation tools, alongside new JavaScript execution and toast notification components.
Features
Add 'One-Machine-Multiple-Control' plugin for remote device management
A new plugin named 'One-Machine-Multiple-Control' has been added to the web package. It provides a user interface for managing multiple connected devices, including a text area for entering a network address, buttons to connect/disconnect, start/stop recording, and view history records. The plugin also implements the core logic for intercepting and forwarding HTTP requests and responses via WebSocket to a host device, enabling synchronized control across multiple clients.
Web/packages/web/src/plugins/one-machine-with-multiple-controls · high confidence
Add ANR detail view for crash reports
Users can now view detailed information about Application Not Responding (ANR) events, including the crash content and duration, and export the report via a new detail screen.
iOS/DoraemonKit/Src/Core/Plugin/Performance/ANR/Detail · high confidence
Add API Mock plugin for interface simulation
Introduced the 'Data Mock' (api-mock) plugin, which intercepts web requests to simulate API responses. The plugin fetches interface configurations from the Dokit server, merges them with local storage state, and hooks into fetch and XHR requests to redirect them to mock endpoints. This allows users to toggle specific interfaces and scenes to simulate backend behavior during development.
Web/packages/web/src/plugins/api-mock · high confidence
Add Align Ruler plugin for Web
A new 'Align Ruler' plugin has been added to the web package, introducing a crosshair-style ruler overlay that displays the cursor's position coordinates (top, right, bottom, left) and allows dragging to adjust the crosshair. The feature includes a dedicated Vue component for the ruler and info box, registered as an independent plugin.
Web/packages/web/src/plugins/align-ruler · high confidence
Add Android auto-test kit with UI and control logic
The Android/dokit-autotest module introduces a new automated testing feature for Android. This includes a new \DoKitAutotestActivity\ with fragments for connection management and main controls, along with \AutoTestControlKit\ and \AutoTestManager\ to handle recording, execution, and state management. The UI provides buttons to start/stop recording and testing, connect to a service, and view case lists, supported by new layout files, drawables, and string resources.
Android/dokit-autotest · high confidence
Add Android demo app scaffolding and GPS mock utilities
The Android demo application is initialized with essential configuration files (.editorconfig, .gitignore, proguard-rules) and a debug AndroidManifest.xml declaring required permissions for location and network access. The demo's Application class is updated to initialize DoKit with custom kits and network interceptors, and to configure Fresco. New utility classes for AMap integration (AMapUtil, ChString, DrivingRouteOverLay, RouteOverlay) and GPS mock functionality (FloatGpsPresetMockKit, FloatGpsPresetMockKitView, FloatGpsRouteKitView) are added to support location simulation and route overlay features.
Android · high confidence
Add Android utility classes for system and device management
The Android/dokit-util module introduces a comprehensive set of utility classes for Android development, including ActivityUtils for activity lifecycle and state management, BarUtils for status bar and navigation bar customization, AppUtils for application information and status checks, and various constant classes (CacheConstants, MemoryConstants, PermissionConstants, RegexConstants, TimeConstants) that provide standardized values and helper methods for common Android tasks such as screen adaptation, battery status monitoring, and app store integration.
Android/dokit-util · high confidence
Add App Info plugin to display device and app details
Introduced a new App Info plugin that displays device and application information, including device name, model, OS version, screen size, IP addresses, bundle ID, and version numbers. The feature also exposes permissions for location, push, camera, audio, photo, address book, calendar, reminders, and Bluetooth, with support for custom app information via a block callback.
iOS/DoraemonKit/Src/Core/Plugin/Common/AppInfo · high confidence
Add DoraemonLoadAnalyze demo app to measure load time
Introduced a new iOS demo application, DoraemonLoadAnalyzeDemo, which serves as a testbed for the DoraemonLoadAnalyze framework. The demo project includes the necessary source files, Xcode project configuration, and a main entry point that invokes printLoadAnalyzeInfo() to output load time analysis information to the console, enabling developers to verify the framework's functionality.
iOS/DoraemonKit/Framework, iOS/DoraemonLoadAnalyzeDemo · high confidence
Add FPS and Time Profiler performance monitoring plugins
The DoraemonKit now includes two new performance monitoring plugins: an FPS (Frames Per Second) monitor that displays a real-time oscillogram of frame rates, and a Time Profiler that records and displays the execution time of Objective-C method calls, including call depth and cost filtering. These tools allow developers to easily identify performance bottlenecks and frame rate issues within the DoraemonKit interface.
iOS/DoraemonKit/Src/Core/Plugin/Performance/TimeProfiler · high confidence
Add File Sync plugin with local web server for file transfer
Introduced a new File Sync plugin for iOS that enables file synchronization via a local web server. The plugin adds a \DoraemonFileSyncViewController\ that displays a banner, status label, and a toggle button to start or stop the GCDWebServer. When started, it displays the local IP and port for connection; when stopped, it halts the server. This provides a UI to manage file sync operations directly from the DoraemonKit interface.
iOS/DoraemonKit/Src/Core/Plugin/Platform/FileSync · high confidence
Add GPS mock UI components with iOS 13 dark mode support
The DoraemonKit GPS module introduces three new UI views for mock GPS functionality: DoraemonMockGPSCenterView, DoraemonMockGPSInputView, and DoraemonMockGPSOperateView. These components provide the interface for entering and displaying mock GPS coordinates. The implementation includes support for iOS 13's dark mode, ensuring the UI adapts its background colors appropriately for both light and dark themes.
iOS/DoraemonKit/Src/GPS/View · high confidence
Add GPS mock feature to DoraemonKit
Introduced a new GPS plugin and its associated view controllers, enabling users to simulate GPS locations on iOS. The implementation includes a plugin entry point, a map-based interface for selecting coordinates, and logic to handle user authorization and mock data persistence.
iOS/DoraemonKit/Src/GPS · high confidence
Add Multi-Control Plugin Entry Point
Introduces a new iOS plugin, DoraemonMultiControlPlugin, which registers a 'Multi-Control' entry in the DoraemonKit platform tools menu. Tapping this entry opens the DoraemonMCViewController, providing the user interface for the multi-device control feature.
iOS/DoraemonKit/Src/MultiControl/Plugin · high confidence
Add NSUserDefaults plugin with search and edit capabilities
Introduced a new NSUserDefaults plugin for DoraemonKit that provides a list of all user defaults, allowing users to search for specific keys and edit their values. The feature includes a main view controller for browsing and filtering, an edit view controller for modifying entries, and a model class to represent key-value pairs.
iOS/DoraemonKit/Src/Core/Plugin/Common/NSUserDefaults · high confidence
Add Network plugin to capture and display HTTP request/response details
A new Network plugin has been introduced to the web package, providing a UI for inspecting HTTP traffic. The plugin registers a router plugin that listens for request lifecycle events (SEND, DONE, ERROR) and updates a global state. The UI, composed of main.vue and request-item.vue, displays a list of requests showing their URL, type, method, and status, and allows users to expand each item to view detailed information including query parameters, body content, headers, and raw response data.
Web/packages/web/src/plugins/network · high confidence
Add QR code scanning plugin to DoKit for Web
Introduced a new 'Scan QR code' plugin for DoKit for Web, allowing users to scan QR codes via the browser's camera. The feature includes a Vue component (\app.vue\) and a router plugin registration (\index.js\) that integrates the scanner into the DoKit interface, handling camera permissions and scan results.
Web · high confidence
Add Swift demo application for iOS
A new Swift-based demo application (DoKitSwiftDemo) has been added to the iOS directory. This includes the full Xcode project structure, app delegate, and various view controllers demonstrating features such as logging, performance testing, network requests, GPS simulation, crash handling, and memory leak detection.
iOS/Swift · high confidence
Add Swift-based iOS Demo application
A new iOS Demo project has been added, providing a Swift-based example application. This includes the core application entry point (AppDelegate) which initializes the DoraemonKit debugging tool, a basic ViewController, and the necessary configuration files (Info.plist) to support the demo environment.
iOS/Demo · high confidence
Add UI depth profiling and visualization for view controllers
The DoraemonKit iOS plugin now includes a new UI profiling feature that visualizes the depth of the view hierarchy. When enabled via the 'UI层级' (UI Level) switch in the plugin's UI, the kit overlays a red border on the deepest view in the current view controller's hierarchy and displays the view class names and depth levels in a draggable, expandable window. This helps developers analyze and debug view controller structure and layout issues.
iOS/DoraemonKit/Src/Core/Plugin/Performance/UIProfile · high confidence
Add VCProfiler hooks for UIViewController lifecycle and WKWebView load events
The VCProfiler plugin now instruments iOS view controllers and web views to track performance metrics. For view controllers, it swizzles initialization methods (initWithNibName, initWithCoder) and lifecycle methods (viewDidLoad, viewWillAppear, viewDidAppear, viewWillDisappear, viewDidDisappear) to record page entry and exit times via DoraemonHealthManager. For WKWebView, it swizzles loadRequest to track H5 page opening. A blacklist mechanism is also introduced to skip profiling for specific view controllers.
iOS/DoraemonKit/Src/Core/Plugin/Performance/VCProfiler · high confidence
Add WeChat Mini Program example project
Added a new example WeChat Mini Program project in the miniapp/example directory, including the main application entry (app.js), configuration (app.json, project.config.json), styles (app.wxss), and sitemap. This provides a baseline implementation for developers to reference when building mini-apps.
miniapp/example · high confidence
Add Weex info view and data management
The DoraemonKit iOS SDK now includes a new Weex Info plugin that displays detailed Weex runtime information. This includes the Weex SDK version, JS library version, bundle type, bundle size, and various performance metrics such as download time, render time, and interaction times. The feature is implemented through a new \DoraemonWeexInfoPlugin\ that opens a \DoraemonWeexInfoViewController\ showing a list of Weex-related data points, with a header view for the bundle URL and a table view for the metrics. The \DoraemonWeexInfoDataManager\ singleton collects and stores the Weex information, while the \DoraemonWeexInfoAnalyzer\ processes the raw data. This allows users to inspect Weex-specific diagnostics and performance data within the DoraemonKit interface.
iOS/DoraemonKit/Src/Weex/Info · high confidence
Add Weex storage resolution for DoraemonKit
Introduced a new DoraemonWeexStorageResolver component that reads Weex storage data from a plist file located in the app's Documents directory. This adds a specific utility for resolving and retrieving Weex storage information within the iOS DoraemonKit framework.
iOS/DoraemonKit/Src/Weex/Storage/Function · high confidence
Add app launch time profiling and startup performance monitoring
Introduced a new startup performance plugin that measures and displays the app's launch time. The \DoraemonStartTimePlugin\ registers a view controller that allows users to toggle the startup time measurement and view the total startup duration. Additionally, a detailed time profiler view controller was added to display and export the startup cost details, providing deeper insight into the application's cold start performance.
iOS/DoraemonKit/Src/Core/Plugin/Performance/StartTime · high confidence
Add app-info and demo plugins to the web package
Introduced two new plugins in the web package: an 'app-info' plugin that displays device and page metadata (user agent, URL, screen dimensions, etc.) via a Vue component, and a 'demo' plugin that renders a simple 'Hello Dokit' message. Both are registered as RouterPlugins, making them available within the application's plugin system.
Web/packages/web/src/plugins/app-info · high confidence
Add business kit management and registration API
Introduced a new BizKitManager singleton that allows registering and managing business kits (BizKit) by group. The manager provides methods to build, add, and retrieve kits, enabling a custom entry point for business modules within the Flutter application.
Flutter/lib/kit/biz · high confidence
Add configurable zone handling and BizKit management API
The DoKit entry point now supports a \useRunZoned\ parameter, allowing users to disable the forced use of \runZonedGuarded\ to avoid conflicts with existing zones. Additionally, the SDK exposes new methods for managing BizKit instances, including \updateKitGroupTip\, \addKit\, \addBizKits\, \newBizKit\, and \buildBizKit\, providing a public API for registering and configuring kits.
Flutter/lib · high confidence
Add copyable label component
A new \DoraemonCopyLabel\ UI component has been introduced, extending \UILabel\ to support copying its text to the system clipboard. Users can now long-press the label to trigger a context menu with a 'copy' action, enabling convenient text copying directly from the UI.
iOS/DoraemonKit/Src/Core/CommonUI/Label · high confidence
Add core utility categories for Foundation, UIKit, and Objective-C runtime
The DoraemonKit iOS core now includes new utility categories: Foundation+Doraemon provides a readable description for NSDictionary, NSArray, and NSSet that attempts to parse and display JSON data and strings; NSObject+Doraemon adds safe method-swizzling helpers; UIColor+Doraemon adds color utilities including hex parsing and iOS 13 dark-mode-aware colors; UIImage+Doraemon adds image loading from xcassets, scaling, and color-based image generation; UIView+Doraemon adds convenient frame/size/center properties and view-hierarchy helpers; UIViewController+Doraemon adds safe-area and top/root view-controller helpers. These changes improve debugging, layout, and theming capabilities within the kit.
iOS/DoraemonKit/Src/Core/Category · high confidence
Add element inspection and attribute viewing capabilities
Introduces a new 'Element View' feature that allows users to inspect the DOM tree, view element attributes, and see computed styles. The update adds several new Vue components (ElementAttributes, ElementBoxModel, ElementBreadcrumb, ElementComputedStyle, ElementStyles, ElementTree) and their container (elementContainer) to display detailed information about selected elements, including their CSS properties, box model, and style rules.
Web/packages/web/src/plugins/element · high confidence
Add file sync and database management APIs via GCDWebServer
The DoraemonKit iOS plugin now exposes a local HTTP server (port 9002) to handle file and database operations. New endpoints allow users to retrieve device information, list and download files, upload and save files, create folders, and perform SQL-like operations (insert, update, delete, get) on local tables. This enables remote debugging and management of device files and app data through the DoraemonKit interface.
iOS/DoraemonKit/Src/Core/Plugin/Platform/FileSync/Function · high confidence
Add iOS Demo project configuration
A new iOS Demo project has been added, including the Xcode project file (project.pbxproj) and the associated Xcode scheme (Demo.xcscheme). This establishes the build configuration for the Demo application, linking source files like AppDelegate and ViewController, and integrating CocoaPods dependencies.
iOS/Demo.xcodeproj · high confidence
Add iOS memory leak detection via MLeaksFinder
The MLeaksFinder module is added to the iOS DoraemonKit, introducing a new memory leak detection feature. This includes a suite of Objective-C categories (e.g., \NSObject+MemoryLeak\, \UIViewController+MemoryLeak\, \UIView+MemoryLeak\) that swizzle UIKit methods to track object lifecycles. The implementation uses a proxy pattern (\MLeakedObjectProxy\) to monitor for potential leaks and, if enabled, integrates with \FBRetainCycleDetector\ to identify retain cycles. This allows users to identify and debug memory leaks within the application.
iOS/DoraemonKit/Src/MLeaksFinder/Function · high confidence
Add iOS multi-control interface for device streaming
The DoraemonKit iOS module now includes a new user interface for the 'one device, multiple control' feature. A new \DoraemonMCViewController\ has been added to manage the UI for connecting to a multi-control server, handling both WebSocket connections via IP address input or QR code scanning, and switching between master and slave modes.
iOS/DoraemonKit/Src/MultiControl/UserInterface · high confidence
Add iOS performance and UI debugging plugins
Introduced new debugging capabilities for iOS, including CPU and memory usage monitoring with real-time oscillograms, ANR (Application Not Responding) detection with history and clearing options, and a UI hierarchy viewer. These plugins allow users to toggle monitoring, view live metrics, and inspect the view hierarchy directly within the DoraemonKit interface.
(repo-wide) · high confidence
Add in-app database debugging feature
A new database debugging interface has been added to the iOS DoraemonKit. Users can now toggle a local debug server (port 9002) directly from the app to inspect database states, with UI controls to start/stop the service and view status messages.
iOS/DoraemonKit/Src/Database · high confidence
Add memory leak list view and cell components
The DoraemonKit iOS module introduces new UI components for the memory leak finder feature. A dedicated list view controller (DoraemonMLeaksFinderListViewController) and its corresponding table view cell (DoraemonMLeaksFinderListCell) have been added. These files implement the display of memory leak results in a scrollable list, allowing users to view detected leaks and navigate to a detail view.
iOS/DoraemonKit/Src/MLeaksFinder/List · high confidence
Add method use time analysis feature
A new 'Method Use Time' plugin has been added to DoraemonKit, providing a toggle to enable or disable the tracking of method execution times. Users can also navigate to a list view to review the collected performance data. This feature is implemented as a standalone plugin within the iOS SDK.
iOS/DoraemonKit/Src/MethodUseTime · high confidence
Add pthread hook kit for thread monitoring and debugging
Introduces a new pthread hook kit that enables thread monitoring and debugging on Android. The change adds a new kit (PThreadKit) that hooks into pthreads to capture thread information, including Java and native stack traces, thread counts, and thread names. It provides a UI (PThreadHookUiActivity) to display this information in a RecyclerView, and includes helper classes (AutoDumpListener, PThreadDumpHelper) to automatically dump thread data when thresholds are exceeded. The feature is registered as an inner kit within the Dokit framework.
Android/dokit-pthread-hook · high confidence
Add reusable Card and InfoCard components
Introduces two new shared UI components in the web package: a generic Card component for consistent card-style containers with a title and body, and an InfoCard component that displays key-value pairs with filtering, clearing, and refreshing capabilities.
Web/packages/web/src/common · high confidence
Add sandbox browser with SQLite and WebP support
The sandbox browser plugin now supports opening SQLite database files (with any suffix) and WebP images. Users can browse the device's sandbox, view database tables and data via a new DB viewer, and preview WebP images. The change also includes a fix for UserDefaults search.
iOS/DoraemonKit/Src/Core/Plugin/Common/Sanbox · high confidence
Add static resource inspection plugin to the web dashboard
A new 'Static Resources' plugin has been added to the web dashboard, providing a UI to inspect and view details of web resources (CSS, scripts, images). The feature includes a tabbed interface to filter resources by type, a list view showing resource entries, and an expandable detail view that displays image thumbnails or code content. The implementation registers the plugin via \@dokit/web-core\, defines resource type mappings and utility functions for fetching and processing resource data, and introduces new CSS variables for styling the resource inspection components.
Web/packages/web/src/plugins/resources · high confidence
Add toast notification component
A new toast notification component has been added to the core package, providing a simple way to display temporary messages to users. The component renders a centered, semi-transparent overlay with a fade-in and fade-out transition, displaying a message for a configurable duration (defaulting to 3 seconds). It is registered as a global property ($toast) on the Vue instance, allowing easy invocation throughout the application.
Web/packages/core/src/common/components/toast · high confidence
Add view metrics plugin to display element borders
Introduced a new ViewMetrics plugin for iOS that adds a toggleable border overlay to all views in the application. The implementation includes a configuration singleton (DoraemonViewMetricsConfig) to manage border color, width, and enabled state, and extends UIView to recursively apply or remove a colored border layer on layout changes. This feature allows users to visualize the layout structure of the app's UI elements.
iOS/DoraemonKit/Src/Core/Plugin/UI/ViewMetrics · high confidence
Add weak network status window for monitoring uplink/downlink traffic
The DoraemonKit iOS plugin now includes a new DoraemonWeakNetworkWindow that displays real-time uplink and downlink flow data in a draggable overlay. The window adapts its root view controller based on the iOS version: it uses a standard view controller for iOS 10+, but explicitly instantiates a DoraemonStatusBarViewController for iOS 9.0+ to ensure the status bar is correctly displayed. The UI updates flow values on the main thread and formats large byte values into kilobytes.
iOS/DoraemonKit/Src/Core/Plugin/Performance/WeakNetwork/View/Window · high confidence
Add web console plugin for logging and command execution
Introduces a new web console plugin that intercepts and displays browser console logs (log, info, warn, error) in a dedicated UI tab. The feature includes a tabbed interface to filter logs by type, a scrollable list of captured log entries with expandable details for objects and arrays, and a command execution input that evaluates JavaScript in the browser context. The plugin registers itself as a router plugin, overrides the native console methods to capture logs, and restores the original console behavior when unloaded.
Web/packages/web/src/plugins/console · high confidence
Add web event recording and playback capabilities
The core package introduces a new event recording and playback system for the web environment. A new \EventRecorder\ class monitors DOM interactions (clicks, touches, input, scroll) and logs them, while a new \EventPlayback\ class replays these events via WebSocket messages, supporting both manual and automated test modes. Supporting utilities include a \UIController\ for visual selection overlays, a \Socket\ wrapper for WebSocket management, and helper modules for node text extraction, CSS/XPath finding, and action mapping.
Web/packages/core/src/common/js · high confidence
Add web-vitals-time plugin for performance metrics
A new 'web-vitals-time' plugin has been added to the web package, introducing a 'Performance Metrics' feature that displays key web vitals (LCP, CLS, FID, TTFB) and page load timing details. The plugin registers a router plugin that renders an info-box component, which uses the 'web-vitals' library to collect and display performance data, including a fallback to 'LOADED' time for iOS compatibility.
Web/packages/web/src/plugins/web-vitals-time · high confidence
Added ANR list view and cell for browsing crash logs
The DoraemonKit iOS plugin now includes a dedicated view controller and table view cell for displaying a list of ANR (Application Not Responding) crash logs. Users can browse, sort by creation time, and delete these logs directly from the UI, with the ability to tap into individual files for detailed inspection.
iOS/DoraemonKit/Src/Core/Plugin/Performance/ANR/List · high confidence
Added CocoaLumberjack logger integration for log collection
The DoraemonKit now includes a new \DoraemonCocoaLumberjackLogger\ component that bridges the CocoaLumberjack logging framework to the DoraemonKit logger system. This change introduces new header and implementation files (\DoraemonCocoaLumberjackLogger.h/m\ and \DoraemonDDLogMessage.h/m\) to capture and store log messages, enabling features such as one-click export and single-line copying of logs.
iOS/DoraemonKit/Src/Logger/Function · medium confidence
Added CocoaLumberjack logger plugin and UI
Added a new plugin for the CocoaLumberjack logging framework, including the plugin implementation and a dedicated settings view. The new UI provides a toggle switch to enable or disable the logger without restarting the app, and a button to view the log records.
iOS/DoraemonKit/Src/Logger · high confidence
Added DoCol and DoRow layout components
The dokit-ui package now includes new \DoCol\ and \DoRow\ components for web-side layout. \DoRow\ supports flexbox-based grid layouts with configurable gutter, alignment, and justification. \DoCol\ provides a 24-column grid system with responsive breakpoints (xs, sm, md, lg, xl) and offset/push/pull utilities. These components are registered globally in the dokit-ui index.
Web/packages/core/src/common/components/dokit-ui · high confidence
Added DoKit GPS mock and LeakCanary integration components
Added new Android source files to support GPS location simulation and memory leak detection. The change introduces \BinderHookHandler\ and \CustomDialogFragment\ in the \dokit-gps-mock\ module to handle GPS hooking and UI. Additionally, multiple files from the \dokit-leakcanary\ module are added, including \ABridgeService\ for inter-process communication, and core LeakCanary classes (\ActivityRefWatcher\, \AnalysisResult\, \AndroidWatchExecutor\, \HeapAnalyzer\, \HeapDump\, \InstrumentationLeakDetector\, \LeakTrace\, \LeakTraceElement\, \RefWatcher\) to enable memory leak detection and analysis capabilities within DoKit.
. · high confidence
Added DoKit Web playground for local development and testing
The DoKit Web playground is now available for local development and testing. This includes new HTML pages (independent.html, index.html, index2.html, index3.html) that serve as test environments for the DoKit Web SDK, featuring multi-control capabilities, live reload functionality, and integration with external APIs. A dedicated development server script (dev-playground.js) has been added to serve these files and enable hot-reloading during development.
Web/playground · high confidence
Added DoKit engine modules for HTTP and MethodChannel monitoring
New engine files (dokit\_binding.dart, dokit\_http.dart) were added to the Flutter/lib/engine directory. These introduce a custom WidgetsBinding and BinaryMessenger wrapper to intercept and log MethodChannel calls, alongside an HttpOverrides implementation to capture HTTP client metrics. This adds the underlying infrastructure for monitoring network and platform channel activity within the DoKit toolkit.
Flutter/lib/engine · high confidence
Added DoraemonToastUtil for displaying toast messages
A new utility class, DoraemonToastUtil, has been added to the iOS/DoraemonKit/Src/Core/CommonUI/Toast directory. This class provides methods to display temporary toast notifications on the screen. The implementation includes support for iOS 13 dark mode by conditionally using system colors (labelColor) on iOS 13+ while falling back to black for earlier versions. It offers two display modes: a standard light-mode toast and a black-background toast with rounded corners, both of which automatically dismiss after 1.5 seconds.
iOS/DoraemonKit/Src/Core/CommonUI/Toast · high confidence
Added GPS location mocking infrastructure
Introduced new \CLLocationManager+Doraemon\ and \DoraemonGPSMocker\ classes to enable GPS location mocking. The \CLLocationManager\ category adds a method to swizzle the location delegate, while the \DoraemonGPSMocker\ singleton manages the mock state, intercepts location updates, and forwards them to registered delegates. This allows the DoraemonKit tool to simulate location changes for testing or debugging purposes.
iOS/DoraemonKit/Src/GPS/Function · high confidence
Added H5 Door plugin for URL navigation and history management
Introduced a new 'H5 Door' plugin that provides a user interface for entering and navigating to target URLs. The feature includes a text input for direct URL entry, a quick-edit mode for constructing URLs with query parameters, and a local storage-backed history list that allows users to revisit or delete previous destinations.
Web/packages/web/src/plugins/h5-door · high confidence
Added Kit and Observer components for routing and storage
Introduced new internal components for the Dokit Flutter kit: a generic storage interface (IStorage) with a bounded queue implementation (CommonStorage) for managing information objects, and a navigator observer (DokitNavigatorObserver) that forwards Flutter route lifecycle events (push, pop, remove, replace, user gestures) to internal observers for analytics or monitoring purposes.
Flutter/lib/kit · high confidence
Added MLeaksFinder plugin for memory leak detection
Users can now access a dedicated memory leak detection interface within the DoraemonKit settings. This new plugin provides controls to toggle memory leak detection, enable alert pop-ups for detected leaks, and view a history of leak records, allowing developers to monitor and manage memory issues directly from the UI.
iOS/DoraemonKit/Src/MLeaksFinder · high confidence
Added Method Use Time analysis and health check capabilities
Introduced a new DoraemonMethodUseTimeManager to track and analyze method execution times. The manager provides a toggle for enabling method use time tracking and exposes two distinct data views: a sorted list of load models by cost for general analysis, and a simplified array of class names with their execution times specifically for app health checks.
iOS/DoraemonKit/Src/MethodUseTime/Function · medium confidence
Added Storage plugin to inspect and manage browser storage
A new 'Storage' plugin has been introduced in the web package, providing a dedicated interface for managing browser storage. The feature includes a main view that aggregates three sub-components: 'localStorage', 'sessionStorage', and 'Cookie'. Each sub-component renders an 'InfoCard' displaying the respective storage contents, allowing users to view, filter, clear, or remove individual items. The implementation includes utility functions in \js/storage.js\ to handle the underlying browser APIs (e.g., overriding \localStorage\ methods to track changes) and direct cookie manipulation.
Web/packages/web/src/plugins/storage · high confidence
Added UI components for the Health plugin and ViewAlign debugging tool
Introduced new UI views for the Health plugin, including a footer view, home view, background view, button view, starting title view, instructions cell and view, and a countdown window. Additionally, added the ViewAlign plugin and its associated manager and view classes to support UI alignment debugging.
iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/View, iOS/DoraemonKit/Src/Core/Plugin/UI/ViewAlign · high confidence
Added UI hierarchy inspection utilities and helper classes
Introduced a new set of Objective-C categories and helper classes to support UI hierarchy inspection. This includes \NSObject+DoraemonHierarchy\ and \UIViewController+DoraemonHierarchy\ for retrieving object properties and managing UI alerts, \UIColor+DoraemonHierarchy\ for color description, \DoraemonEnumDescription\ for human-readable enum values, \DoraemonHierarchyFormatterTool\ for formatting values, and \DoraemonHierarchyHelper\ for window traversal. These components provide the foundational logic for displaying and editing UI hierarchy information.
iOS/DoraemonKit/Src/Core/Plugin/UI/Hierarchy/Function · high confidence
Added ViewCheck plugin to inspect UI components and properties
Introduced a new ViewCheck plugin that allows users to tap on UI elements to inspect their properties, such as class name, instance variable names, position, size, and styling details like background and text colors. This feature enhances debugging by providing detailed visual information about the selected view hierarchy.
iOS/DoraemonKit/Src/Core/Plugin/UI/ViewCheck · high confidence
Added Weex DevTool plugin and scanner view controller
Introduced a new Weex DevTool plugin (DoraemonWeexDevTooloPlugin) and its associated view controller (DoraemonWeexDevToolViewController) that implements a QR code scanning interface for Weex development tools. The plugin checks for simulator environments and displays a toast message if scanning is unsupported, otherwise it opens the scanner view controller which handles URL parsing and launches the Weex DevTool debug interface.
iOS/DoraemonKit/Src/Weex/DevTool · high confidence
Added Weex log and storage debugging tools
Introduced new debugging capabilities for Weex applications within the DoraemonKit iOS SDK. A new Weex Log plugin has been added, providing a dedicated interface to view, search, and filter Weex logs by level (Debug, Log, Info, Warning, Error). Additionally, a Weex Storage plugin was introduced, allowing users to inspect and view cached storage data directly through the DoraemonKit interface.
iOS/DoraemonKit/Src/Weex/Log, iOS/DoraemonKit/Src/Weex/Storage · high confidence
Added Weex log collection and storage
Introduced DoraemonWeexLogger and DoraemonWeexLogDataSource to capture and store Weex JavaScript logs. The logger registers with the Weex SDK to intercept log messages, filters for 'jsLog' entries, and stores them in a circular buffer (max 500 items) for later display.
iOS/DoraemonKit/Src/Weex/Log/Function · high confidence
Added Weex log viewing interface
Users can now view and filter Weex logs within the DoraemonKit toolset. This change introduces a new log viewing interface that includes a search bar for filtering logs by keyword, a segmented control for filtering by log level (Debug, Log, Info, Warn, Error), and a list view to display the log entries with expandable details.
iOS/DoraemonKit/Src/Weex/Log/View · high confidence
Added automated testing infrastructure for DoKit
Introduced a new automated testing module within the Android/dokit-test package. This includes a test mode manager to switch between host and client modes, event monitoring for accessibility and lifecycle events, and processors to simulate user interactions like clicks, scrolls, and text changes. The module also supports custom events and TCP message handling, enabling remote control and data collection for UI testing.
Android/dokit-test · high confidence
Added backtrace logging utility for iOS
Introduced a new backtrace logging utility, DoraemonBacktraceLogger, which provides methods to capture and format stack traces for the current thread, main thread, and all active threads. This addition enables developers to easily log detailed backtraces for debugging purposes.
iOS/DoraemonKit/Src/Core/Util/BSBacktraceLogger · high confidence
Added build configuration and documentation for the utils package
The utils package now includes a Rollup build configuration that compiles src/index.js into dist/index.js as an ES module, utilizing commonjs and terser plugins for production builds, alongside a README template for the package.
Web/packages/utils · medium confidence
Added color picker and view checker visual tools
Introduced two new visual debugging capabilities: a color picker that allows users to select colors from the screen, and a view checker that displays information about widgets under the cursor. These features are implemented in new files (color\_pick.dart, view\_check.dart) and registered in the visual kit manager.
Flutter/lib/kit/visual · high confidence
Added color picker plugin with magnifier and info window
The DoraemonKit iOS plugin now includes a new ColorPick feature, introducing a color picker interface. This includes a magnifying glass layer for precise color sampling, an info window displaying the selected color's hex code, and a draggable window for user interaction. The implementation supports iOS 13+ dark mode by dynamically adjusting UI colors and images based on the user interface style.
iOS/DoraemonKit/Src/Core/Plugin/UI/ColorPick · high confidence
Added common UI components for the web interface
Introduced three new reusable Vue components in the core package: a 'card' component for displaying lists of items with icons and titles, a 'top-bar' component providing a header with a back button and title, and a 'version' component that displays the current application version alongside an icon. These components establish the foundational visual elements for the web interface.
Web/packages/core/src/common/components · high confidence
Added crash log management and reporting features
Users can now enable or disable crash log collection via a new toggle in the Doraemon settings. The app provides a dedicated interface to view, preview, and share collected crash logs, and allows users to clear all stored crash data. Under the hood, the app now registers custom handlers for uncaught exceptions and critical signal exceptions (such as SIGSEGV, SIGABRT, etc.) to capture detailed stack traces and save them to the device's cache directory.
iOS/DoraemonKit/Src/Core/Plugin/Performance/Crash · high confidence
Added custom fishhook implementation for symbol rebinding
The DoraemonKit now includes a custom implementation of the fishhook library (doraemon\_fishhook.c/h) to handle symbol rebinding. This change introduces a dedicated mechanism for intercepting and replacing function pointers at runtime, which is essential for the kit's hotfix and debugging capabilities. The implementation includes specific handling for memory protection (vm\_protect) to ensure safe modification of read-only sections, addressing potential crashes related to shared library const data copy memory pages.
iOS/DoraemonKit/Src/Core/Util/fishhook · high confidence
Added file manager and OkHttp v4 integration modules
Introduced a new 'File Transfer' (FT) module for Android that enables remote file management via a local HTTP server. This includes a UI fragment, routing, and action handlers for operations such as listing files, uploading, downloading, creating, deleting, and renaming files, as well as querying and modifying SQLite databases. The module also registers as an inner kit and provides an ability processor for module initialization. Additionally, a new 'okhttp-v4' module was added to provide a wrapper for OkHttp v4 API calls.
Android/dokit-ft, Android/dokit-okhttp-v4 · high confidence
Added iOS demo app launch and main storyboards
The iOS demo application now includes its initial user interface files. A new LaunchScreen.storyboard defines the app's launch screen, while a new Main.storyboard establishes the primary view controller for the demo project, enabling the application to run with a basic UI structure.
iOS/Demo/Base.lproj · high confidence
Added iOS plugin to clear local app data
A new iOS plugin, DoraemonDeleteLocalDataPlugin, has been introduced to provide a user interface for clearing local data. The plugin registers a view controller that displays the current size of the app's home directory and, upon user confirmation, calls DoraemonUtil to clear local data, updating the UI to show a processing state during the operation.
iOS/DoraemonKit/Src/Core/Plugin/Common/DeleteLocalData · high confidence
Added in-app event tracking for DoraemonKit
A new \DoraemonBuriedPointManager\ component has been introduced to collect and report usage events. The manager aggregates event names and timestamps, automatically uploading them to the Doraemon analytics endpoint when the app enters the background, when more than 10 events are queued, or when 60 seconds have passed since the last upload. This enables basic telemetry for the DoraemonKit framework.
iOS/DoraemonKit/Src/Core/Util/BuriedPoint · high confidence
Added large image detection feature to iOS
Introduced a new 'Large Image Detection' plugin for iOS that monitors and identifies large images loaded via SDWebImage. The feature includes a manager to track image data and size, a toggle in the DoraemonKit UI to enable or disable detection, and a list view to display detected large images with their URLs and sizes. The implementation uses method swizzling on UIImageView to intercept image loading, allowing the tool to overlay text on images exceeding a configurable size threshold.
iOS/DoraemonKit/Src/Core/Plugin/Performance/LargeImageDetection · high confidence
Added memory leak data model for leak reporting
Introduced the DoraemonMemoryLeakData class to collect and manage memory leak information. This new component gathers details about detected leaks—including class name, object pointer, view stack, and retain cycle data—and provides a block-based callback mechanism for consumers to receive leak reports. The implementation leverages FBRetainCycleDetector to identify retain cycles when the internal flag is enabled, and forwards the collected leak data to the DoraemonHealthManager for further processing.
iOS/DoraemonKit/Src/MLeaksFinder/Function/Extra · high confidence
Added memory leak detail view for MLeaksFinder
A new detail view controller for the MLeaksFinder feature has been introduced, displaying memory leak information via a scrollable label. This component allows users to view detailed descriptions of detected memory leaks within the DoraemonKit interface.
iOS/DoraemonKit/Src/MLeaksFinder/Detail · high confidence
Added method use time list view for load performance analysis
A new list view has been added to the iOS DoraemonKit to display method execution time statistics. This includes a dedicated view controller and table view cell that render a list of methods sorted by their load time, allowing users to analyze performance metrics directly within the SDK.
iOS/DoraemonKit/Src/MethodUseTime/List · high confidence
Added miniapp debug tools: app information, HTTP injection, log viewing, and page navigation
The miniapp/dist directory now includes several new debug components: an App Information panel that displays system, account, user, and authorization details; an HTTP Injector for intercepting and modifying network requests; a Log Viewer for filtering and searching console logs; and a Page Door for simulating page navigation with dynamic parameters. These tools are integrated into the main debug interface, providing developers with immediate access to app state, network behavior, and navigation flows.
miniapp/dist · high confidence
Added miniapp example pages for user info and logs
The miniapp/example/pages directory now includes new example pages for displaying user information and viewing startup logs. The index page allows users to retrieve and display user profile data, make HTTP requests to external APIs (including a mock service), and interact with a custom 'dokit' component. The logs page provides a list of startup logs formatted with timestamps. These pages demonstrate miniapp initialization, API mocking, and component usage.
miniapp/example/pages · high confidence
Added multi-device control and event synthesis capabilities
The iOS DoKit module now supports multi-device control, allowing a master device to synchronize network requests and events to slave devices. This is implemented via a new \DKMultiControlProtocol\ and \DKMultiControlStreamManager\ to manage the master/slave state and WebSocket/TCP communication. Additionally, the toolkit now includes an event synthesis system (\UITouch+DKEventSynthesize\, \UIView+EventSynthesize\) that allows developers to programmatically generate and send simulated touch and gesture events (taps, long presses, drags, pinches) to the application's UI.
iOS/DoKit · high confidence
Added network interception and weak network simulation capabilities
The DoraemonKit iOS SDK now includes a new network interception layer located in the \Interceptor\ directory. This introduces a \DoraemonNSURLProtocol\ that intercepts \NSURLSession\ requests, enabling features such as network flow monitoring, data caching, and mock domain customization. Additionally, the update adds support for simulating weak network conditions (including breaking connections, timeouts, and speed limiting) and handles threading issues for UI updates during network operations.
iOS/DoraemonKit/Src/Core/Network · high confidence
Added new bar and pie chart components with iOS 13 dark mode support
The DoraemonKit library introduces new charting components, specifically DoraemonBarChart and DoraemonPieChart, which replace the previous PNChart dependency. These components provide native iOS drawing for bar and pie charts. The implementation includes support for iOS 13 dark mode, utilizing system colors like secondarySystemBackgroundColor and labelColor to adapt to the user's interface style, while maintaining compatibility with older iOS versions.
iOS/DoraemonKit/Src/Core/CommonUI/Charts · high confidence
Added new web components for scanning and tooling
Added ScanerComponent.vue, a new Vue component that enables QR code scanning via the device camera, and introduced supporting components: ToolHelloWorld.vue as a demo plugin, and ToolsContainer.vue which provides a tabbed interface for tools like Console, AppInfo, and HelloWorld. These components are part of the Dokit web integration, allowing users to scan QR codes and access built-in diagnostic tools through a unified UI.
Web/packages/web/src/components · high confidence
Added no-op implementation of DoKit Android SDK
Introduced a no-op (no-operation) stub implementation of the DoKit Android SDK. This module provides empty implementations for the core DoKit APIs, including the main entry points (DoKit, DoraemonKit), kit management (AbstractKit, IKit), floating window management (AbsDokitView, DokitViewManager), and various utility classes (NetworkRecord, PerformanceValueListener). This allows developers to include the DoKit dependency in their build configuration without enabling the actual debugging and monitoring features, effectively disabling the toolkit's functionality at runtime.
Android/dokit-no-op · high confidence
Added page launch performance monitoring with a draggable time counter
Introduced a new APM kit for tracking page launch performance. The change adds a route observer to measure the time taken for page transitions and displays a draggable overlay showing the previous page, new page, and cost time in milliseconds. Users can enable or disable this monitoring via a toggle in the APM kit interface, which inserts an overlay entry to display the time counter.
Flutter/lib/kit/apm/launch · high confidence
Added standalone plugin demo components
Users can now interact with a new standalone plugin demo, which includes an FPS monitor and a basic demo component, both featuring draggable behavior and the ability to be removed independently.
Web/packages/web/src/plugins/demo-single-plugin · high confidence
Added utility helpers for byte formatting, screen metrics, and time formatting
New utility files were added to the Flutter lib/util directory: byte\_util.dart provides a function to format byte counts into human-readable strings (B, K, M); screen\_util.dart introduces a singleton class to expose screen dimensions, density, and status bar heights via the Flutter MediaQuery; and time\_util.dart adds a helper to format epoch timestamps using the date\_format library.
Flutter/lib/util · high confidence
Added utility libraries for CSS inspection and deep cloning
The web package now includes new utility modules in the assets directory: CssStore.js provides methods to retrieve computed styles and matched CSS rules for DOM elements; deepClone.js implements a robust deep clone function that handles complex types like Maps, Sets, Functions, and circular references; and util.js adds helper functions for data type detection, object stringification, GUID/UUID generation, event bus, and device detection. These utilities support internal web-side features such as element inspection and data manipulation.
Web/packages/web/src/assets · high confidence
Added weak network simulation plugin
Introduced a new iOS plugin that simulates poor network conditions. The change adds the \DoraemonWeakNetworkPlugin\ and its associated controller, manager, and handle classes, enabling users to toggle a 'weak network mode' via a switch in the Doraemon UI. When enabled, the plugin intercepts network requests and throttles data flow (uplink/downlink speed and delay) to simulate unstable or slow network environments for testing purposes.
iOS/DoraemonKit/Src/Core/Plugin/Performance/WeakNetwork/Function · high confidence
Added web utility functions and hooks
Added a suite of new utility functions and hooks to the web package, including a deep clone implementation, an MD5 hash utility, an event emitter class, and a network request wrapper that hooks into XMLHttpRequest and fetch to support multi-control scenarios. Additionally, a v-dragable directive was added to allow elements to be dragged and have their position cached in local storage.
Web/packages/utils/src · high confidence
Added widget build chain and details views
Introduced new Flutter UI components for inspecting the widget build chain and widget details. The widget\_build\_chain\_page.dart file adds a controller and page that display a list of widgets in the build chain with search and filtering capabilities. The widget\_details\_page.dart file adds a new view that presents the widget overview and render object details, including horizontal scrolling support for the details page.
_Flutter/lib/widget/widget\_build\chain · high confidence
Adds English and Simplified Chinese localization for DoraemonKit UI strings
The DoraemonKit iOS module now supports English and Simplified Chinese interfaces. Users will see translated text for tool categories (e.g., 'Customize', 'Performance'), feature labels (e.g., 'Health Check', 'Mock Data'), and status messages across the kit's various debugging and monitoring screens.
iOS/DoraemonKit/Resource/en.lproj · high confidence
Adds core utility classes for network, statistics, thread-safety, and localization
The DoraemonKit iOS SDK now includes new utility classes to support internal features: DoraemonNetworkUtil provides a thread-safe, singleton-based HTTP client for GET, POST, and PATCH requests with JSON serialization and HTTPS handling; DoraemonStatisticsUtil collects and uploads anonymous usage data (app ID, name, version, language) to a remote endpoint; DoraemonThreadSafeMutableArray and DoraemonThreadSafeMutableDictionary offer thread-safe alternatives to standard mutable collections using recursive pthread mutexes; and Doraemoni18NUtil provides localized string lookup for internationalization. These utilities enable the SDK to perform network operations, track usage, manage state safely across threads, and support multiple languages.
iOS/DoraemonKit/Src/Core/Util · high confidence
Centralized settings persistence via DoraemonCacheManager
The DoraemonKit now uses a dedicated \DoraemonCacheManager\ singleton to persist user preferences and state for all internal tools. This includes toggle states for features like FPS, CPU, memory, and network monitoring, as well as configuration for mock GPS coordinates, crash logs, and H5/JS script history. By centralizing these switches and records, the app ensures that tool states (e.g., enabling memory leak detection or H5 history sorting) are preserved across app restarts.
iOS/DoraemonKit/Src/Core/Cache · high confidence
DoKit Android plugin refactored with new extension and transform architecture
The DoKit Android plugin has been refactored to use a new configuration model with dedicated extension classes (DoKitExtension, GpsExtension, NetworkExtension, BigImageExtension, etc.) that allow granular control over features like GPS mocking, network interception, and slow method detection. The plugin now registers multiple transform tasks to handle different aspects of the application, including class transformation for various libraries (OkHttp, Glide, etc.) and stack-based method tracing. This change improves the plugin's modularity and configurability, allowing users to enable or disable specific debugging features more precisely.
Android/dokit-plugin · high confidence
DoKit Android plugin restructured with new extension classes and transform logic
The DoKit Android build plugin has been refactored, introducing a new DSL-based configuration model via extension classes (DoKitExtension, GpsExtension, NetworkExtension, BigImageExtension, SlowMethodExtension, WebViewExtension) that allow users to enable or disable specific debugging features like GPS mocking, network monitoring, and slow method detection. The plugin now registers multiple dependent transforms for stack-based slow method detection, supporting a configurable call depth (defaulting to 5 levels). Additionally, the plugin includes logic to parse the AndroidManifest.xml to identify application components and third-party libraries, and integrates with the Android Gradle Plugin (AGP) 7.0+ via the new Variant API (DoKitCommonTransformV34) while maintaining backward compatibility for older AGP versions.
Android/buildSrc · high confidence
DoKit miniapp SDK initialization and build tooling
The miniapp directory is initialized with the DoKit debugging SDK for WeChat mini-programs, including a Babel configuration, a Gulp build pipeline (handling styles, scripts, and assets), and PostCSS configuration. This adds the core SDK structure and build automation for the miniapp component.
miniapp · high confidence
DoraemonManager API expansion and plugin enumeration
The DoraemonKit SDK introduces a comprehensive \DoraemonManagerPluginType\ enumeration that explicitly lists all supported debugging tools, including performance monitors (FPS, CPU, memory, network flow, ANR, startup time, large image detection, and UI hierarchy), visual tools (color picker, view metrics, alignment guides), platform tools (mock data, health check, file sync), and utility plugins (NSLog, CocoaLumberjack, database, NSUserDefaults, JS scripts). The \DoraemonManager\ class now exposes methods to add, remove, and manage these plugins by type or name, and supports custom initialization via mock domains, starting positions, and callback blocks for H5 doors, ANR events, and performance data.
iOS/DoraemonKit/Src/Core/Manager · high confidence
GPS mock module adds route simulation and coordinate conversion
The GPS mock module now supports simulating movement along a route (trajectory simulation) and random drift, with support for speed updates. It also includes utilities for converting between WGS84, GCJ-02, and BD-09 coordinate systems, and hooks into location services to intercept and modify location updates for third-party map SDKs (Amap, Baidu, Tencent, etc.).
Android/dokit-gps-mock · high confidence
H5 Any Door feature: new web view controller and QR code scanning
The H5 Any Door feature now includes a dedicated web view controller (DoraemonDefaultWebViewController) that displays a progress bar during page loading. Additionally, the feature integrates a QR code scanning capability, allowing users to scan a QR code to automatically populate and navigate to a URL.
iOS/DoraemonKit/Src/Core/Plugin/Common/H5 · high confidence
Initial Flutter example app scaffolding
The Flutter/example directory now contains a complete, runnable example application. This includes the Dart entry point (main.dart) which integrates the DoKit debugging toolkit and configures method channel blacklisting, alongside the necessary Android (AndroidManifest, MainActivity, Gradle wrapper) and iOS (Xcode project, Info.plist, launch screens) platform configurations to support the Flutter engine and plugins.
Flutter/example · high confidence
Initial release of DoKit for Flutter
This change introduces DoKit for Flutter, a debugging toolkit that provides features such as log viewing, network request monitoring, method channel information, route information, frame rate, memory usage, basic information, control inspection, color picker, widget hierarchy, page source code viewing, and page startup time tracking. The package supports Flutter version 1.17.5 and above, with a specific branch for Flutter 2.0 and null safety. The entry point is initialized via \DoKit.runApp\ or \DoKitApp\ wrapper, and the toolkit includes a custom overlay container to prevent \InheritedWidget\ conflicts. The release also includes a \.gitignore\ file, a \.metadata\ file for Flutter tooling, an \analysis\_options.yaml\ for code style, and a \flutterw\ script for managing the Flutter SDK version 2.0.6.
Flutter · high confidence
Integrates LeakCanary for memory leak detection
Adds the \dokit-leakcanary\ module to the Android/dokit codebase, integrating the Square LeakCanary library to detect and report memory leaks. This includes the necessary AndroidManifest configuration for services and activities, AIDL interfaces for cross-process communication, and manager classes to initialize LeakCanary and handle leak data via AIDL and Messenger bridges.
Android/dokit · high confidence
Introduce DoKit Web interface and navigation
The DoKit Web interface is now available, featuring a draggable entry button and a main container that renders a home page, a router-based navigation system, and support for independent plugins. Users can now access the DoKit dashboard, navigate between features, and view element properties via a new highlight component.
Web/packages/core/src/components · high confidence
Introduce Dokit Web core entry point
Added the core entry point for the Dokit Web package, establishing the main \Dokit\ class that initializes the Vue application, registers router and store, and manages lifecycle hooks. This includes support for multi-device control scenarios via \startMultiControl\ and \stopMultiControl\ methods, and native container detection.
Web/packages/core/src · high confidence
Introduce VM service wrapper and version parsing for APM
Added new files in the Flutter APM kit to manage the Dart VM service connection and parse Flutter version details. The \vm\_service\_wrapper.dart\ file provides a singleton wrapper to connect to the VM service, handle extension methods, and manage isolate references. The \vm\_helper.dart\ file acts as a helper to resolve VM information, including memory usage and allocation profiles. The \version.dart\ file introduces a \FlutterVersion\ class to parse and compare semantic versions of the Flutter framework and engine, enabling the APM kit to track and verify Flutter environment details.
Flutter/lib/kit/apm/vm · high confidence
Introduce dedicated module for multi-device control and automated testing
The Android/dokit-mc module now contains the complete implementation for the 'one machine, multiple control' feature, including host and client controllers, connection management, and UI fragments. This change separates the automated testing and multi-control logic from the main DoKit codebase into a distinct module, providing a dedicated entry point (MultiControlKit) and supporting components like the DoKitMcActivity, WebSocket routing, and history management for connecting to and controlling remote devices.
Android/dokit-mc · high confidence
Introduce standalone Dokit Web package with full Vue runtime
A new independent package for Dokit on the web is introduced, providing a self-contained build that includes the complete Vue runtime. This allows the web client to operate without external dependencies, bundling the core Dokit functionality and features into a single distributable file via a new Rollup configuration.
Web/packages/web-independent · high confidence
Introduced DoKitApp wrapper and floating debug UI components
Added new Flutter UI components to support the DoKit debugging interface. The \DoKitApp\ widget wraps the application's root widget to inject a \DokitNavigatorObserver\ for non-invasive route observation. A draggable floating button (\DoKitBtn\) allows users to open the debug overlay. The overlay itself is managed via a \GlobalKey\ and uses a \Stack\ to prevent \InheritedWidget\ conflicts. Additional UI elements include a \KitPage\ for displaying tools, a \ResidentPage\ for persistent tool access, a \DashedDecoration\ for visual styling, and an \FpsChart\ for performance monitoring.
Flutter/lib/ui · high confidence
Introduces DoraemonDefine.h with versioning, layout, and utility macros
A new header file DoraemonDefine.h is added to the Core/Define directory, establishing the DoKit version as 3.0.8 and providing layout constants for iPhone X series devices (navigation bar, status bar, and safe area heights). The file also introduces utility macros for screen dimensions, interface orientation detection, string/array/dictionary validation, and logging control.
iOS/DoraemonKit/Src/Core/Define · high confidence
Introduces DoraemonPluginProtocol and DoraemonStartPluginProtocol
New protocol headers are added to define the interface for Doraemon plugins. DoraemonPluginProtocol specifies optional lifecycle methods for plugin loading, including a new overload that accepts an itemData dictionary. DoraemonStartPluginProtocol defines an optional startPluginDidLoad method. These protocols standardize how plugins are loaded and initialized within the DoraemonKit framework.
iOS/DoraemonKit/Src/Core/Plugin/Protocol · medium confidence
Introduces a global application store for managing UI state and plugins
A new global store has been added to manage application state, including flags for container and highlight element visibility, lists for independent plugins and interfaces, and queues for multi-client communication. This provides a centralized mechanism for updating and retrieving global data, as well as adding or removing independent plugins.
Web/packages/core/src/store · high confidence
Introduces a modular plugin architecture for web-based debugging and development tools
The web package now exposes a structured plugin system that organizes debugging capabilities into categories such as 'Common Tools' (including console, app info, network, storage, and scan code), 'Platform Features' (such as API mocking), and 'Visual Features' (like an align ruler). This change consolidates various web-side functionalities into a unified \Dokit\ instance, enabling users to access these development tools directly within the web environment.
Web/packages/web/src · high confidence
Introduces new base view controllers for consistent UI and status bar handling
The DoraemonKit iOS library adds new base view controllers to standardize the appearance and behavior of internal screens. DoraemonBaseViewController provides a unified navigation bar and title bar implementation, including support for iOS 13 dark mode and proper key window management when input fields are focused. DoraemonStatusBarViewController ensures the status bar is correctly displayed on iOS 9.0+ systems, addressing issues where the status bar might otherwise be hidden. These changes improve visual consistency and compatibility across different iOS versions and device types.
iOS/DoraemonKit/Src/Core/Base · high confidence
Introduction of Dokit Web core and web packages
The repository now includes new \dokit-core\ and \dokit-web\ packages, each with their own build configuration and documentation. The \dokit-core\ package provides a non-invasive container for customizing Dokit Web, supporting external configuration injection, plugin registration, and basic runtime capabilities. The \dokit-web\ package serves as the main web implementation, bundling into a global \dokit\ IIFE, and includes a console log component. Both packages are configured with Rollup to handle Vue components, PostCSS, and other standard web build steps.
Web/packages/web · high confidence
New ANR (Application Not Responding) monitoring components
Added new classes for detecting main thread blocking and ANR conditions on iOS. The update introduces DoraemonANRManager to coordinate tracking, DoraemonANRTracker to perform the actual monitoring using a background ping thread, and DoraemonANRTool to persist collected ANR information to the local cache directory.
iOS/DoraemonKit/Src/Core/Plugin/Performance/ANR/Function · high confidence
New APM and system info kits for performance and debugging
The toolkit now includes a comprehensive set of performance monitoring and debugging kits. The APM suite adds dedicated tools for monitoring FPS, memory usage, HTTP requests, logs, method channels, route navigation, and source code viewing. Additionally, a new 'Basic Info' kit displays system details such as CPU, Dart VM version, Flutter version, and isolate information. These new kits provide deeper insights into application performance and state.
Flutter/lib/kit/apm · high confidence
New CocoaLumberjack logger list with filtering, export, and copy capabilities
The CocoaLumberjack logger list has been refactored into new view controllers and cells (DoraemonCocoaLumberjackListViewController, DoraemonCocoaLumberjackListCell, etc.) to support filtering logs by level (Verbose, Debug, Info, Warn, Error) via a segmented control. Users can now export logs as text, clear the log list, and copy individual log entries to the clipboard. The implementation includes a search view for filtering by message content and handles iOS 13 dark mode styling for the segment control.
iOS/DoraemonKit/Src/Logger/List · high confidence
New DoraemonHealthManager for app health checks
Added a new DoraemonHealthManager component that manages application health checks, including CPU, memory, FPS, and network monitoring. The manager provides methods to start/stop health checks, reboot the app for health checks, and collect metrics like CPU usage, memory usage, FPS, and network flow. It also includes functionality for ANR (Application Not Responding) detection, UI thread monitoring, and memory leak detection.
iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Function · high confidence
New JavaScript execution plugin for iOS
Added a new JavaScript plugin that allows users to execute custom JavaScript code in the current WebView. The feature includes a list view to manage saved scripts, a detail view for editing and running scripts, and a manager that handles evaluation via WKWebView or UIWebView. The plugin also provides built-in scripts for debugging (vConsole), reloading, and navigating the page history.
iOS/DoraemonKit/Src/Core/Plugin/Common/JavaScript · high confidence
New Kit Manager interface for managing DoraemonKit modules
The Kit Manager screen has been refactored into a new \DoraemonKitManagerViewController\ with a dedicated \UICollectionView\-based UI. Users can now view all available DoraemonKit modules in a grid, toggle their enabled/disabled state via an edit mode, and reset the configuration to its initial state. The implementation includes new cell classes (\DoraemonKitManagerCell\, \DoraemonKitManagerHeadCell\, \DoraemonKitManagerResetCell\) that support custom icons and selection states.
iOS/DoraemonKit/Src/Core/Entry/Home/Settings/KitManager · high confidence
New NetFlow plugin with detailed request/response inspection and real-time monitoring
The iOS DoraemonKit now includes a new NetFlow plugin that provides a dedicated interface for monitoring and inspecting network traffic. Users can view a list of intercepted HTTP requests and responses, with detailed breakdowns of headers, body content, and performance metrics like duration and data size. The plugin also introduces a real-time oscillogram window that visualizes network flow activity, and allows users to toggle network monitoring on or off via the main DoraemonKit home screen. This adds a new capability to the toolkit for debugging and analyzing network behavior.
iOS/DoraemonKit/Src/Core/Plugin/Performance/NetFlow · high confidence
New Settings page with dynamic, remote-configured menu items
The Settings screen has been replaced with a new \DoraemonSettingViewController\ that fetches a list of menu items from a remote JSON configuration. Each item can be either a native navigation to the Kit Manager or a web view, allowing the menu structure to be updated remotely without app updates.
iOS/DoraemonKit/Src/Core/Entry/Home/Settings · high confidence
New Sub-Thread UI Rendering Check Plugin
The DoraemonKit iOS plugin for checking UI rendering on non-main threads has been added. This feature intercepts \setNeedsLayout\, \setNeedsDisplay\, and \setNeedsDisplayInRect\ on \UIView\ instances to detect and log violations where UI updates occur off the main thread. Users can toggle this check via a switch in the DoraemonKit interface and view a list of detected issues with detailed backtrace logs.
iOS/DoraemonKit/Src/Core/Plugin/Performance/SubThreadUICheck · high confidence
New debug tools: API mock, HTTP request injection, and log viewer
Added new debugging components for miniapps: an API mock tool that allows developers to intercept and modify API responses for testing; an HTTP request injector that enables interception and modification of network requests; and a log viewer that captures and displays console logs (debug, log, info, warn, error) for easier inspection. These tools are now available in the debug menu.
miniapp/src · high confidence
New floating entry window with drag-and-drop and auto-docking
The DoraemonKit now introduces a new floating entry window (DoraemonEntryWindow) that serves as the primary UI entry point. Users can drag this floating button around the screen, and it will automatically dock to the nearest screen edge when released. The window also supports an 'auto-dock' mode that can be toggled, and it respects the user's last known position. The implementation includes dark mode support for the button's image and integrates with the existing home window to show/hide the main tool panel.
iOS/DoraemonKit/Src/Core/Entry/Entry · high confidence
New iOS Mock plugin with data management and upload capabilities
The DoraemonKit iOS SDK now includes a new Mock plugin that allows users to manage and upload mock data. This feature introduces a new plugin entry point and a dedicated UI for browsing, filtering, and selecting mock APIs and upload templates. The implementation includes a manager to handle data fetching, caching, and state management, along with view controllers for listing APIs and uploading templates. Users can now view mock data, filter by groups and states, and upload local mock data templates.
iOS/DoraemonKit/Src/Core/Plugin/Platform/Mock · high confidence
New oscillogram UI components for performance monitoring
Added a new set of UI components for displaying performance metrics (CPU, FPS, Memory, NetFlow) as oscillograms. This includes a reusable \DoraemonOscillogramView\ for rendering line charts, a \DoraemonOscillogramViewController\ to manage the view hierarchy, and a \DoraemonOscillogramWindow\ to present the charts in an overlay window. A \DoraemonOscillogramWindowManager\ is also introduced to coordinate the layout of these four specific monitoring charts, supporting both portrait and landscape orientations.
iOS/DoraemonKit/Src/Core/CommonUI/Oscillogram · high confidence
New reusable UI components for settings: input fields and switches
The DoraemonKit settings interface now uses dedicated \DoraemonCellInput\ and \DoraemonCellSwitch\ components. These new views provide consistent, reusable UI elements for displaying text inputs and toggle switches within the settings menu, improving the visual consistency of the settings page.
iOS/DoraemonKit/Src/Core/CommonUI/CellInput, iOS/DoraemonKit/Src/Core/CommonUI/CellSwitch · high confidence
New visual debugging tools: info window and magnifier
Added two new visual debugging components to the iOS SDK: a floating info window for displaying text or attributed strings, and a magnifier window for zooming in on specific screen areas. The info window supports iOS 13 dark mode by dynamically swapping close button images and background colors based on the current user interface style. The magnifier window implements a custom layer rendering approach to provide a zoomed-in view of the target window's content. Both components are designed to be used for visual inspection and debugging within the app.
iOS/DoraemonKit/Src/Core/CommonUI/Visual · high confidence
Restructured iOS demo app with new view controllers and assets
The iOS demo application has been reorganized into a modular structure with dedicated view controllers for each feature: a home screen listing all demos, and separate screens for logging, crash simulation, memory leak testing, GPS mocking, and multi-control gesture testing (long press, pinch, rotation, swipe, and edge pan). The app now uses a base view controller for consistent navigation bar styling and includes new asset catalogs for app icons and images. This change improves the demo's organization and provides clearer examples of each DoraemonKit feature.
iOS/DoraemonKitDemo/DoraemonKitDemo · high confidence
iOS demo project structure and configuration added
The Xcode project file (project.pbxproj) and workspace configuration for the DoraemonKit iOS demo application have been added to the repository. This establishes the build configuration for the demo app, including references to source files for features like multi-control gestures, memory leak detection, network monitoring, and crash logging, as well as resources such as images, HTML, and media files.
iOS/DoraemonKitDemo/DoraemonKitDemo.xcodeproj · high confidence
iOS multi-device control: new event sync and serialization components
The iOS DoraemonKit now includes a complete set of new files for the 'one-device-multi-control' feature, introducing client-server communication, event capturing, command generation, and serialization logic. Specifically, the diff adds \DoraemonMCClient\ and \DoraemonMCServer\ for handling network communication, \DoraemonMCCommandGenerator\ and \DoraemonMCCommandExcutor\ for creating and processing control commands, and \DoraemonMCEventCapturer\ to intercept UI events (gestures, controls, text input) and serialize them for transmission. Additionally, helper classes like \DoraemonMCMessagePackager\ and various serializer categories (e.g., \UIGestureRecognizer+DoraemonMCSerializer\) are added to manage message formatting and state synchronization across devices.
iOS/DoraemonKit/Src/MultiControl/Function · high confidence
Behavioural changes
Add DoraemonBaseBigTitleView with iOS 13 Dark Mode support
Introduces a new DoraemonBaseBigTitleView component that adapts to iOS 13's Dark Mode. The view now dynamically adjusts title text color and the close button image based on the current user interface style (light vs. dark), ensuring proper contrast and visual consistency in both modes.
iOS/DoraemonKit/Src/Core/Base/View · high confidence
Add health check end-state input and discard functionality
The Health plugin now presents an alert view when ending a health check, requiring users to input the test case name and tester name before submission. The interface includes 'Submit', 'Discard', and 'Cancel' actions, allowing users to either save the health check data, discard it without saving, or cancel the operation entirely.
iOS/DoraemonKit/Src/Core/Plugin/Platform/Health · high confidence
Added DoraemonKit.h umbrella header
A new umbrella header, DoraemonKit.h, was added to the Core directory. This header aggregates the public interfaces for DoraemonManager and DoraemonBaseViewController, providing a single import point for the SDK's core components.
iOS/DoraemonKit/Src/Core · high confidence
Extracted alert utility for consistent iOS dialogs
The alert functionality has been extracted from the toast component into a new, dedicated utility class (DoraemonAlertUtil). This provides a standardized way to present alert dialogs with customizable titles, messages, and action blocks, improving code reuse and consistency across the app.
iOS/DoraemonKit/Src/Core/CommonUI/Alert · medium confidence
NSLog list view refactored with new search and cell components
The NSLog list view has been refactored to use new, dedicated components: DoraemonNSLogListCell for displaying log entries, DoraemonNSLogListViewController to manage the list, and DoraemonNSLogSearchView to handle search input. This change introduces a search bar that filters the log list by content and updates the table view dynamically, while the cell component handles rendering individual log items with expandable details.
iOS/DoraemonKit/Src/Core/Plugin/Common/NSLog/List · high confidence
NSLog plugin refactored with new manager and view controllers
The NSLog plugin has been restructured into dedicated components: a new \DoraemonNSLogPlugin\ entry point, a \DoraemonNSLogViewController\ for the settings UI, and a \DoraemonNSLogManager\ that handles log interception via \fishhook\ (swizzling \NSLog\). The \DoraemonNSLogModel\ is introduced to store log entries. This change isolates the NSLog functionality into a self-contained plugin structure, enabling dynamic start/stop of log monitoring without app restarts.
iOS/DoraemonKit/Src/Core/Plugin/Common/NSLog/Function · medium confidence
New Weex Storage view components for iOS 13 Dark Mode support
Added new UI components for the Weex Storage feature, including DoraemonWeexStorageCell, DoraemonWeexStorageRowView, and DoraemonWeexStorageShowView. These views implement iOS 13 Dark Mode compatibility by conditionally applying system colors (such as secondarySystemBackgroundColor and labelColor) on iOS 13 and later, while falling back to hardcoded hex colors for earlier versions. This ensures the Storage view displays correctly in both light and dark modes.
iOS/DoraemonKit/Src/Weex/Storage/View · high confidence
New home page cell components for DoraemonKit
The home page UI has been refactored into dedicated cell classes (DoraemonHomeCell, DoraemonHomeCloseCell, DoraemonHomeFootCell, and DoraemonHomeHeadCell). These new components handle the display of tool icons and names, a close button with a confirmation dialog, a footer title, and a header with title and subtitle rendering. The implementation includes iOS 13+ dark mode support for background colors and labels.
iOS/DoraemonKit/Src/Core/Entry/Home/Cell · high confidence
Redesigned DoKit home screen with UICollectionView and new window management
The DoKit home entry has been rebuilt using a UICollectionView to display plugin icons, replacing the previous implementation. This change introduces new components including DoraemonHomeViewController, DoraemonHomeWindow, and DoraemonNavigationController. The new home screen supports dynamic theming for iOS 13+ (using system background colors), handles screen rotation via the DoraemonManager's supportedInterfaceOrientations property, and manages the overlay window for the DoKit interface. The layout adapts to different screen sizes and orientations, fixing issues with button obstruction and landscape mode rendering.
iOS/DoraemonKit/Src/Core/Entry/Home · high confidence
Redesigned UI for the UI Hierarchy plugin
The UI for the UI Hierarchy plugin has been completely rebuilt with new view controllers, table view controllers, and custom table cells. The \DoraemonHierarchyViewController\ now manages a picker overlay and an info view (\DKHierarchyInfoView\) that displays details about the selected view. The detail view (\DoraemonHierarchyDetailViewController\) uses a segmented control to switch between 'Object' and 'Size' hierarchies. New cell types (\DoraemonHierarchyTitleCell\, \DoraemonHierarchyDetailTitleCell\, \DoraemonHierarchySelectorCell\, \DoraemonHierarchySwitchCell\) provide a consistent look and feel for displaying hierarchy data. The \DoraemonHierarchyWindow\ is now properly configured for iOS 13+ multi-scene support.
iOS/DoraemonKit/Src/Core/Plugin/UI/Hierarchy/UserInterface · high confidence
Refactored Weak Network plugin UI into modular view components
The Weak Network performance plugin's user interface has been restructured into dedicated view classes: DoraemonWeakNetworkDetailView, DoraemonWeakNetworkLevelView, and DoraemonWeakNetworkInputView. This change separates the display of network condition types (e.g., timeout, speed limit) from the input fields for configuring delay and bandwidth, providing a cleaner and more maintainable interface for adjusting weak network simulation settings.
iOS/DoraemonKit/Src/Core/Plugin/Performance/WeakNetwork/View · high confidence
Replaced QR code scanning implementation with a new DoraemonQRScanView
The QR code scanning functionality in the H5 plugin has been replaced with a new DoraemonQRScanView component. This new implementation provides a customizable camera view for scanning QR codes, featuring a delegate-based callback system for scan results and brightness levels. It supports customizing the scan area, scan line, corner lines, and border lines, and handles camera permissions and status checks internally. This change addresses previous issues with the H5 'any door' scanning feature, specifically fixing a crash related to mask views and ensuring that only one browser page opens upon successful scan.
iOS/DoraemonKit/Src/Core/Plugin/Common/H5/QRCode · high confidence
Source code display now features syntax highlighting
The source code view has been updated to include syntax highlighting for Dart code, improving readability with color-coded keywords, comments, and strings. This change requires a minimum Flutter version of 2.0.0 and is compatible with Dart's null safety.
_Flutter/lib/widget/source\code · high confidence
Test coverage
Added initial widget test scaffold; Added placeholder test files for core, utils, and web packages.
Dependencies
Android build system and dependency configuration
The Android build configuration has been updated to support multiple Kotlin versions (1.3.72 and 1.4.32) and Android Gradle Plugin versions (4.2.2 and 7.0.0) via the \config.gradle\ file. The \doraemonkit.gradle\ script now conditionally applies either the local debug plugin or the remote \dokitx\ release plugin based on the \run\_type\ configuration. Additionally, the project structure includes new or updated \build.gradle\ files for various DoKit modules (such as \dokit-autotest\, \dokit-ft\, \dokit-gps-mock\, \dokit-leakcanary\, \dokit-mc\, \dokit-no-op\, \dokit-okhttp-api\, \dokit-plugin\, and \dokit-pthread-hook\), each defining their specific dependencies and build settings.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 37 → 38 (+1.5)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 60 → 62 (+2.1)
- Architecture 87 → 86 (-0.2)
- Maturity 48 → 48 (+0.0)
- Readiness 28 → 29 (+1.0)
- Security 62 → 70 (+7.9)
- Accessibility 30 → 32 (+2.1)
Resolved (132)
- (anonymous) (cognitive 27) (Web/packages/core/src/common/js/EventPlayback.js)
- Coverage not included — suite not readable by the collector
- Critical CVE: [GHSA redacted] (miniapp/package-lock.json)
- Critical CVE: [GHSA redacted] (miniapp/package-lock.json)
- Critical CVE: [GHSA redacted] (miniapp/package-lock.json)
- Critical CVE: [GHSA redacted] (miniapp/package-lock.json)
- Critical CVE: [GHSA redacted] (miniapp/package-lock.json)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (Android/dokit-gps-mock/src/main/java/com/didichuxing/doraemonkit/gps_mock/map/BDAbsLocationListenerProxy.java)
- Duplicated block (10 lines × 2) (Android/dokit-gps-mock/src/main/java/com/didichuxing/doraemonkit/gps_mock/widget/OverlayManager.java)
- Duplicated block (10 lines × 2) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/network/ui/InterceptDetailNodeProvider.java)
- Duplicated block (10 lines × 2) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/toolpanel/decoration/FlexibleDividerDecoration.java)
- Duplicated block (10 lines × 2) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/toolpanel/decoration/HorizontalDividerItemDecoration.java)
- Duplicated block (10 lines × 2) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/uiperformance/UIPerformanceManager.java)
- Duplicated block (10 lines × 2) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/util/DoKitNotificationUtils.java)
- Duplicated block (10 lines × 2) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/widget/jsonviewer/adapter/JsonViewerAdapter.java)
- Duplicated block (10 lines × 3) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/network/room_db/MockInterceptApiBean.java)
- Duplicated block (11 lines × 2) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/largepicture/LargePictureManager.java)
- Duplicated block (11 lines × 2) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/toolpanel/decoration/HorizontalDividerItemDecoration.java)
- Duplicated block (12 lines × 2) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/toolpanel/decoration/HorizontalDividerItemDecoration.java)
- …and 112 more
New (212)
- AbsDoKitView.resetBorderline (cognitive 62) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/core/AbsDoKitView.kt)
- AbsDoKitView.resetBorderline (cyclomatic 21) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/core/AbsDoKitView.kt)
- AbsDoKitView.updateViewLayout (cognitive 17) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/core/AbsDoKitView.kt)
- BaseNodeAdapter.flatData (cognitive 16) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/widget/brvah/BaseNodeAdapter.kt)
- BaseQuickAdapter.getInstancedGenericKClass (cognitive 20) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/widget/brvah/BaseQuickAdapter.kt)
- BaseQuickAdapter.getItemViewType (cognitive 23) (Android/dokit/src/main/java/com/didichuxing/doraemonkit/widget/brvah/BaseQuickAdapter.kt)
- BigImgClassTransformer.transform (cognitive 17) (Android/dokit-plugin/src/main/kotlin/com/didichuxing/doraemonkit/plugin/transform/classtransform/BigImgClassTransformer.kt)
- BigImgClassTransformer.transform (cyclomatic 18) (Android/dokit-plugin/src/main/kotlin/com/didichuxing/doraemonkit/plugin/transform/classtransform/BigImgClassTransformer.kt)
- ClassTooLong: AbsDoKitView (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/core/AbsDoKitView.kt)
- ClassTooLong: BaseQuickAdapter (Android/dokit/src/main/java/com/didichuxing/doraemonkit/widget/brvah/BaseQuickAdapter.kt)
- ClassTooLong: EasyRefreshLayout (Android/dokit/src/main/java/com/didichuxing/doraemonkit/widget/easyrefresh/EasyRefreshLayout.java)
- ClassTooLong: GpsMockFragment (Android/dokit-gps-mock/src/main/java/com/didichuxing/doraemonkit/gps_mock/gpsmock/GpsMockFragment.java)
- ClassTooLong: NetWorkMockFragment (Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/network/ui/NetWorkMockFragment.java)
- ClassTooLong: ObsoleteUrlFactory (Android/dokit/src/main/java/com/didichuxing/doraemonkit/aop/urlconnection/ObsoleteUrlFactory.java)
- Critical CVE: [GHSA redacted] (miniapp/package-lock.json)
- Critical CVE: [GHSA redacted] (miniapp/package-lock.json)
- Critical CVE: [GHSA redacted] (miniapp/package-lock.json)
- Critical CVE: [GHSA redacted] (miniapp/package-lock.json)
- Critical CVE: [GHSA redacted] (miniapp/package-lock.json)
- DartSyntaxHighlighter._generateSpans (cognitive 50) (Flutter/lib/widget/source_code/syntax_highlighter.dart)
- …and 192 more
Architecture
- Containers 0 added · 0 removed · contexts 15 added · 2 removed · edges 17 added · 0 removed
Added bounded contexts (15)
- app
- dokit
- dokit-autotest
- dokit-ft
- dokit-gps-mock
- dokit-leakcanary
- dokit-mc
- dokit-no-op
- dokit-okhttp-api
- dokit-okhttp-v3
- dokit-okhttp-v4
- dokit-plugin
- dokit-pthread-hook
- dokit-util
- dokit-weex
Removed bounded contexts (2)
- .
- android
Added dependency edges (17)
- app → dokit
- app → dokit-no-op
- dokit → dokit-no-op (coupling)
- dokit → dokit-util
- dokit-autotest → dokit (coupling)
- dokit-autotest → dokit-no-op
- dokit-ft → dokit (coupling)
- dokit-ft → dokit-no-op
- dokit-gps-mock → dokit (coupling)
- dokit-gps-mock → dokit-no-op
- dokit-mc → dokit (coupling)
- dokit-mc → dokit-no-op
- dokit-no-op → dokit
- dokit-pthread-hook → dokit
- dokit-pthread-hook → dokit-no-op
- dokit-weex → dokit
- dokit-weex → dokit-no-op
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
didi/DoKit was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 24 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 626827cddb2feb2f3aee87a52a064b4e5ca2bed4 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-ae95d6cad036.