Files
gooseek/CONTINUE.md
home e6b9cfc60a feat: spaces redesign, model selector, auth fixes
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
2026-02-28 02:30:05 +03:00

142 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Недоделки — начать отсюда
## Последнее исправление (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` — может создавать треды