Phase 3 of AGENTS.md section 11.
Recipes file (FR-5)
- recipes/ holds one hand-editable file per task; recipes/spotify_play.recipe
is the first one.
- internal/recipe parses directives, guards, parameters and steps, and runs
them with a per-step and a whole-run timeout (FR-11).
- Steps name text ("tap the element whose text is Search"), never coordinates.
- guards name screens Artemis must never tap on, so a signed-out or
first-run Spotify fails with its own reason (FR-8).
- Every run appends task, params, steps, result and duration to
logs/runs.jsonl (FR-10).
spotify_play
- launch, search, play, then wait for the transport button to say "Pause".
- internal/ui/rows.go adds tap_row: a result row is a clickable container with
a title and a subtitle, so a one-line search suggestion is not a result, and
the tap lands on the row's centre rather than on its "More options" button.
This fixes a real wrong tap: a plain text tap hit a 126x12 pixel
"More options for song Honky Tonk Women - Live" button.
Locked screen (AGENTS.md section 13 Q2, decided)
- Artemis fails loudly on a secure keyguard and never types a PIN. No secret is
stored. A non-secure keyguard is still dismissed.
- internal/ui/keyguard.go reads the KeyguardServiceDelegate block plus
cmd lock_settings is-user-secure.
- Every acting command wakes the screen before it checks the keyguard: a dozing
phone reports showing=false, because the lock screen is not drawn yet.
- AGENTS.md records the decision and that storing a PIN for auto-unlock is
rejected for now.
Verified live: the phone locked itself mid-session, and keyguard, tap and
run spotify_play all refused with "phone is locked; unlock it and retry".
The live end-to-end playback run still needs an unlocked phone.
40 lines
380 B
Plaintext
40 lines
380 B
Plaintext
# Secrets
|
|
.env
|
|
.env.*
|
|
*.local
|
|
*.keystore
|
|
|
|
# Go
|
|
bin/
|
|
*.exe
|
|
*.test
|
|
*.out
|
|
|
|
# Python
|
|
__pycache__/
|
|
*.pyc
|
|
.venv/
|
|
venv/
|
|
|
|
# Node / web
|
|
node_modules/
|
|
dist/
|
|
*.visual-check.*
|
|
|
|
# Android / Kotlin
|
|
.gradle/
|
|
build/
|
|
local.properties
|
|
*.apk
|
|
|
|
# OS / editors
|
|
.DS_Store
|
|
*.swp
|
|
|
|
|
|
# Pi agent generated memory (local state, not source)
|
|
.pi/memory-vault/
|
|
|
|
# Artemis run log (local state, not source)
|
|
logs/
|