# Статус агента: Разработчик
> Обновляется агентом `/project:dev` после каждой задачи.

**Последнее обновление:** 2026-05-18
**Последний коммит:** `fix: добавить 15-секундный таймаут fetch во все модули`

---

## ✅ Сделано (последние задачи)
- `escAttr is not defined` — добавлена функция, карточка клиента работает
- `_fetchWithTimeout` (15с AbortController) — внедрён во все 5 модулей: clients, measurements, assembly, proposals, request
- Карточка клиента: убран баг с загрузкой proposals вместо карточки
- Сравнение `client_tg_id` через `String()` — исправлен silent TypeError
- Примечания клиента: кнопка больше не зависает на «Сохраняем...»

---

## ⚠️ Известные проблемы
| Проблема | Файл | Приоритет |
|----------|------|-----------|
| Нет `Content-Type: application/json` в `_fetchWithTimeout` | все модули | низкий (бэкенд прощает) |
| `app.js` роутер не аудирован на edge cases | app.js | средний |
| `measurements.js` — статический fetch `zamer-checklist.md` без таймаута | measurements.js | низкий |

---

## 📋 Бэклог разработчика
1. Добавить `Content-Type: application/json` в `_fetchWithTimeout` (все модули)
2. Аудит `app.js`: неизвестные хэши → 404-экран, а не падение
3. Экран «Мой статус» менеджера (API `/api/me` уже есть)
4. Проверить обработку ошибок в `measurements.js` после рефакторинга fetch

---

## 🔜 Следующий шаг
**Добавить `Content-Type` в `_fetchWithTimeout`** — патч в 5 файлах, 2 минуты работы.
Или: реализовать экран «Мой статус» (приоритет 1 в ROADMAP).
