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.
Files changed (448) hide show
  1. package/.agents/skills/mcp-builder/SKILL.md +44 -64
  2. package/.agents/skills/mcp-builder/references/build-flags.md +44 -43
  3. package/.agents/skills/mcp-builder/references/diagnostics-schema.md +4 -1
  4. package/.agents/skills/mcp-builder/references/toolchain-details.md +49 -62
  5. package/.agents/skills/spec-review/references/spec-review-checklist.md +7 -0
  6. package/.agents/skills/test-authoring/SKILL.md +7 -6
  7. package/.agents/skills/test-authoring/references/repo-test-layout.md +3 -1
  8. package/.agents/skills/test-authoring/references/test-authoring-workflow.md +16 -7
  9. package/.agents/skills/test-authoring/references/test-quality-checklist.md +2 -1
  10. package/.github/copilot-instructions.md +14 -36
  11. package/.github/workflows/ci.yml +23 -2
  12. package/AGENTS.md +12 -3
  13. package/CONTRIBUTING.md +79 -0
  14. package/README.md +158 -124
  15. package/agent-plugin/.claude-plugin/plugin.json +2 -2
  16. package/agent-plugin/.codex-plugin/plugin.json +1 -1
  17. package/agent-plugin/.cursor-plugin/plugin.json +2 -2
  18. package/agent-plugin/.mcp.json +1 -1
  19. package/agent-plugin/README.md +20 -6
  20. package/agent-plugin/mcp.json +1 -1
  21. package/agent-plugin/plugin.json +1 -1
  22. package/agent-plugin/skills/mobile-debug-mcp/SKILL.md +113 -4
  23. package/dist/contracts/execution-controls.js +24 -0
  24. package/dist/contracts/selector.js +8 -0
  25. package/dist/contracts/target.js +15 -0
  26. package/dist/contracts/ui.js +1 -0
  27. package/dist/debugger/android.js +79 -0
  28. package/dist/debugger/diagnostics.js +54 -0
  29. package/dist/debugger/guard.js +30 -0
  30. package/dist/debugger/protocol.js +33 -0
  31. package/dist/debugger/sessions.js +304 -0
  32. package/dist/debugger/worker.js +176 -0
  33. package/dist/interact/adjustment/adjustment-context.js +41 -0
  34. package/dist/interact/adjustment/adjustment-gestures.js +55 -0
  35. package/dist/interact/adjustment/adjustment-plan.js +18 -0
  36. package/dist/interact/adjustment/adjustment-resolution.js +127 -0
  37. package/dist/interact/adjustment/adjustment-result.js +19 -0
  38. package/dist/interact/adjustment/adjustment-semantic.js +64 -0
  39. package/dist/interact/adjustment/adjustment-verification.js +35 -0
  40. package/dist/interact/adjustment/adjustment.js +52 -0
  41. package/dist/interact/adjustment/control-geometry.js +87 -0
  42. package/dist/interact/adjustment/control-values.js +136 -0
  43. package/dist/interact/adjustment/slider-labels.js +84 -0
  44. package/dist/interact/assertions/screen-assertion.js +37 -0
  45. package/dist/interact/assertions/state-assertion-context.js +35 -0
  46. package/dist/interact/assertions/state-assertion.js +76 -0
  47. package/dist/interact/assertions/state-comparison.js +141 -0
  48. package/dist/interact/assertions/visibility-assertion.js +34 -0
  49. package/dist/interact/conditional-action.js +12 -7
  50. package/dist/interact/index.js +65 -3074
  51. package/dist/interact/input-service.js +1 -0
  52. package/dist/interact/interaction-trace.js +21 -0
  53. package/dist/interact/model.js +1 -0
  54. package/dist/interact/observation.js +1 -0
  55. package/dist/interact/targeting/candidate-ancestor.js +58 -0
  56. package/dist/interact/targeting/candidate-result.js +23 -0
  57. package/dist/interact/targeting/candidate-scoring.js +50 -0
  58. package/dist/interact/targeting/element-helpers.js +216 -0
  59. package/dist/interact/targeting/find-element.js +65 -0
  60. package/dist/interact/targeting/nearby-control.js +56 -0
  61. package/dist/interact/targeting/resolved-elements.js +21 -0
  62. package/dist/interact/targeting/tap-target.js +17 -0
  63. package/dist/interact/targeting/target-scope.js +104 -0
  64. package/dist/interact/waits/legacy-log-wait.js +38 -0
  65. package/dist/interact/waits/legacy-wait-observations.js +103 -0
  66. package/dist/interact/waits/legacy-wait-state.js +34 -0
  67. package/dist/interact/waits/legacy-wait.js +48 -0
  68. package/dist/interact/waits/screen-wait.js +49 -0
  69. package/dist/interact/waits/ui-change-helpers.js +157 -0
  70. package/dist/interact/waits/ui-change-state.js +18 -0
  71. package/dist/interact/waits/ui-change-wait.js +77 -0
  72. package/dist/interact/waits/ui-wait-condition.js +56 -0
  73. package/dist/interact/waits/ui-wait-state.js +38 -0
  74. package/dist/interact/waits/ui-wait.js +106 -0
  75. package/dist/manage/android.js +55 -51
  76. package/dist/manage/index.js +38 -75
  77. package/dist/manage/ios/build-types.js +1 -0
  78. package/dist/manage/ios/build.js +210 -0
  79. package/dist/manage/ios/project-discovery.js +29 -0
  80. package/dist/manage/ios/scheme.js +18 -0
  81. package/dist/manage/ios.js +42 -256
  82. package/dist/observe/android/context.js +1 -0
  83. package/dist/observe/android/current-screen.js +55 -0
  84. package/dist/observe/android/fingerprint.js +13 -0
  85. package/dist/observe/android/log-stream.js +132 -0
  86. package/dist/observe/android/logs.js +107 -0
  87. package/dist/observe/android/screenshot.js +70 -0
  88. package/dist/observe/android/ui-tree.js +107 -0
  89. package/dist/observe/android.js +16 -520
  90. package/dist/observe/evidence.js +122 -76
  91. package/dist/observe/index.js +16 -263
  92. package/dist/observe/ios/context.js +16 -0
  93. package/dist/observe/ios/fingerprint.js +12 -0
  94. package/dist/observe/ios/log-stream.js +105 -0
  95. package/dist/observe/ios/logs.js +168 -0
  96. package/dist/observe/ios/screenshot.js +22 -0
  97. package/dist/observe/ios/ui-elements.js +241 -0
  98. package/dist/observe/ios/ui-tree.js +137 -0
  99. package/dist/observe/ios.js +17 -715
  100. package/dist/observe/logs/model.js +1 -0
  101. package/dist/{network → observe/network}/index.js +2 -2
  102. package/dist/observe/readiness-service.js +13 -2
  103. package/dist/observe/readiness.js +44 -18
  104. package/dist/observe/screenshot-encoding.js +41 -0
  105. package/dist/observe/snapshot-collection.js +79 -0
  106. package/dist/observe/snapshot-logs.js +30 -0
  107. package/dist/observe/snapshot-metadata.js +43 -31
  108. package/dist/observe/snapshot-semantic.js +115 -0
  109. package/dist/observe/system-trace-android.js +135 -0
  110. package/dist/observe/system-trace.js +294 -0
  111. package/dist/runtime/action-results.js +270 -0
  112. package/dist/runtime/clock.js +4 -0
  113. package/dist/server/common.js +1 -256
  114. package/dist/server/definitions/assert.js +162 -0
  115. package/dist/server/definitions/diagnostic.js +118 -0
  116. package/dist/server/definitions/input.js +274 -0
  117. package/dist/server/definitions/manage.js +194 -0
  118. package/dist/server/definitions/observe.js +149 -0
  119. package/dist/server/definitions/target.js +138 -0
  120. package/dist/server/definitions/wait.js +105 -0
  121. package/dist/server/handlers/action-execution.js +163 -0
  122. package/dist/server/handlers/correlation.js +23 -0
  123. package/dist/server/handlers/debugger-handlers.js +48 -0
  124. package/dist/server/handlers/debugger-response.js +9 -0
  125. package/dist/server/handlers/diagnostic.js +69 -0
  126. package/dist/server/handlers/handler-types.js +1 -0
  127. package/dist/server/handlers/input.js +154 -0
  128. package/dist/server/handlers/interact.js +113 -0
  129. package/dist/server/handlers/journey-assertions.js +35 -0
  130. package/dist/server/handlers/journey.js +147 -0
  131. package/dist/server/handlers/manage.js +119 -0
  132. package/dist/server/handlers/observe.js +95 -0
  133. package/dist/server/handlers/payload.js +4 -0
  134. package/dist/server/handlers/tool-handlers.js +160 -0
  135. package/dist/server/schemas/condition-schema.js +2 -0
  136. package/dist/server/schemas/debugger-schema.js +47 -0
  137. package/dist/server/{journey-schema.js → schemas/journey-schema.js} +8 -22
  138. package/dist/server/schemas/system-trace-schema.js +17 -0
  139. package/dist/server/tool-definitions.js +62 -1134
  140. package/dist/server-core.js +4 -4
  141. package/dist/server.js +34 -0
  142. package/dist/system/android-status.js +101 -0
  143. package/dist/system/android.js +37 -27
  144. package/dist/system/index.js +13 -438
  145. package/dist/system/ios-status.js +132 -0
  146. package/dist/system/ios.js +11 -8
  147. package/dist/system/model.js +1 -0
  148. package/dist/system/probes.js +105 -0
  149. package/dist/system/status-summary.js +43 -0
  150. package/dist/system/unsupported-status.js +52 -0
  151. package/dist/utils/android/commands.js +89 -0
  152. package/dist/utils/android/gradle.js +139 -0
  153. package/dist/utils/android/logs.js +103 -0
  154. package/dist/utils/android/ui-tree.js +233 -0
  155. package/dist/utils/android/utils.js +6 -564
  156. package/dist/utils/cli/idb/idb-helper.js +4 -6
  157. package/dist/utils/cli/idb/install-idb.js +13 -9
  158. package/dist/utils/cli/ios/preflight-ios.js +42 -38
  159. package/dist/utils/exec.js +2 -0
  160. package/dist/utils/ios/utils.js +45 -46
  161. package/dist/utils/java.js +75 -57
  162. package/dist/utils/operation-budget.js +2 -0
  163. package/dist/utils/resolve-device.js +6 -2
  164. package/dist/utils/ui/index.js +26 -26
  165. package/docs/CHANGELOG.md +48 -0
  166. package/docs/README.md +38 -0
  167. package/docs/benchmarks/README.md +18 -0
  168. package/docs/benchmarks/interaction-latency/README.md +14 -0
  169. package/docs/benchmarks/interaction-latency/final.md +4 -1
  170. package/docs/benchmarks/interaction-latency/ios-validation.md +2 -0
  171. package/docs/benchmarks/ui-tree-performance/README.md +24 -16
  172. package/docs/benchmarks/ui-tree-performance/comparison.md +11 -10
  173. package/docs/code-structure.md +118 -0
  174. package/docs/specs/001-state-verification/spec.md +16 -14
  175. package/docs/specs/002-richer-element-identity/spec.md +12 -10
  176. package/docs/specs/003-wait-and-synchronization-reliability/spec.md +12 -10
  177. package/docs/specs/004-action-verification-routing/spec.md +3 -3
  178. package/docs/specs/005-unified-action-execution-and-verification-model/spec.md +2 -0
  179. package/docs/specs/006-runtime-action-instrumentation-and-binding-layer/spec.md +2 -0
  180. package/docs/specs/007-actionability-resolution-and-executable-target-selection/spec.md +3 -1
  181. package/docs/specs/008-adjustable-control-support-and-semantic-value-manipulation/spec.md +3 -4
  182. package/docs/specs/009-semantic-control-modeling-for-custom-and-composite-controls/spec.md +2 -0
  183. package/docs/specs/010-verification-stabilization-and-temporal-convergence/spec.md +2 -2
  184. package/docs/specs/011-recovery-and-replanning-for-failed-or-ambiguous-interaction-flows/spec.md +2 -2
  185. package/docs/specs/011.1-recovery-contract-types-and-runtime-wiring-spec/spec.md +2 -0
  186. package/docs/specs/012-action-trace-and-xecution-observability/spec.md +2 -3
  187. package/docs/specs/013-wait-and-synchronization-reliability/spec.md +19 -19
  188. package/docs/specs/014-actionability-resolution/spec.md +20 -18
  189. package/docs/specs/015-adjustable-control-support/spec.md +17 -15
  190. package/docs/specs/016-environment-tools/spec.md +20 -20
  191. package/docs/specs/018-interaction-latency-and-batched-journeys/spec.md +2 -0
  192. package/docs/specs/019-ui-tree-observation-performance/spec.md +3 -1
  193. package/docs/specs/020-conditional-actions/intent.md +5 -3
  194. package/docs/specs/020-conditional-actions/plan.md +8 -9
  195. package/docs/specs/020-conditional-actions/spec.md +4 -2
  196. package/docs/specs/021-app-readiness-signals/intent.md +4 -2
  197. package/docs/specs/021-app-readiness-signals/plan.md +7 -6
  198. package/docs/specs/021-app-readiness-signals/spec.md +3 -1
  199. package/docs/specs/022-correlated-evidence/intent.md +4 -4
  200. package/docs/specs/022-correlated-evidence/plan.md +10 -11
  201. package/docs/specs/022-correlated-evidence/spec.md +3 -1
  202. package/docs/specs/023-android-system-traces/device-evidence.json +38 -0
  203. package/docs/specs/023-android-system-traces/emulator-recheck.json +38 -0
  204. package/docs/specs/023-android-system-traces/intent.md +41 -0
  205. package/docs/specs/023-android-system-traces/plan.md +115 -0
  206. package/docs/specs/023-android-system-traces/spec.md +122 -0
  207. package/docs/specs/024-android-heap-dump-capture/intent.md +41 -0
  208. package/docs/specs/025-android-runtime-debugger/intent.md +41 -0
  209. package/docs/specs/025-android-runtime-debugger/plan.md +106 -0
  210. package/docs/specs/025-android-runtime-debugger/spec.md +183 -0
  211. package/docs/specs/026-code-structure-and-quality-gates/health-plan.md +88 -0
  212. package/docs/specs/026-code-structure-and-quality-gates/intent.md +47 -0
  213. package/docs/specs/026-code-structure-and-quality-gates/plan.md +191 -0
  214. package/docs/specs/026-code-structure-and-quality-gates/spec.md +138 -0
  215. package/docs/specs/026-code-structure-and-quality-gates/verification-final.json +200 -0
  216. package/docs/specs/026-code-structure-and-quality-gates/verification-thin-facade.json +154 -0
  217. package/docs/specs/026-code-structure-and-quality-gates/verification.json +136 -0
  218. package/docs/specs/027-debugger-failure-diagnostics/intent.md +43 -0
  219. package/docs/specs/027-debugger-failure-diagnostics/plan.md +86 -0
  220. package/docs/specs/027-debugger-failure-diagnostics/spec.md +133 -0
  221. package/docs/specs/028-compact-debugger-responses/intent.md +41 -0
  222. package/docs/specs/028-compact-debugger-responses/plan.md +112 -0
  223. package/docs/specs/028-compact-debugger-responses/spec.md +108 -0
  224. package/docs/specs/029-kotlin-locals-validation/report.md +119 -0
  225. package/docs/specs/030-android-coroutine-validation/evidence.json +475 -0
  226. package/docs/specs/030-android-coroutine-validation/intent.md +47 -0
  227. package/docs/specs/030-android-coroutine-validation/plan.md +147 -0
  228. package/docs/specs/030-android-coroutine-validation/report.md +240 -0
  229. package/docs/specs/030-android-coroutine-validation/spec.md +107 -0
  230. package/docs/tools/TOOLS.md +31 -16
  231. package/docs/tools/{evidence.md → correlated-evidence.md} +14 -3
  232. package/docs/tools/debugger.md +180 -0
  233. package/docs/tools/interact.md +42 -20
  234. package/docs/tools/manage.md +25 -44
  235. package/docs/tools/observe.md +64 -25
  236. package/docs/tools/system-traces.md +134 -0
  237. package/docs/tools/system.md +12 -5
  238. package/package.json +11 -8
  239. package/scripts/architecture-graph.mjs +69 -0
  240. package/scripts/check-architecture.mjs +47 -0
  241. package/scripts/code-quality-baseline.json +1 -0
  242. package/scripts/code-quality.mjs +161 -0
  243. package/src/contracts/execution-controls.ts +26 -0
  244. package/src/contracts/selector.ts +17 -0
  245. package/src/contracts/target.ts +19 -0
  246. package/src/contracts/ui.ts +94 -0
  247. package/src/debugger/android.ts +66 -0
  248. package/src/debugger/diagnostics.ts +43 -0
  249. package/src/debugger/guard.ts +31 -0
  250. package/src/debugger/java/DebuggerWorker.java +166 -0
  251. package/src/debugger/protocol.ts +37 -0
  252. package/src/debugger/sessions.ts +327 -0
  253. package/src/debugger/worker.ts +135 -0
  254. package/src/interact/adjustment/adjustment-context.ts +83 -0
  255. package/src/interact/adjustment/adjustment-gestures.ts +48 -0
  256. package/src/interact/adjustment/adjustment-plan.ts +23 -0
  257. package/src/interact/adjustment/adjustment-resolution.ts +104 -0
  258. package/src/interact/adjustment/adjustment-result.ts +34 -0
  259. package/src/interact/adjustment/adjustment-semantic.ts +53 -0
  260. package/src/interact/adjustment/adjustment-verification.ts +60 -0
  261. package/src/interact/adjustment/adjustment.ts +49 -0
  262. package/src/interact/adjustment/control-geometry.ts +120 -0
  263. package/src/interact/adjustment/control-values.ts +141 -0
  264. package/src/interact/adjustment/slider-labels.ts +84 -0
  265. package/src/interact/assertions/screen-assertion.ts +39 -0
  266. package/src/interact/assertions/state-assertion-context.ts +48 -0
  267. package/src/interact/assertions/state-assertion.ts +64 -0
  268. package/src/interact/assertions/state-comparison.ts +168 -0
  269. package/src/interact/assertions/visibility-assertion.ts +41 -0
  270. package/src/interact/conditional-action.ts +18 -12
  271. package/src/interact/index.ts +76 -3491
  272. package/src/interact/input-service.ts +11 -0
  273. package/src/interact/interaction-trace.ts +36 -0
  274. package/src/interact/model.ts +109 -0
  275. package/src/interact/observation.ts +7 -0
  276. package/src/interact/targeting/candidate-ancestor.ts +49 -0
  277. package/src/interact/targeting/candidate-result.ts +24 -0
  278. package/src/interact/targeting/candidate-scoring.ts +42 -0
  279. package/src/interact/targeting/element-helpers.ts +243 -0
  280. package/src/interact/targeting/find-element.ts +47 -0
  281. package/src/interact/targeting/nearby-control.ts +46 -0
  282. package/src/interact/targeting/resolved-elements.ts +20 -0
  283. package/src/interact/targeting/tap-target.ts +22 -0
  284. package/src/interact/targeting/target-scope.ts +121 -0
  285. package/src/interact/waits/legacy-log-wait.ts +30 -0
  286. package/src/interact/waits/legacy-wait-observations.ts +55 -0
  287. package/src/interact/waits/legacy-wait-state.ts +48 -0
  288. package/src/interact/waits/legacy-wait.ts +34 -0
  289. package/src/interact/waits/screen-wait.ts +37 -0
  290. package/src/interact/waits/ui-change-helpers.ts +184 -0
  291. package/src/interact/waits/ui-change-state.ts +26 -0
  292. package/src/interact/waits/ui-change-wait.ts +59 -0
  293. package/src/interact/waits/ui-wait-condition.ts +52 -0
  294. package/src/interact/waits/ui-wait-state.ts +55 -0
  295. package/src/interact/waits/ui-wait.ts +84 -0
  296. package/src/manage/android.ts +56 -50
  297. package/src/manage/index.ts +63 -93
  298. package/src/manage/ios/build-types.ts +14 -0
  299. package/src/manage/ios/build.ts +230 -0
  300. package/src/manage/ios/project-discovery.ts +26 -0
  301. package/src/manage/ios/scheme.ts +16 -0
  302. package/src/manage/ios.ts +65 -298
  303. package/src/observe/android/context.ts +1 -0
  304. package/src/observe/android/current-screen.ts +63 -0
  305. package/src/observe/android/fingerprint.ts +13 -0
  306. package/src/observe/android/log-stream.ts +127 -0
  307. package/src/observe/android/logs.ts +110 -0
  308. package/src/observe/android/screenshot.ts +79 -0
  309. package/src/observe/android/ui-tree.ts +113 -0
  310. package/src/observe/android.ts +17 -531
  311. package/src/observe/evidence.ts +130 -71
  312. package/src/observe/index.ts +24 -286
  313. package/src/observe/ios/context.ts +22 -0
  314. package/src/observe/ios/fingerprint.ts +12 -0
  315. package/src/observe/ios/log-stream.ts +103 -0
  316. package/src/observe/ios/logs.ts +179 -0
  317. package/src/observe/ios/screenshot.ts +26 -0
  318. package/src/observe/ios/ui-elements.ts +266 -0
  319. package/src/observe/ios/ui-tree.ts +143 -0
  320. package/src/observe/ios.ts +18 -749
  321. package/src/observe/logs/model.ts +11 -0
  322. package/src/{network → observe/network}/index.ts +2 -2
  323. package/src/observe/readiness-service.ts +10 -3
  324. package/src/observe/readiness.ts +49 -22
  325. package/src/observe/screenshot-encoding.ts +32 -0
  326. package/src/observe/snapshot-collection.ts +69 -0
  327. package/src/observe/snapshot-logs.ts +26 -0
  328. package/src/observe/snapshot-metadata.ts +51 -31
  329. package/src/observe/snapshot-semantic.ts +153 -0
  330. package/src/observe/system-trace-android.ts +133 -0
  331. package/src/observe/system-trace.ts +227 -0
  332. package/src/runtime/action-results.ts +376 -0
  333. package/src/runtime/clock.ts +9 -0
  334. package/src/server/common.ts +9 -359
  335. package/src/server/definitions/assert.ts +164 -0
  336. package/src/server/definitions/diagnostic.ts +120 -0
  337. package/src/server/definitions/input.ts +276 -0
  338. package/src/server/definitions/manage.ts +196 -0
  339. package/src/server/definitions/observe.ts +151 -0
  340. package/src/server/definitions/target.ts +140 -0
  341. package/src/server/definitions/wait.ts +107 -0
  342. package/src/server/handlers/action-execution.ts +164 -0
  343. package/src/server/handlers/correlation.ts +20 -0
  344. package/src/server/handlers/debugger-handlers.ts +39 -0
  345. package/src/server/handlers/debugger-response.ts +7 -0
  346. package/src/server/handlers/diagnostic.ts +79 -0
  347. package/src/server/handlers/handler-types.ts +7 -0
  348. package/src/server/handlers/input.ts +173 -0
  349. package/src/server/handlers/interact.ts +135 -0
  350. package/src/server/handlers/journey-assertions.ts +39 -0
  351. package/src/server/handlers/journey.ts +132 -0
  352. package/src/server/handlers/manage.ts +141 -0
  353. package/src/server/handlers/observe.ts +116 -0
  354. package/src/server/handlers/payload.ts +36 -0
  355. package/src/server/handlers/tool-handlers.ts +159 -0
  356. package/src/server/schemas/condition-schema.ts +2 -0
  357. package/src/server/schemas/debugger-schema.ts +43 -0
  358. package/src/server/{journey-schema.ts → schemas/journey-schema.ts} +8 -22
  359. package/src/server/schemas/system-trace-schema.ts +17 -0
  360. package/src/server/tool-definitions.ts +69 -1140
  361. package/src/server-core.ts +4 -4
  362. package/src/server.ts +25 -1
  363. package/src/system/android-status.ts +124 -0
  364. package/src/system/android.ts +33 -21
  365. package/src/system/index.ts +21 -523
  366. package/src/system/ios-status.ts +147 -0
  367. package/src/system/ios.ts +14 -10
  368. package/src/system/model.ts +41 -0
  369. package/src/system/probes.ts +114 -0
  370. package/src/system/status-summary.ts +47 -0
  371. package/src/system/unsupported-status.ts +55 -0
  372. package/src/types.ts +16 -106
  373. package/src/utils/android/commands.ts +81 -0
  374. package/src/utils/android/gradle.ts +132 -0
  375. package/src/utils/android/logs.ts +103 -0
  376. package/src/utils/android/ui-tree.ts +239 -0
  377. package/src/utils/android/utils.ts +16 -556
  378. package/src/utils/cli/idb/check-idb.ts +4 -4
  379. package/src/utils/cli/idb/idb-helper.ts +6 -8
  380. package/src/utils/cli/idb/install-idb.ts +15 -9
  381. package/src/utils/cli/ios/preflight-ios.ts +39 -31
  382. package/src/utils/cli/ios/run-ios-ui-tree-tap.ts +4 -4
  383. package/src/utils/exec.ts +2 -0
  384. package/src/utils/ios/utils.ts +57 -61
  385. package/src/utils/java.ts +71 -51
  386. package/src/utils/operation-budget.ts +2 -0
  387. package/src/utils/resolve-device.ts +11 -6
  388. package/src/utils/ui/index.ts +28 -28
  389. package/test/device/automated/debugger/coroutine-lifecycle.ts +27 -0
  390. package/test/device/automated/debugger/coroutine-support.ts +140 -0
  391. package/test/device/automated/debugger/coroutine.android.test.ts +169 -0
  392. package/test/device/automated/debugger/kotlin.android.test.ts +127 -0
  393. package/test/device/automated/debugger/runtime.android.test.ts +219 -0
  394. package/test/device/automated/interact/interaction.android.test.ts +56 -0
  395. package/test/device/automated/observe/system-trace.smoke.ts +104 -0
  396. package/test/device/manual/interact/modul8_selector_tap.manual.ts +1 -1
  397. package/test/fixtures/contracts/tool-definitions.json +3536 -0
  398. package/test/fixtures/coroutine-app/MainActivity.kt +100 -0
  399. package/test/fixtures/coroutine-app/README.md +48 -0
  400. package/test/fixtures/coroutine-app/build.ts +35 -0
  401. package/test/fixtures/debugger-app/MainActivity.java +67 -0
  402. package/test/fixtures/debugger-app/MainActivity.kt +32 -0
  403. package/test/fixtures/debugger-app/NoLocals.java +7 -0
  404. package/test/fixtures/debugger-app/README.md +65 -0
  405. package/test/fixtures/debugger-app/build.ts +39 -0
  406. package/test/fixtures/latency-journey-app/README.md +2 -0
  407. package/test/fixtures/readiness-app/README.md +2 -0
  408. package/test/helpers/perfetto.ts +59 -0
  409. package/test/unit/debugger/coroutine-lifecycle.test.ts +43 -0
  410. package/test/unit/debugger/diagnostic-sessions.test.ts +67 -0
  411. package/test/unit/debugger/diagnostics.test.ts +80 -0
  412. package/test/unit/debugger/guards.test.ts +50 -0
  413. package/test/unit/debugger/native.test.ts +33 -0
  414. package/test/unit/debugger/preparation.test.ts +32 -0
  415. package/test/unit/debugger/protocol.test.ts +15 -0
  416. package/test/unit/debugger/sessions.test.ts +83 -0
  417. package/test/unit/interact/adjustment_service.test.ts +42 -0
  418. package/test/unit/interact/adjustment_verification.test.ts +35 -0
  419. package/test/unit/interact/clock_dependencies.test.ts +63 -0
  420. package/test/unit/interact/element_helpers.test.ts +19 -0
  421. package/test/unit/interact/legacy_wait_service.test.ts +17 -0
  422. package/test/unit/interact/state_comparison.test.ts +20 -0
  423. package/test/unit/interact/target_scope.test.ts +35 -0
  424. package/test/unit/network/get_network_activity.test.ts +1 -1
  425. package/test/unit/observe/readiness.test.ts +3 -1
  426. package/test/unit/observe/screenshot-encoding.test.ts +30 -0
  427. package/test/unit/observe/snapshot-logs.test.ts +14 -0
  428. package/test/unit/observe/system-trace-android.test.ts +52 -0
  429. package/test/unit/observe/system-trace.test.ts +166 -0
  430. package/test/unit/quality/architecture.test.ts +60 -0
  431. package/test/unit/quality/code-quality.test.ts +58 -0
  432. package/test/unit/quality/interaction_boundaries.test.ts +24 -0
  433. package/test/unit/server/conditional_actions.test.ts +1 -1
  434. package/test/unit/server/conditional_schema.test.ts +2 -2
  435. package/test/unit/server/debugger-response.test.ts +63 -0
  436. package/test/unit/server/system-trace.test.ts +64 -0
  437. package/test/unit/server/tool_definitions_parity.test.ts +8 -0
  438. package/dist/server/tool-handlers.js +0 -893
  439. package/docs/ROADMAP.md +0 -646
  440. package/docs/benchmarks/ui-tree-performance/bridge-probe.json +0 -29
  441. package/docs/benchmarks/ui-tree-performance/initial-baseline.json +0 -59560
  442. package/docs/specs/baseline-spec-v0.md +0 -312
  443. package/docs/specs/mcp-tooling-spec-v1.md +0 -446
  444. package/src/server/tool-handlers.ts +0 -923
  445. /package/dist/{server/condition-schema.js → contracts/condition.js} +0 -0
  446. /package/dist/server/{readiness-schema.js → schemas/readiness-schema.js} +0 -0
  447. /package/src/{server/condition-schema.ts → contracts/condition.ts} +0 -0
  448. /package/src/server/{readiness-schema.ts → schemas/readiness-schema.ts} +0 -0
@@ -1,14 +1,14 @@
1
-
2
-
3
1
  # RFC 013 — Wait and Synchronization Reliability
4
2
 
3
+ [Design and evidence](../../README.md#design-and-evidence) · [Tool reference](../../tools/TOOLS.md)
4
+
5
5
  ## Status
6
6
 
7
7
  Draft
8
8
 
9
9
  ---
10
10
 
11
- # 1. Summary
11
+ ## 1. Summary
12
12
 
13
13
  This RFC introduces deterministic synchronization primitives and snapshot freshness semantics for mobile-debug-mcp.
14
14
 
@@ -32,7 +32,7 @@ These capabilities are intended to improve reliability across:
32
32
 
33
33
  ---
34
34
 
35
- # Relationship to Existing Synchronization Contracts
35
+ ## Relationship to Existing Synchronization Contracts
36
36
 
37
37
  This RFC extends and clarifies the synchronization semantics introduced in RFC003 and the currently shipped synchronization tooling.
38
38
 
@@ -58,7 +58,7 @@ It does not invalidate existing synchronization tooling.
58
58
 
59
59
  ---
60
60
 
61
- # 2. Problem Statement
61
+ ## 2. Problem Statement
62
62
 
63
63
  Current interaction flows rely heavily on immediate post-action reasoning against potentially transient UI state.
64
64
 
@@ -93,7 +93,7 @@ This RFC introduces explicit synchronization semantics to address those gaps.
93
93
 
94
94
  ---
95
95
 
96
- # 3. Goals
96
+ ## 3. Goals
97
97
 
98
98
  The system should:
99
99
 
@@ -108,7 +108,7 @@ The system should:
108
108
 
109
109
  ---
110
110
 
111
- # 4. Non-Goals
111
+ ## 4. Non-Goals
112
112
 
113
113
  This RFC does not attempt to:
114
114
 
@@ -122,7 +122,7 @@ This RFC does not attempt to:
122
122
 
123
123
  ---
124
124
 
125
- # 5. Design Principles
125
+ ## 5. Design Principles
126
126
 
127
127
  ## 5.1 UI-First Synchronization
128
128
 
@@ -206,7 +206,7 @@ perform action
206
206
 
207
207
  ---
208
208
 
209
- # 6. Definitions
209
+ ## 6. Definitions
210
210
 
211
211
  ## Fresh
212
212
 
@@ -267,7 +267,7 @@ A synchronization state in which:
267
267
 
268
268
  ---
269
269
 
270
- # 7. Proposed Capabilities
270
+ ## 7. Proposed Capabilities
271
271
 
272
272
  ## 7.1 wait_for_ui_change
273
273
 
@@ -585,7 +585,7 @@ This capability therefore depends on the richer element identity RFC.
585
585
 
586
586
  ---
587
587
 
588
- # 8. Synchronization Lifecycle Model
588
+ ## 8. Synchronization Lifecycle Model
589
589
 
590
590
  Synchronization should follow a consistent lifecycle.
591
591
 
@@ -609,7 +609,7 @@ This lifecycle is intended to standardize synchronization expectations across to
609
609
 
610
610
  ---
611
611
 
612
- # 9. Agent Guidance and Guardrails
612
+ ## 9. Agent Guidance and Guardrails
613
613
 
614
614
  ## Preferred Flow
615
615
 
@@ -650,7 +650,7 @@ Retries should not replace synchronization primitives.
650
650
 
651
651
  ---
652
652
 
653
- # 10. Failure Modes
653
+ ## 10. Failure Modes
654
654
 
655
655
  ## Infinite Animations
656
656
 
@@ -714,7 +714,7 @@ Mitigation:
714
714
 
715
715
  ---
716
716
 
717
- # 11. Platform Considerations
717
+ ## 11. Platform Considerations
718
718
 
719
719
  ## Android Views
720
720
 
@@ -758,7 +758,7 @@ Stabilization windows are especially important.
758
758
 
759
759
  ---
760
760
 
761
- # 12. Telemetry and Metrics
761
+ ## 12. Telemetry and Metrics
762
762
 
763
763
  The implementation should track:
764
764
 
@@ -774,7 +774,7 @@ These metrics should be used to tune convergence heuristics.
774
774
 
775
775
  ---
776
776
 
777
- # 13. Rollout Strategy
777
+ ## 13. Rollout Strategy
778
778
 
779
779
  ## Phase 1
780
780
 
@@ -818,7 +818,7 @@ Introduce:
818
818
 
819
819
  ---
820
820
 
821
- # 14. Design Closure
821
+ ## 14. Design Closure
822
822
 
823
823
  This specification is fully defined and implementation-ready.
824
824
 
@@ -836,7 +836,7 @@ The following areas are fully specified:
836
836
  - diff semantics (structural + semantic accessibility only)
837
837
  - default synchronization scope (screen)
838
838
 
839
- # 15. Dependencies
839
+ ## 15. Dependencies
840
840
 
841
841
  ## Depends On
842
842
 
@@ -855,7 +855,7 @@ The following areas are fully specified:
855
855
 
856
856
  ---
857
857
 
858
- # 16. Conclusion
858
+ ## 16. Conclusion
859
859
 
860
860
  Reliable synchronization is foundational to deterministic mobile automation.
861
861
 
@@ -1,12 +1,14 @@
1
1
  # RFC 014 — Actionability Resolution
2
2
 
3
+ [Design and evidence](../../README.md#design-and-evidence) · [Tool reference](../../tools/TOOLS.md)
4
+
3
5
  ## Status
4
6
 
5
7
  Draft
6
8
 
7
9
  ---
8
10
 
9
- # 1. Summary
11
+ ## 1. Summary
10
12
 
11
13
  This RFC defines a deterministic model for resolving whether a UI element is actionable within mobile-debug-mcp.
12
14
 
@@ -20,7 +22,7 @@ It builds directly on:
20
22
 
21
23
  ---
22
24
 
23
- # 2. Relationship to Existing Resolution System (RFC 005 / RFC 007)
25
+ ## 2. Relationship to Existing Resolution System (RFC 005 / RFC 007)
24
26
 
25
27
  This RFC refines, but does not replace, the existing resolution pipeline defined in RFC 005 (Resolved Stage) and RFC 007 (Executable Target Selection).
26
28
 
@@ -34,7 +36,7 @@ RFC 014 MUST be applied AFTER RFC 005/007 resolution and BEFORE any interaction
34
36
 
35
37
  ---
36
38
 
37
- # 3. Problem Statement
39
+ ## 3. Problem Statement
38
40
 
39
41
  Current interaction failures arise when actions are attempted on elements that are:
40
42
 
@@ -54,7 +56,7 @@ There is currently no single authoritative model defining when an element is saf
54
56
 
55
57
  ---
56
58
 
57
- # 4. Goals
59
+ ## 4. Goals
58
60
 
59
61
  The system should:
60
62
 
@@ -66,7 +68,7 @@ The system should:
66
68
 
67
69
  ---
68
70
 
69
- # 5. Non-Goals
71
+ ## 5. Non-Goals
70
72
 
71
73
  This RFC does NOT:
72
74
 
@@ -78,7 +80,7 @@ This RFC does NOT:
78
80
 
79
81
  ---
80
82
 
81
- # 6. Definition: Actionability
83
+ ## 6. Definition: Actionability
82
84
 
83
85
  An element is considered **actionable** if ALL of the following conditions are satisfied:
84
86
 
@@ -122,7 +124,7 @@ If identity cannot be resolved consistently across snapshots, the element MUST b
122
124
 
123
125
  ---
124
126
 
125
- # 7. Actionability Evaluation Model (Runtime Contract)
127
+ ## 7. Actionability Evaluation Model (Runtime Contract)
126
128
 
127
129
  Actionability is evaluated using runtime-provided fields from the resolved element and snapshot system.
128
130
 
@@ -222,7 +224,7 @@ Short-circuit evaluation is permitted for performance but MUST NOT change final
222
224
 
223
225
  ---
224
226
 
225
- # 8. Resolution Lifecycle
227
+ ## 8. Resolution Lifecycle
226
228
 
227
229
  Actionability MUST be evaluated in the following sequence:
228
230
 
@@ -238,7 +240,7 @@ If any step fails, the element MUST be considered non-actionable.
238
240
 
239
241
  ---
240
242
 
241
- # 9. Interaction Guardrail
243
+ ## 9. Interaction Guardrail
242
244
 
243
245
  Actions MUST NOT be executed unless actionability resolution returns true.
244
246
 
@@ -250,7 +252,7 @@ If actionability is false:
250
252
 
251
253
  ---
252
254
 
253
- # 10. Failure Modes
255
+ ## 10. Failure Modes
254
256
 
255
257
  ## 10.1 Transient Non-Actionability
256
258
 
@@ -293,7 +295,7 @@ Mitigation:
293
295
 
294
296
  ---
295
297
 
296
- # 11. Platform Considerations
298
+ ## 11. Platform Considerations
297
299
 
298
300
  ## Android
299
301
 
@@ -307,7 +309,7 @@ Mitigation:
307
309
 
308
310
  ---
309
311
 
310
- # 12. Integration with RFC 013
312
+ ## 12. Integration with RFC 013
311
313
 
312
314
  Actionability Resolution depends on:
313
315
 
@@ -318,7 +320,7 @@ It MUST NOT evaluate elements from unstable snapshots.
318
320
 
319
321
  ---
320
322
 
321
- # 13. Telemetry
323
+ ## 13. Telemetry
322
324
 
323
325
  Systems SHOULD track:
324
326
 
@@ -329,7 +331,7 @@ Systems SHOULD track:
329
331
 
330
332
  ---
331
333
 
332
- # 14. Rollout Strategy
334
+ ## 14. Rollout Strategy
333
335
 
334
336
  ## Phase 1
335
337
 
@@ -347,7 +349,7 @@ The shipped interaction layer now applies iOS semantic tap eligibility in additi
347
349
 
348
350
  ---
349
351
 
350
- # 15. Dependencies
352
+ ## 15. Dependencies
351
353
 
352
354
  ## Depends On
353
355
 
@@ -357,7 +359,7 @@ The shipped interaction layer now applies iOS semantic tap eligibility in additi
357
359
 
358
360
  ---
359
361
 
360
- # 15.1 Acceptance Criteria
362
+ ## 15.1 Acceptance Criteria
361
363
 
362
364
  An implementation of RFC 014 is considered correct if:
363
365
 
@@ -368,7 +370,7 @@ An implementation of RFC 014 is considered correct if:
368
370
  - All failures produce a defined failure code
369
371
  - Actionability is only evaluated AFTER RFC 005/007 resolution
370
372
 
371
- # 16. Failure Codes (Actionability Gate)
373
+ ## 16. Failure Codes (Actionability Gate)
372
374
 
373
375
  ## Failure Code Derivation Matrix
374
376
 
@@ -387,7 +389,7 @@ These are the only supported actionability failure codes.
387
389
 
388
390
  Implementations SHOULD return the structured code together with a human-readable reason.
389
391
 
390
- # 17. Conclusion
392
+ ## 17. Conclusion
391
393
 
392
394
  Actionability Resolution provides the final gate before UI interaction execution.
393
395
 
@@ -1,5 +1,7 @@
1
1
  # Spec: Adjustable Control Support
2
2
 
3
+ [Design and evidence](../../README.md#design-and-evidence) · [Tool reference](../../tools/TOOLS.md)
4
+
3
5
  ## Purpose
4
6
 
5
7
  Provide a deterministic, semantic interface for interacting with adjustable controls (such as sliders, steppers and other value-based controls) without relying primarily on coordinate manipulation.
@@ -8,7 +10,7 @@ The goal is to allow agents to request a target value rather than perform low-le
8
10
 
9
11
  ---
10
12
 
11
- # Rationale
13
+ ## Rationale
12
14
 
13
15
  Adjustable controls are common throughout modern mobile applications, but they remain one of the least reliable interaction types for autonomous agents.
14
16
 
@@ -25,7 +27,7 @@ This specification introduces a semantic adjustment model where agents request t
25
27
 
26
28
  ---
27
29
 
28
- # Goals
30
+ ## Goals
29
31
 
30
32
  The implementation shall:
31
33
 
@@ -38,7 +40,7 @@ The implementation shall:
38
40
 
39
41
  ---
40
42
 
41
- # Non-Goals
43
+ ## Non-Goals
42
44
 
43
45
  This specification does not:
44
46
 
@@ -50,7 +52,7 @@ This specification does not:
50
52
 
51
53
  ---
52
54
 
53
- # Supported Controls
55
+ ## Supported Controls
54
56
 
55
57
  Initial scope includes:
56
58
 
@@ -66,7 +68,7 @@ All supported controls must expose or deterministically parse into a numeric val
66
68
 
67
69
  ---
68
70
 
69
- # Runtime Interface
71
+ ## Runtime Interface
70
72
 
71
73
  The public tool contract remains the existing `adjust_control` operation.
72
74
 
@@ -134,7 +136,7 @@ These changes require corresponding updates to the existing `adjust_control` imp
134
136
 
135
137
  ---
136
138
 
137
- # Preconditions
139
+ ## Preconditions
138
140
 
139
141
  Before execution the following conditions must be satisfied:
140
142
 
@@ -148,7 +150,7 @@ If any precondition fails, execution shall terminate without attempting adjustme
148
150
 
149
151
  ---
150
152
 
151
- # Execution Model
153
+ ## Execution Model
152
154
 
153
155
  ## Phase 1 — Resolve
154
156
 
@@ -261,7 +263,7 @@ return CONTROL_CONVERGENCE_FAILED
261
263
 
262
264
  ---
263
265
 
264
- # Strategy Detection
266
+ ## Strategy Detection
265
267
 
266
268
  Strategy selection is deterministic and platform-specific.
267
269
 
@@ -353,7 +355,7 @@ The implementation shall use the existing coordinate gesture primitive and then
353
355
 
354
356
  ---
355
357
 
356
- # Value Domains and Normalization
358
+ ## Value Domains and Normalization
357
359
 
358
360
  The initial public contract is numeric.
359
361
 
@@ -425,7 +427,7 @@ The implementation shall not silently clamp an out-of-range request unless the e
425
427
 
426
428
  ---
427
429
 
428
- # Failure Modes
430
+ ## Failure Modes
429
431
 
430
432
  The implementation shall use existing runtime error codes.
431
433
 
@@ -440,7 +442,7 @@ The implementation shall not introduce new public failure codes for this capabil
440
442
 
441
443
  ---
442
444
 
443
- # Acceptance Criteria
445
+ ## Acceptance Criteria
444
446
 
445
447
  The implementation is complete when all of the following automated fixtures or smoke scenarios pass on each supported platform.
446
448
 
@@ -487,7 +489,7 @@ For every failed fixture:
487
489
 
488
490
  ---
489
491
 
490
- # Dependencies
492
+ ## Dependencies
491
493
 
492
494
  Depends on:
493
495
 
@@ -504,7 +506,7 @@ Strengthens:
504
506
 
505
507
  ---
506
508
 
507
- # Future Work
509
+ ## Future Work
508
510
 
509
511
  The following capabilities are intentionally excluded from this specification:
510
512
 
@@ -519,7 +521,7 @@ These are covered by the **Adjustable Control Precision Hardening** specificatio
519
521
 
520
522
  ---
521
523
 
522
- # Determinism Requirements
524
+ ## Determinism Requirements
523
525
 
524
526
  Given identical:
525
527
 
@@ -538,4 +540,4 @@ Execution shall not rely on:
538
540
  - hidden mutable state
539
541
  - undefined platform behaviour
540
542
 
541
- ---
543
+ ---
@@ -1,7 +1,7 @@
1
-
2
-
3
1
  # Specification 016 — Environment Auto-Configuration and Toolchain Discovery
4
2
 
3
+ [Design and evidence](../../README.md#design-and-evidence) · [Tool reference](../../tools/TOOLS.md)
4
+
5
5
  ## Purpose
6
6
 
7
7
  Enable the Mobile Debug MCP to automatically discover, validate, and configure its required platform toolchains, reducing manual setup while maintaining deterministic behaviour.
@@ -10,7 +10,7 @@ The MCP should work out of the box on a standard development machine whenever th
10
10
 
11
11
  ---
12
12
 
13
- # Goals
13
+ ## Goals
14
14
 
15
15
  - Eliminate manual executable path configuration for standard installations.
16
16
  - Automatically discover Android and iOS toolchains.
@@ -21,7 +21,7 @@ The MCP should work out of the box on a standard development machine whenever th
21
21
 
22
22
  ---
23
23
 
24
- # Non-Goals
24
+ ## Non-Goals
25
25
 
26
26
  This specification does not:
27
27
 
@@ -33,7 +33,7 @@ This specification does not:
33
33
 
34
34
  ---
35
35
 
36
- # Supported Host Matrix
36
+ ## Supported Host Matrix
37
37
 
38
38
  | Host OS | Android discovery | iOS discovery | Expected behaviour |
39
39
  |---|---:|---:|---|
@@ -57,7 +57,7 @@ iOS discovery shall only run on macOS. On Linux and Windows, iOS status shall be
57
57
  }
58
58
  ```
59
59
 
60
- # Scope
60
+ ## Scope
61
61
 
62
62
  ## Android
63
63
 
@@ -87,7 +87,7 @@ iOS discovery shall only run on macOS. On Linux and Windows, iOS status shall be
87
87
 
88
88
  ---
89
89
 
90
- # Runtime Behaviour
90
+ ## Runtime Behaviour
91
91
 
92
92
  Toolchain discovery and validation shall be available through `get_system_status`.
93
93
 
@@ -109,7 +109,7 @@ The server shall not fail simply because one platform is unavailable.
109
109
 
110
110
  ---
111
111
 
112
- # Discovery Priority
112
+ ## Discovery Priority
113
113
 
114
114
  Every executable and toolchain root shall be resolved using the following deterministic order.
115
115
 
@@ -136,7 +136,7 @@ If multiple supported overrides are present for the same concern, the order show
136
136
 
137
137
  An explicitly configured path that does not exist, is not executable, or fails validation shall not silently fall back to automatic discovery. It shall return a structured failure so configuration errors remain visible and deterministic.
138
138
 
139
- # Tool Version Policy
139
+ ## Tool Version Policy
140
140
 
141
141
  Version validation shall be deterministic and tool-specific.
142
142
 
@@ -157,7 +157,7 @@ When a version string cannot be parsed, the tool shall return `TOOL_VERSION_UNSU
157
157
 
158
158
  ---
159
159
 
160
- # Capability Detection
160
+ ## Capability Detection
161
161
 
162
162
  Discovery shall determine available capabilities rather than simply locating executables.
163
163
 
@@ -185,7 +185,7 @@ iOS capabilities may include:
185
185
 
186
186
  Agents shall not need to know which underlying provider implements a capability.
187
187
 
188
- # Provider Selection
188
+ ## Provider Selection
189
189
 
190
190
  Multiple providers may satisfy the same capability.
191
191
 
@@ -214,7 +214,7 @@ A platform may be partially ready when only a subset of capabilities has an avai
214
214
 
215
215
  ---
216
216
 
217
- # Environment Validation
217
+ ## Environment Validation
218
218
 
219
219
  Validation shall confirm:
220
220
 
@@ -233,7 +233,7 @@ Examples:
233
233
  - `xcrun` and `simctl` available with no booted simulator: iOS toolchain ready, device-dependent capabilities unavailable until a simulator is booted or device is connected.
234
234
  - `adb` available with no connected device: Android toolchain ready, device-dependent capabilities unavailable until a device or emulator is connected.
235
235
 
236
- # Diagnostic Contract
236
+ ## Diagnostic Contract
237
237
 
238
238
  All discovery and validation failures shall use the following shape:
239
239
 
@@ -276,7 +276,7 @@ Raw shell errors may be recorded internally for diagnostics, but shall not be ex
276
276
 
277
277
  ---
278
278
 
279
- # Partial Availability
279
+ ## Partial Availability
280
280
 
281
281
  Platform readiness shall be reported independently.
282
282
 
@@ -295,7 +295,7 @@ A platform status shall be one of:
295
295
  - `unavailable`
296
296
  - `unsupported`
297
297
 
298
- # Runtime Introspection
298
+ ## Runtime Introspection
299
299
 
300
300
  `get_system_status` shall expose the environment summary using this minimum structure:
301
301
 
@@ -401,7 +401,7 @@ Each capability entry shall include:
401
401
 
402
402
  ---
403
403
 
404
- # Compatibility
404
+ ## Compatibility
405
405
 
406
406
  This specification extends the existing `get_system_status` surface additively.
407
407
 
@@ -429,7 +429,7 @@ Environment variables become optional overrides rather than mandatory configurat
429
429
 
430
430
  ---
431
431
 
432
- # Failure Modes
432
+ ## Failure Modes
433
433
 
434
434
  The implementation shall return deterministic setup failures including:
435
435
 
@@ -455,7 +455,7 @@ Failure selection rules:
455
455
 
456
456
  ---
457
457
 
458
- # Acceptance Criteria
458
+ ## Acceptance Criteria
459
459
 
460
460
  The implementation is complete when all of the following are true.
461
461
 
@@ -521,7 +521,7 @@ The implementation is complete when all of the following are true.
521
521
 
522
522
  ---
523
523
 
524
- # Future Work
524
+ ## Future Work
525
525
 
526
526
  Potential future enhancements include:
527
527
 
@@ -530,4 +530,4 @@ Potential future enhancements include:
530
530
  - Toolchain health monitoring.
531
531
  - Self-healing actions such as restarting adb, reconnecting devices, or refreshing simulator state.
532
532
  - Installation guidance and package manager integration.
533
- - Configurable version policies for enterprise environments.
533
+ - Configurable version policies for enterprise environments.
@@ -1,5 +1,7 @@
1
1
  # RFC 018 — Interaction Latency, Verification Modes, and Batched Journeys
2
2
 
3
+ [Design and evidence](../../README.md#design-and-evidence) · [Tool reference](../../tools/TOOLS.md)
4
+
3
5
  ## Status
4
6
 
5
7
  Implemented; Android and iOS device validation passed.
@@ -1,10 +1,12 @@
1
1
  # Specification 019 — UI-Tree Observation Performance
2
2
 
3
+ [Design and evidence](../../README.md#design-and-evidence) · [Tool reference](../../tools/TOOLS.md)
4
+
3
5
  ## Status
4
6
 
5
7
  Implemented for Android with a paired emulator benchmark. iOS correctness has
6
8
  unit and simulator smoke coverage; iOS latency remains unmeasured. See
7
- `docs/benchmarks/ui-tree-performance/` for the initial baseline, paired reports,
9
+ [benchmark guide](../../benchmarks/ui-tree-performance/README.md) for the paired reports,
8
10
  and the retained failed first comparison attempt.
9
11
 
10
12
  ## 1. Summary
@@ -1,6 +1,8 @@
1
1
  # Intent: conditional actions
2
2
 
3
- Originator: repository maintainer (user in the current conversation).
3
+ [Design and evidence](../../README.md#design-and-evidence) · [Tool reference](../../tools/TOOLS.md) · [Specification](spec.md) · [Plan and verification](plan.md)
4
+
5
+ Originator: repository maintainer (design review).
4
6
  Date: 2026-10-29.
5
7
  Status: approved.
6
8
 
@@ -9,7 +11,7 @@ Status: approved.
9
11
  “Conditional actions: Check expected state immediately before acting; stop and
10
12
  return fresh evidence if it changed.”
11
13
 
12
- Source: user request in the current conversation, following adoption of the
14
+ Source: user request during design review, following adoption of the
13
15
  repository development process.
14
16
 
15
17
  ## Desired outcome
@@ -57,6 +59,6 @@ state observation, and Android/iOS adapters for supported actions.
57
59
 
58
60
  ## Approval
59
61
 
60
- Approved by the originator in the current conversation on 2026-10-29: “yes”,
62
+ Approved by the originator during design review on 2026-10-29: “yes”,
61
63
  in direct response to the complete intent summary and linked artifact. Approval
62
64
  covers the captured intent; specification approval remains a separate gate.