Phase 1.5 of #356 (Phase 1 shipped in PR #367). Phase 1 made newly generated/saved Maestro action flows keyboard-safe; this extends the fix to existing flows.
Problem
Phase 1 injects - hideKeyboard only at action-generation time, so already-saved .rn-agent/actions/*.yaml flows stay flaky on bottom-pinned-after-typing taps until re-recorded.
Scope
- Repair-time injection (
repair-engine.ts applyRepair): when repair patches a tapOn that follows an inputText with no intervening hideKeyboard, insert - hideKeyboard before it (YAML body string-surgery on the patched block).
- One-time backfill command: scan existing action YAMLs and inject
- hideKeyboard before typed-then-tap sequences. This rewrites committed files, so make it explicit/opt-in (not automatic on load), with a dry-run/diff.
Notes
- Keep the same conservative rule as Phase 1 (
flowContainsHideKeyboard / typed-then-tap), reusing the generator's logic where possible.
- Detection helper
flowContainsHideKeyboard already exists in maestro-dispatch.ts.
Refs
#356, PR #367, spec "Out of scope (follow-ups)"; scripts/cdp-bridge/src/domain/repair-engine.ts, tools/test-recorder-generators.ts.
Phase 1.5 of #356 (Phase 1 shipped in PR #367). Phase 1 made newly generated/saved Maestro action flows keyboard-safe; this extends the fix to existing flows.
Problem
Phase 1 injects
- hideKeyboardonly at action-generation time, so already-saved.rn-agent/actions/*.yamlflows stay flaky on bottom-pinned-after-typing taps until re-recorded.Scope
repair-engine.tsapplyRepair): when repair patches atapOnthat follows aninputTextwith no interveninghideKeyboard, insert- hideKeyboardbefore it (YAML body string-surgery on the patched block).- hideKeyboardbefore typed-then-tap sequences. This rewrites committed files, so make it explicit/opt-in (not automatic on load), with a dry-run/diff.Notes
flowContainsHideKeyboard/ typed-then-tap), reusing the generator's logic where possible.flowContainsHideKeyboardalready exists inmaestro-dispatch.ts.Refs
#356, PR #367, spec "Out of scope (follow-ups)";
scripts/cdp-bridge/src/domain/repair-engine.ts,tools/test-recorder-generators.ts.