Navi Code TUI: fix Phase 4 review critical/medium issues
- PermissionEngine: always-deny returns None via check(); is_always_deny() exposed for explicit rejection; default rules for code_exec/ssh_exec/shell; extract_target() made public.
- ShellRunner: set ShellResult.truncated when output is actually truncated.
- File refs: restrict paths to base_dir/home, block sensitive files/dirs, skip binary, support glob brackets, shared guess_language.
- Permission dialog: deny now renders synthetic tool_call before stopping; shell ! commands require permission with always-allow/deny persistence.
- Tests: add permission tests, fix file_refs/shell tests, add __init__.py to fix pytest name collisions, update websocket integration for AgentSessionOrchestrator.

504 passed, 1 skipped. Ruff clean.

Signed-off-by: Eugene Sukhodolskiy <eugene.sukhodolskiy@gmail.com>
1 parent 3012839 commit c4a2b97c4e339a60ddd2f4d087c402e883a4cec2
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 1 day ago
Showing 19 changed files
View
clients/terminal/tui/events.py
View
clients/terminal/tui/file_refs.py
View
clients/terminal/tui/permissions.py
View
clients/terminal/tui/renderers/artifact.py
View
clients/terminal/tui/renderers/language.py 0 → 100644
View
clients/terminal/tui/screens/permission_dialog.py
View
clients/terminal/tui/shell_runner.py
View
clients/terminal/tui/tui_app.py
View
tests/__init__.py 0 → 100644
View
tests/clients/__init__.py 0 → 100644
View
tests/clients/test_file_refs.py
View
tests/clients/test_permission_dialog.py
View
tests/clients/test_permissions.py 0 → 100644
View
tests/clients/test_shell_runner.py
View
tests/integration/__init__.py 0 → 100644
View
tests/integration/conftest.py
View
tests/integration/test_websocket.py
View
tests/unit/__init__.py 0 → 100644
View
tests/unit/api/__init__.py 0 → 100644