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>
1 parent e4d3eeb commit 788da271620fb23b13db3b6fa6dc8058ba64c2e2
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored on 26 May
Showing 16 changed files
View
navi/api/routes/sessions.py
View
navi/core/container.py
View
navi/core/events.py
View
navi/core/orchestrator.py
View
navi/core/pg_session_store.py
View
navi/core/registry.py
View
navi/core/session.py
View
navi/tools/terminal.py
View
navi/tools/terminal_manager.py 0 → 100644
View
tests/unit/tools/test_terminal.py
View
webclient/dist/assets/index-Bi8yRzwg.js 0 → 100644
Not supported
View
webclient/dist/assets/index-DzKfGOq8.js 100644 → 0
Not supported
View
webclient/dist/index.html
View
webclient/src/components/messages/ToolCard.vue
View
webclient/src/composables/useWebSocket.js
View
webclient/src/stores/chat.js