Release v1.01 Enhanced: Vi Control, TUI Gen5, Core Stability
This commit is contained in:
35
Documentation/implementation_plan_final_features.md
Normal file
35
Documentation/implementation_plan_final_features.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Implementation Plan: Agent Visuals & Responsive Layout
|
||||
|
||||
## 1. In-Chat Agent Visuals
|
||||
**Goal**: Make agent persona switches (e.g., `[AGENT: Security]`) visually distinct in the chat history.
|
||||
|
||||
- **Modify `flattenMessagesToBlocks` (`bin/opencode-ink.mjs`)**:
|
||||
- Regex match `\[AGENT:\s*([^\]]+)\]`.
|
||||
- Create a new block type `{ type: 'agent_tag', name: 'Security' }`.
|
||||
- **Add Test Case (`tests/tui-components.test.mjs`)**:
|
||||
- Verify `flattenMessagesToBlocks` correctly splits `[AGENT: Name]` strings into blocks.
|
||||
- Run `node --experimental-vm-modules node_modules/jest/bin/jest.js tests/` to verify.
|
||||
- **Modify `ViewportMessage` (`bin/opencode-ink.mjs`)**:
|
||||
- Handle `type === 'agent_tag'`.
|
||||
- Render:
|
||||
```javascript
|
||||
h(Box, { borderStyle: 'round', borderColor: 'magenta', paddingX: 1, marginTop: 1 },
|
||||
h(Text, { color: 'magenta', bold: true }, '🤖 Security Agent')
|
||||
)
|
||||
```
|
||||
|
||||
## 2. Hardened Responsive Layout
|
||||
**Goal**: Prevent text wrapping/overflow when resizing the terminal.
|
||||
|
||||
- **Audit `markdown-ink-esm.mjs`**: Ensure it strictly respects the `width` prop.
|
||||
- **Audit `ViewportMessage`**:
|
||||
- Ensure `width` prop passed to `<Markdown>` accounts for padding/gutters (e.g., `width={width - 4}`).
|
||||
- Check `CodeCard` width constraints.
|
||||
- **Verify `App` Layout**:
|
||||
- `calculateViewport` should already be dynamic.
|
||||
- Ensure `useTerminalSize` is updating correctly.
|
||||
|
||||
## Verification
|
||||
- Run chat with "Using Security Agent...".
|
||||
- Verify visible badge.
|
||||
- Resize window narrower -> Text should wrap, not cut off.
|
||||
Reference in New Issue
Block a user