|
Fix 19 issues found in full codebase review
Backend: - Stop session auth bypass: require auth for owned sessions, reject anonymous with 401 - upload_file: stream chunks directly to disk instead of buffering in RAM - MCP config: validate name against path traversal regex - auth deps: cleanup stale refresh locks periodically - auth routes: expire mobile auth states after 10 min to prevent unbounded growth - compressor: meta-summarize existing summaries before compression; preserve assistant content when tool_calls present; rewrite hard_truncate to keep whole turns - orchestrator: configurable WS replay buffer size; async cleanup/remove_websocket/clear_busy; fix run_recall ContextVar order to avoid deadlock on _build_agent failure; await cleanup in finally - agent: persist image_msg in session.messages; remove archived messages from session after archive; remove duplicate StreamStopped yield on tool stop - websocket: try/except around create_task with cleanup on failure; await remove_websocket Frontend: - App.vue: hashchange listener lifecycle in onMounted/onUnmounted - MessageList.vue: passive scroll, flash timeout cleanup, archive scroll snapshot - InputBar.vue: 300 ms debounce on draft save to localStorage - SessionList.vue: remove :key from DynamicScroller to avoid remount jitter Tests: 422 passed, 1 skipped Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
|---|
|
|
| navi/api/routes/admin.py |
|---|
| navi/api/routes/auth.py |
|---|
| navi/api/routes/sessions.py |
|---|
| navi/api/websocket.py |
|---|
| navi/auth/deps.py |
|---|
| navi/core/agent.py |
|---|
| navi/core/compressor.py |
|---|
| navi/core/orchestrator.py |
|---|
| tests/unit/api/test_websocket.py |
|---|
| webclient/dist/assets/index-CPDLlpf3.css 0 → 100644 |
|---|
| webclient/dist/assets/index-CbPtHzZw.js 0 → 100644 |
|---|
|
Not supported
|
| webclient/dist/assets/index-D6rmlsNR.css 100644 → 0 |
|---|
| webclient/dist/assets/index-JFBpqR6w.js 100644 → 0 |
|---|
|
Not supported
|
| webclient/dist/index.html |
|---|
| webclient/src/App.vue |
|---|
| webclient/src/components/chat/InputBar.vue |
|---|
| webclient/src/components/chat/MessageList.vue |
|---|
| webclient/src/components/sidebar/SessionList.vue |
|---|