feat: Phase 5 — maps_navigate, and read the screen before the input
The Maps recipe: open the search box, type the place, and confirm the result list names it. Every label comes from a live uiautomator dump (search_omnibox_text_box, typed_suggest_container, the account sheet), never from a guess. Text only, one step_timeout/total_timeout, guards for the account sheet. The first live run exposed an ordering bug in expect_change. A dump is not instant, so a baseline taken after the input already showed the app's response and the check could never see a wedge; it failed against a healthy Maps. The engine now reads the screen before the step above runs and hands that signature to the check. Each retry re-reads it. Live: maps_navigate ok in 27.6s, result list names "Melbourne Museum". The wedge reason and its bounded retry are demonstrated with a probe recipe whose input changes nothing; a real wedge could not be forced, and docs/phase-5-maps-recipe.md says so plainly. Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -14,7 +14,7 @@ order.
|
||||
| 2 — Act primitives | ✅ done — tap by text, type, scroll, back, home, launch |
|
||||
| 3 — Spotify recipe | ✅ done — `spotify_play` plays the right song end to end (13 steps, 35s), see [`docs/phase-3-spotify-recipe.md`](docs/phase-3-spotify-recipe.md) |
|
||||
| 4 — Song radio | ✅ done — `spotify_radio` starts a real radio (19 steps, 57s); the run log is now bounded at ~1 MB × 5, see [`docs/phase-4-song-radio.md`](docs/phase-4-song-radio.md) |
|
||||
| 5 — Maps recipe | not started |
|
||||
| 5 — Maps recipe | ✅ done — `maps_navigate` opens a real search and the result list names the place (8 steps, 28s), see [`docs/phase-5-maps-recipe.md`](docs/phase-5-maps-recipe.md) |
|
||||
| 6 — Action API | not started |
|
||||
| 7 — Resilience | not started |
|
||||
| 8 — Documentation | not started |
|
||||
@@ -72,12 +72,15 @@ what to find on screen; there are no coordinates anywhere.
|
||||
./bin/artemis recipes # list them
|
||||
./bin/artemis run spotify_play query="Rolling Stones Honky Tonk"
|
||||
./bin/artemis run spotify_radio query="Rolling Stones Honky Tonk"
|
||||
./bin/artemis run maps_navigate query="Melbourne Museum"
|
||||
```
|
||||
|
||||
Read [`docs/phase-3-spotify-recipe.md`](docs/phase-3-spotify-recipe.md) for the
|
||||
file format, the verbs, and why list rows need their own step, and
|
||||
file format, the verbs, and why list rows need their own step,
|
||||
[`docs/phase-4-song-radio.md`](docs/phase-4-song-radio.md) for the context menu,
|
||||
`menu_row`, and the two ways a radio run fails on purpose.
|
||||
`menu_row`, and the two ways a radio run fails on purpose, and
|
||||
[`docs/phase-5-maps-recipe.md`](docs/phase-5-maps-recipe.md) for the Maps
|
||||
labels, the `expect_change` check, and the one ordering rule it depends on.
|
||||
|
||||
## Rules that the code enforces
|
||||
|
||||
|
||||
Reference in New Issue
Block a user