|
Persist uploaded files in messages, live file tree updates, and UI polish
Backend: - Add `files` field to `Message` model so uploaded file metadata survives page refresh - Pass `files` through websocket handler → `agent.run_stream` / `agent.run` - `list_tools`: make `profile_id` required; return error instead of all-tools fallback Webclient: - Call `fetchFiles()` after successful file upload for immediate Files tab update - Live refresh file tree on filesystem (write/edit/append/mkdir/rm/cp/mv), terminal, and code_exec tool calls - Add manual refresh button (desktop) and pull-to-refresh (mobile) to Files tab - Fix live link updates: move regex creation inside per-message loop to avoid lastIndex state leak - Restore full profile name text next to avatar in ChatHeader; hide avatar in header - Fix mobile ArtifactsPanel: collapse tab text labels so close button fits with 3 tabs Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
|---|
|
|
| navi/api/websocket.py |
|---|
| navi/core/agent.py |
|---|
| navi/llm/base.py |
|---|
| navi/tools/list_tools.py |
|---|
| webclient/dist/assets/index-BAYNIt9f.css 100644 → 0 |
|---|
| webclient/dist/assets/index-BlKt9PLH.css 0 → 100644 |
|---|
| webclient/dist/assets/index-CY8UuMNT.js 0 → 100644 |
|---|
|
Not supported
|
| webclient/dist/assets/index-Y6vIV2p8.js 100644 → 0 |
|---|
|
Not supported
|
| webclient/dist/index.html |
|---|
| webclient/src/components/artifacts/ArtifactsPanel.vue |
|---|
| webclient/src/components/chat/ChatHeader.vue |
|---|
| webclient/src/components/ui/ProfileBadge.vue |
|---|
| webclient/src/composables/useFileUpload.js |
|---|
| webclient/src/stores/chat.js |
|---|
| webclient/src/styles/app.scss |
|---|