6.5 KiB
6.5 KiB
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|offto 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+Etoggles 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+Eshould 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)TABtoggles diff/hunksTtoggles hunk,Aall,XnoneRapply + reopen,Vapply + run tests
- 🟡 Manual QA: ensure apply writes correct files and doesn’t 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) - ✅
/doctordiagnostics 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:
/deploydeploys current project to Vercel/deployapp <name>deploys a generated app dir (bin/opencode-ink.mjs)
- 🟡 Manual QA: verify
server.jsexists 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 mergeflow (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
- Supports
- ✅ Goose launcher that:
- starts proxy if needed
- launches
goose webusing the proxy (bin/goose-launch.mjs)
- ✅ TUI command:
/goose(bin/opencode-ink.mjs) - 🟡 Manual QA: requires Goose + Rust toolchain (or
goosebinary) 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)
- Launch TUI and verify Explorer:
Ctrl+E,Ctrl+R,Ctrl+H. - Verify
/open package.json,/search TODO. - Run
/doctorand confirm tools show expected states. - Run
/preview on 15044and confirm browser opens. - Trigger a browser automation task and confirm it routes to Playwright and can dismiss popups.
- Run
/goose(requires Goose prerequisites).