Spaces: - Perplexity-like UI with collaboration features - Space detail page with threads/members tabs - Invite members via email, role management - New space creation with icon/color picker Model selector: - Added Ollama client for free Auto model - GooSeek 1.0 via Timeweb (tariff-based) - Frontend model dropdown in ChatInput Auth & Infrastructure: - Fixed auth-svc missing from Dockerfile.all - Removed duplicate ratelimit_tiered.go (conflict) - Added Redis to api-gateway for rate limiting - Fixed Next.js proxy for local development UI improvements: - Redesigned login button in sidebar (gradient) - Settings page with tabs (account/billing/prefs) - Auth pages visual refresh Made-with: Cursor
142 lines
6.1 KiB
Markdown
142 lines
6.1 KiB
Markdown
# Недоделки — начать отсюда
|
||
|
||
## Последнее исправление (28.02.2026)
|
||
|
||
### Fix: auth-svc не собирался в Docker
|
||
- Добавлена строка сборки `auth-svc` в `Dockerfile.all`
|
||
- Удалён дубликат `ratelimit_tiered.go` (конфликт типов с Redis-версией)
|
||
- Добавлен REDIS_URL в api-gateway для rate limiting
|
||
- Пересоздан тестовый пользователь через API
|
||
|
||
---
|
||
|
||
## Последнее изменение (28.02.2026)
|
||
|
||
**Обновлён дизайн страниц авторизации:**
|
||
|
||
### Сделано (полностью)
|
||
|
||
#### Страницы авторизации в стиле сайта
|
||
- `/login` — переделана с градиентным фоном, фирменным логотипом, анимациями
|
||
- `/register` — аналогично, единый стиль с login
|
||
- `/forgot-password` — сброс пароля в новом дизайне
|
||
- `/reset-password` — установка нового пароля в новом дизайне
|
||
|
||
Изменения:
|
||
- `bg-gradient-main` вместо простого `bg-base`
|
||
- Фирменный логотип GooSeek (font-black italic + иконка Sparkles)
|
||
- Gradient blur декорации на фоне
|
||
- Карточка с градиентной рамкой и backdrop-blur
|
||
- Анимации появления (framer-motion)
|
||
- Footer с копирайтом
|
||
|
||
---
|
||
|
||
**Ранее: Spaces как у Perplexity + коллаборация:**
|
||
|
||
### Сделано (полностью)
|
||
|
||
#### 1. Backend - Space Members
|
||
- Добавлена таблица `space_members` (space_id, user_id, role)
|
||
- Добавлена таблица `space_invites` (приглашения по токену)
|
||
- Методы: `GetMembers`, `AddMember`, `RemoveMember`, `IsMember`
|
||
- Методы: `CreateInvite`, `GetInviteByToken`, `DeleteInvite`
|
||
- Обновлён `GetByMemberID` - возвращает пространства где пользователь участник
|
||
|
||
#### 2. Frontend - Types & API
|
||
- Добавлены типы: `SpaceMember`, `SpaceInvite`
|
||
- Обновлён тип `Space` с полями `members`, `memberCount`, `userId`
|
||
- API методы: `fetchSpaceMembers`, `inviteToSpace`, `removeSpaceMember`, `acceptSpaceInvite`, `fetchSpaceThreads`
|
||
|
||
#### 3. Страница /spaces - Новый дизайн
|
||
- Карточки пространств с градиентным фоном
|
||
- Показывает: название, описание, кол-во участников, кол-во тредов
|
||
- Аватары участников на карточке
|
||
- Поиск по пространствам
|
||
- Требует авторизации
|
||
|
||
#### 4. Страница /spaces/[id] - Детали пространства
|
||
- Заголовок с названием и описанием
|
||
- Табы: Треды / Участники
|
||
- Список тредов пространства с датами
|
||
- Список участников с ролями (owner/admin/member)
|
||
- Кнопка "Начать новый тред"
|
||
- Модалка приглашения участников по email
|
||
- Удаление участников (для admin/owner)
|
||
|
||
#### 5. Страница /spaces/new - Создание
|
||
- Превью карточки в реальном времени
|
||
- Выбор иконки (эмодзи)
|
||
- Выбор цвета (6 вариантов)
|
||
- Переключатель приватности
|
||
- AI инструкции для пространства
|
||
|
||
#### 6. Ранее добавлено
|
||
- Селектор модели (Auto/GooSeek 1.0)
|
||
- Ollama клиент для бесплатной модели
|
||
- Обновлённая кнопка "Войти" в сайдбаре
|
||
|
||
### Файлы изменены/созданы
|
||
|
||
```
|
||
backend/internal/db/
|
||
└── space_repo.go (UPDATED - members, invites)
|
||
|
||
backend/webui/src/
|
||
├── lib/
|
||
│ ├── types.ts (UPDATED - SpaceMember, SpaceInvite)
|
||
│ └── api.ts (UPDATED - space members API)
|
||
├── app/(main)/spaces/
|
||
│ ├── page.tsx (REWRITTEN - новый дизайн)
|
||
│ ├── new/page.tsx (REWRITTEN - с превью)
|
||
│ └── [id]/page.tsx (NEW - детали пространства)
|
||
└── components/
|
||
├── Sidebar.tsx (UPDATED - кнопка войти)
|
||
└── ChatInput.tsx (UPDATED - селектор модели)
|
||
|
||
backend/internal/llm/
|
||
├── ollama.go (NEW)
|
||
└── client.go (UPDATED)
|
||
|
||
backend/pkg/config/config.go (UPDATED - Ollama config)
|
||
backend/cmd/agent-svc/main.go (UPDATED - Ollama support)
|
||
```
|
||
|
||
## Осталось сделать
|
||
|
||
### Высокий приоритет:
|
||
1. **Backend API endpoints** — добавить API для:
|
||
- `GET /api/v1/spaces/:id/members`
|
||
- `POST /api/v1/spaces/:id/invite`
|
||
- `DELETE /api/v1/spaces/:id/members/:userId`
|
||
- `POST /api/v1/spaces/invite/:token/accept`
|
||
- `GET /api/v1/spaces/:id/threads`
|
||
|
||
2. **Email отправка** — отправлять email с приглашением
|
||
|
||
3. **Ollama в docker-compose** — добавить сервис ollama
|
||
|
||
### Средний приоритет:
|
||
4. **OAuth провайдеры** — Google, GitHub, Yandex
|
||
5. **Подтверждение email** — отправка письма при регистрации
|
||
6. **Real-time обновления** — WebSocket для тредов в пространстве
|
||
7. **Уведомления** — когда кто-то добавляет сообщение в тред
|
||
|
||
### Низкий приоритет:
|
||
8. **Интеграция оплаты** — ЮKassa для пополнения баланса
|
||
9. **2FA** — TOTP аутентификация
|
||
10. **Экспорт тредов** — PDF/Markdown
|
||
|
||
## Контекст
|
||
|
||
### Модели:
|
||
| ID | Provider | Тариф |
|
||
|----|----------|-------|
|
||
| auto | ollama | Бесплатно |
|
||
| gooseek-1.0 | timeweb | По тарифу |
|
||
|
||
### Роли в пространстве:
|
||
- `owner` — создатель, полные права
|
||
- `admin` — может приглашать/удалять участников
|
||
- `member` — может создавать треды
|