24 Commits

Author SHA1 Message Date
b4ea8df840 fix: результат редактирования не появлялся в окне «Результат появится здесь» — корень: браузер кэшировал ответ /api/jobs/:id/status со статусом «running» (не было Cache-Control), и последний финальный запрос получал stale-ответ с result=null
All checks were successful
test / test (push) Successful in 10s
2026-08-28 01:19:17 +07:00
6f611dc697 fix: исправление наложения кнопок в дереве истории версий
All checks were successful
test / test (push) Successful in 9s
- Переведён .history-node с flex на grid (main + actions в колонках)
- Убрано абсолютное позиционирование .history-node-actions
- Починена вертикальность поддерева (grid-column: 1 / -1)
- Инкрементальная индентация через padding-left на контейнерах
- Адаптивность: на ≤460px действия переносятся под кнопку
- overflow-x: hidden на списке истории для предотвращения скролла
- Бамп стиля v=13 → v=14 (сброс кэша)
2026-08-27 22:45:07 +07:00
6d5b8d5f05 fix: .gitignore игнорировал src/core/history (паттерн history/ без якоря) — CI падал с MODULE_NOT_FOUND
All checks were successful
test / test (push) Successful in 11s
Паттерн 'history/' в .gitignore матчил любой каталог с таким именем, включая служебный модуль src/core/history/. Привязаны /history/ и /data/ к корню репозитория; модуль истории добавлен в индекс.
2026-08-27 13:04:46 +07:00
401969cfdb v2: модульный монолит — очередь, персистентность, безопасность, SSE, тесты
Some checks failed
test / test (push) Failing after 24s
Реализация целевого дизайна (docs/architecture/target-design.md):
- src/: модульная структура (config, logger, errors, http, core: auth/history/jobs/engines/comfy/codex/images)
- Очередь заданий: FIFO, кониурентность codex=1 / comfy-upscale=2, MAX_QUEUED_JOBS=5, JSONL-журнал и восстановление после рестарта (running → interrupted, upscale requeue)
- Персистентные сессии (sha256-хеши токенов), scrypt-хеш пароля, rate-limit входа, Origin-проверка, magic-byte валидация аплоадов
- Атомарная запись манифеста истории, каскадное удаление, URL с фактическим расширением + 302-алиас /image.jpg, миграция history/ → data/history
- Даунскейл sharp до 1024px перед Codex + масштабирование области референса
- SSE /api/events с фолбэком на polling, фронтенд переведён на ES-модули (public/js/)
- Тесты node:test + supertest (27), CI workflow test.yml, Docker/деплой: том kadr-data
- Документация: README, docs/architecture/
2026-08-27 12:52:27 +07:00
1c36a21e0c История: сортировка групп по дате — новые фотографии вверху 2026-08-26 19:57:55 +07:00
f91aa94336 Дерево истории, удаление версий, мультизагрузка, редактирование с референсом и областью, подсказки промптов 2026-08-26 19:17:36 +07:00
27a2ac304c Логирование в stdout (видно в Portainer) + асинхронные задания edit/upscale с опросом статуса (фикс 504/499 при длинных запросах) 2026-08-26 14:10:45 +07:00
d9eccfb4b7 Авторизация: форма входа, cookie-сессия, защита /api/* (кроме health/login/me/logout) 2026-08-26 00:38:23 +07:00
5dcc4ce1ad Деплой: Codex через прокси http://192.168.31.240:4067 (прямой egress блокируется OpenAI, 403) 2026-08-25 23:55:15 +07:00
1dec7e5178 Кнопка «Скачать» текущей версии фото (доступна при навигации по истории) 2026-08-25 23:34:47 +07:00
839ed50ef4 Upscale: таймаут ожидания ComfyUI 2 → 5 минут (JOB_TIMEOUT_MS=300000) 2026-08-25 23:06:40 +07:00
4bf31a310e Dockerfile: установка bubblewrap (песочница Codex без предупреждений) 2026-08-25 22:52:37 +07:00
cfa919a435 README: раздел про развёртывание в Portainer (deploy-portainer) 2026-08-25 22:30:07 +07:00
5b0f8a8f73 Portainer 2.39: create через /stacks/create/standalone/file, update через PUT JSON StackFileContent 2026-08-25 22:28:12 +07:00
29037e1720 Portainer: авторизация через X-API-Key (Portainer 2.39 не принимает Bearer для API-ключей) 2026-08-25 22:24:00 +07:00
f80ed97e98 Workflow деплоя в Portainer (создание/обновление стека photo-editor через API) 2026-08-25 22:20:15 +07:00
e59b3645f6 README: требования Gitea Actions (секрет GIT_PASSWORD, lowercase-теги); gitignore: .bench 2026-08-25 22:09:51 +07:00
ee952df2a5 Workflow: теги registry в нижнем регистре (docker требует lowercase) 2026-08-25 22:06:36 +07:00
bedd2e0fef Workflow: логин через существующий секрет GIT_PASSWORD 2026-08-25 22:03:56 +07:00
1e1fdb7425 Workflow: секрет KADR_TOKEN (GITEA_TOKEN/GITHUB_TOKEN зарезервированы Gitea) 2026-08-25 22:02:31 +07:00
c1998b9397 Workflow: фикс логина в Gitea registry (жёсткий хост + PAT GITEA_TOKEN, сброс docker-конфига) 2026-08-25 22:00:30 +07:00
5a920c7fc6 Обновить .gitea/workflows/build.yml 2026-08-25 21:56:28 +07:00
8a757a3fbe Документация: сборка образа через Gitea Actions (кнопка, runner, registry) 2026-08-25 21:29:50 +07:00
fc74c8f543 Initial commit: AI-фоторедактор (Codex-редактирование, ComfyUI upscale, HEIC, история версий, Docker, Gitea Actions) 2026-08-25 21:28:55 +07:00