Files
opencode-mobile/docs/qa/REPLY-FLOW-E2E-2026-06-08.md
engineer e39cec3847 fix(launch): Expo SDK 52->54 in HN/Reddit copy; add reply-flow E2E evidence; version refs
- Launch posts claimed Expo SDK 52 but app is on SDK 54 (factual accuracy
  before public posting — HN/Reddit devs check this)
- docs/qa/REPLY-FLOW-E2E-2026-06-08.md: verified send->streaming reply works
  against the live opencode server via app-identical sdk.ts calls (free model);
  closes the 'opencode can't reply in CI' residual at the data-contract level
- owner-submissions.md: 0.4.3 -> 0.4.4

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 07:42:19 -07:00

1.6 KiB

Reply-flow E2E verification — 2026-06-08

Closes the residual test-gate gap: opencode could not reply inside CI (no provider), so the send→reply→diff journey was unexercised. Verified here against the LIVE remote opencode server using app-identical SDK calls and a FREE model (no cost, no remote mutation).

Server: http://100.108.64.76:4096 (auth opencode:test), model opencode/deepseek-v4-flash-free Script: /tmp/oc_e2e.py (replicates src/lib/sdk.ts: session.create → prompt_async → message poll → diff)

Result:

  • [1] create session -> 200
  • [2] prompt_async -> 204
  • [3] assistant reply after ~8s (127 chars): "A binary search is an algorithm that finds a target value in a sorted array by repeatedly dividing the search interval in half."
  • [4] diff endpoint -> 200 (0 entries; no file edit triggered to avoid mutating the remote)
  • RESULT: PASS reply flow

Gate status after this run

  • Connect → create session → session list: GREEN, on-device CUA E2E (run 27142662582).
  • Send prompt → streaming assistant reply: GREEN, verified against real replying server (this doc).
  • Diff: endpoint 200 + DiffView UI fixed (horizontal scroll); not exercised with a populated diff (would mutate remote). Rendering code audited.
  • 10 UI/UX bugs fixed across all screens; tsc clean, 65/65 unit tests pass.

Residual (only remaining gap)

Literal pixel-level GUI of the streaming reply + a populated diff on a real device. Local emulator unavailable (homebrew sdkmanager fetched Linux-x86-64 binaries on arm64 macOS — wrong-OS, won't run). Closeable by a ~10-min manual phone walkthrough, or by wiring a free provider into the CI emulator run.