* 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
44 lines
2.1 KiB
Markdown
44 lines
2.1 KiB
Markdown
# 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
|