Initial Release: OpenQode Public Alpha v1.3
This commit is contained in:
45
implementation_plan_opencode_features.md
Normal file
45
implementation_plan_opencode_features.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# OpenCode Features Implementation
|
||||
|
||||
## Features to Implement (Priority Order)
|
||||
|
||||
### 1. Permission Dialog (High Priority)
|
||||
**Goal**: Ask user approval before file writes/commands
|
||||
- Add `pendingAction` state: `{ type: 'write'|'run', payload }`
|
||||
- Show confirmation overlay: "Allow AI to write file.js? [Y/n]"
|
||||
- Keybinds: `y` approve, `n` deny, `a` approve all
|
||||
|
||||
### 2. Session Management (High Priority)
|
||||
**Goal**: Save/load conversation sessions
|
||||
- Create `.opencode/sessions/` directory
|
||||
- `/save [name]` - Save current session
|
||||
- `/load [name]` - Load session
|
||||
- `/sessions` - List saved sessions
|
||||
- Store as JSON: `{ messages, agent, project, timestamp }`
|
||||
|
||||
### 3. File Change Tracking (High Priority)
|
||||
**Goal**: Track files modified during session
|
||||
- Add `modifiedFiles` state: `Set<filepath>`
|
||||
- Update on every `writeFile()` call
|
||||
- Show in sidebar: "📝 Modified (3)"
|
||||
- `/changes` - Show full diff summary
|
||||
|
||||
### 4. Custom Commands (Medium Priority)
|
||||
**Goal**: User-defined command templates
|
||||
- Create `.opencode/commands/` directory
|
||||
- Format: `command-name.md` with `{{arg}}` placeholders
|
||||
- `/cmd <name> [args]` - Execute custom command
|
||||
|
||||
### 5. External Editor (Low Priority)
|
||||
**Goal**: Open $EDITOR for long messages
|
||||
- `/edit` - Opens temp file in $EDITOR
|
||||
- On save, content becomes input
|
||||
- Requires `child_process.spawn`
|
||||
|
||||
---
|
||||
|
||||
## Implementation Order
|
||||
1. Permission Dialog (most impactful for safety)
|
||||
2. Session Management (user-requested persistence)
|
||||
3. File Change Tracking (visibility)
|
||||
4. Custom Commands (power users)
|
||||
5. External Editor (nice-to-have)
|
||||
Reference in New Issue
Block a user