Skip to content

Latest commit

 

History

History
166 lines (121 loc) · 5.11 KB

beta-test-plan.md

File metadata and controls

166 lines (121 loc) · 5.11 KB

Beta test plan — v0.1.0-beta.1

Use this script to validate the beta candidate before tagging v0.1.0-beta.1.
Check each step. Fill in Sign-off at the end and reply OK in chat to publish the release.

Estimated time: 45–60 minutes
Prerequisites: Linux x86_64, paid ChatGPT account, a local Git test repository


0. Prepare the build

Choose one option:

Option A — AppImage from a previous release (fastest if CI already finished)

# Download from GitHub Releases (e.g. v0.1.0-alpha.3):
# Cotux_*_amd64.AppImage and run-cotux.sh
chmod +x Cotux_*_amd64.AppImage run-cotux.sh
./run-cotux.sh Cotux_*_amd64.AppImage

Option B — Local build from this branch (recommended after timeline changes)

cd ~/Code/chatgpt-linux
git pull
npm ci
npm run build:appimage
chmod +x scripts/run-cotux.sh
./scripts/run-cotux.sh src-tauri/target/release/bundle/appimage/Cotux_*.AppImage

Important: do not run a raw AppImage right after tauri build without build:appimage. That step runs fix-appimage.sh (WebKit on Ubuntu 26.04). Without it the UI may hang or not respond.

Quick verification (optional):

npm run validate:runtime
cd src-tauri && cargo test
npm test -- --run

1. Install and first launch

# Step OK
1.1 App opens without crash (no WebKitNetworkProcess / SIGBUS) ☐
1.2 Cotux icon appears in dock/launcher ☐
1.3 Window drags and resizes from edges ☐
1.4 Top bar shows disconnected state before login ☐

2. Authentication (paid plan)

# Step OK
2.1 Sign in opens the browser once (not twice) ☐
2.2 Complete OAuth → app shows email and plan (e.g. plus) ☐
2.3 Usage quota menu loads weekly percentage ☐
2.4 Sign out clears session; project sidebar hides or asks for login ☐
2.5 (Optional) Free account: app refuses and shows paid-plan message ☐

3. Projects and sessions

# Step OK
3.1 Add project folder ☐
3.2 Expand project → VS Code/CLI sessions appear (if present in ~/.codex) ☐
3.3 Select existing session → history loads in timeline ☐
3.4 New session clears composer and starts a fresh thread ☐
3.5 Archive project and toggle archived list in sidebar ☐

Settings → CODEX_HOME should show ~/.codex (or your real path, e.g. /data/home/.codex).


4. Chat, harness, and timeline

# Step OK
4.1 Send a simple prompt → agent streams a response ☐
4.2 Sticky header shows project + session name when scrolling ☐
4.3 Change model / reasoning / collaboration mode in composer ☐
4.4 Stop turn interrupts active generation ☐
4.5 Copy message or code block (hover) works ☐
4.6 Turn summary appears after completion ("Worked for …") ☐
4.7 Live "Working for …" divider during an active turn ☐
4.8 Ask for a plan → plan card persists after reload/restart ☐
4.9 Model-changed divider when switching models between turns ☐
4.10 Continue from here on an older message → new thread loads ☐

5. Right panel (Changes + Files)

# Step OK
5.1 Tabs visible: Changes and Files only (no Terminal tab) ☐
5.2 After a turn that edits files, Changes lists staged/unstaged files ☐
5.3 Select file → side-by-side diff with syntax highlight ☐
5.4 Edit file outside the app → panel updates (git watcher) ☐
5.5 Files tab → click file inserts @path in composer ☐

6. Approvals

# Step OK
6.1 Ask agent for a command that needs approval ☐
6.2 Approval panel shows Allow / Session / Decline with command details ☐
6.3 Allow → turn continues; Session → subsequent approvals auto-accept in thread ☐
6.4 Decline → turn stops with a clear message ☐

7. Settings and i18n

# Step OK
7.1 Settings shows runtime version 0.146.0 and CODEX_HOME ☐
7.2 Switch language (en / pt / es) updates UI without restart ☐
7.3 Light / dark / system theme works ☐

8. Beta scope (docs vs app)

# Check OK
8.1 Release does not promise .deb or aarch64 download ☐
8.2 No placeholder Terminal tab in UI ☐
8.3 x86_64 AppImage is the only artifact needed for use ☐

Sign-off

Field Value
Tester
Date
Build tested AppImage from release / local beta.1 build
App version (if local build) 0.1.0-beta.1
Result PASS / FAIL
Blockers (if FAIL)

After PASS

Reply OK in chat. Then:

  1. Final commit(s) if any local changes remain
  2. Tag v0.1.0-beta.1
  3. Push tag → CI publishes release without Pre-release
  4. GitHub release link shared

If FAIL, list failed items (section number) so we can fix before tagging.