You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Цель: закрыть дефекты, обнаруженные при проверке `refactoring.md`, и вывести проект на состояние, пригодное для сборки, тестирования и безопасного деплоя.
4
+
5
+
---
6
+
7
+
#### 1. Config & Secrets Hygiene (CRITICAL)
8
+
-**Задачи**
9
+
1. Ввести `backend/config.py` с классом `Config`: чтение переменных окружения, дефолты, `validate()` с обязательными ключами (LLM API, security options, rate-limit).
10
+
2. Все импорты (`pdf_server`, `llm/*`) переводим на `from backend.config import Config`. Убираем прямые `load_dotenv` и обращения к `os.getenv`.
11
+
3. Обновляем `.env.example`, удаляем реальные ключи из `.env` / `backend/.env`, документируем процесс в README (как скопировать `.env.example`).
12
+
4. Добавляем sanity-check команду в Make/README: `python -c "from backend.config import Config; Config.validate()"`.
- Переписать `_csv_get_page`: использовать `pd.read_csv(..., skiprows=start_row, nrows=page_size)` только при необходимости, иначе читать через iterator + `islice` (не ловим исключение, а выбираем стратегию по размеру).
- Разделить состояние `autoCharts`: оставить `const [autoCharts, setAutoCharts]` и переименовать значение из hook (`const generatedCharts = useAutoCharts(...)`), либо избавиться от локального стейта — цель: устранить двойное объявление.
31
+
- Прогнать `npm run build` (должен отработать).
32
+
-**Virtualized table**
33
+
- Перейти на `TableBody` с `component={List}` (MUI pattern) или собственный контейнер: `<Table component={Paper}>` + `<Box>` внутри для `react-window`. Важно не вставлять `<div>` напрямую в `<tbody>`.
0 commit comments