feat: статья из Discover, локализация, подсказки

- Статья: заголовок + ссылка (truncate), title в URL, articleTitle в Message
- Локализация Sources, Research Progress, Answer, шагов, formingAnswer
- Подсказки: промпт без жёсткого примера, разнообразие, label 'Что ещё спросить'
- embeddedTranslations, countryToLocale, locale инструкция для LLM

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
home
2026-02-21 00:37:06 +03:00
parent f4d945a2b5
commit 3fa83bc605
68 changed files with 2301 additions and 345 deletions

23
CONTINUE.md Normal file
View File

@@ -0,0 +1,23 @@
# Недоделки — начать отсюда
## Задача (исходный запрос)
Продолжить оптимизацию из AUDIT-PERFORMANCE.md и AGENTS.MD.
## Сделано
- Динамический import для pdf-parse в `manager.ts` — загрузка только при парсинге PDF
- Обновлён AUDIT-PERFORMANCE.md с отметками о выполненных пунктах
## Осталось сделать (в порядке приоритета)
1. **Миграция better-sqlite3 → libsql** — приоритет по audit (отложено).
- **Блокировщик:** `src/lib/db/migrate.ts` использует better-sqlite3 (sync API). Нужна полная переработка под async libsql перед миграцией db/index.ts.
- Файлы: `src/lib/db/index.ts`, `src/lib/db/migrate.ts`, `drizzle.config.ts`, `package.json`
- Шаги: переписать migrate.ts на createClient из @libsql/client, затем заменить в index.ts.
2. **Опционально: pdf-parse в worker** — отложено из‑за Turbopack.
- Текущий подход (динамический import) уже снимает нагрузку со старта.
- Worker через child_process требует отдельный .cjs в известном path; Turbopack трассирует fork() и падает. Варианты: сборка с webpack для route uploads или вынос в отдельный Nodeсервис.
## Контекст для продолжения
- Изменённые файлы: `apps/frontend/src/lib/uploads/manager.ts`
- db используется в: `api/chat`, `api/chats`, `api/chats/[id]`, `lib/agents/search`