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>
1 parent c8dffaa commit 1f6f538b4beaf9cd6d60be96eed4e10f714ec70a
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored on 13 May
Showing 15 changed files
View
navi/api/websocket.py
View
navi/core/agent.py
View
navi/llm/base.py
View
navi/tools/list_tools.py
View
webclient/dist/assets/index-BAYNIt9f.css 100644 → 0
View
webclient/dist/assets/index-BlKt9PLH.css 0 → 100644
View
webclient/dist/assets/index-CY8UuMNT.js 0 → 100644
Not supported
View
webclient/dist/assets/index-Y6vIV2p8.js 100644 → 0
Not supported
View
webclient/dist/index.html
View
webclient/src/components/artifacts/ArtifactsPanel.vue
View
webclient/src/components/chat/ChatHeader.vue
View
webclient/src/components/ui/ProfileBadge.vue
View
webclient/src/composables/useFileUpload.js
View
webclient/src/stores/chat.js
View
webclient/src/styles/app.scss