Files
opencode-mobile/.tasks/10/test-report.md
Den 32f7af4e11 fix(sessions): recover home-scoped list after fresh connect
* fix(sessions): use active connection client directly, remove roots filter

Root cause A: loadSessions was calling clientForDirectory(serverHome) which
scoped the session list to /home/azureuser — a different project than the
server's active CWD. Sessions in the current project (e.g. opencode-mobile)
were never returned.

Root cause B: roots:true filtered out sessions that have a parentID (sub-task /
AUTO-REVIEW sessions), hiding valid sessions from the list.

Fix: use connState.client directly (the connection's active directory) and drop
the roots filter so all sessions for that project are visible.

Also adds a verify_session_list CUA smoke scenario that navigates back to the
sessions tab after creating a session and asserts the list is non-empty —
covering the regression path that was previously untested.

* fix(sessions): fetch serverHome in addConnection so loadSessions shows correct sessions

Root cause: addConnection() built the HTTP client but never fetched serverHome
(only loadConnections and setActiveConnection did). When the user adds a new
connection (fresh install / first sign-in), serverHome = null, so loadSessions
fell through to connState.client (the server's CWD). On this dev server the CWD
is the deploy directory — 11 old May-19 sessions that are not the user's recent
work sessions.

Fix: addConnection now fetches currentProject + serverHome via the same
Promise.all as setActiveConnection, before calling set(). This ensures
loadSessions immediately uses clientForDirectory(serverHome) → the global
project → the user's actual recent parent sessions.

Also adds --opencode-url flag to the CUA smoke script, which appends a
connect_and_verify_sessions scenario that reproduces the regression:
  python scripts/android-cua-smoke.py --opencode-url http://100.108.64.76:4096

* fix(sessions): recover home scope after fresh connect

Resolve stale deploy-only session list by recovering server home during first load and keeping regression coverage in default Android CUA smoke and CI.

* chore(release): bump version to 0.4.0
2026-05-26 19:50:17 -07:00

2.1 KiB

Task 10 - Phase 5c Test Report

Modality

Real feature test on Android emulator (emulator-5554) against real OpenCode server (http://100.108.64.76:4096).

Setup

  • export PATH="/tmp/android-sdk/platform-tools:/tmp/android-sdk/emulator:$PATH"
  • Built + installed latest release APK from current branch.
  • Cleared app state to force first-run + consent flow.

Steps and Observations

  1. Clear app and launch:
    • command: adb shell pm clear ai.opencode.mobile && adb shell am start -n ai.opencode.mobile/.MainActivity
    • observed: Success, app launched.
  2. Handle first-run consent:
    • action: tapped No thanks on "Help improve OpenCode" modal.
    • observed: modal dismissed, Sessions screen visible.
  3. Connect to real server:
    • action: tapped Add Connection, entered IP 100.108.64.76 (port 4096 default), tapped Connect.
    • observed: returned to app with active server My Server.
  4. Open Sessions tab and verify list:
    • action: navigated to Sessions tab after connect.
    • observed from UI dump + screenshot: non-empty list with entries including Vibe Technologies domain under $10, Dental benefits: Standard vs Premier PPO, Compare Standard PPO vs Premier PPO.
    • evidence artifact: /tmp/task10_testreport_sessions.png.
  5. Deterministic assertion script output:
    • artifact /tmp/task10_steps.txt reports:
      • no_connection=False
      • no_sessions=False
      • deploy_badge=False
      • workspace_badge=True
      • PASS=True
  6. Focused CUA validation (real device, real app state):
    • command: python3 scripts/android-cua-smoke.py --model gpt-5.4 --include-xml --max-steps 20 --goal "You see OpenCode Mobile connected to server. Verify Sessions tab shows at least one session entry; report done only if session titles are visible."
    • observed: Result: success in 1 steps with summary naming visible session titles.

Pass Criteria Check

  • Connect then open Sessions tab: PASS
  • At least one session entry visible: PASS
  • Not stuck on No Connection after connect: PASS
  • Not stale deploy-only list (opencode-deploy-159-OhZXeN): PASS

RESULT

RESULT: pass