Skip to content

feat(phase6): #618 Path-A inter-leg probe — capture the return-nav from live truth#717

Merged
jjackson merged 1 commit into
mainfrom
feat/618-path-a-probe
Jun 5, 2026
Merged

feat(phase6): #618 Path-A inter-leg probe — capture the return-nav from live truth#717
jjackson merged 1 commit into
mainfrom
feat/618-path-a-probe

Conversation

@jjackson
Copy link
Copy Markdown
Owner

@jjackson jjackson commented Jun 5, 2026

Why

#618 (the Learn→Deliver inter-leg handoff) has been a long-standing Phase-6 thorn. Root-caused this session with visual ground truth: after the Learn leg, the device sits on the CommCare Learn-mode home (nsv_home_screen / StandardHomeActivity, inside CommCare) — not a "certificate screen" (the certificate is a section on Connect's opp-detail), and not Connect's jobs list. The system treated the two post-Learn landings as one "nondeterministic" state; they're two deterministic pathways:

Deliver is only reachable via Connect's DOWNLOAD gate, so Path A must return to Connect first — and that return-nav was never captured live (a prior pressBack guess exited CommCare to the Android launcher and was reverted).

What

A calibration probe so the next run captures the return route from live truth instead of guessing:

  • connect-learn-home-deliver-probe.yaml — from nsv_home_screen, taps the "Log out of CommCare" tile (candidate return-to-Connect route), screenshotting before/after.
  • app-screenshot-capture — when the Deliver leg's connect-resume-opp fails on nsv_home_screen (Path A), run the probe bracketed by mobile_capture_ui_dump, and upload both XML element-trees to journey-deliver/618probe-*.xml. Record Deliver incomplete + a note; do not pass/fail on the probe (it's calibration, not the journey).

Next

Once the dumps show the real return route, encode it as connect-resume-opp's Path-A branch (detect nsv_home_screen → return-to-Connect → existing jobs-list CTA logic) and retire the probe.

Recipe resolves clean (learn-home-screennsv_home_screen); full suite 1883 green. Recipes are auto-discovered (no registration needed).

…om live truth

#618 (Learn→Deliver handoff) has been a recurring thorn. Root-caused this
session with visual ground truth (the post-Learn screen is the CommCare
Learn-mode home — StandardHomeActivity/nsv_home_screen, INSIDE CommCare —
NOT a "certificate screen" and NOT Connect's jobs list). There are two
deterministic post-Learn pathways the system wrongly treated as one
"nondeterministic" state:
  - Path A: just finished Learn → device on CommCare Learn home.
  - Path B: re-entered Connect → jobs list (already characterized;
    deliver-launch.yaml drives §8 opp-detail → §9 download → §10 deliver home).
Deliver is only reachable via Connect's DOWNLOAD gate, so Path A MUST return
to Connect first — and that return-nav was never captured live (a prior
pressBack guess exited CommCare to the Android launcher and was reverted).

This adds a calibration probe so the next run captures the return route from
live truth instead of guessing:
- new recipe connect-learn-home-deliver-probe.yaml: from nsv_home_screen,
  taps the "Log out of CommCare" tile (candidate return-to-Connect route),
  screenshotting before/after.
- app-screenshot-capture: when the Deliver leg's connect-resume-opp fails on
  nsv_home_screen (Path A), run the probe bracketed by mobile_capture_ui_dump
  and upload both XML element-trees to journey-deliver/618probe-*.xml. Record
  Deliver `incomplete` + note; do not pass/fail on the probe.

Once the dumps show the real return route, encode it as connect-resume-opp's
Path-A branch (detect nsv_home_screen → return-to-Connect → existing jobs-list
CTA logic) and retire the probe. Recipe resolves clean (learn-home-screen →
nsv_home_screen); full suite 1883 green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jjackson jjackson enabled auto-merge June 5, 2026 21:29
@jjackson jjackson merged commit 7dc56a4 into main Jun 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant