Release v1.01 Enhanced: Vi Control, TUI Gen5, Core Stability
This commit is contained in:
65
Documentation/implementation_plan_nextgen.md
Normal file
65
Documentation/implementation_plan_nextgen.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# Next-Gen TUI Implementation Plan
|
||||
|
||||
## Goal
|
||||
Transform the TUI into a "Tactile" IDE by adding interactive file exploration (Context Matrix) and safe code application (Rich Diff Review).
|
||||
|
||||
## User Review Required
|
||||
> [!IMPORTANT]
|
||||
> **New Dependencies**: We need to add `diff` package for the diff view.
|
||||
> **Navigation Change**: `Tab` key will now toggle focus between Chat Input and Sidebar. This changes existing behavior (previously Tab toggled Sidebar visibility in narrow mode).
|
||||
|
||||
## Proposed Changes
|
||||
|
||||
### 1. New Component: `FileTree.mjs`
|
||||
- **Location**: `bin/ui/components/FileTree.mjs`
|
||||
- **Functionality**:
|
||||
- Recursive directory walker.
|
||||
- State: `expandedFolders` (Set), `selectedFiles` (Set).
|
||||
- UI:
|
||||
- `▼ folder/`
|
||||
- ` [x] file.js`
|
||||
- Interaction:
|
||||
- `Up/Down`: Navigate.
|
||||
- `Right/Enter`: Expand folder.
|
||||
- `Left`: Collapse folder.
|
||||
- `Space`: Toggle selection (Add/Remove from Context).
|
||||
|
||||
### 2. Updated Sidebar
|
||||
- **File**: `bin/opencode-ink.mjs`
|
||||
- **Change**: Render `FileTree` inside Sidebar when focused.
|
||||
- **State**: Track `sidebarFocus` boolean.
|
||||
|
||||
### 3. New Component: `DiffView.mjs`
|
||||
- **Location**: `bin/ui/components/DiffView.mjs`
|
||||
- **Functionality**:
|
||||
- Input: `originalContent`, `newContent`.
|
||||
- Output: Visual diff (Green lines for additions, Red for deletions).
|
||||
- Interactive Footer: `[ Apply ] [ Reject ]`.
|
||||
|
||||
### 4. Integration Logic
|
||||
- **File**: `bin/opencode-ink.mjs`
|
||||
- **Change**:
|
||||
- Intercept `/write` command or "CREATE:" blocks.
|
||||
- Instead of writing immediately, store in `pendingDiff`.
|
||||
- Render `DiffView` overlay.
|
||||
- Wait for user `Apply` signal.
|
||||
|
||||
## Verification Plan
|
||||
|
||||
### Manual Verification
|
||||
1. **Navigation**:
|
||||
- Run TUI. Press `Tab` to focus Sidebar.
|
||||
- Use Arrow keys. Ensure cursor moves.
|
||||
- Expand `bin/`. See files.
|
||||
|
||||
2. **Context Selection**:
|
||||
- Navigate to `package.json`. Press `Space`.
|
||||
- Verify visually (Green checkmark).
|
||||
- Send message "What is in the selected file?". Verify AI sees it.
|
||||
|
||||
3. **Diff Review**:
|
||||
- Ask AI "Refactor the file header".
|
||||
- AI outputs code.
|
||||
- **Expected**: Diff View appears showing changes.
|
||||
- Select `Apply`.
|
||||
- Verify file is written.
|
||||
Reference in New Issue
Block a user