mobile-debug-mcp 0.36.0 → 0.37.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/README.md +10 -0
- package/agent-plugin/.antigravity-plugin/plugin.json +1 -1
- 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/cursor/.cursor-plugin/plugin.json +2 -2
- package/agent-plugin/cursor/skills/mobile-debug-mcp/SKILL.md +10 -2
- package/agent-plugin/mcp.json +1 -1
- package/agent-plugin/mcp_config.json +1 -1
- package/agent-plugin/plugin.json +1 -1
- package/agent-plugin/skills/mobile-debug-mcp/SKILL.md +10 -2
- package/dist/contracts/device-readiness.js +1 -0
- package/dist/interact/waits/ui-change-wait.js +9 -2
- package/dist/interact/waits/ui-wait.js +7 -3
- package/dist/manage/index.js +3 -0
- package/dist/observe/device-readiness.js +116 -0
- package/dist/observe/evidence.js +31 -0
- package/dist/observe/ios-trace/sessions.js +5 -3
- package/dist/observe/readiness-service.js +21 -9
- package/dist/observe/readiness.js +30 -0
- package/dist/observe/screenshot-encoding.js +4 -0
- package/dist/observe/snapshot-collection.js +7 -2
- package/dist/server/definitions/manage.js +3 -2
- package/dist/server/handlers/action-execution.js +23 -14
- package/dist/server/handlers/compact-interaction.js +106 -0
- package/dist/server/handlers/compact-state.js +47 -0
- package/dist/server/handlers/input.js +2 -0
- package/dist/server/handlers/interact.js +2 -0
- package/dist/server/handlers/interaction-diagnostics.js +62 -0
- package/dist/server/handlers/journey.js +18 -20
- package/dist/server/handlers/observe.js +2 -1
- package/dist/server/handlers/tool-handlers.js +9 -5
- package/dist/server/schemas/interaction-diagnostics.js +9 -0
- package/dist/server/tool-definitions.js +9 -4
- package/dist/server-core.js +5 -2
- package/dist/server.js +1 -1
- package/dist/system/android.js +19 -15
- package/dist/system/index.js +2 -1
- package/dist/utils/android/utils.js +7 -16
- package/dist/utils/app-installation.js +77 -0
- package/dist/utils/benchmark-metrics.js +43 -0
- package/dist/utils/exec.js +4 -0
- package/dist/utils/ios/utils.js +4 -11
- package/dist/utils/resolve-device.js +3 -2
- package/dist/utils/timing.js +3 -3
- package/docs/CHANGELOG.md +25 -0
- package/docs/benchmarks/README.md +1 -0
- package/docs/benchmarks/end-to-end-latency/README.md +98 -0
- package/docs/benchmarks/end-to-end-latency/android-snapshot-pair.json +6532 -0
- package/docs/benchmarks/end-to-end-latency/android-snapshot-pair.md +30 -0
- package/docs/benchmarks/end-to-end-latency/baseline-attempt-1.json +15901 -0
- package/docs/benchmarks/end-to-end-latency/baseline-attempt-1.md +14 -0
- package/docs/benchmarks/end-to-end-latency/baseline.json +233843 -0
- package/docs/benchmarks/end-to-end-latency/baseline.md +21 -0
- package/docs/benchmarks/end-to-end-latency/investigation.md +128 -0
- package/docs/benchmarks/end-to-end-latency/ios-smoke.json +84 -0
- package/docs/benchmarks/end-to-end-latency/ios-smoke.md +9 -0
- package/docs/benchmarks/end-to-end-latency/smoke.json +19601 -0
- package/docs/benchmarks/end-to-end-latency/smoke.md +21 -0
- package/docs/specs/031-ios-system-traces/plan.md +28 -0
- package/docs/specs/033-device-readiness-blockers/android-evidence.json +437 -0
- package/docs/specs/033-device-readiness-blockers/android-physical-evidence.json +28 -0
- package/docs/specs/033-device-readiness-blockers/android-physical-power-evidence.json +29 -0
- package/docs/specs/033-device-readiness-blockers/intent.md +41 -0
- package/docs/specs/033-device-readiness-blockers/ios-investigation.md +55 -0
- package/docs/specs/033-device-readiness-blockers/ios-probe-evidence.json +24 -0
- package/docs/specs/033-device-readiness-blockers/ios-tool-evidence.json +73 -0
- package/docs/specs/033-device-readiness-blockers/plan.md +249 -0
- package/docs/specs/033-device-readiness-blockers/spec.md +134 -0
- package/docs/specs/034-app-installation-status/intent.md +41 -0
- package/docs/specs/034-app-installation-status/native-evidence.json +654 -0
- package/docs/specs/034-app-installation-status/plan.md +73 -0
- package/docs/specs/034-app-installation-status/spec.md +114 -0
- package/docs/specs/035-compact-interaction-results/baseline.md +45 -0
- package/docs/specs/035-compact-interaction-results/intent.md +38 -0
- package/docs/specs/035-compact-interaction-results/plan.md +43 -0
- package/docs/specs/035-compact-interaction-results/spec.md +118 -0
- package/docs/specs/035-compact-interaction-results/verification.md +111 -0
- package/docs/specs/036-end-to-end-interaction-latency/android-snapshot-amendment.md +60 -0
- package/docs/specs/036-end-to-end-interaction-latency/android-snapshot-plan.md +32 -0
- package/docs/specs/036-end-to-end-interaction-latency/intent.md +37 -0
- package/docs/specs/036-end-to-end-interaction-latency/plan.md +59 -0
- package/docs/specs/036-end-to-end-interaction-latency/spec.md +126 -0
- package/docs/specs/036-end-to-end-interaction-latency/verification.md +87 -0
- package/docs/tools/TOOLS.md +1 -0
- package/docs/tools/compact-interactions.md +56 -0
- package/docs/tools/correlated-evidence.md +6 -0
- package/docs/tools/interact.md +17 -8
- package/docs/tools/manage.md +10 -2
- package/docs/tools/observe.md +42 -2
- package/docs/tools/system.md +6 -0
- package/package.json +1 -1
- package/src/contracts/device-readiness.ts +8 -0
- package/src/interact/waits/ui-change-wait.ts +7 -2
- package/src/interact/waits/ui-wait.ts +6 -3
- package/src/manage/index.ts +2 -0
- package/src/observe/device-readiness.ts +96 -0
- package/src/observe/evidence.ts +30 -1
- package/src/observe/ios-trace/sessions.ts +4 -2
- package/src/observe/readiness-service.ts +21 -9
- package/src/observe/readiness.ts +33 -0
- package/src/observe/screenshot-encoding.ts +4 -0
- package/src/observe/snapshot-collection.ts +7 -2
- package/src/server/common.ts +2 -2
- package/src/server/definitions/manage.ts +3 -2
- package/src/server/handlers/action-execution.ts +22 -14
- package/src/server/handlers/compact-interaction.ts +91 -0
- package/src/server/handlers/compact-state.ts +43 -0
- package/src/server/handlers/input.ts +2 -0
- package/src/server/handlers/interact.ts +2 -0
- package/src/server/handlers/interaction-diagnostics.ts +50 -0
- package/src/server/handlers/journey.ts +15 -17
- package/src/server/handlers/observe.ts +2 -1
- package/src/server/handlers/payload.ts +2 -1
- package/src/server/handlers/tool-handlers.ts +9 -5
- package/src/server/schemas/interaction-diagnostics.ts +10 -0
- package/src/server/tool-definitions.ts +8 -4
- package/src/server-core.ts +5 -2
- package/src/server.ts +1 -1
- package/src/system/android.ts +18 -11
- package/src/system/index.ts +2 -1
- package/src/types.ts +2 -0
- package/src/utils/android/utils.ts +8 -10
- package/src/utils/app-installation.ts +73 -0
- package/src/utils/benchmark-metrics.ts +42 -0
- package/src/utils/exec.ts +5 -0
- package/src/utils/ios/utils.ts +4 -10
- package/src/utils/resolve-device.ts +4 -2
- package/src/utils/timing.ts +3 -2
- package/test/device/automated/debugger/runtime.android.test.ts +5 -0
- package/test/device/automated/debugger/runtime.ios.test.ts +7 -1
- package/test/device/automated/interact/compact-results.smoke.ts +58 -0
- package/test/device/automated/latency/end-to-end-environment.ts +61 -0
- package/test/device/automated/latency/end-to-end-report.ts +90 -0
- package/test/device/automated/latency/end-to-end-session.ts +98 -0
- package/test/device/automated/latency/end-to-end.ts +149 -0
- package/test/device/automated/latency/owned-transport.ts +81 -0
- package/test/device/automated/latency/snapshot-pair.ts +143 -0
- package/test/device/automated/latency-ios/benchmark.ts +126 -0
- package/test/device/automated/observe/correlated-evidence.smoke.ts +7 -5
- package/test/device/automated/observe/device-readiness-cleanup.ts +14 -0
- package/test/device/automated/observe/device-readiness.android.smoke.ts +78 -0
- package/test/device/automated/observe/ios-system-trace.smoke.ts +2 -2
- package/test/device/automated/observe/system-trace.smoke.ts +2 -2
- package/test/fixtures/contracts/tool-definitions.json +51 -15
- package/test/fixtures/latency-journey-app/build.ts +3 -3
- package/test/unit/debugger/handle-guards.test.ts +2 -1
- package/test/unit/interact/ui-change-readiness-interruption.test.ts +37 -0
- package/test/unit/observe/capture_debug_snapshot.test.ts +66 -12
- package/test/unit/observe/device-readiness-cleanup.test.ts +24 -0
- package/test/unit/observe/device-readiness.test.ts +97 -0
- package/test/unit/observe/ios-trace-sessions.test.ts +23 -0
- package/test/unit/observe/readiness-retained-blockers.test.ts +40 -0
- package/test/unit/server/compact-interaction.test.ts +87 -0
- package/test/unit/server/compact-journey-evidence.test.ts +40 -0
- package/test/unit/server/compact-review-regressions.test.ts +78 -0
- package/test/unit/server/conditional_actions.test.ts +7 -3
- package/test/unit/server/correlated-evidence.test.ts +18 -6
- package/test/unit/server/end-to-end-report.test.ts +46 -0
- package/test/unit/server/input-device-readiness.test.ts +55 -0
- package/test/unit/server/interaction-diagnostics.test.ts +45 -0
- package/test/unit/server/owned-benchmark-transport.test.ts +32 -0
- package/test/unit/server/readiness-retained-deadline.test.ts +32 -0
- package/test/unit/server/readiness.test.ts +24 -1
- package/test/unit/server/run_journey.test.ts +2 -1
- package/test/unit/server/selector_tap_target.test.ts +2 -1
- package/test/unit/server/system-trace.test.ts +6 -4
- package/test/unit/utils/app-installation.test.ts +78 -0
- package/test/unit/utils/benchmark-metrics.test.ts +36 -0
- package/test/unit/utils/resolve_device.test.ts +11 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# End-to-end latency baseline
|
|
2
|
+
|
|
3
|
+
Status: stopped. Build: 3e70e4207b228d002450f4d99f2ad2511d9df0b33c936aec4eeaf271603c34c6.
|
|
4
|
+
|
|
5
|
+
| Case | Successful/measured | p50 ms | p95 ms | Failures | Warm-up failures |
|
|
6
|
+
| --- | ---: | ---: | ---: | ---: | ---: |
|
|
7
|
+
| standalone | 9/10 | 128948.9 | 134774.9 | 1 | 0 |
|
|
8
|
+
| full-debug | 9/10 | 76711.6 | 82366.9 | 1 | 0 |
|
|
9
|
+
| full-compact | 9/9 | 74612.0 | 172254.9 | 0 | 1 |
|
|
10
|
+
| light-debug | 9/9 | 58121.4 | 59386.7 | 0 | 1 |
|
|
11
|
+
| light-compact | 9/9 | 45517.9 | 46738.0 | 0 | 1 |
|
|
12
|
+
| screenshot-on | 9/9 | 552.2 | 993.9 | 0 | 0 |
|
|
13
|
+
| screenshot-off | 9/9 | 598.4 | 944.2 | 0 | 0 |
|
|
14
|
+
| tree-on | 9/9 | 2647.6 | 3044.8 | 0 | 0 |
|
|
15
|
+
| tree-off | 9/9 | 2629.9 | 3869.1 | 0 | 0 |
|
|
16
|
+
| snapshot-on | 9/9 | 4185.3 | 4538.8 | 0 | 0 |
|
|
17
|
+
| snapshot-off | 9/9 | 4067.6 | 4594.6 | 0 | 0 |
|
|
18
|
+
|
|
19
|
+
See baseline.json for exact source/build hashes, environment, phase durations, attempt order, inclusive components and failure records. Percentiles use the successful measured count shown for each case. With 1–19 successful samples, nearest-rank p95 is the sample maximum. Zero successful samples yield no percentiles. Failed attempts are excluded from percentiles, retained in raw data, and fail the run.
|
|
20
|
+
|
|
21
|
+
Intervals can overlap; component sums are not an additive latency budget. Client-minus-handler includes scheduling, transport and uninstrumented work. Handler residual excludes the union of recorded spans. Tree acquisition/parse/retry events are separate nested diagnostics. Application work inside requests remains included. Startup, fixture builds/resets and external validation are excluded from steady-state round trips. SDK wire serialization is not isolated.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Investigation findings — ticket #100
|
|
2
|
+
|
|
3
|
+
The follow-up [paired snapshot comparison](android-snapshot-pair.md) measures
|
|
4
|
+
the implemented Android tree reuse on a separate, complete focused run.
|
|
5
|
+
The sections below describe the original broad investigation.
|
|
6
|
+
|
|
7
|
+
## Status and evidence boundary
|
|
8
|
+
|
|
9
|
+
The measurement harness is implemented; Android performance acceptance remains
|
|
10
|
+
**partial / failed**, not a completed ten-attempt baseline. The final Android
|
|
11
|
+
run stopped when the owned emulator became unresponsive and exited with code
|
|
12
|
+
139. Its log recorded graphics-buffer errors and QEMU main/CPU-thread hangs.
|
|
13
|
+
The cause of the emulator exit has not been established. No runtime optimization
|
|
14
|
+
or speedup claim is made.
|
|
15
|
+
|
|
16
|
+
The run completed nine successful measured attempts per case. The tenth
|
|
17
|
+
standalone attempt timed out; the following full/debug attempt failed during
|
|
18
|
+
reset, leaving nine attempts unrun. Three earlier warm-up journey failures are
|
|
19
|
+
also retained. Both owned MCP server groups exited; fixture force-stop could not
|
|
20
|
+
be confirmed after the emulator disappeared. There is no running owned Android
|
|
21
|
+
emulator left to clean up. Source/build/harness hashes were unchanged during the
|
|
22
|
+
run. See [raw baseline](baseline.json), [generated summary](baseline.md), and
|
|
23
|
+
[failed first warm-up run](baseline-attempt-1.json).
|
|
24
|
+
|
|
25
|
+
The first run also lost its emulator and produced no measured samples. It is
|
|
26
|
+
kept separately. The second run cold-booted the same Pixel_9_Pro AVD with
|
|
27
|
+
`-port 5554 -no-window -no-snapshot-save`; display 720x1600 and density 240 were
|
|
28
|
+
already configured and were not changed by the harness. Android 16/API 36,
|
|
29
|
+
emulator/adb/Java/Node versions and all identity hashes are in the raw report.
|
|
30
|
+
The original development smoke is separate and is not performance evidence.
|
|
31
|
+
|
|
32
|
+
## Provisional Android round trips
|
|
33
|
+
|
|
34
|
+
Times are milliseconds. Standalone flow time is the sum of 19 complete SDK
|
|
35
|
+
request/response intervals; client orchestration and metric-drain gaps are
|
|
36
|
+
outside that sum. A journey is one complete SDK call. Failed attempts are omitted
|
|
37
|
+
from percentiles and retained in the attempt/failure records. With nine successful
|
|
38
|
+
samples, nearest-rank p95 is the largest successful observation; it is a
|
|
39
|
+
preliminary tail estimate. The missing tenth samples must not be silently filled.
|
|
40
|
+
|
|
41
|
+
| Case | Successful/measured attempts | p50 ms | p95 ms | Measured failures | Warm-up failures |
|
|
42
|
+
| --- | ---: | ---: | ---: | ---: | ---: |
|
|
43
|
+
| standalone | 9/10 | 128948.9 | 134774.9 | 1 | 0 |
|
|
44
|
+
| full-debug | 9/10 | 76711.6 | 82366.9 | 1 | 0 |
|
|
45
|
+
| full-compact | 9/9 | 74612.0 | 172254.9 | 0 | 1 |
|
|
46
|
+
| light-debug | 9/9 | 58121.4 | 59386.7 | 0 | 1 |
|
|
47
|
+
| light-compact | 9/9 | 45517.9 | 46738.0 | 0 | 1 |
|
|
48
|
+
| screenshot-on | 9/9 | 552.2 | 993.9 | 0 | 0 |
|
|
49
|
+
| screenshot-off | 9/9 | 598.4 | 944.2 | 0 | 0 |
|
|
50
|
+
| tree-on | 9/9 | 2647.6 | 3044.8 | 0 | 0 |
|
|
51
|
+
| tree-off | 9/9 | 2629.9 | 3869.1 | 0 | 0 |
|
|
52
|
+
| snapshot-on | 9/9 | 4185.3 | 4538.8 | 0 | 0 |
|
|
53
|
+
| snapshot-off | 9/9 | 4067.6 | 4594.6 | 0 | 0 |
|
|
54
|
+
|
|
55
|
+
## Measured costs and negative findings
|
|
56
|
+
|
|
57
|
+
- Successful standalone/full-debug/full-compact/light-debug/light-compact flows
|
|
58
|
+
use 44/32/32/25/19 physical tree reads respectively. Physical acquisition is
|
|
59
|
+
around two seconds per successful read; XML parsing is below a millisecond.
|
|
60
|
+
Metadata and display queries are separate recorded costs. These statements
|
|
61
|
+
describe this emulator and workload, not all devices or applications.
|
|
62
|
+
- Full compact output is much smaller than debug output while physical-read
|
|
63
|
+
counts are equal. Client-minus-handler time is only milliseconds in these
|
|
64
|
+
successful samples; it includes transport, scheduling and uninstrumented work.
|
|
65
|
+
Together with the recorded construction spans, this does not justify treating
|
|
66
|
+
serialization or transport as the primary bottleneck.
|
|
67
|
+
- Light/compact already shares a tap's post-observation with the following
|
|
68
|
+
assertion. Its six fewer reads than light/debug are existing behavior, not an
|
|
69
|
+
optimization implemented by this ticket. Every comparison retains all six
|
|
70
|
+
destination assertions.
|
|
71
|
+
- Screenshot-free/log-free snapshots execute two tree acquisitions. In the nine
|
|
72
|
+
successful measured snapshot calls, 36 physical reads include 18 failed reads
|
|
73
|
+
followed by recovery. A successful tool outcome therefore does not imply every
|
|
74
|
+
underlying acquisition attempt succeeded. All timing/retry events are retained.
|
|
75
|
+
[Snapshot collection](../../../src/observe/snapshot-collection.ts) starts
|
|
76
|
+
fingerprint and tree work concurrently, and the
|
|
77
|
+
[Android fingerprint path](../../../src/observe/android/fingerprint.ts) obtains
|
|
78
|
+
its own tree. This supports a focused future investigation of one declared
|
|
79
|
+
observation transaction shared by those consumers. It does not establish the
|
|
80
|
+
gain or correctness of an unimplemented candidate.
|
|
81
|
+
- Instrumented/uninstrumented observation pairs quantify combined probe and
|
|
82
|
+
device/order variability. Signed paired differences are in the JSON. They are
|
|
83
|
+
not an isolated causal overhead estimate, and may be negative.
|
|
84
|
+
|
|
85
|
+
Inclusive component spans overlap; never sum them into an additive budget.
|
|
86
|
+
Handler residual subtracts their interval union, but assertion/verification spans
|
|
87
|
+
include their nested acquisition work. Component summaries total recorded spans
|
|
88
|
+
per request; zero means no span of that stage was recorded, not proof that all
|
|
89
|
+
possible work in that category cost zero. SDK wire serialization is not separately
|
|
90
|
+
profiled. Device-side application work remains inside request durations.
|
|
91
|
+
|
|
92
|
+
Fixture build/install, reset/readiness preparation and server connection are
|
|
93
|
+
separate phases. The fixture uses offline SDK tools rather than Gradle. External
|
|
94
|
+
unit/device-suite execution is outside MCP request percentiles; its total duration
|
|
95
|
+
was not separately benchmarked. Early warm-ups overlapped local unit validation;
|
|
96
|
+
measured attempts began after that validation completed.
|
|
97
|
+
|
|
98
|
+
## Reliability and next steps
|
|
99
|
+
|
|
100
|
+
Warm-up failures were light/debug assertion `assert-3` (`ASSERTION_TIMEOUT`),
|
|
101
|
+
full/compact `tap-2` (`ELEMENT_NOT_FOUND`), and light/compact `tap-2`
|
|
102
|
+
(`ACTION_TIMEOUT`). Metrics alone do not establish their root cause. Graphics
|
|
103
|
+
errors were observed, but causality is unproven. They must not be labelled
|
|
104
|
+
pre-existing code failures or instrumentation regressions without a controlled
|
|
105
|
+
reproduction.
|
|
106
|
+
|
|
107
|
+
Obtain a stable emulator and rerun the unchanged protocol to finish the required
|
|
108
|
+
sample count before accepting an optimization comparison. Investigate the
|
|
109
|
+
snapshot acquisition/retry bottleneck in an accepted specification amendment;
|
|
110
|
+
retain freshness, device scope, stabilization, deadlines and cleanup. Do not
|
|
111
|
+
introduce cross-request caching or reduce assertions. No candidate comparison has
|
|
112
|
+
run, so there is no evidence of an optimization gain.
|
|
113
|
+
|
|
114
|
+
## iOS
|
|
115
|
+
|
|
116
|
+
Standalone observation measurement was blocked on an isolated iPhone 17 Pro
|
|
117
|
+
running iOS 27.2 (24B8117). The local server's Settings readiness assertion
|
|
118
|
+
timed out after about 32.6 seconds and produced zero measured samples. A
|
|
119
|
+
subsequent screenshot showed a blank Settings content area. The accessibility
|
|
120
|
+
call reported its idb prerequisite unavailable, and `idb list-targets --json`
|
|
121
|
+
failed even though the repository resolver found fb-idb 1.1.7 through its
|
|
122
|
+
fallback. The direct companion listing later succeeded, so the cause of the
|
|
123
|
+
CLI capability failure remains unresolved. Both owned MCP servers exited and
|
|
124
|
+
the temporary simulator was removed. See the [smoke record](ios-smoke.json)
|
|
125
|
+
and [verification evidence](../../specs/036-end-to-end-interaction-latency/verification.md).
|
|
126
|
+
|
|
127
|
+
The shared static/network fixture belongs to #89. Equivalent iOS journeys
|
|
128
|
+
remain blocked pending that fixture and a working observation path.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"status": "stopped",
|
|
3
|
+
"outcome": "fail",
|
|
4
|
+
"started_at": "2026-11-06T22:10:40.973Z",
|
|
5
|
+
"performance_evidence": false,
|
|
6
|
+
"smoke": true,
|
|
7
|
+
"warmups": 0,
|
|
8
|
+
"measured_attempts_per_case": 1,
|
|
9
|
+
"source_and_build_unchanged": true,
|
|
10
|
+
"identity": {
|
|
11
|
+
"source": "23f6dba770c958b983ed18c93033c5c5ccd6b48c1437f43128f3cffab49cbc54",
|
|
12
|
+
"build": "3e70e4207b228d002450f4d99f2ad2511d9df0b33c936aec4eeaf271603c34c6",
|
|
13
|
+
"shared_harness": "50eb0a3d4130ef669edcc7206e553daebd618158429f2ce44440f05ec411eb08",
|
|
14
|
+
"ios_harness": "9d11071ef7ddf444c25b5c50745ead5d522b552c4fe186b844521604554a334f"
|
|
15
|
+
},
|
|
16
|
+
"metadata": {
|
|
17
|
+
"platform": "ios",
|
|
18
|
+
"model": "Ticket 100 Latency Verification",
|
|
19
|
+
"runtime": "com.apple.CoreSimulator.SimRuntime.iOS-27-2",
|
|
20
|
+
"os": "27.2",
|
|
21
|
+
"runtime_build": "24B8117",
|
|
22
|
+
"screen": "Settings root; English required; caller-provided isolated simulator",
|
|
23
|
+
"node": "v23.11.0",
|
|
24
|
+
"host": {
|
|
25
|
+
"platform": "darwin",
|
|
26
|
+
"release": "27.2.0",
|
|
27
|
+
"arch": "arm64"
|
|
28
|
+
},
|
|
29
|
+
"package_version": "0.36.0",
|
|
30
|
+
"commit": "d3ec701d05b4034acc7eaedc92b7e8903d33ca3b",
|
|
31
|
+
"working_tree": "M docs/CHANGELOG.md\n M docs/benchmarks/README.md\n M src/interact/waits/ui-wait.ts\n M src/observe/device-readiness.ts\n M src/observe/screenshot-encoding.ts\n M src/server-core.ts\n M src/server/handlers/journey.ts\n M src/server/handlers/observe.ts\n M src/utils/exec.ts\n M src/utils/timing.ts\n M test/fixtures/latency-journey-app/build.ts\n?? docs/benchmarks/end-to-end-latency/README.md\n?? docs/benchmarks/end-to-end-latency/baseline-attempt-1.json\n?? docs/benchmarks/end-to-end-latency/baseline-attempt-1.md\n?? docs/benchmarks/end-to-end-latency/baseline.json\n?? docs/benchmarks/end-to-end-latency/baseline.md\n?? docs/benchmarks/end-to-end-latency/smoke.json\n?? docs/benchmarks/end-to-end-latency/smoke.md\n?? docs/specs/036-end-to-end-interaction-latency/intent.md\n?? docs/specs/036-end-to-end-interaction-latency/plan.md\n?? docs/specs/036-end-to-end-interaction-latency/spec.md\n?? docs/specs/036-end-to-end-interaction-latency/verification.md\n?? src/utils/benchmark-metrics.ts\n?? test/device/automated/latency-ios/benchmark.ts\n?? test/device/automated/latency/end-to-end-environment.ts\n?? test/device/automated/latency/end-to-end-report.ts\n?? test/device/automated/latency/end-to-end-session.ts\n?? test/device/automated/latency/end-to-end.ts\n?? test/device/automated/latency/owned-transport.ts\n?? test/unit/server/end-to-end-report.test.ts\n?? test/unit/server/owned-benchmark-transport.test.ts\n?? test/unit/utils/benchmark-metrics.test.ts",
|
|
32
|
+
"tool_versions": {
|
|
33
|
+
"xcode": "Xcode 27.2\nBuild version 27B52",
|
|
34
|
+
"idb": "1.1.7"
|
|
35
|
+
},
|
|
36
|
+
"timeouts": {
|
|
37
|
+
"setup_ms": 30000,
|
|
38
|
+
"call_ms": 300000,
|
|
39
|
+
"readiness_ms": 30000
|
|
40
|
+
},
|
|
41
|
+
"journey": "blocked: shared #89 static/network fixture unavailable",
|
|
42
|
+
"physical_ios": "excluded"
|
|
43
|
+
},
|
|
44
|
+
"phases": [
|
|
45
|
+
{
|
|
46
|
+
"phase": "launch_settings",
|
|
47
|
+
"elapsed_ms": 11292.166041,
|
|
48
|
+
"success": true
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"phase": "server_startup_metrics_true",
|
|
52
|
+
"elapsed_ms": 3046.3670420000017,
|
|
53
|
+
"success": true
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"phase": "stable_screen_assertion_metrics_true",
|
|
57
|
+
"elapsed_ms": 32576.230541999998,
|
|
58
|
+
"success": false
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"fatal": "PREREQUISITE_FAILED",
|
|
62
|
+
"cleanup": {
|
|
63
|
+
"servers": true,
|
|
64
|
+
"settings": true
|
|
65
|
+
},
|
|
66
|
+
"unrun_attempts": 6,
|
|
67
|
+
"invocation": "IOS_LATENCY_DEVICE_ID=[simulator] npx tsx test/device/automated/latency-ios/benchmark.ts --smoke",
|
|
68
|
+
"summaries": {},
|
|
69
|
+
"observation_overhead": {
|
|
70
|
+
"screenshot": {
|
|
71
|
+
"paired_on_minus_off_ms": null,
|
|
72
|
+
"interpretation": "Includes device/order variability; not an isolated causal overhead estimate"
|
|
73
|
+
},
|
|
74
|
+
"tree": {
|
|
75
|
+
"paired_on_minus_off_ms": null,
|
|
76
|
+
"interpretation": "Includes device/order variability; not an isolated causal overhead estimate"
|
|
77
|
+
},
|
|
78
|
+
"snapshot": {
|
|
79
|
+
"paired_on_minus_off_ms": null,
|
|
80
|
+
"interpretation": "Includes device/order variability; not an isolated causal overhead estimate"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"attempts": []
|
|
84
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# iOS standalone observation smoke (not performance evidence)
|
|
2
|
+
|
|
3
|
+
Status: stopped; outcome: fail. Intended screen: Settings root on an isolated simulator. No fixture journey or physical iOS claim.
|
|
4
|
+
|
|
5
|
+
| Case | Successful/measured | p50 ms | p95 ms | Failures | Warm-up failures |
|
|
6
|
+
| --- | ---: | ---: | ---: | ---: | ---: |
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
See ios-smoke.json for environment/build identity, all attempts, phase timings and inclusive timing diagnostics. Readiness failed before sampling, so no percentiles were calculated. Failed attempts stay visible and fail the run. Probe comparisons include device variability; nested intervals cannot be summed. Application work remains in round trips. The shared #89 fixture remains required for equivalent static/network journeys.
|