3c40bbde2b
0.9.29] - 2025-10-08
...
### 🎯 Search Quality Upgrade: ColBERT + Native MUVERA + FAISS
- **🚀 +175% Recall**: Интегрирован ColBERT через pylate с НАТИВНЫМ MUVERA multi-vector retrieval
- **🎯 TRUE MaxSim**: Настоящий token-level MaxSim scoring, а не упрощенный max pooling
- **🗜️ Native Multi-Vector FDE**: Каждый токен encode_fde отдельно → список FDE векторов
- **🚀 FAISS Acceleration**: Двухэтапный поиск O(log N) для масштабирования >10K документов
- **🎯 Dual Architecture**: Поддержка BiEncoder (быстрый) и ColBERT (качественный) через `SEARCH_MODEL_TYPE`
- **⚡ Faster Indexing**: ColBERT индексация ~12s vs BiEncoder ~26s на бенчмарке
- **📊 Better Results**: Recall@10 улучшен с 0.16 до 0.44 (+175%)
### 🛠️ Technical Changes
- **requirements.txt**: Добавлены `pylate>=1.0.0` и `faiss-cpu>=1.7.4`
- **services/search.py**:
- Добавлен `MuveraPylateWrapper` с **native MUVERA multi-vector** retrieval
- 🎯 **TRUE MaxSim**: token-level scoring через списки FDE векторов
- 🚀 **FAISS prefilter**: двухэтапный поиск (грубый → точный)
- Обновлен `SearchService` для динамического выбора модели
- Каждый токен → отдельный FDE вектор (не max pooling!)
- **settings.py**:
- `SEARCH_MODEL_TYPE` - выбор модели (default: "colbert")
- `SEARCH_USE_FAISS` - включить FAISS (default: true)
- `SEARCH_FAISS_CANDIDATES` - количество кандидатов (default: 1000)
### 📚 Documentation
- **docs/search-system.md**: Полностью обновлена документация
- Сравнение BiEncoder vs ColBERT с бенчмарками
- 🚀 **Секция про FAISS**: когда включать, архитектура, производительность
- Руководство по выбору модели для разных сценариев
- 🎯 **Детальное описание native MUVERA multi-vector**: каждый токен → FDE
- TRUE MaxSim scoring алгоритм с примерами кода
- Двухэтапный поиск: FAISS prefilter → MaxSim rerank
- 🤖 Предупреждение о проблеме дистилляционных моделей (pylate#142)
### ⚙️ Configuration
```bash
# Включить ColBERT (рекомендуется для production)
SEARCH_MODEL_TYPE=colbert
# 🚀 FAISS acceleration (обязательно для >10K документов)
SEARCH_USE_FAISS=true # default: true
SEARCH_FAISS_CANDIDATES=1000 # default: 1000
# Fallback к BiEncoder (быстрее, но -62% recall)
SEARCH_MODEL_TYPE=biencoder
```
### 🎯 Impact
- ✅ **Качество поиска**: +175% recall на бенчмарке NanoFiQA2018
- ✅ **TRUE ColBERT**: Native multi-vector без упрощений (max pooling)
- ✅ **MUVERA правильно**: Используется по назначению для multi-vector retrieval
- ✅ **Масштабируемость**: FAISS prefilter → O(log N) вместо O(N)
- ✅ **Готовность к росту**: Архитектура выдержит >50K документов
- ✅ **Индексация**: Быстрее на ~54% (12s vs 26s)
- ⚠️ **Latency**: С FAISS остается приемлемой даже на больших индексах
- ✅ **Backward Compatible**: BiEncoder + отключение FAISS через env
### 🔗 References
- GitHub PR: https://github.com/sionic-ai/muvera-py/pull/1
- pylate issue: https://github.com/lightonai/pylate/issues/142
- Model: `answerdotai/answerai-colbert-small-v1`
2025-10-09 01:15:19 +03:00
1e9a6a07c1
docs
2025-09-29 17:57:45 +03:00
9b284852e9
oath2.0
Deploy on push / deploy (push) Successful in 2m57s
2025-09-29 16:33:49 +03:00
504152981b
admin-auth
Deploy on push / deploy (push) Successful in 3m3s
2025-09-29 16:08:58 +03:00
f2398d3592
protected-route-fix
Deploy on push / deploy (push) Successful in 3m2s
2025-09-29 15:54:22 +03:00
8e944e399a
oauth-fix
Deploy on push / deploy (push) Successful in 3m7s
2025-09-29 13:59:49 +03:00
f10c29c9ca
logfix
Deploy on push / deploy (push) Successful in 2m51s
2025-09-29 12:51:04 +03:00
b4b41fde08
oauth-fixing
Deploy on push / deploy (push) Successful in 2m47s
2025-09-29 08:53:39 +03:00
327135c09b
cleaner-log4
Deploy on push / deploy (push) Successful in 4m29s
2025-09-29 08:15:15 +03:00
a0ab20f276
cleaner-log3
Deploy on push / deploy (push) Successful in 3m2s
2025-09-29 01:00:18 +03:00
d7e50c6e31
cleaner-log2
Deploy on push / deploy (push) Successful in 2m53s
2025-09-29 00:46:54 +03:00
d57e59f98b
cleaner-log
Deploy on push / deploy (push) Successful in 2m57s
2025-09-29 00:40:10 +03:00
6496bee531
fetch-profile
Deploy on push / deploy (push) Successful in 2m55s
2025-09-29 00:27:16 +03:00
147e227fa0
oauth-google
Deploy on push / deploy (push) Successful in 2m57s
2025-09-28 20:53:42 +03:00
c338bdc683
oauth-github
Deploy on push / deploy (push) Has been cancelled
2025-09-28 20:52:17 +03:00
44b69dc743
oauth-raw-req-control
Deploy on push / deploy (push) Successful in 2m55s
2025-09-28 20:45:08 +03:00
9b727ac9ca
oauth-fix
Deploy on push / deploy (push) Successful in 2m55s
2025-09-28 20:34:26 +03:00
d1e35dd8b1
oauth-redirect-uri-fix
Deploy on push / deploy (push) Successful in 2m54s
2025-09-28 20:04:52 +03:00
dcdb6c7b30
lesslogs2
Deploy on push / deploy (push) Successful in 2m54s
2025-09-28 17:36:04 +03:00
af0f3e3dea
lesslogs
Deploy on push / deploy (push) Successful in 2m55s
2025-09-28 17:26:23 +03:00
752e2dcbdc
[0.9.28] - 2025-09-28
...
Deploy on push / deploy (push) Successful in 2m46s
### 🍪 CRITICAL Cross-Origin Auth
- **🔧 SESSION_COOKIE_DOMAIN**: Добавлена поддержка поддоменов `.discours.io` для cross-origin cookies
- **🌐 Cross-Origin SSE**: Исправлена работа Server-Sent Events с httpOnly cookies между поддоменами
- **🔐 Unified Auth**: Унифицированы настройки cookies для OAuth, login, refresh, logout операций
- **📝 MyPy Compliance**: Исправлена типизация `SESSION_COOKIE_SAMESITE` с использованием `cast()`
### 🛠️ Technical Changes
- **settings.py**: Добавлен `SESSION_COOKIE_DOMAIN` с типобезопасной настройкой SameSite
- **auth/oauth.py**: Обновлены все `set_cookie` вызовы с `domain` параметром
- **auth/middleware.py**: Добавлена поддержка `SESSION_COOKIE_DOMAIN` в logout операциях
- **resolvers/auth.py**: Унифицированы cookie настройки в login/refresh/logout resolvers
- **auth/__init__.py**: Обновлены cookie операции с domain поддержкой
### 📚 Documentation
- **docs/auth/sse-httponly-integration.md**: Новая документация по SSE + httpOnly cookies интеграции
- **docs/auth/architecture.md**: Обновлены диаграммы для unified httpOnly cookie архитектуры
### 🎯 Impact
- ✅ **GraphQL API** (`v3.discours.io`) теперь работает с httpOnly cookies cross-origin
- ✅ **SSE сервер** (`connect.discours.io`) работает с теми же cookies
- ✅ **Безопасность**: httpOnly cookies защищают от XSS атак
- ✅ **UX**: Автоматическая аутентификация без управления токенами в JavaScript
2025-09-28 13:06:03 +03:00
fb98a1c6c8
[0.9.28] - OAuth/Auth with httpOnly cookie
Deploy on push / deploy (push) Successful in 4m32s
2025-09-28 12:22:37 +03:00
6451ba7de5
cookie-fix
Deploy on push / deploy (push) Successful in 2m53s
2025-09-27 20:37:19 +03:00
ee82a8f684
cookie-debug2
Deploy on push / deploy (push) Successful in 2m47s
2025-09-27 20:25:30 +03:00
c46b30a671
cookie-debug
Deploy on push / deploy (push) Successful in 2m48s
2025-09-27 20:17:00 +03:00
19e0092a83
cilog
Deploy on push / deploy (push) Successful in 4m20s
2025-09-27 13:59:40 +03:00
bd54d900aa
separate-codegen-fix2
Deploy on push / deploy (push) Failing after 32s
2025-09-27 13:56:10 +03:00
eab0ba7b42
separate-codegen-fix
Deploy on push / deploy (push) Failing after 30s
2025-09-27 13:53:00 +03:00
a2cca6f189
..
Deploy on push / deploy (push) Failing after 35s
2025-09-27 13:51:15 +03:00
2ac983d81e
nodiag
Deploy on push / deploy (push) Failing after 36s
2025-09-27 13:47:26 +03:00
e0e3e39d55
codegen-2addr
Deploy on push / deploy (push) Failing after 35s
2025-09-27 13:30:47 +03:00
853ed77083
ci-diagnostic
Deploy on push / deploy (push) Failing after 34s
2025-09-27 13:28:51 +03:00
03626ec20d
panelfix
Deploy on push / deploy (push) Failing after 31s
2025-09-27 13:20:56 +03:00
97cb0f999c
panel-install-fix
Deploy on push / deploy (push) Failing after 32s
2025-09-27 13:08:57 +03:00
0f6cc61286
mypyfix
Deploy on push / deploy (push) Failing after 36s
2025-09-27 12:31:53 +03:00
ee799120f6
fmt
Deploy on push / deploy (push) Failing after 34s
2025-09-26 21:13:23 +03:00
05c188df62
[0.9.29] - 2025-09-26
...
Deploy on push / deploy (push) Failing after 39s
### 🚨 CRITICAL Security Fixes
- **🔒 Open Redirect Protection**: Добавлена строгая валидация redirect_uri против whitelist доменов
- **🔒 Rate Limiting**: Защита OAuth endpoints от брутфорса (10 попыток за 5 минут на IP)
- **🔒 Logout Endpoint**: Критически важный endpoint для безопасного отзыва httpOnly cookies
- **🔒 Provider Validation**: Усиленная валидация OAuth провайдеров с логированием атак
- **🚨 GlitchTip Alerts**: Автоматические алерты безопасности в GlitchTip при критических событиях
### 🛡️ Security Modules
- **auth/oauth_security.py**: Модуль безопасности OAuth с валидацией и rate limiting + GlitchTip алерты
- **auth/logout.py**: Безопасный logout с поддержкой JSON API и browser redirect
- **tests/test_oauth_security.py**: Комплексные тесты безопасности (11 тестов)
- **tests/test_oauth_glitchtip_alerts.py**: Тесты интеграции с GlitchTip (8 тестов)
### 🔧 OAuth Improvements
- **Minimal Flow**: Упрощен до минимума - только httpOnly cookie, нет JWT в URL
- **Simple Logic**: Нет error параметра = успех, максимальная простота
- **DRY Refactoring**: Устранено дублирование кода в logout и валидации
### 🎯 OAuth Endpoints
- **Старт**: `v3.dscrs.site/oauth/{provider}` - с rate limiting и валидацией
- **Callback**: `v3.dscrs.site/oauth/{provider}/callback` - безопасный redirect_uri
- **Logout**: `v3.dscrs.site/auth/logout` - отзыв httpOnly cookies
- **Финализация**: `testing.discours.io/oauth?redirect_url=...` - минимальная схема
### 📊 Security Test Coverage
- ✅ Open redirect attack prevention
- ✅ Rate limiting protection
- ✅ Provider validation
- ✅ Safe fallback mechanisms
- ✅ Cookie security (httpOnly + Secure + SameSite)
- ✅ GlitchTip integration (8 тестов алертов)
### 📝 Documentation
- Создан `docs/oauth-minimal-flow.md` - полное описание минимального flow
- Обновлена документация OAuth в `docs/auth/oauth.md`
- Добавлены security best practices
2025-09-26 21:03:45 +03:00
ac0111cdb9
tests-upgrade
Deploy on push / deploy (push) Successful in 57m1s
2025-09-25 09:40:12 +03:00
1992434a13
npmfix
Deploy on push / deploy (push) Has been cancelled
2025-09-25 08:52:55 +03:00
34738ae611
[0.9.25] - 2025-01-25
...
Deploy on push / deploy (push) Failing after 24s
### Added
- 🔍 **OAuth Detailed Logging**: Добавлено пошаговое логирование OAuth callback для диагностики ошибок `auth_failed`
- 🧪 **OAuth Diagnostic Tools**: Создан `oauth_debug.py` для анализа OAuth callback параметров и диагностики проблем
- 📊 **OAuth Test Helper**: Добавлен `oauth_test_helper.py` для создания тестовых состояний OAuth в Redis
- 🔧 **OAuth Provider Detection**: Автоматическое определение OAuth провайдера по формату authorization code
### Fixed
- 🚨 **OAuth Callback Error Handling**: Улучшена обработка исключений в OAuth callback с детальным логированием каждого шага
- 🔍 **OAuth Exception Tracking**: Добавлено логирование исключений на каждом этапе: token exchange, profile fetch, user creation, session creation
- 📋 **OAuth Error Diagnosis**: Реализована система диагностики для выявления точной причины `error=auth_failed` редиректов
### Changed
- 🔧 **OAuth Callback Flow**: Разделен OAuth callback на логические шаги с индивидуальным error handling
- 📝 **OAuth Error Messages**: Улучшены сообщения об ошибках для более точной диагностики проблем
2025-09-25 08:48:36 +03:00
2ce8a5b957
🔧 Add detailed OAuth callback logging for debugging auth_failed errors
Deploy on push / deploy (push) Successful in 54m37s
2025-09-25 07:54:00 +03:00
5d0ad2a2e3
oauth-fix3
Deploy on push / deploy (push) Successful in 7m8s
2025-09-24 23:11:01 +03:00
77513080c7
oauth-fix2
Deploy on push / deploy (push) Successful in 7m3s
2025-09-24 19:39:50 +03:00
c9b6c77658
oauth-fix2
Deploy on push / deploy (push) Successful in 6m59s
2025-09-24 19:30:06 +03:00
12023d9eda
oauth-fix
Deploy on push / deploy (push) Successful in 7m5s
2025-09-24 13:35:49 +03:00
26f28aa35e
[0.9.23] - 2025-09-23
...
Deploy on push / deploy (push) Successful in 7m2s
### Fixed
- 🔧 **OAuth Callback URL**: Исправлено формирование callback URL - добавлен отсутствующий слеш между доменом и путем
- 🔒 **OAuth HTTPS**: Принудительное использование HTTPS для callback URL в продакшне (исправляет ошибку "redirect_uri is not associated")
### Changed
- 🔄 **OAuth Routes**: Возвращены к стандартному формату `/oauth/{provider}` - провайдеры не передают параметр provider в callback
2025-09-24 09:33:02 +03:00
d19e753e96
oauth-redirect-fix
Deploy on push / deploy (push) Successful in 8m38s
2025-09-24 08:18:44 +03:00
8104454d68
slash-oauth-fix
Deploy on push / deploy (push) Successful in 7m6s
2025-09-23 22:07:06 +03:00
9d4e24732e
oauth-instruct
Deploy on push / deploy (push) Successful in 7m13s
2025-09-23 21:34:48 +03:00
c1a7902937
nopkce
Deploy on push / deploy (push) Successful in 6m59s
2025-09-23 21:22:47 +03:00