mobile-debug-mcp 0.33.0 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/mcp-builder/SKILL.md +44 -64
- package/.agents/skills/mcp-builder/references/build-flags.md +44 -43
- package/.agents/skills/mcp-builder/references/diagnostics-schema.md +4 -1
- package/.agents/skills/mcp-builder/references/toolchain-details.md +49 -62
- package/.agents/skills/spec-review/references/spec-review-checklist.md +7 -0
- package/.agents/skills/test-authoring/SKILL.md +7 -6
- package/.agents/skills/test-authoring/references/repo-test-layout.md +3 -1
- package/.agents/skills/test-authoring/references/test-authoring-workflow.md +16 -7
- package/.agents/skills/test-authoring/references/test-quality-checklist.md +2 -1
- package/.github/copilot-instructions.md +14 -36
- package/.github/workflows/ci.yml +23 -2
- package/AGENTS.md +12 -3
- package/CONTRIBUTING.md +79 -0
- package/README.md +158 -124
- package/agent-plugin/.claude-plugin/plugin.json +2 -2
- package/agent-plugin/.codex-plugin/plugin.json +1 -1
- package/agent-plugin/.cursor-plugin/plugin.json +2 -2
- package/agent-plugin/.mcp.json +1 -1
- package/agent-plugin/README.md +20 -6
- package/agent-plugin/mcp.json +1 -1
- package/agent-plugin/plugin.json +1 -1
- package/agent-plugin/skills/mobile-debug-mcp/SKILL.md +113 -4
- package/dist/contracts/execution-controls.js +24 -0
- package/dist/contracts/selector.js +8 -0
- package/dist/contracts/target.js +15 -0
- package/dist/contracts/ui.js +1 -0
- package/dist/debugger/android.js +79 -0
- package/dist/debugger/diagnostics.js +54 -0
- package/dist/debugger/guard.js +30 -0
- package/dist/debugger/protocol.js +33 -0
- package/dist/debugger/sessions.js +304 -0
- package/dist/debugger/worker.js +176 -0
- package/dist/interact/adjustment/adjustment-context.js +41 -0
- package/dist/interact/adjustment/adjustment-gestures.js +55 -0
- package/dist/interact/adjustment/adjustment-plan.js +18 -0
- package/dist/interact/adjustment/adjustment-resolution.js +127 -0
- package/dist/interact/adjustment/adjustment-result.js +19 -0
- package/dist/interact/adjustment/adjustment-semantic.js +64 -0
- package/dist/interact/adjustment/adjustment-verification.js +35 -0
- package/dist/interact/adjustment/adjustment.js +52 -0
- package/dist/interact/adjustment/control-geometry.js +87 -0
- package/dist/interact/adjustment/control-values.js +136 -0
- package/dist/interact/adjustment/slider-labels.js +84 -0
- package/dist/interact/assertions/screen-assertion.js +37 -0
- package/dist/interact/assertions/state-assertion-context.js +35 -0
- package/dist/interact/assertions/state-assertion.js +76 -0
- package/dist/interact/assertions/state-comparison.js +141 -0
- package/dist/interact/assertions/visibility-assertion.js +34 -0
- package/dist/interact/conditional-action.js +12 -7
- package/dist/interact/index.js +65 -3074
- package/dist/interact/input-service.js +1 -0
- package/dist/interact/interaction-trace.js +21 -0
- package/dist/interact/model.js +1 -0
- package/dist/interact/observation.js +1 -0
- package/dist/interact/targeting/candidate-ancestor.js +58 -0
- package/dist/interact/targeting/candidate-result.js +23 -0
- package/dist/interact/targeting/candidate-scoring.js +50 -0
- package/dist/interact/targeting/element-helpers.js +216 -0
- package/dist/interact/targeting/find-element.js +65 -0
- package/dist/interact/targeting/nearby-control.js +56 -0
- package/dist/interact/targeting/resolved-elements.js +21 -0
- package/dist/interact/targeting/tap-target.js +17 -0
- package/dist/interact/targeting/target-scope.js +104 -0
- package/dist/interact/waits/legacy-log-wait.js +38 -0
- package/dist/interact/waits/legacy-wait-observations.js +103 -0
- package/dist/interact/waits/legacy-wait-state.js +34 -0
- package/dist/interact/waits/legacy-wait.js +48 -0
- package/dist/interact/waits/screen-wait.js +49 -0
- package/dist/interact/waits/ui-change-helpers.js +157 -0
- package/dist/interact/waits/ui-change-state.js +18 -0
- package/dist/interact/waits/ui-change-wait.js +77 -0
- package/dist/interact/waits/ui-wait-condition.js +56 -0
- package/dist/interact/waits/ui-wait-state.js +38 -0
- package/dist/interact/waits/ui-wait.js +106 -0
- package/dist/manage/android.js +55 -51
- package/dist/manage/index.js +38 -75
- package/dist/manage/ios/build-types.js +1 -0
- package/dist/manage/ios/build.js +210 -0
- package/dist/manage/ios/project-discovery.js +29 -0
- package/dist/manage/ios/scheme.js +18 -0
- package/dist/manage/ios.js +42 -256
- package/dist/observe/android/context.js +1 -0
- package/dist/observe/android/current-screen.js +55 -0
- package/dist/observe/android/fingerprint.js +13 -0
- package/dist/observe/android/log-stream.js +132 -0
- package/dist/observe/android/logs.js +107 -0
- package/dist/observe/android/screenshot.js +70 -0
- package/dist/observe/android/ui-tree.js +107 -0
- package/dist/observe/android.js +16 -520
- package/dist/observe/evidence.js +122 -76
- package/dist/observe/index.js +16 -263
- package/dist/observe/ios/context.js +16 -0
- package/dist/observe/ios/fingerprint.js +12 -0
- package/dist/observe/ios/log-stream.js +105 -0
- package/dist/observe/ios/logs.js +168 -0
- package/dist/observe/ios/screenshot.js +22 -0
- package/dist/observe/ios/ui-elements.js +241 -0
- package/dist/observe/ios/ui-tree.js +137 -0
- package/dist/observe/ios.js +17 -715
- package/dist/observe/logs/model.js +1 -0
- package/dist/{network → observe/network}/index.js +2 -2
- package/dist/observe/readiness-service.js +13 -2
- package/dist/observe/readiness.js +44 -18
- package/dist/observe/screenshot-encoding.js +41 -0
- package/dist/observe/snapshot-collection.js +79 -0
- package/dist/observe/snapshot-logs.js +30 -0
- package/dist/observe/snapshot-metadata.js +43 -31
- package/dist/observe/snapshot-semantic.js +115 -0
- package/dist/observe/system-trace-android.js +135 -0
- package/dist/observe/system-trace.js +294 -0
- package/dist/runtime/action-results.js +270 -0
- package/dist/runtime/clock.js +4 -0
- package/dist/server/common.js +1 -256
- package/dist/server/definitions/assert.js +162 -0
- package/dist/server/definitions/diagnostic.js +118 -0
- package/dist/server/definitions/input.js +274 -0
- package/dist/server/definitions/manage.js +194 -0
- package/dist/server/definitions/observe.js +149 -0
- package/dist/server/definitions/target.js +138 -0
- package/dist/server/definitions/wait.js +105 -0
- package/dist/server/handlers/action-execution.js +163 -0
- package/dist/server/handlers/correlation.js +23 -0
- package/dist/server/handlers/debugger-handlers.js +48 -0
- package/dist/server/handlers/debugger-response.js +9 -0
- package/dist/server/handlers/diagnostic.js +69 -0
- package/dist/server/handlers/handler-types.js +1 -0
- package/dist/server/handlers/input.js +154 -0
- package/dist/server/handlers/interact.js +113 -0
- package/dist/server/handlers/journey-assertions.js +35 -0
- package/dist/server/handlers/journey.js +147 -0
- package/dist/server/handlers/manage.js +119 -0
- package/dist/server/handlers/observe.js +95 -0
- package/dist/server/handlers/payload.js +4 -0
- package/dist/server/handlers/tool-handlers.js +160 -0
- package/dist/server/schemas/condition-schema.js +2 -0
- package/dist/server/schemas/debugger-schema.js +47 -0
- package/dist/server/{journey-schema.js → schemas/journey-schema.js} +8 -22
- package/dist/server/schemas/system-trace-schema.js +17 -0
- package/dist/server/tool-definitions.js +62 -1134
- package/dist/server-core.js +4 -4
- package/dist/server.js +34 -0
- package/dist/system/android-status.js +101 -0
- package/dist/system/android.js +37 -27
- package/dist/system/index.js +13 -438
- package/dist/system/ios-status.js +132 -0
- package/dist/system/ios.js +11 -8
- package/dist/system/model.js +1 -0
- package/dist/system/probes.js +105 -0
- package/dist/system/status-summary.js +43 -0
- package/dist/system/unsupported-status.js +52 -0
- package/dist/utils/android/commands.js +89 -0
- package/dist/utils/android/gradle.js +139 -0
- package/dist/utils/android/logs.js +103 -0
- package/dist/utils/android/ui-tree.js +233 -0
- package/dist/utils/android/utils.js +6 -564
- package/dist/utils/cli/idb/idb-helper.js +4 -6
- package/dist/utils/cli/idb/install-idb.js +13 -9
- package/dist/utils/cli/ios/preflight-ios.js +42 -38
- package/dist/utils/exec.js +2 -0
- package/dist/utils/ios/utils.js +45 -46
- package/dist/utils/java.js +75 -57
- package/dist/utils/operation-budget.js +2 -0
- package/dist/utils/resolve-device.js +6 -2
- package/dist/utils/ui/index.js +26 -26
- package/docs/CHANGELOG.md +48 -0
- package/docs/README.md +38 -0
- package/docs/benchmarks/README.md +18 -0
- package/docs/benchmarks/interaction-latency/README.md +14 -0
- package/docs/benchmarks/interaction-latency/final.md +4 -1
- package/docs/benchmarks/interaction-latency/ios-validation.md +2 -0
- package/docs/benchmarks/ui-tree-performance/README.md +24 -16
- package/docs/benchmarks/ui-tree-performance/comparison.md +11 -10
- package/docs/code-structure.md +118 -0
- package/docs/specs/001-state-verification/spec.md +16 -14
- package/docs/specs/002-richer-element-identity/spec.md +12 -10
- package/docs/specs/003-wait-and-synchronization-reliability/spec.md +12 -10
- package/docs/specs/004-action-verification-routing/spec.md +3 -3
- package/docs/specs/005-unified-action-execution-and-verification-model/spec.md +2 -0
- package/docs/specs/006-runtime-action-instrumentation-and-binding-layer/spec.md +2 -0
- package/docs/specs/007-actionability-resolution-and-executable-target-selection/spec.md +3 -1
- package/docs/specs/008-adjustable-control-support-and-semantic-value-manipulation/spec.md +3 -4
- package/docs/specs/009-semantic-control-modeling-for-custom-and-composite-controls/spec.md +2 -0
- package/docs/specs/010-verification-stabilization-and-temporal-convergence/spec.md +2 -2
- package/docs/specs/011-recovery-and-replanning-for-failed-or-ambiguous-interaction-flows/spec.md +2 -2
- package/docs/specs/011.1-recovery-contract-types-and-runtime-wiring-spec/spec.md +2 -0
- package/docs/specs/012-action-trace-and-xecution-observability/spec.md +2 -3
- package/docs/specs/013-wait-and-synchronization-reliability/spec.md +19 -19
- package/docs/specs/014-actionability-resolution/spec.md +20 -18
- package/docs/specs/015-adjustable-control-support/spec.md +17 -15
- package/docs/specs/016-environment-tools/spec.md +20 -20
- package/docs/specs/018-interaction-latency-and-batched-journeys/spec.md +2 -0
- package/docs/specs/019-ui-tree-observation-performance/spec.md +3 -1
- package/docs/specs/020-conditional-actions/intent.md +5 -3
- package/docs/specs/020-conditional-actions/plan.md +8 -9
- package/docs/specs/020-conditional-actions/spec.md +4 -2
- package/docs/specs/021-app-readiness-signals/intent.md +4 -2
- package/docs/specs/021-app-readiness-signals/plan.md +7 -6
- package/docs/specs/021-app-readiness-signals/spec.md +3 -1
- package/docs/specs/022-correlated-evidence/intent.md +4 -4
- package/docs/specs/022-correlated-evidence/plan.md +10 -11
- package/docs/specs/022-correlated-evidence/spec.md +3 -1
- package/docs/specs/023-android-system-traces/device-evidence.json +38 -0
- package/docs/specs/023-android-system-traces/emulator-recheck.json +38 -0
- package/docs/specs/023-android-system-traces/intent.md +41 -0
- package/docs/specs/023-android-system-traces/plan.md +115 -0
- package/docs/specs/023-android-system-traces/spec.md +122 -0
- package/docs/specs/024-android-heap-dump-capture/intent.md +41 -0
- package/docs/specs/025-android-runtime-debugger/intent.md +41 -0
- package/docs/specs/025-android-runtime-debugger/plan.md +106 -0
- package/docs/specs/025-android-runtime-debugger/spec.md +183 -0
- package/docs/specs/026-code-structure-and-quality-gates/health-plan.md +88 -0
- package/docs/specs/026-code-structure-and-quality-gates/intent.md +47 -0
- package/docs/specs/026-code-structure-and-quality-gates/plan.md +191 -0
- package/docs/specs/026-code-structure-and-quality-gates/spec.md +138 -0
- package/docs/specs/026-code-structure-and-quality-gates/verification-final.json +200 -0
- package/docs/specs/026-code-structure-and-quality-gates/verification-thin-facade.json +154 -0
- package/docs/specs/026-code-structure-and-quality-gates/verification.json +136 -0
- package/docs/specs/027-debugger-failure-diagnostics/intent.md +43 -0
- package/docs/specs/027-debugger-failure-diagnostics/plan.md +86 -0
- package/docs/specs/027-debugger-failure-diagnostics/spec.md +133 -0
- package/docs/specs/028-compact-debugger-responses/intent.md +41 -0
- package/docs/specs/028-compact-debugger-responses/plan.md +112 -0
- package/docs/specs/028-compact-debugger-responses/spec.md +108 -0
- package/docs/specs/029-kotlin-locals-validation/report.md +119 -0
- package/docs/specs/030-android-coroutine-validation/evidence.json +475 -0
- package/docs/specs/030-android-coroutine-validation/intent.md +47 -0
- package/docs/specs/030-android-coroutine-validation/plan.md +147 -0
- package/docs/specs/030-android-coroutine-validation/report.md +240 -0
- package/docs/specs/030-android-coroutine-validation/spec.md +107 -0
- package/docs/tools/TOOLS.md +31 -16
- package/docs/tools/{evidence.md → correlated-evidence.md} +14 -3
- package/docs/tools/debugger.md +180 -0
- package/docs/tools/interact.md +42 -20
- package/docs/tools/manage.md +25 -44
- package/docs/tools/observe.md +64 -25
- package/docs/tools/system-traces.md +134 -0
- package/docs/tools/system.md +12 -5
- package/package.json +11 -8
- package/scripts/architecture-graph.mjs +69 -0
- package/scripts/check-architecture.mjs +47 -0
- package/scripts/code-quality-baseline.json +1 -0
- package/scripts/code-quality.mjs +161 -0
- package/src/contracts/execution-controls.ts +26 -0
- package/src/contracts/selector.ts +17 -0
- package/src/contracts/target.ts +19 -0
- package/src/contracts/ui.ts +94 -0
- package/src/debugger/android.ts +66 -0
- package/src/debugger/diagnostics.ts +43 -0
- package/src/debugger/guard.ts +31 -0
- package/src/debugger/java/DebuggerWorker.java +166 -0
- package/src/debugger/protocol.ts +37 -0
- package/src/debugger/sessions.ts +327 -0
- package/src/debugger/worker.ts +135 -0
- package/src/interact/adjustment/adjustment-context.ts +83 -0
- package/src/interact/adjustment/adjustment-gestures.ts +48 -0
- package/src/interact/adjustment/adjustment-plan.ts +23 -0
- package/src/interact/adjustment/adjustment-resolution.ts +104 -0
- package/src/interact/adjustment/adjustment-result.ts +34 -0
- package/src/interact/adjustment/adjustment-semantic.ts +53 -0
- package/src/interact/adjustment/adjustment-verification.ts +60 -0
- package/src/interact/adjustment/adjustment.ts +49 -0
- package/src/interact/adjustment/control-geometry.ts +120 -0
- package/src/interact/adjustment/control-values.ts +141 -0
- package/src/interact/adjustment/slider-labels.ts +84 -0
- package/src/interact/assertions/screen-assertion.ts +39 -0
- package/src/interact/assertions/state-assertion-context.ts +48 -0
- package/src/interact/assertions/state-assertion.ts +64 -0
- package/src/interact/assertions/state-comparison.ts +168 -0
- package/src/interact/assertions/visibility-assertion.ts +41 -0
- package/src/interact/conditional-action.ts +18 -12
- package/src/interact/index.ts +76 -3491
- package/src/interact/input-service.ts +11 -0
- package/src/interact/interaction-trace.ts +36 -0
- package/src/interact/model.ts +109 -0
- package/src/interact/observation.ts +7 -0
- package/src/interact/targeting/candidate-ancestor.ts +49 -0
- package/src/interact/targeting/candidate-result.ts +24 -0
- package/src/interact/targeting/candidate-scoring.ts +42 -0
- package/src/interact/targeting/element-helpers.ts +243 -0
- package/src/interact/targeting/find-element.ts +47 -0
- package/src/interact/targeting/nearby-control.ts +46 -0
- package/src/interact/targeting/resolved-elements.ts +20 -0
- package/src/interact/targeting/tap-target.ts +22 -0
- package/src/interact/targeting/target-scope.ts +121 -0
- package/src/interact/waits/legacy-log-wait.ts +30 -0
- package/src/interact/waits/legacy-wait-observations.ts +55 -0
- package/src/interact/waits/legacy-wait-state.ts +48 -0
- package/src/interact/waits/legacy-wait.ts +34 -0
- package/src/interact/waits/screen-wait.ts +37 -0
- package/src/interact/waits/ui-change-helpers.ts +184 -0
- package/src/interact/waits/ui-change-state.ts +26 -0
- package/src/interact/waits/ui-change-wait.ts +59 -0
- package/src/interact/waits/ui-wait-condition.ts +52 -0
- package/src/interact/waits/ui-wait-state.ts +55 -0
- package/src/interact/waits/ui-wait.ts +84 -0
- package/src/manage/android.ts +56 -50
- package/src/manage/index.ts +63 -93
- package/src/manage/ios/build-types.ts +14 -0
- package/src/manage/ios/build.ts +230 -0
- package/src/manage/ios/project-discovery.ts +26 -0
- package/src/manage/ios/scheme.ts +16 -0
- package/src/manage/ios.ts +65 -298
- package/src/observe/android/context.ts +1 -0
- package/src/observe/android/current-screen.ts +63 -0
- package/src/observe/android/fingerprint.ts +13 -0
- package/src/observe/android/log-stream.ts +127 -0
- package/src/observe/android/logs.ts +110 -0
- package/src/observe/android/screenshot.ts +79 -0
- package/src/observe/android/ui-tree.ts +113 -0
- package/src/observe/android.ts +17 -531
- package/src/observe/evidence.ts +130 -71
- package/src/observe/index.ts +24 -286
- package/src/observe/ios/context.ts +22 -0
- package/src/observe/ios/fingerprint.ts +12 -0
- package/src/observe/ios/log-stream.ts +103 -0
- package/src/observe/ios/logs.ts +179 -0
- package/src/observe/ios/screenshot.ts +26 -0
- package/src/observe/ios/ui-elements.ts +266 -0
- package/src/observe/ios/ui-tree.ts +143 -0
- package/src/observe/ios.ts +18 -749
- package/src/observe/logs/model.ts +11 -0
- package/src/{network → observe/network}/index.ts +2 -2
- package/src/observe/readiness-service.ts +10 -3
- package/src/observe/readiness.ts +49 -22
- package/src/observe/screenshot-encoding.ts +32 -0
- package/src/observe/snapshot-collection.ts +69 -0
- package/src/observe/snapshot-logs.ts +26 -0
- package/src/observe/snapshot-metadata.ts +51 -31
- package/src/observe/snapshot-semantic.ts +153 -0
- package/src/observe/system-trace-android.ts +133 -0
- package/src/observe/system-trace.ts +227 -0
- package/src/runtime/action-results.ts +376 -0
- package/src/runtime/clock.ts +9 -0
- package/src/server/common.ts +9 -359
- package/src/server/definitions/assert.ts +164 -0
- package/src/server/definitions/diagnostic.ts +120 -0
- package/src/server/definitions/input.ts +276 -0
- package/src/server/definitions/manage.ts +196 -0
- package/src/server/definitions/observe.ts +151 -0
- package/src/server/definitions/target.ts +140 -0
- package/src/server/definitions/wait.ts +107 -0
- package/src/server/handlers/action-execution.ts +164 -0
- package/src/server/handlers/correlation.ts +20 -0
- package/src/server/handlers/debugger-handlers.ts +39 -0
- package/src/server/handlers/debugger-response.ts +7 -0
- package/src/server/handlers/diagnostic.ts +79 -0
- package/src/server/handlers/handler-types.ts +7 -0
- package/src/server/handlers/input.ts +173 -0
- package/src/server/handlers/interact.ts +135 -0
- package/src/server/handlers/journey-assertions.ts +39 -0
- package/src/server/handlers/journey.ts +132 -0
- package/src/server/handlers/manage.ts +141 -0
- package/src/server/handlers/observe.ts +116 -0
- package/src/server/handlers/payload.ts +36 -0
- package/src/server/handlers/tool-handlers.ts +159 -0
- package/src/server/schemas/condition-schema.ts +2 -0
- package/src/server/schemas/debugger-schema.ts +43 -0
- package/src/server/{journey-schema.ts → schemas/journey-schema.ts} +8 -22
- package/src/server/schemas/system-trace-schema.ts +17 -0
- package/src/server/tool-definitions.ts +69 -1140
- package/src/server-core.ts +4 -4
- package/src/server.ts +25 -1
- package/src/system/android-status.ts +124 -0
- package/src/system/android.ts +33 -21
- package/src/system/index.ts +21 -523
- package/src/system/ios-status.ts +147 -0
- package/src/system/ios.ts +14 -10
- package/src/system/model.ts +41 -0
- package/src/system/probes.ts +114 -0
- package/src/system/status-summary.ts +47 -0
- package/src/system/unsupported-status.ts +55 -0
- package/src/types.ts +16 -106
- package/src/utils/android/commands.ts +81 -0
- package/src/utils/android/gradle.ts +132 -0
- package/src/utils/android/logs.ts +103 -0
- package/src/utils/android/ui-tree.ts +239 -0
- package/src/utils/android/utils.ts +16 -556
- package/src/utils/cli/idb/check-idb.ts +4 -4
- package/src/utils/cli/idb/idb-helper.ts +6 -8
- package/src/utils/cli/idb/install-idb.ts +15 -9
- package/src/utils/cli/ios/preflight-ios.ts +39 -31
- package/src/utils/cli/ios/run-ios-ui-tree-tap.ts +4 -4
- package/src/utils/exec.ts +2 -0
- package/src/utils/ios/utils.ts +57 -61
- package/src/utils/java.ts +71 -51
- package/src/utils/operation-budget.ts +2 -0
- package/src/utils/resolve-device.ts +11 -6
- package/src/utils/ui/index.ts +28 -28
- package/test/device/automated/debugger/coroutine-lifecycle.ts +27 -0
- package/test/device/automated/debugger/coroutine-support.ts +140 -0
- package/test/device/automated/debugger/coroutine.android.test.ts +169 -0
- package/test/device/automated/debugger/kotlin.android.test.ts +127 -0
- package/test/device/automated/debugger/runtime.android.test.ts +219 -0
- package/test/device/automated/interact/interaction.android.test.ts +56 -0
- package/test/device/automated/observe/system-trace.smoke.ts +104 -0
- package/test/device/manual/interact/modul8_selector_tap.manual.ts +1 -1
- package/test/fixtures/contracts/tool-definitions.json +3536 -0
- package/test/fixtures/coroutine-app/MainActivity.kt +100 -0
- package/test/fixtures/coroutine-app/README.md +48 -0
- package/test/fixtures/coroutine-app/build.ts +35 -0
- package/test/fixtures/debugger-app/MainActivity.java +67 -0
- package/test/fixtures/debugger-app/MainActivity.kt +32 -0
- package/test/fixtures/debugger-app/NoLocals.java +7 -0
- package/test/fixtures/debugger-app/README.md +65 -0
- package/test/fixtures/debugger-app/build.ts +39 -0
- package/test/fixtures/latency-journey-app/README.md +2 -0
- package/test/fixtures/readiness-app/README.md +2 -0
- package/test/helpers/perfetto.ts +59 -0
- package/test/unit/debugger/coroutine-lifecycle.test.ts +43 -0
- package/test/unit/debugger/diagnostic-sessions.test.ts +67 -0
- package/test/unit/debugger/diagnostics.test.ts +80 -0
- package/test/unit/debugger/guards.test.ts +50 -0
- package/test/unit/debugger/native.test.ts +33 -0
- package/test/unit/debugger/preparation.test.ts +32 -0
- package/test/unit/debugger/protocol.test.ts +15 -0
- package/test/unit/debugger/sessions.test.ts +83 -0
- package/test/unit/interact/adjustment_service.test.ts +42 -0
- package/test/unit/interact/adjustment_verification.test.ts +35 -0
- package/test/unit/interact/clock_dependencies.test.ts +63 -0
- package/test/unit/interact/element_helpers.test.ts +19 -0
- package/test/unit/interact/legacy_wait_service.test.ts +17 -0
- package/test/unit/interact/state_comparison.test.ts +20 -0
- package/test/unit/interact/target_scope.test.ts +35 -0
- package/test/unit/network/get_network_activity.test.ts +1 -1
- package/test/unit/observe/readiness.test.ts +3 -1
- package/test/unit/observe/screenshot-encoding.test.ts +30 -0
- package/test/unit/observe/snapshot-logs.test.ts +14 -0
- package/test/unit/observe/system-trace-android.test.ts +52 -0
- package/test/unit/observe/system-trace.test.ts +166 -0
- package/test/unit/quality/architecture.test.ts +60 -0
- package/test/unit/quality/code-quality.test.ts +58 -0
- package/test/unit/quality/interaction_boundaries.test.ts +24 -0
- package/test/unit/server/conditional_actions.test.ts +1 -1
- package/test/unit/server/conditional_schema.test.ts +2 -2
- package/test/unit/server/debugger-response.test.ts +63 -0
- package/test/unit/server/system-trace.test.ts +64 -0
- package/test/unit/server/tool_definitions_parity.test.ts +8 -0
- package/dist/server/tool-handlers.js +0 -893
- package/docs/ROADMAP.md +0 -646
- package/docs/benchmarks/ui-tree-performance/bridge-probe.json +0 -29
- package/docs/benchmarks/ui-tree-performance/initial-baseline.json +0 -59560
- package/docs/specs/baseline-spec-v0.md +0 -312
- package/docs/specs/mcp-tooling-spec-v1.md +0 -446
- package/src/server/tool-handlers.ts +0 -923
- /package/dist/{server/condition-schema.js → contracts/condition.js} +0 -0
- /package/dist/server/{readiness-schema.js → schemas/readiness-schema.js} +0 -0
- /package/src/{server/condition-schema.ts → contracts/condition.ts} +0 -0
- /package/src/server/{readiness-schema.ts → schemas/readiness-schema.ts} +0 -0
package/docs/ROADMAP.md
DELETED
|
@@ -1,646 +0,0 @@
|
|
|
1
|
-
# Mobile Debug MCP Roadmap
|
|
2
|
-
|
|
3
|
-
## Done
|
|
4
|
-
|
|
5
|
-
- Stronger State Verification
|
|
6
|
-
- Richer Element Identity
|
|
7
|
-
- Better Compose / Custom Control Semantics
|
|
8
|
-
- Verification Stabilization and Temporal Convergence
|
|
9
|
-
- Action Trace and Execution Observability
|
|
10
|
-
- Wait and Synchronization Reliability
|
|
11
|
-
- Actionability Resolution
|
|
12
|
-
- Environment Auto-Configuration and Toolchain Discovery
|
|
13
|
-
- Adjustable Control Support
|
|
14
|
-
- UI-Tree Observation Performance (Android implemented; iOS latency unmeasured)
|
|
15
|
-
|
|
16
|
-
## Todo
|
|
17
|
-
|
|
18
|
-
- Adjustable Control Precision Hardening
|
|
19
|
-
- Signal-Oriented Diagnostic Filtering
|
|
20
|
-
- Long Press Gesture
|
|
21
|
-
- Runtime Debugger Introspection
|
|
22
|
-
- Pinch to Zoom
|
|
23
|
-
- Advanced Trace Correlation and Analysis
|
|
24
|
-
|
|
25
|
-
# UI-Tree Observation Performance
|
|
26
|
-
|
|
27
|
-
**Status:** Android implemented and benchmarked; iOS latency remains unmeasured — [Specification 019](specs/019-ui-tree-observation-performance/spec.md)
|
|
28
|
-
|
|
29
|
-
Measure physical hierarchy reads and their cost, then reduce the measured hot path while preserving fresh post-action and asynchronous UI evidence. Validate the change against the existing static journey and a controlled network-backed screen before claiming a speedup.
|
|
30
|
-
|
|
31
|
-
Exit criteria and performance gates are defined in Specification 019.
|
|
32
|
-
|
|
33
|
-
# Stronger State Verification
|
|
34
|
-
|
|
35
|
-
## Rationale
|
|
36
|
-
Highest leverage improvement.
|
|
37
|
-
|
|
38
|
-
**Status:** Completed
|
|
39
|
-
|
|
40
|
-
Most failures are not “can’t act,” they’re:
|
|
41
|
-
- uncertain state
|
|
42
|
-
- weak verification
|
|
43
|
-
- retry loops caused by inference
|
|
44
|
-
|
|
45
|
-
## Scope
|
|
46
|
-
- Direct readable control values
|
|
47
|
-
- Expanded `expect_*` verification
|
|
48
|
-
- Move from inference to state introspection
|
|
49
|
-
|
|
50
|
-
## Expected Impact
|
|
51
|
-
Very high.
|
|
52
|
-
|
|
53
|
-
## Exit Criteria
|
|
54
|
-
- Control state readable for core widgets (toggle, slider, input, dropdown)
|
|
55
|
-
- New expect_* state verifiers implemented
|
|
56
|
-
- Agents can verify state without visual inference in representative flows
|
|
57
|
-
- Documentation and snapshot response shape updated
|
|
58
|
-
|
|
59
|
-
## Success Metrics
|
|
60
|
-
- 30%+ retry reduction on stateful tasks
|
|
61
|
-
- Higher first-pass verification success
|
|
62
|
-
- Reduced false positive verifications
|
|
63
|
-
|
|
64
|
-
## Dependencies
|
|
65
|
-
Blocks or strengthens:
|
|
66
|
-
- Better Compose / Custom Control Semantics
|
|
67
|
-
- Pinch to Zoom
|
|
68
|
-
- Advanced Trace Correlation and Analysis
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
# Richer Element Identity
|
|
73
|
-
|
|
74
|
-
## Rationale
|
|
75
|
-
Directly reduces selector brittleness.
|
|
76
|
-
|
|
77
|
-
**Status:** Completed
|
|
78
|
-
|
|
79
|
-
Improves:
|
|
80
|
-
- targeting stability
|
|
81
|
-
- repeatability
|
|
82
|
-
- agent confidence
|
|
83
|
-
|
|
84
|
-
## Scope
|
|
85
|
-
- Stable IDs / test tags prioritization
|
|
86
|
-
- Selector confidence metadata
|
|
87
|
-
- Preferred selector hierarchy
|
|
88
|
-
|
|
89
|
-
## Expected Impact
|
|
90
|
-
Very high.
|
|
91
|
-
|
|
92
|
-
## Exit Criteria
|
|
93
|
-
- Stable selector preference order implemented
|
|
94
|
-
- Test tags/resource IDs surfaced where available
|
|
95
|
-
- Selector confidence metadata available
|
|
96
|
-
- Structural fallback selectors defined
|
|
97
|
-
|
|
98
|
-
## Success Metrics
|
|
99
|
-
- Higher element match rate
|
|
100
|
-
- Reduced selector drift failures
|
|
101
|
-
- Lower retargeting retries
|
|
102
|
-
|
|
103
|
-
## Dependencies
|
|
104
|
-
Blocks or strengthens:
|
|
105
|
-
- Long Press Gesture
|
|
106
|
-
- Better Compose / Custom Control Semantics
|
|
107
|
-
- Pinch to Zoom
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
# Wait and Synchronization Reliability
|
|
112
|
-
|
|
113
|
-
## Rationale
|
|
114
|
-
Reliable async synchronization is foundational for agent success and should precede gesture expansion.
|
|
115
|
-
|
|
116
|
-
**Status:** Spec Ready
|
|
117
|
-
|
|
118
|
-
Addresses failures where agents:
|
|
119
|
-
- skip UI waits after actions
|
|
120
|
-
- rely on network/log signals too early
|
|
121
|
-
- struggle with in-place UI updates
|
|
122
|
-
- misread stale UI snapshots
|
|
123
|
-
|
|
124
|
-
## Scope
|
|
125
|
-
- UI-first synchronization policy guidance
|
|
126
|
-
- wait_for_ui_change (hierarchy diff based waiting)
|
|
127
|
-
- Structured loading state detection
|
|
128
|
-
- Snapshot revision / staleness metadata
|
|
129
|
-
- Incremental / diff-based snapshot delivery (token-efficient)
|
|
130
|
-
- Focused snapshot scoping (subtree / target-based)
|
|
131
|
-
- Compose-aware wait robustness improvements
|
|
132
|
-
- Explicit interaction sequencing guidance (tap → wait → verify pattern)
|
|
133
|
-
- Exploration of optional action-level synchronization ergonomics (e.g. implicit stabilization or wait flags)
|
|
134
|
-
|
|
135
|
-
## Expected Impact
|
|
136
|
-
Very high.
|
|
137
|
-
|
|
138
|
-
## Exit Criteria
|
|
139
|
-
- wait_for_ui_change implemented
|
|
140
|
-
- Loading state detection available for representative controls
|
|
141
|
-
- Snapshot revision or staleness metadata exposed
|
|
142
|
-
- Focused or diff-oriented snapshots validated in benchmark flows
|
|
143
|
-
- UI-first sync guidance added to spec guardrails
|
|
144
|
-
- In-place update waits validated on benchmark flows
|
|
145
|
-
|
|
146
|
-
## Success Metrics
|
|
147
|
-
- Reduced missed async UI transitions
|
|
148
|
-
- Fewer retries caused by premature actions
|
|
149
|
-
- Higher wait success rate for dynamic UI flows
|
|
150
|
-
- Lower fallback usage to network/log checks
|
|
151
|
-
- Reduced need for manual sequencing by agents in stateful flows
|
|
152
|
-
- Reduced average snapshot size (tokens)
|
|
153
|
-
|
|
154
|
-
## Dependencies
|
|
155
|
-
Depends on:
|
|
156
|
-
- Stronger State Verification
|
|
157
|
-
- Richer Element Identity
|
|
158
|
-
|
|
159
|
-
Blocks or strengthens:
|
|
160
|
-
- Better Compose / Custom Control Semantics
|
|
161
|
-
- Advanced Trace Correlation and Analysis
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
# Verification Stabilization and Temporal Convergence
|
|
166
|
-
|
|
167
|
-
## Rationale
|
|
168
|
-
Real-world feedback exposed false-negative readiness failures caused by transient UI timing, even when target state had actually converged.
|
|
169
|
-
|
|
170
|
-
**Status:** Completed
|
|
171
|
-
|
|
172
|
-
Addresses friction where agents:
|
|
173
|
-
- fail readiness checks on transient timing races
|
|
174
|
-
- act on stale snapshots
|
|
175
|
-
- misclassify eventual success as timeout failure
|
|
176
|
-
- encounter lag between UI convergence and verification success
|
|
177
|
-
|
|
178
|
-
## Scope
|
|
179
|
-
- Bounded recheck before readiness failure
|
|
180
|
-
- Temporal debounce for transient state mismatches
|
|
181
|
-
- Verify-until-stable semantics for readiness checks
|
|
182
|
-
- Stability confirmation windows
|
|
183
|
-
- Snapshot freshness and convergence heuristics
|
|
184
|
-
|
|
185
|
-
## Expected Impact
|
|
186
|
-
Very high.
|
|
187
|
-
|
|
188
|
-
## Exit Criteria
|
|
189
|
-
- False-negative readiness failures materially reduced
|
|
190
|
-
- Stability confirmation logic implemented
|
|
191
|
-
- Benchmark async flows validate improved convergence detection
|
|
192
|
-
- Verification timing behavior documented in guardrails
|
|
193
|
-
|
|
194
|
-
## Success Metrics
|
|
195
|
-
- Higher first-pass verification success
|
|
196
|
-
- Lower false timeout failures
|
|
197
|
-
- Higher wait success rate
|
|
198
|
-
- Fewer retries caused by premature failure classification
|
|
199
|
-
|
|
200
|
-
## Dependencies
|
|
201
|
-
Depends on:
|
|
202
|
-
- Stronger State Verification
|
|
203
|
-
- Wait and Synchronization Reliability
|
|
204
|
-
|
|
205
|
-
Strengthens:
|
|
206
|
-
- Actionability Resolution
|
|
207
|
-
- Adjustable Control Support
|
|
208
|
-
- Recovery and replanning readiness
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
# Actionability Resolution
|
|
213
|
-
|
|
214
|
-
## Rationale
|
|
215
|
-
Reduces failures caused by interacting with discoverable but non-actionable UI nodes.
|
|
216
|
-
|
|
217
|
-
**Status:** Completed
|
|
218
|
-
|
|
219
|
-
Addresses cases where:
|
|
220
|
-
- visible text is not the true click target
|
|
221
|
-
- child nodes differ from actionable containers
|
|
222
|
-
- affordance exists but handler ownership is ambiguous
|
|
223
|
-
|
|
224
|
-
## Scope
|
|
225
|
-
- Actionable container resolution
|
|
226
|
-
- Executable-target preference rules
|
|
227
|
-
- Actionability confidence metadata
|
|
228
|
-
- Post-action state verification integration
|
|
229
|
-
- Geometry-aware fallback targeting for weak semantic surfaces (e.g. sliders without accessible nodes)
|
|
230
|
-
|
|
231
|
-
## Expected Impact
|
|
232
|
-
High.
|
|
233
|
-
|
|
234
|
-
## Exit Criteria
|
|
235
|
-
- Actionable target resolution implemented
|
|
236
|
-
- Preference rules defined for executable containers over leaf nodes
|
|
237
|
-
- Actionability confidence surfaced
|
|
238
|
-
- Benchmark flows show reduced false taps and submit ambiguity
|
|
239
|
-
|
|
240
|
-
## Success Metrics
|
|
241
|
-
- Reduced mis-targeted action failures
|
|
242
|
-
- Lower retarget retries
|
|
243
|
-
- Higher first-attempt action success
|
|
244
|
-
- Reduced need for empirical coordinate probing on custom controls
|
|
245
|
-
|
|
246
|
-
## Dependencies
|
|
247
|
-
Depends on:
|
|
248
|
-
- Stronger State Verification
|
|
249
|
-
- Richer Element Identity
|
|
250
|
-
- Wait and Synchronization Reliability
|
|
251
|
-
|
|
252
|
-
Blocks or strengthens:
|
|
253
|
-
- Adjustable Control Support
|
|
254
|
-
- Better Compose / Custom Control Semantics
|
|
255
|
-
|
|
256
|
-
---
|
|
257
|
-
|
|
258
|
-
# Adjustable Control Support
|
|
259
|
-
|
|
260
|
-
## Rationale
|
|
261
|
-
High leverage improvement for sliders and parameterized controls.
|
|
262
|
-
|
|
263
|
-
**Status:** Completed
|
|
264
|
-
|
|
265
|
-
Addresses friction around:
|
|
266
|
-
- coordinate-calibrated slider interaction
|
|
267
|
-
- snapping and quantized controls
|
|
268
|
-
- weak state confirmation after adjustment
|
|
269
|
-
|
|
270
|
-
## Scope
|
|
271
|
-
New semantic control support:
|
|
272
|
-
|
|
273
|
-
```json
|
|
274
|
-
set_slider_value(target, value, tolerance?)
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
Includes:
|
|
278
|
-
- semantic adjustable control manipulation
|
|
279
|
-
- read-back verification loop
|
|
280
|
-
- tolerance-aware value setting
|
|
281
|
-
- fallback coordinate calibration only when needed
|
|
282
|
-
|
|
283
|
-
## Expected Impact
|
|
284
|
-
High.
|
|
285
|
-
|
|
286
|
-
## Exit Criteria
|
|
287
|
-
- Adjustable control primitive implemented
|
|
288
|
-
- Verification loop reads and confirms resulting values
|
|
289
|
-
- Tolerance model defined
|
|
290
|
-
- Benchmark slider/custom control flows validated
|
|
291
|
-
|
|
292
|
-
## Success Metrics
|
|
293
|
-
- Higher custom control interaction success rate
|
|
294
|
-
- Fewer retries adjusting controls
|
|
295
|
-
- Reduced coordinate-guessing failures
|
|
296
|
-
|
|
297
|
-
## Dependencies
|
|
298
|
-
Depends on:
|
|
299
|
-
- Stronger State Verification
|
|
300
|
-
- Richer Element Identity
|
|
301
|
-
- Actionability Resolution
|
|
302
|
-
|
|
303
|
-
Blocks or strengthens:
|
|
304
|
-
- Better Compose / Custom Control Semantics
|
|
305
|
-
- Pinch to Zoom
|
|
306
|
-
|
|
307
|
-
---
|
|
308
|
-
|
|
309
|
-
# Adjustable Control Precision Hardening
|
|
310
|
-
|
|
311
|
-
## Rationale
|
|
312
|
-
Post-implementation feedback shows semantics exist, but fine-grained adjustable targeting and convergence still need hardening.
|
|
313
|
-
|
|
314
|
-
**Status:** Planned
|
|
315
|
-
|
|
316
|
-
Addresses friction around:
|
|
317
|
-
- slider thumb targeting precision
|
|
318
|
-
- tap vs drag adjustment strategy selection
|
|
319
|
-
- snapping and quantized convergence behavior
|
|
320
|
-
- repeated adjustment retries before landing on target value
|
|
321
|
-
|
|
322
|
-
## Scope
|
|
323
|
-
- Fine-grained slider targeting refinement
|
|
324
|
-
- Drag vs tap adjustment strategy heuristics
|
|
325
|
-
- Improved value snapping convergence
|
|
326
|
-
- Control-specific adjustment fallback policies
|
|
327
|
-
- Controlled search strategies for value convergence (e.g. binary / progressive adjustment)
|
|
328
|
-
|
|
329
|
-
## Expected Impact
|
|
330
|
-
High.
|
|
331
|
-
|
|
332
|
-
## Exit Criteria
|
|
333
|
-
- Benchmark slider flows reach target values with fewer retries
|
|
334
|
-
- Adjustment strategy selection validated across representative controls
|
|
335
|
-
- Reduced repeated-tap convergence failures
|
|
336
|
-
|
|
337
|
-
## Success Metrics
|
|
338
|
-
- Fewer retries for adjustable controls
|
|
339
|
-
- Higher first-attempt target value success
|
|
340
|
-
- Reduced control convergence failures
|
|
341
|
-
|
|
342
|
-
## Dependencies
|
|
343
|
-
Depends on:
|
|
344
|
-
- Adjustable Control Support
|
|
345
|
-
- Better Compose / Custom Control Semantics
|
|
346
|
-
|
|
347
|
-
Strengthens:
|
|
348
|
-
- Recovery readiness
|
|
349
|
-
|
|
350
|
-
---
|
|
351
|
-
|
|
352
|
-
# Signal-Oriented Diagnostic Filtering
|
|
353
|
-
|
|
354
|
-
## Rationale
|
|
355
|
-
Improves observability by separating causal signals from diagnostic noise.
|
|
356
|
-
|
|
357
|
-
**Status:** Planned
|
|
358
|
-
|
|
359
|
-
Addresses friction from:
|
|
360
|
-
- noisy log streams
|
|
361
|
-
- weak signal extraction
|
|
362
|
-
- difficult action-to-signal attribution
|
|
363
|
-
|
|
364
|
-
## Scope
|
|
365
|
-
- Structured diagnostic classification
|
|
366
|
-
- Noise filtering heuristics
|
|
367
|
-
- Signal relevance scoring
|
|
368
|
-
- App vs system event tagging
|
|
369
|
-
|
|
370
|
-
## Expected Impact
|
|
371
|
-
High.
|
|
372
|
-
|
|
373
|
-
## Exit Criteria
|
|
374
|
-
- Diagnostic signal classification model defined
|
|
375
|
-
- Noise filtering available in representative flows
|
|
376
|
-
- Relevant action-linked signals surfaced separately from background noise
|
|
377
|
-
- Debug workflows validated with filtered signals
|
|
378
|
-
|
|
379
|
-
## Success Metrics
|
|
380
|
-
- Lower time-to-root-cause
|
|
381
|
-
- Faster identification of relevant action signals
|
|
382
|
-
- Reduced diagnostic ambiguity
|
|
383
|
-
|
|
384
|
-
## Dependencies
|
|
385
|
-
Depends on:
|
|
386
|
-
- Stronger State Verification
|
|
387
|
-
- Wait and Synchronization Reliability
|
|
388
|
-
|
|
389
|
-
Strengthens:
|
|
390
|
-
- Advanced Trace Correlation and Analysis
|
|
391
|
-
|
|
392
|
-
---
|
|
393
|
-
|
|
394
|
-
# Long Press Gesture
|
|
395
|
-
|
|
396
|
-
## Rationale
|
|
397
|
-
High utility, relatively low complexity.
|
|
398
|
-
|
|
399
|
-
**Status:** Planned
|
|
400
|
-
|
|
401
|
-
Unlocks many currently awkward interactions:
|
|
402
|
-
|
|
403
|
-
- context menus
|
|
404
|
-
- hidden actions
|
|
405
|
-
- reorder handles
|
|
406
|
-
- press-and-hold controls
|
|
407
|
-
|
|
408
|
-
Broad usefulness.
|
|
409
|
-
|
|
410
|
-
## Scope
|
|
411
|
-
New tool:
|
|
412
|
-
|
|
413
|
-
```json
|
|
414
|
-
long_press(element_id, duration_ms?)
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
Verification alignment:
|
|
418
|
-
- expect_context_menu
|
|
419
|
-
- expect_press_effect
|
|
420
|
-
|
|
421
|
-
## Expected Impact
|
|
422
|
-
High.
|
|
423
|
-
|
|
424
|
-
## Exit Criteria
|
|
425
|
-
- long_press tool implemented across supported platforms
|
|
426
|
-
- Duration defaults and overrides supported
|
|
427
|
-
- Verification patterns for long press outcomes defined
|
|
428
|
-
- Included in action capability model
|
|
429
|
-
|
|
430
|
-
## Success Metrics
|
|
431
|
-
- Increased hidden/control-surface interaction coverage
|
|
432
|
-
- Reduced dead-end interaction failures
|
|
433
|
-
- Long press task success rate tracked
|
|
434
|
-
|
|
435
|
-
## Dependencies
|
|
436
|
-
Depends on:
|
|
437
|
-
- Richer Element Identity
|
|
438
|
-
|
|
439
|
-
Strengthens:
|
|
440
|
-
- Better Compose / Custom Control Semantics
|
|
441
|
-
|
|
442
|
-
---
|
|
443
|
-
|
|
444
|
-
# Better Compose / Custom Control Semantics
|
|
445
|
-
|
|
446
|
-
## Rationale
|
|
447
|
-
Higher priority after agent feedback exposed custom control semantics as a core reliability gap, not a later optimization.
|
|
448
|
-
|
|
449
|
-
**Status:** Completed
|
|
450
|
-
|
|
451
|
-
Semantics become more useful once:
|
|
452
|
-
- identity is stronger
|
|
453
|
-
- verification is stronger
|
|
454
|
-
- gestures are richer
|
|
455
|
-
- synchronization is more reliable
|
|
456
|
-
- action execution is more precise
|
|
457
|
-
|
|
458
|
-
## Scope
|
|
459
|
-
- Composite control traits
|
|
460
|
-
- Control role enrichment (`slider`, `stepper`, `dropdown`, `segmented_control`, `custom_adjustable`)
|
|
461
|
-
- Interaction contract metadata (`supported_actions`, `adjustable`, `state_shape`)
|
|
462
|
-
- Custom widget gesture affordance hints
|
|
463
|
-
- Semantic confidence annotations
|
|
464
|
-
- Compose-aware selectors for waits (merged semantics and element relationships)
|
|
465
|
-
|
|
466
|
-
## Expected Impact
|
|
467
|
-
High.
|
|
468
|
-
|
|
469
|
-
## Exit Criteria
|
|
470
|
-
- Semantic traits implemented for major custom control classes
|
|
471
|
-
- Interaction contracts surfaced in observation and resolution paths
|
|
472
|
-
- Confidence model defined for derived semantics
|
|
473
|
-
- Custom control manipulation success validated in benchmark flows
|
|
474
|
-
|
|
475
|
-
## Success Metrics
|
|
476
|
-
- Higher custom control interaction success rate
|
|
477
|
-
- Fewer retries on non-standard widgets
|
|
478
|
-
- Reduced semantic ambiguity failures
|
|
479
|
-
|
|
480
|
-
## Dependencies
|
|
481
|
-
Depends on:
|
|
482
|
-
- Stronger State Verification
|
|
483
|
-
- Richer Element Identity
|
|
484
|
-
- Wait and Synchronization Reliability
|
|
485
|
-
- Actionability Resolution
|
|
486
|
-
- Adjustable Control Support
|
|
487
|
-
- Long Press Gesture
|
|
488
|
-
|
|
489
|
-
---
|
|
490
|
-
|
|
491
|
-
# Runtime Debugger Introspection
|
|
492
|
-
|
|
493
|
-
## Rationale
|
|
494
|
-
Enables agents to move from symptom observation to runtime causal analysis by inspecting paused application state during debugging sessions.
|
|
495
|
-
|
|
496
|
-
**Status:** Planned
|
|
497
|
-
|
|
498
|
-
Addresses limitations where agents:
|
|
499
|
-
- observe UI failures but cannot determine runtime cause
|
|
500
|
-
- cannot inspect ViewModel or controller state
|
|
501
|
-
- lack access to local variables and stack context
|
|
502
|
-
- cannot reason about async execution state
|
|
503
|
-
|
|
504
|
-
## Scope
|
|
505
|
-
Debugger-assisted runtime inspection primitives:
|
|
506
|
-
|
|
507
|
-
```javascript
|
|
508
|
-
debugger.pause_state()
|
|
509
|
-
debugger.stack_trace()
|
|
510
|
-
debugger.locals()
|
|
511
|
-
debugger.inspect_object(object_id)
|
|
512
|
-
debugger.evaluate(expression)
|
|
513
|
-
debugger.threads()
|
|
514
|
-
```
|
|
515
|
-
|
|
516
|
-
Includes:
|
|
517
|
-
- stack frame inspection
|
|
518
|
-
- local variable inspection
|
|
519
|
-
- object graph traversal
|
|
520
|
-
- thread inspection
|
|
521
|
-
- expression evaluation
|
|
522
|
-
- platform abstraction over JDWP / LLDB
|
|
523
|
-
- bounded object expansion and summarization
|
|
524
|
-
- coroutine/task inspection support
|
|
525
|
-
|
|
526
|
-
Future exploration:
|
|
527
|
-
- controlled stepping support
|
|
528
|
-
- debugger-assisted recovery workflows
|
|
529
|
-
|
|
530
|
-
## Expected Impact
|
|
531
|
-
Very high.
|
|
532
|
-
|
|
533
|
-
Transforms debugging from:
|
|
534
|
-
- surface-level symptom detection
|
|
535
|
-
|
|
536
|
-
toward:
|
|
537
|
-
- root-cause-oriented runtime reasoning
|
|
538
|
-
|
|
539
|
-
## Exit Criteria
|
|
540
|
-
- Paused runtime state accessible through MCP
|
|
541
|
-
- Local variable inspection implemented
|
|
542
|
-
- Stack trace inspection implemented
|
|
543
|
-
- Object inspection primitives implemented
|
|
544
|
-
- Runtime inspection validated on representative Android flows
|
|
545
|
-
- Object expansion safeguards implemented
|
|
546
|
-
- Expression evaluation available with safety limits
|
|
547
|
-
|
|
548
|
-
## Success Metrics
|
|
549
|
-
- Lower mean time-to-root-cause
|
|
550
|
-
- Higher causal diagnosis accuracy
|
|
551
|
-
- Reduced debugging iteration loops
|
|
552
|
-
- Faster identification of state-management failures
|
|
553
|
-
- Improved async/concurrency failure diagnosis
|
|
554
|
-
|
|
555
|
-
## Dependencies
|
|
556
|
-
Depends on:
|
|
557
|
-
- Action Trace and Execution Observability
|
|
558
|
-
- Stronger State Verification
|
|
559
|
-
- Wait and Synchronization Reliability
|
|
560
|
-
- Signal-Oriented Diagnostic Filtering
|
|
561
|
-
|
|
562
|
-
Strengthens:
|
|
563
|
-
- Advanced Trace Correlation and Analysis
|
|
564
|
-
- Future autonomous recovery systems
|
|
565
|
-
|
|
566
|
-
# Pinch to Zoom
|
|
567
|
-
|
|
568
|
-
## Rationale
|
|
569
|
-
Valuable, but narrower than long press.
|
|
570
|
-
|
|
571
|
-
**Status:** Planned
|
|
572
|
-
|
|
573
|
-
Applies mainly to:
|
|
574
|
-
- maps
|
|
575
|
-
- images
|
|
576
|
-
- canvases
|
|
577
|
-
- zoomable custom surfaces
|
|
578
|
-
|
|
579
|
-
Useful, but less universal.
|
|
580
|
-
|
|
581
|
-
## Scope
|
|
582
|
-
|
|
583
|
-
```json
|
|
584
|
-
pinch_to_zoom(target, scale, center?)
|
|
585
|
-
```
|
|
586
|
-
|
|
587
|
-
Verification:
|
|
588
|
-
- expect_zoom_level
|
|
589
|
-
- expect_viewport_change
|
|
590
|
-
|
|
591
|
-
## Expected Impact
|
|
592
|
-
Medium-high.
|
|
593
|
-
|
|
594
|
-
## Exit Criteria
|
|
595
|
-
- pinch_to_zoom implemented
|
|
596
|
-
- Zoom in/out flows supported
|
|
597
|
-
- Verification primitives for viewport or zoom state available
|
|
598
|
-
- Gesture integrated into action model
|
|
599
|
-
|
|
600
|
-
## Success Metrics
|
|
601
|
-
- Successful execution across zoomable surfaces
|
|
602
|
-
- Reduced failures on map/image workflows
|
|
603
|
-
- Gesture success rate tracked
|
|
604
|
-
|
|
605
|
-
## Dependencies
|
|
606
|
-
Depends on:
|
|
607
|
-
- Stronger State Verification
|
|
608
|
-
- Richer Element Identity
|
|
609
|
-
|
|
610
|
-
---
|
|
611
|
-
|
|
612
|
-
# Advanced Trace Correlation
|
|
613
|
-
|
|
614
|
-
## Rationale
|
|
615
|
-
Very valuable for debugging,
|
|
616
|
-
but less critical than improving control success first.
|
|
617
|
-
|
|
618
|
-
Builds on the foundational Action Trace and Execution Observability capability by linking traces across UI, network, and logs.
|
|
619
|
-
|
|
620
|
-
**Status:** Planned
|
|
621
|
-
|
|
622
|
-
Improves diagnosis more than task completion.
|
|
623
|
-
|
|
624
|
-
## Scope
|
|
625
|
-
- Action correlation metadata
|
|
626
|
-
- UI/network/log linkage
|
|
627
|
-
|
|
628
|
-
## Expected Impact
|
|
629
|
-
Medium-high.
|
|
630
|
-
|
|
631
|
-
## Exit Criteria
|
|
632
|
-
- Action correlation model defined
|
|
633
|
-
- UI/network/log linkage captured for representative actions
|
|
634
|
-
- Correlation metadata exposed to agents
|
|
635
|
-
- Debugging workflows validated with trace linkage
|
|
636
|
-
|
|
637
|
-
## Success Metrics
|
|
638
|
-
- Lower time-to-root-cause
|
|
639
|
-
- Faster diagnosis of partial failures
|
|
640
|
-
- Improved action causality attribution
|
|
641
|
-
|
|
642
|
-
## Dependencies
|
|
643
|
-
Depends on:
|
|
644
|
-
- Stronger State Verification
|
|
645
|
-
- Richer Element Identity
|
|
646
|
-
- Wait and Synchronization Reliability
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"platform": "android",
|
|
3
|
-
"device_id": "[redacted]",
|
|
4
|
-
"fixture": "latency-journey-app",
|
|
5
|
-
"network_freshness_passed": true,
|
|
6
|
-
"silent_timer_freshness_passed": true,
|
|
7
|
-
"bridge": {
|
|
8
|
-
"samples": {
|
|
9
|
-
"count": 10,
|
|
10
|
-
"p50": 3.122458,
|
|
11
|
-
"p95": 4.390417,
|
|
12
|
-
"min": 2.858792,
|
|
13
|
-
"max": 4.390417
|
|
14
|
-
},
|
|
15
|
-
"node_count": 7,
|
|
16
|
-
"identified_nodes": 4
|
|
17
|
-
},
|
|
18
|
-
"legacy": {
|
|
19
|
-
"samples": {
|
|
20
|
-
"count": 10,
|
|
21
|
-
"p50": 2101.953208,
|
|
22
|
-
"p95": 2257.736083,
|
|
23
|
-
"min": 2021.97375,
|
|
24
|
-
"max": 2257.736083
|
|
25
|
-
},
|
|
26
|
-
"node_count": 7,
|
|
27
|
-
"identified_nodes": 4
|
|
28
|
-
}
|
|
29
|
-
}
|