Skip to content

Changelog

[0.0.7] - 2026-01-15

Added

  • Add configurable fade animation for highlights (1-5 second duration) (#656) (android, devxp)
  • Add smooth ink-line path drawing for freehand annotations (#655) (android, devxp)
  • Add runtime permission handling for drawing overlays (#654) (android, devxp)
  • Integrate visual highlights with video recording for reproduction videos (#653) (devxp)
  • Integrate visual highlights with bug report generation (#652) (devxp)
  • Add MCP tool for visual highlighting during debugging (#651) (devxp)
  • Add Node.js client for visual highlight control (#650) (devxp)
  • Add WebSocket commands for controlling visual highlights (#649) (devxp)
  • Add drawing API for shapes in AccessibilityService overlay (#648) (android, devxp)
  • Add cmdline-tools installation to doctor MCP tool (#620) (android, devxp, ai)
  • Detect Homebrew avdmanager when system images are in $ANDROID_HOME (#619) (android, devxp)
  • Detect old avdmanager with JAXB error and provide helpful message (#618) (android, devxp)
  • Add Device Owner/Device Admin setup for advanced operations and CA certificate management (#615) (android, devxp)
  • Complete implementation of Last Screenshot MCP resource (#613)
  • Feature: Enable element search across both main hierarchy and window hierarchies in tapOn/interaction tools (#543) (android)
  • Feature: Keep screen awake on physical devices during automation (#536) (android)
  • Implement Android AccessibilityService clipboard operations (#500) (android)
  • Implement focus path calculation and navigation engine (#470) (android, a11y)
  • Implement focus position tracking and accessibility tree traversal (#469) (android, a11y)
  • Design focus-based navigation algorithm for TalkBack element targeting (#468) (android, a11y, research)
  • Implement network traffic capture MCP tools with mitmproxy (#466) (android)
  • Implement postNotification MCP tool with SDK hook and cmd notification fallback (#463) (android)
  • Implement setNetworkState MCP tool for Wi-Fi/cellular/airplane mode control (#462) (android)
  • Implement clipboard MCP tool with ADB and helper APK fallback (#461) (android)
  • Implement biometricAuth MCP tool with emulator fingerprint support (#460) (android, research)
  • Add accessibility focus tracking to observations (#459) (android, a11y)
  • Adapt swipeOn tool for TalkBack using two-finger swipe and scroll actions (#458) (android, a11y)
  • Adapt tapOn tool for TalkBack mode using ACTION_CLICK (#457) (android, a11y)
  • Implement TalkBack auto-detection and infrastructure (#456) (android, a11y)
  • Add capability detection for settings-based accessibility toggle (#409) (android, devxp)
  • Implement adb settings-based accessibility service toggle (#408) (android, devxp)
  • Add optional device labels to device-scoped tool calls (#388) (android)
  • Block MCP tool calls during executePlan (#330) (devxp)
  • Video recording: Android + iOS capture backends (#326) (android, ios, video)
  • Video recording: MCP tools/resources + CLI config (#324) (devxp, video)
  • Video recording: core service + archive retention (#323) (video)
  • Interactive install script with gum + animated AutoMobile logo (#322) (env, devxp)
  • Implement hybrid iOS automation architecture (#319) (ios)
  • Feature Request: Implement pinch-to-zoom gesture in accessibility service (#264) (android, a11y)
  • IDE plugin: MCP feature flags UI (#256) (intellij plugin)
  • IDE plugin: navigation graph rendering (#253) (intellij plugin)
  • IDE plugin: Unix socket transport for MCP attachment (#252) (intellij plugin)
  • Explore scrollToward/contentDirection for swipeOn semantics (#249) (android, devxp)
  • IDE plugin: support TCP/HTTP transport for bun dev mode (#246) (devxp, intellij plugin)
  • Add visual fallback for selected-state detection (#242) (android, devxp, ai)
  • Add identifyInteractions MCP tool to suggest available actions (#224) (android)
  • Add dry run mode for explore tool call (#223) (android)
  • Allow whitelisting navigation graph nodes and edge tool calls (#222) (android)
  • Add await element option to tapOn for waiting on next UI state (#219) (android)
  • Support tapOn for non-unique text within a specific container (#211) (android)
  • Cancel in-progress MCP commands when AI agent or JUnitRunner disconnects (#204) (android, devxp)
  • startDevice should error if AVD already running (#176) (devxp)
  • openSystemTray should avoid redundant swipe when tray already open (#173) (android, devxp)
  • Add retry mechanism for transient CI failures (Maven 403, network issues) (#172) (ci, devxp)
  • MCP Resource: Installed Apps per Device (#163) (android)
  • MCP Resource: Connected Devices (#162) (devxp)
  • MCP Resource: Available Emulators/Simulators List (#161) (devxp)
  • Doctor Tool for Onboarding and Diagnosis (#160) (devxp)
  • Expose tool call history as MCP resource (#130) (devxp)
  • Expose navigation graph nodes as individual MCP resources (#129)
  • Expose navigation graph as MCP resource for IntelliJ plugin (#128) (android, intellij plugin)
  • Expose internal debugging as MCP resource (#127) (devxp)
  • Include Debug Information in MCP Tool Error Responses (#108)
  • Back stack awareness (#78)
  • IntelliJ IDE plugin (#67) (android, devxp)
  • Permission Audit & Capability Inventory (auditPermissions) (#59)
  • Sensitive Data Exposure Scanner (scanDataLeakage) (#57)
  • Element Search Fallbacks (#54)
  • TalkBack Navigation Simulator (simulateTalkBack) (#53)
  • Dark Mode Consistency Checker (#50)
  • Locale & System Configuration Manager (#49)
  • Battery & Charging State Simulator (#48)
  • Sensor Simulation Framework (#47)
  • Live Interactive Element Inspector (#43)
  • HTTP Request Mocking & Recording (mockNetwork) (#42)
  • Network Condition Simulator (simulateNetworkCondition) (#41)
  • ANR Risk Detector (profileAnrRisk) (#39)
  • Navigation graph: Handle bottom sheets, popups, and dialogs (#28)
  • Navigation graph: Handle scroll position as UI state (#27)
  • Retain and Reuse Navigation (#10)
  • clipboard get action returns empty string after successful copy operation (#778)
  • systemTray find with both title AND body criteria always fails to find notifications (#777)
  • Tool registration regression: interaction tools silently failed to register (#745) (ai)
  • dragAndDrop schema allows empty selectors; runtime rejects (#686) (devxp)
  • dragAndDrop should check accessibility service availability (enabled + installed) (#681) (android, a11y)
  • Android drag requests never execute; dragAndDrop always times out (#680) (android, a11y)
  • Preserve double-tap behavior in TalkBack mode (#672) (android, a11y)
  • Dead code detection job fails with ‘Argument list too long’ when issue count is high (#641) (ci, devxp)
  • Navigation graph MCP resources remain empty after active app observation (#614)
  • AutoMobile fails to detect installed Android system images (#612) (android, env)
  • Material3 navigation text labels missing from accessibility hierarchy due to sibling occlusion bug (#591)
  • installApp MCP tool fails with ‘adb: unknown command dump’ (#587) (android)
  • MCP observe responses are excessively large due to unfiltered data (#539) (ai)
  • IDE plugin: AutoMobile tool window ignores IntelliJ theme (#335) (android, intellij plugin)
  • swipeOn direction parameter causes AI agents to swipe opposite of intended direction (#226) (android, devxp)
  • swipeOn tool description causes AI agents to swipe on screen instead of targeting lists (#225) (android, devxp)
  • Selected state not correctly interpreted from view hierarchy (#213) (android)
  • Git state becomes dirty from .mcp.json and .gitignore changes on branch/worktree checkout (#212) (devxp)
  • Stale view hierarchy returned to AI agents after interactions (#205) (android, devxp)
  • MCP client fails to connect at startup with handshaking error (#186) (env, devxp)
  • AutoMobile CLI hangs and doesn’t exit after executePlan completes (#109)
  • Large MCP response warning on Accessibility Service websocket timeout (#86) (devxp)
  • Observe call happening right after an action that should have included observation (#66)
  • Add stub listDevices MCP tool (#781) (devxp, ai)
  • Add stub listApps MCP tool (#780) (devxp, ai)
  • Add keyboard MCP tool with open/close/detect actions (#779) (devxp, ai)
  • Google Weather app filtered out from listApps MCP resource (#715)
  • Accessibility service filters out Android home launcher widgets from view hierarchy (#714)
  • Make identifyInteractions a debug-only MCP tool (#673)
  • Add polling support to tapOn action with searchUntil parameter (#662)
  • Add optional waitFor parameter to observe MCP tool (#658)
  • Add overlay window capability to AccessibilityService (#647)
  • tapOn should use parent clickable element when matched element is not clickable (#646)
  • swipeOn container selection should avoid overlaying clickable elements (#645)
  • Playground app: Add accessibility semantics to navigation components (#571)
  • Research TalkBack/VoiceOver MCP tool behavior and create design doc (#430) (a11y, research)
  • Experiment: Toggle AutoMobile accessibility service via adb settings (#384) (android, a11y, research)
  • Feature Request: Implement drag-and-drop gesture and MCP tool call (#265)
  • swipeOn tool needs better container parameter schema, docs, examples (#263)
  • tapOn tool needs better container parameter schema, docs, examples and validation (#262)
  • explore should stay within current foreground app (#174)
  • [Android] Automatic Work Profile adaptation (#35) (android)
  • Debug Interactions (#11)
  • Retain Navigation in Memory (#9)
  • Android Library SDK (#8)
  • Android WebSocket server (#7)
  • Dockerize AutoMobile (#5) (env)
  • Database for memory and settings (#2)
  • Rewrite internals with interfaces (#1)

Changed

  • Cache installed apps list in SQLite and update via package broadcast receivers (#750) (performance)
  • Optimize observe: Make screenshot capture async/non-blocking (#749) (performance)
  • Optimize launchApp: Run detectTargetUser and checkInstalled in parallel (#748) (performance)
  • Add strict ‘exactly one’ selector enforcement to swipeOn.lookFor (#740) (android, testing, chore)
  • Add strict ‘exactly one’ selector enforcement to pinchOn container (#739) (android, testing, chore)
  • Add strict ‘exactly one’ selector enforcement to tapOn tool (#738) (android, testing, chore)
  • Clean up MCP response message when searchUntil doesn’t need to poll (#700)
  • Add toolResults parsing in AutoMobilePlanExecutor for JUnitRunner (#697) (android, testing)
  • Create Kotlin serialization data classes for tool results in :test-plan-validation (#696) (android, testing)
  • Enhance tapOn response to include selectedElement metadata (#694) (android, testing)
  • Add selectionStrategy parameter to tapOn tool (#693) (android, testing)
  • Add boomerang field to swipeOn for dry-run gesture testing (#675) (devxp, ai)
  • Convert listApps to MCP resource with query support to reduce context usage (#674) (devxp, ai)
  • Optimize Docker publish job cache export settings to reduce build time by ~60% (#640) (ci, performance)
  • Improve error output in startup benchmark script (#639) (ci, performance)
  • Convert daemon management tools to unix socket requests (#608) (ai)
  • Merge enableDemoMode and disableDemoMode into unified demoMode tool (#605) (ai)
  • Merge localization tools into unified changeLocalization tool (#604) (ai)
  • Restrict executePlan and criticalSection tools to daemon mode only (#603) (ai)
  • Refactor deviceSnapshot MCP tools (#601) (ai)
  • Move test recording from MCP tools to unix socket interface (#600) (ai)
  • Refactor MCP video recording tools (#596) (ai)
  • Evolve MCP tool call openSystemTray (#595) (ai)
  • Move identifyInteractions and getNavigationGraph to debug-only tools (#594) (ai)
  • Validate accessibility service version compatibility even when skipAccessibilityDownload is true (#580) (android)
  • Consolidate MCP benchmark PR comments into a single unified comment (#576) (ci, devxp)
  • Optimize accessibility service setup: rename skipAccessibilitySetup to skipAccessibilityDownload (#570) (performance)
  • Feature: Merge window hierarchies into main hierarchy for unified view (#544) (android)
  • Write integration tests for AccessibilityService focus tracking (#533) (android, a11y, testing)
  • Write unit tests for AccessibilityFocusTracker (#532) (testing)
  • Implement dead code detection for TypeScript (#518) (ci, devxp, testing)
  • Memory leak detection and profiling for TypeScript MCP server (#512) (performance, testing)
  • Additional performance benchmarks: observe latency, device boot, test plan execution (#510) (performance, testing)
  • Implement MCP server and daemon startup time benchmark (#509) (devxp, performance, testing)
  • Implement MCP tool call throughput benchmark (#508) (performance, testing)
  • Add comprehensive tests for device snapshot feature (#506) (testing)
  • Implement full app data backup and restore for ADB snapshots (#505) (android, testing)
  • Refactor: Convert all ‘java’ directories to ‘kotlin’ in Android project structure (#504) (android, chore)
  • CI: Cache Android system images to reduce emulator test setup time from 11+ min to <1 min (#497) (android, ci, devxp, performance)
  • IDE plugin: YAML autocomplete for test plan files (#493) (devxp, intellij plugin)
  • CI: Split IDE Plugin validation into separate Build and Test jobs (#486) (ci, intellij plugin)
  • ‘On Merge’ workflow should require all jobs to pass before publishing to Docker Hub (#475) (ci, release engineering)
  • Change explore tool to navigate known graph instead of building it (#445) (devxp)
  • Skip long-running CI jobs for documentation-only PRs (#438) (documentation, ci, devxp, performance)
  • Skip CI checks for accessibility service SHA256 update PRs (#437) (ci, performance, chore)
  • Optimize MCP tools context usage to reduce token consumption (#434) (devxp, performance, ai)
  • Update accessibility setup flow to prefer settings-based toggle (#410) (android, devxp)
  • executePlan schema: multi-device + criticalSection (#392) (devxp, testing)
  • JUnitRunner/Daemon: allocate devices for plan labels (#391) (android, testing)
  • executePlan: multi-device labels + implicit parallelism (#390) (android, testing)
  • Add criticalSection tool call for serialized multi-device steps (#389) (android, testing)
  • IDE plugin: test plan YAML linting (#387) (devxp, intellij plugin)
  • Validate executePlan YAML on read/author (#386) (devxp, testing)
  • Add YAML validation across repo (#385) (devxp, testing)
  • Validation: add XML auto-format/fix script (#370) (ci, devxp)
  • Validation: add shell script auto-fix via shfmt (#369) (ci, devxp)
  • Validation: add TypeScript test validation script (#368) (ci, devxp, testing)
  • Validation: add TypeScript build validation script (#367) (ci, devxp)
  • Validation: add ESLint validation + auto-fix scripts (#366) (ci, devxp)
  • Xcode companion app: core UI surfaces (nav graph, performance, feature flags, logs) (#360) (ios, devxp)
  • Accessibility Bridge distribution: bundle vs on-demand download/caching (#353) (ios, release engineering)
  • Feature: enforce MCP context thresholds via benchmark script (#339) (devxp, performance)
  • Feature: estimate MCP context usage (tools, resources, operations) (#338) (devxp, performance)
  • Recorded test plan migrations + MCP versioning (#331) (devxp)
  • IDE plugin: migrate all UX to Jewel + Compose (#328) (android, intellij plugin)
  • Add curl-based interactive installer entrypoint in README + docs/install (#327) (documentation, env, devxp)
  • Video recording: FFmpeg backend with hardware acceleration (macOS/Linux) (#325) (performance, video)
  • Add AutoMobile tests/plans for Playground docs/using demos (#321) (android, testing)
  • Playground app: add demo flows for docs/using workflows (#320) (android, devxp)
  • IDE plugin: add test recording and YAML plan generation (#318) (android, intellij plugin)
  • Add MCP resources for test timings and performance results (#317) (performance)
  • Feature: Extract Android ‘Displayed’ time metrics from logcat for startup profiling (#311) (android, performance)
  • IDE Plugin: Display recent UI performance results (#282) (android, performance, intellij plugin)
  • IDE Plugin: Display historical test timing data for visual analysis (#281) (android, performance, testing, intellij plugin)
  • JUnitRunner: Use historical test timing to optimize execution order (#280) (android, testing)
  • MCP Daemon: Provide historical test timing to JUnitRunner on startup (#279) (android, testing)
  • MCP Daemon: Record test execution timing in SQLite database (#278) (testing)
  • Rely on view hierarchy updates for navigation destination instead of SDK navigation events (#277) (android)
  • Add GHA workflow to update CHANGELOG from issues since last tag (#274) (release engineering)
  • Add manually triggered GHA workflow for version bumping (#273) (release engineering)
  • Track historical accuracy of predictive UI state (#221) (android, performance)
  • Add predictive UI state to observations based on navigation graph (#220) (android, performance)
  • Start test recording via in-app overlay or accessibility service shortcut (#218) (android)
  • Auto-update accessibility service APK SHA256 via PR when source changes (#217) (android, ci, release engineering)
  • Enable AccessibilityService to filter out views completely hidden by overlays (#214) (android, performance)
  • Track Compose recomposition counts in observation results (#202) (android, devxp, performance)
  • Auto-detect and upgrade accessibility service APK when SHA mismatch (#199) (android, release engineering, devxp)
  • Add Codex MCP client installation docs (#184) (documentation, devxp)
  • Revamp Hot Reload Development Workflow (#164) (devxp)
  • Session State Management to Reduce Required Tool Parameters (#159) (devxp)
  • Dynamic MCP Tool Loading via Workflow-Based Selection (#158) (devxp)
  • Test parallel execution across multiple devices (#151) (testing)
  • Update core tools to respect sessionUuid for device targeting (#150) (testing)
  • Integrate session context into tool execution (#149) (testing)
  • Update CLI to accept –session-uuid parameter (#148) (testing)
  • Add daemon commands for device/session queries (#147) (testing)
  • Make UI stability thresholds configurable (#138) (performance)
  • Analyze and prevent JUnitRunner test pollution (#134) (android, devxp, testing)
  • CI: Run Playground Automobile tests on emulator (#132) (android, ci, testing)
  • Expose latest observation as MCP resource (#131) (devxp)
  • CI: Auto-install accessibility APK for JUnitRunner emulator tests (#126) (ci, performance)
  • MCP Server Daemon for CLI (#125) (performance, testing)
  • Optimize accessibility audit performance with contrast caching (#105) (performance, a11y)
  • Add comprehensive unit tests for accessibility audit checks (#101) (devxp, a11y)
  • Add ESLint rule to prevent .js extensions in TypeScript imports (#90) (devxp)
  • Touch latency testing implementation (#85) (devxp, performance)
  • Migrate test runner from Mocha to Bun’s built-in test runner (#81) (ci, devxp)
  • Natural Language Test Commands (#56)
  • Navigation Graph Test Coverage and Recommendations (#55) (testing)
  • –accessibility-audit mode where WCAG violations fail tests (#52)
  • Flaky Test Detection & Quarantine (#51)
  • Device State Snapshot & Restore (#46) (devxp, performance)
  • Test Recording & Playback with Smart Locators (#45)
  • Parallel Multi-Device Test Orchestration (#44)
  • Visual Regression Testing (compareScreenshot) (#40)
  • –mem-perf-audit mode where leaks, excessive GC, memory pressure, etc fail tests (#38)
  • App Startup Performance Analyzer (profileAppStartup) (#37)
  • –ui-perf-audit mode where jank and poor FPS fail tests (#36)
  • Consolidate scroll, swipeOnScreen, and swipeOnElement into swipeOn (#30)
  • Create monkeyNavigate tool for efficient graph exploration (#29)
  • systemTray find returns cached observation instead of system tray when tray is closed (#776) (android)
  • gfxinfo not reaching stability after launchApp for simple UX (#699) (performance)
  • Test plan/IDE validator doesn’t validate dragAndDrop params (#687) (devxp, intellij plugin)
  • dragAndDrop uses stale cached hierarchy (can drag wrong coords) (#684) (android)
  • dragAndDrop uses fixed 5s timeout; long gestures always fail (#683) (android, performance, a11y)
  • dragAndDrop dropDelay default mismatch with schema/docs (#682) (documentation)
  • MCP Startup Benchmark PR comment has mangled output with escaped newlines (#575) (ci, devxp)
  • AccessibilityService: Hierarchy optimization removes clickable elements with text labels (#572) (android)
  • JUnit runner + MCP daemon parallel execution completely broken (3 critical bugs) (#541) (android, testing, ai)
  • CI: Android Emulator Tests Failing Due to Disk Space Exhaustion (#522) (android, ci)
  • 3 JUnit Runner emulator tests are skipped due to missing test plan file (#473) (android, testing)
  • GitHub Actions runner: No space left on device during Docker Hub publish (#435) (ci, release engineering, env)
  • Build Docker Image CI failing: MCP stdio protocol ENOENT /workspace/src/db/migrations (#382) (ci, env)
  • Update Changelog workflow should use AUTO_MOBILE_PR_TOKEN for PRs (#297) (ci, release engineering)
  • Bump Versions workflow fails because ripgrep is missing (#296) (ci, release engineering)
  • Flaky ClockAppAutoMobileTest fails to reach MCP server in CI (#257) (flaky test, testing)
  • listApps returns all system apps for every profile, causing huge MCP response (#215) (android, performance)
  • Improve long press implementation and add playground testing areas (#203) (android, testing)
  • Flaky accessibility-service WebSocketServerIntegrationTest in CI (#197) (android, flaky test, ci, testing)
  • Navigation tests fail with Robolectric OnBackPressedDispatcher incompatibility (#190) (android, ci)
  • Playground emulator tests fail: koog-agents dependency classloading issue (#189) (android, ci, testing)
  • CI: Android emulator tests failing with shell exit code 1 (#156) (android)
  • JUnit Runner Emulator Tests failing with shell syntax error (#140) (android, ci)
  • Migrate from better-sqlite3 to bun:sqlite for Bun compatibility (#118) (enhancement)
  • JUnit Runner: Test Timeout When Running Multiple Tests Together (#107)
  • PluginException: TestPlanInspection shortName mismatch (#768)
  • Chore: Test clipboard tool (#767)
  • Chore: Test system tray lookFor (#766)
  • Chore: Test biometrics stubbing (#763)
  • Chore: Test takeScreenshot fallback tool (#762)
  • Add unit tests for accessibility APK download/verification paths (#730) (android, testing)
  • Harden accessibility APK download (HTTP status + curl fallback + integrity check) (#729) (android, release engineering, env)
  • Use unique, OS-portable temp path for accessibility APK download (#728) (android, release engineering, env)
  • APK download fails on macOS due to sha256sum dependency (#727) (android, release engineering, env)
  • Add tests for occlusion filtering behavior (#719) (android, performance, testing)
  • Update tool-definitions.json for tapOn selectionStrategy and selectedElement (#695) (documentation, android, testing)
  • Add dragAndDrop test coverage; fakes/interface lack requestDrag (#685) (devxp, testing)
  • Research effectiveness of current navigation graph implementation (#676) (documentation, research)
  • Enhancement: Hybrid hierarchy combining accessibility service + UIAutomator for apps with poor accessibility (#588)
  • Change accessibility service SHA256 update to run daily instead of on every main merge (#577)
  • CI: bun pm trust heapdump exits 1 in memory leak detection (#569)
  • CI failures after #562: native addon build errors (#568)
  • Standardize naming convention: auto-mobile for Maven artifacts, automobile for package names (#540) (android, release engineering, chore)
  • Build and deploy AccessibilityService APK with focus tracking (#534) (android, devxp)
  • CI: Optimize Android emulator test daemon warmup (currently ~90s overhead) (#527) (android, ci, devxp, performance)
  • Memory leak detection and profiling for IntelliJ IDE Plugin (#515) (devxp, performance, testing, intellij plugin)
  • Memory leak detection and profiling for JUnitRunner library (#514) (android, performance, testing)
  • Memory leak detection and profiling for Android AccessibilityService (#513) (android, performance, a11y, testing)
  • Validate and test VM snapshot emulator console commands (#507) (android, testing, research)
  • End-to-end testing for clipboard MCP tool (#501) (testing)
  • Refactor gradle modules: extract shared test plan validation into android/test-plan-validation (#492)
  • Standardize environment variable naming: AUTOMOBILE_ vs AUTO_MOBILE_ prefix (#483) (documentation, env, devxp, chore)
  • Optimize slow TypeScript unit tests (35 files exceed 100ms) (#481) (performance, testing)
  • Add Gradle test report patterns to root .gitignore (#476) (android, testing, chore)
  • Optimize Android emulator test job runtime and reduce flakiness (#446) (android, flaky test, ci, performance)
  • Enable auto-merge on accessibility service update PR (#436) (ci, devxp, chore)
  • Document settings-based accessibility toggle (#412) (documentation, devxp)
  • Test settings-based accessibility toggle on API 29 & 35 (#411) (android, devxp, testing)
  • Research: validate Android design-doc experiments with adb (#393) (android, research)
  • Clarify bug reproduction doc with snapshot and MCP action links (#345) (documentation)
  • Link test recording and YAML plan workflow from user docs (#344) (documentation, android)
  • Call out accessibility service enablement in install/usage docs (#343) (documentation, android)
  • Add decision guide for MCP vs IDE plugin vs JUnitRunner vs SDK (#342) (documentation, android)
  • Add Android first-run path from device setup to a concrete task (#341) (documentation, android)
  • Review docs/ directory for accuracy and add implementation citations (#276) (documentation)
  • Setup Trusted Publishing for npm packages with GitHub Actions (#275) (release engineering)
  • Refactor Tap and Long Press tabs into unified screen with real-time duration tracking (#266)
  • Optimize JUnitRunner heartbeat mechanism for faster daemon timeout detection (#232) (android, devxp, performance, testing)
  • Docker Hub publish job fails: missing bun installation (#188) (ci, release engineering, env, devxp)
  • Phase 3b: JUnitRunner Direct Socket IPC (170ms/test optimization) (#145) (android, performance, testing)
  • Optimize JUnitRunner performance based on #133 research (#135) (android, ci, devxp, performance)
  • Analyze and optimize JUnitRunner performance bottlenecks (#133) (ci, performance)
  • Performance Research, Analysis, and Upgrade of Emulator CI jobs (#123) (android, ci, performance)
  • Register Maven central namespace (#120) (android, release engineering)
  • Enable JUnit Runner tests in GitHub Actions CI (#110) (android, ci, devxp)
  • Improve Android user profile parsing to use structured data instead of regex (#106) (android, devxp)
  • Run Android AutoMobile self tests on an Android Emulator in GHA (#94) (ci, devxp)
  • Android CI Perf Improvements (#93) (ci, devxp, performance)
  • Rename monkeyNav MCP tool call to explore (#80) (devxp)
  • Migrate from pnpm to bun for peak performance (#79) (ci, devxp)
  • Convert from npm to pnpm (#63)
  • Skip Docker CI if Dockerfiles and package.json did not change (#62)
  • Document Claude Code installation and usage (#31) (documentation)
  • Publish scoped package on NPM (#19) (release engineering)

Fixed

  • Bug: Duplicate/embedded observe in launchApp causing bloated MCP responses (#751) (performance)
  • Fix swipeOn coordinate calculation and overlay detection bugs (#722)
  • Bug: swipeOn with lookFor scrolls in wrong direction repeatedly (#671) (android)
  • Fix: Taps via accessibility service were being interpreted as long presses (#666) (android)
  • Bug: launchApp not correctly observing app state after launch (#537) (android)
  • Bug: tapOn schema validation error - container field expects object but receives string (#535)
  • Flaky test: planExecutionLock ‘allows MCP tool calls when no plan is executing’ times out in CI (#482) (flaky test, ci, testing)
  • Fix Android emulator CI job failures - 13m wasted on bugs, Gradle times out (#447) (android, ci)
  • Regression: JUnitRunner tests only using 1 device instead of device pool (#444) (testing)
  • Bug: AutoMobile incorrectly identifies system notification permission dialog as permission controller (#402)
  • Bug: Work profile apps fail observation due to hardcoded u0 user profile in regex patterns (#314) (android)
  • Fix FakeAccessibilityServiceManager interface import path (#731) (android, testing)
  • Flaky test: Session Lifecycle with Device Reuse sometimes returns different device (#548) (flaky test, ci, testing)
  • Fix MonkeyNavigate integration test timeouts (#73)
  • Flaky test: AccessibilityServiceClient WebSocket connection failure handling (#72) (flaky test)
  • Flaky test: AccessibilityServiceClient WebSocket connection failure timeout (#68) (flaky test)

Deprecated

  • Enhance devices resource with pool status and deprecate listDevices tool (#606) (ai)

Removed

  • Remove deprecated listApps MCP tool (#713)
  • Remove daemon_available_devices tool and forward usage to listDevices (#607) (ai)
  • Remove listSnapshots tool - create automobile:snapshots resource instead (#602) (ai)
  • Remove listPerformanceAuditResults MCP tool (#599) (ai)
  • Remove getTestTimings tool (#598) (ai)
  • Remove listVideoRecordings tool - already exposed via automobile:video/archive resource (#597) (ai)
  • Remove duplicate ‘Publish Docker Image’ workflow - Docker publishing already handled by ‘On Merge’ workflow (#474) (ci, release engineering, chore)
  • Remove KotlinPoet and automated test authoring references (#200) (documentation, android)
  • Remove installPlatformDependencies now that AutoMobile is dockerized (#177)
  • Remove getAllConfigs/setDeviceMode/resetConfig MCP tool calls (#175)
  • Delete source mapping and automatic test authoring (#4)
  • Delete iOS implementation (#3)

Security

  • Deep Link Security Validator (validateDeepLinkSecurity) (#58)
  • Security: Insecure temporary file creation in daemon manager (#157)
  • CodeQL check failing in CI (#141) (ci)

[0.0.6] - Unreleased

Changed

  • Placeholder: started fork; release notes not recorded.

[0.0.5] - 2025-07-22

Added

  • Add ADB command auto retry

Changed

  • Improve view hierarchy search for elements with auto retry
  • Refactor ConfigurationManager

Fixed

  • Test authoring fixes

[0.0.4] - 2025-07-08

Added

  • Automate Accessibility Service install and enablement on first ADB command for a device
  • Check APK SHA256 before installing
  • Allow element search to restrict to specific containers in the view hierarchy

Changed

  • Increase accessibility node inspection for better view hierarchy data
  • Filter unnecessary view hierarchy data to reduce observe payloads
  • Parallelize and cache observation and idling steps
  • Refactor BaseVisualChange
  • Reduce tool calls to make it easier for agents to determine tool call selection

[0.0.3] - 2025-07-08

Added

  • Automate Accessibility Service install and enablement
  • Check APK SHA256 before installing
  • Allow element search to restrict to specific containers in the view hierarchy

Changed

  • Increase accessibility node inspection for better view hierarchy data
  • Filter unnecessary view hierarchy data to reduce observe payloads
  • Parallelize and cache observation and idling steps
  • Refactor BaseVisualChange
  • Reduce tool calls to make it easier for agents to determine tool call selection

[0.0.2] - 2025-07-01

Added

  • Accessibility service with availability checks
  • Active window caching
  • Device session management

Changed

  • Improved docs for setup and installation
  • More test coverage

[0.0.1] - 2025-06-24

Added

  • Initial release