|
Add persistent multi-session terminal tool with background support
- New TerminalManager module: named subprocess sessions per Navi session, background readers, event-sink streaming, idle auto-cleanup - Refactor terminal tool to multi-action: run, open, close, list, status, send_input - Add TerminalOutputDelta and TerminalClosed events for streaming - Wire TerminalManager into AppContainer, orchestrator, and registry - Persist session_metadata in Session model and pg_session_store - Close all session terminals on session delete - Webclient: handle terminal_output/terminal_closed WS events, display live terminal output in tool cards - Update unit tests for new terminal actions Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
|---|
|
|
| navi/api/routes/sessions.py |
|---|
| navi/core/container.py |
|---|
| navi/core/events.py |
|---|
| navi/core/orchestrator.py |
|---|
| navi/core/pg_session_store.py |
|---|
| navi/core/registry.py |
|---|
| navi/core/session.py |
|---|
| navi/tools/terminal.py |
|---|
| navi/tools/terminal_manager.py 0 → 100644 |
|---|
| tests/unit/tools/test_terminal.py |
|---|
| webclient/dist/assets/index-Bi8yRzwg.js 0 → 100644 |
|---|
|
Not supported
|
| webclient/dist/assets/index-DzKfGOq8.js 100644 → 0 |
|---|
|
Not supported
|
| webclient/dist/index.html |
|---|
| webclient/src/components/messages/ToolCard.vue |
|---|
| webclient/src/composables/useWebSocket.js |
|---|
| webclient/src/stores/chat.js |
|---|