Skip to content

feat: add avatar support, fix thinking animation auth, restore GatewayTabs#288

Open
356252190-star wants to merge 2 commits intoEKKOLearnAI:mainfrom
356252190-star:feat/avatar-custom-animation-gatewaytabs
Open

feat: add avatar support, fix thinking animation auth, restore GatewayTabs#288
356252190-star wants to merge 2 commits intoEKKOLearnAI:mainfrom
356252190-star:feat/avatar-custom-animation-gatewaytabs

Conversation

@356252190-star
Copy link
Copy Markdown
Contributor

Summary

Add custom avatar support for user and AI assistant, fix thinking animation upload auth, and restore GatewayTabs profile selector.

Changes

New files

  • ImageCropDialog.vue — Square crop dialog with zoom/pan slider
  • GatewayTabs.vue — Tab-style profile selector (2 per row grid)
  • controllers/avatar.ts — Avatar upload/serve/delete/status API
  • routes/avatar.ts — Public GET + protected POST/DELETE routes

Modified files

  • ChatInput.vue — User avatar upload via click on user icon
  • MessageItem.vue — AI avatar upload via click on assistant icon, round avatar CSS
  • MessageList.vue — Load custom thinking animation on mount, replace default video
  • ThinkingAnimationPicker.vue — Add auth headers to upload/reset (fix 401)
  • AppSidebar.vue — Replace ProfileSelector with GatewayTabs
  • chat.ts store — Avatar state management + upload helpers
  • ChatView.vue — Load avatars on mount
  • routes/index.ts — Mount avatar routes
  • gateway-manager.ts — Move remote host check before resolvePort
  • i18n: avatar + gatewayTabs keys in all 8 languages

Features

  • Animated avatars (GIF/APNG) skip crop dialog, upload directly
  • 5MB max file size, PNG/JPG/GIF/WebP
  • Profile-namespaced storage
  • Avatars persist across sessions and page reloads
  • Path traversal protection

Security

  • GET routes are public (needed for <img src>)
  • POST (upload) and DELETE routes require authentication

* feat: add thinking-animation controller

* feat: add thinking-animation routes

* feat: mount thinking-animation routes

* feat: add ThinkingAnimationPicker component

* feat: integrate ThinkingAnimationPicker into DisplaySettings

* feat: add thinking animation i18n keys (en)

* feat: add thinking animation i18n keys (zh)

* feat: add thinking animation i18n keys (ja)

* feat: add thinking animation i18n keys (ko)

* feat: add thinking animation i18n keys (de)

* feat: add thinking animation i18n keys (fr)

* feat: add thinking animation i18n keys (es)

* feat: add thinking animation i18n keys (pt)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant