Files
OpenQode/docs/QA_FEATURE_REPORT.md

147 lines
6.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OpenQode Gen5 — Feature QA Checklist + Enhancements
This report is **code-level QA** (feature existence + wiring + tests + sanity guards). It does **not** replace manual runtime QA in a real terminal session (especially for Windows UI Automation + browser popups).
Last updated: 2025-12-15
## Legend
- ✅ Implemented + wired + basic automated checks pass
- 🟡 Implemented but requires manual runtime verification
- 🔴 Missing / incomplete (recommended next work)
---
## 1) Core TUI Shell (Layout, Stability, UX)
- ✅ Split-pane layout with responsive sidebar (`bin/opencode-ink.mjs`)
- ✅ Reduced resize “shake” via debounced terminal sizing (`bin/opencode-ink.mjs`)
- 🟡 Resize jitter may still occur depending on terminal renderer and font; verify in Windows Terminal + cmd + PowerShell
Enhancements
- Add layout hysteresis near breakpoint boundaries (prevents mode flapping during resize).
- Add `/motion on|off` to a visible toggle in Settings/Palette (already exists as command).
---
## 2) Sidebar + Explorer (IDE-style File Manager)
- ✅ Explorer tree component (`bin/ui/components/FileTree.mjs`)
- ✅ Sidebar rendering + selection wiring (`bin/ui/components/PremiumSidebar.mjs`, `bin/opencode-ink.mjs`)
- ✅ Reveal controls:
- `Ctrl+E` toggles Explorer
- `/explorer on|off`
- ✅ Selected files become a “context pack” for the next prompt (`bin/opencode-ink.mjs`)
- 🟡 Manual QA: ensure Explorer appears in narrow mode (Tab to expand sidebar, `Ctrl+E` should expand/focus)
Enhancements
- Add a dedicated “Explorer focus mode” hotkey (e.g. `Ctrl+Shift+E`) to jump into tree navigation.
- Add file actions: rename/delete/new file (safe-mode gated).
---
## 3) File Preview Tabs + Open/Search
- ✅ File tabs UI (`bin/ui/components/FilePreviewTabs.mjs`)
-`/open <path[:line]>` opens a file tab (`bin/opencode-ink.mjs`)
-`/search <rg query>` + search overlay (`bin/ui/components/SearchOverlay.mjs`, `bin/opencode-ink.mjs`)
- ✅ Recent/Hot file pickers (`Ctrl+R`, `Ctrl+H`) + tracking (`bin/opencode-ink.mjs`)
- 🟡 Manual QA: open → edit → reopen behavior with large files
Enhancements
- Add “pin tab” + “close others” actions.
- Add symbol/outline panel (basic parsing for JS/TS/Python).
---
## 4) Better Edit Workflow (Diff + Hunks + One-Key Actions)
- ✅ Diff viewer with hunk toggles + apply actions (`bin/ui/components/DiffView.mjs`)
- `TAB` toggles diff/hunks
- `T` toggles hunk, `A` all, `X` none
- `R` apply + reopen, `V` apply + run tests
- 🟡 Manual QA: ensure apply writes correct files and doesnt mangle newlines
Enhancements
- Add “stage to git” (interactive `git add -p`) integration with safe-mode prompts.
---
## 5) Guided “Task Wizard” (`/new`)
-`/new <goal>` seeds a checklist into Tasks (`Ctrl+T`) (`bin/opencode-ink.mjs`)
- 🟡 Manual QA: tasks persist per-project and render correctly in overlay
Enhancements
- Add “run next step” action that triggers `/search`, `/open`, test runs, etc.
---
## 6) Quality Rails (Safe Mode, Verify Step, Doctor)
- ✅ Safe mode (`/safe on|off`) for destructive command blocking (`bin/opencode-ink.mjs`)
-`/doctor` diagnostics for terminal + tools + preview server state (`bin/opencode-ink.mjs`)
- ✅ Automation plans auto-append lightweight verify steps for browser flows (`bin/opencode-ink.mjs`)
Enhancements
- Add “safe-mode confirmations” UI in preview plan (show WHY a step is risky).
---
## 7) Chat-to-App + Instant Preview + Deploy
- ✅ Chat-to-App scaffold writes vanilla app to `web/apps/<name>` (`bin/opencode-ink.mjs`)
- ✅ Preview server start/stop + browser open (`/preview`) (`bin/opencode-ink.mjs`)
- ✅ One-click deploy:
- `/deploy` deploys current project to Vercel
- `/deployapp <name>` deploys a generated app dir (`bin/opencode-ink.mjs`)
- 🟡 Manual QA: verify `server.js` exists and preview server serves expected routes
Enhancements
- Add per-app “deploy pipeline” UI card with last deploy URL + logs.
---
## 8) IQ Exchange (Computer Use / Browser Use / Server Management)
- ✅ Request detection + routing (`lib/iq-exchange.mjs`, `bin/opencode-ink.mjs`)
- ✅ Empty-plan/stuck-state guards (no “0 steps” preview; clears preview state on translation failure)
- ✅ Browser routing improvements to prefer Playwright (reduces Edge first-run popups breaking flows)
- ✅ Playwright popup dismissal best-effort (`bin/playwright-bridge.js`)
- ✅ “Vision-like” auto-observations for self-heal (DOM content + OCR + window lists) on failures (`bin/opencode-ink.mjs`)
- 🟡 Manual QA: Edge popups + Windows Start menu automation on your machine
Enhancements
- Add a “preflight” step library the translator can reference (focus checks, window activation, retries).
- Add an internal “failure classifier” (timeouts vs focus vs popup vs permission) to drive more reliable retries.
---
## 9) Nano Dev (Self-modifying TUI on a fork/worktree)
-`/nanodev <goal>` creates a git worktree fork under `.opencode/nano-dev/*` (`bin/opencode-ink.mjs`)
- ✅ Auto-verify after writes land in fork (runs `node --check` + `npm test`)
- ✅ Fix for verify init crash by moving verifier out of component scope (`bin/opencode-ink.mjs`)
- 🟡 Manual QA: requires git repo state suitable for worktrees
Enhancements
- Add `/nanodev merge` flow (safe-mode gated, with “diff preview” first).
---
## 10) Goose “Windows App” Launch (Lovable/Vibe Coding Companion)
Goal: launch Goose from the TUI while using the **same Qwen auth** as OpenQode.
- ✅ Local OpenAI-compatible proxy backed by Qwen CLI (`bin/qwen-openai-proxy.mjs`)
- Supports `/v1/chat/completions` (stream/non-stream) and `/v1/models`
- ✅ Goose launcher that:
- starts proxy if needed
- launches `goose web` using the proxy (`bin/goose-launch.mjs`)
- ✅ TUI command: `/goose` (`bin/opencode-ink.mjs`)
- 🟡 Manual QA: requires Goose + Rust toolchain (or `goose` binary) installed, and a browser for the web UI
Enhancements
- Add “desktop/electron” mode bootstrap (large install; best behind explicit `/goose setup-desktop`).
- Add context handoff: selected Explorer files → push into Goose session via a preloaded system prompt.
---
## Quick Manual QA Script (Recommended)
1. Launch TUI and verify Explorer: `Ctrl+E`, `Ctrl+R`, `Ctrl+H`.
2. Verify `/open package.json`, `/search TODO`.
3. Run `/doctor` and confirm tools show expected states.
4. Run `/preview on 15044` and confirm browser opens.
5. Trigger a browser automation task and confirm it routes to Playwright and can dismiss popups.
6. Run `/goose` (requires Goose prerequisites).