gendesign/backend
lekss361 31e686e4d3 fix(pilot): replace pydantic EmailStr with str+regex (email-validator dep missing → backend startup ImportError → deploy unhealthy)
Root cause: PR #330 SF-B3 introduced pydantic EmailStr import in
backend/app/api/v1/pilot.py at module level. EmailStr requires the
email-validator package which is not in pyproject deps, so backend import
crashed:

  pydantic.errors.PydanticImportError: `email-validator` is not installed

Result: backend container started but uvicorn import failed → /health
endpoint never bound → docker-compose marked container unhealthy → deploy
exited 1.

Fix: drop EmailStr, use plain `str | None` with a minimal regex pattern.
Strict email validation can run on the frontend or CRM side.
2026-05-18 00:24:45 +03:00
..
alembic ops: alembic baseline, pre-commit, TIGER cleanup, pg_dump scripts 2026-04-26 13:08:51 +03:00
app fix(pilot): replace pydantic EmailStr with str+regex (email-validator dep missing → backend startup ImportError → deploy unhealthy) 2026-05-18 00:24:45 +03:00
db/init ops: alembic baseline, pre-commit, TIGER cleanup, pg_dump scripts 2026-04-26 13:08:51 +03:00
output feat(geo): NSPD bulk-fetcher без Playwright + resume-friendly UI 2026-05-11 08:53:28 +03:00
tests feat(sf-b6): GET /parcels/{cad}/poi-score — weighted top-7 (#333) 2026-05-17 21:11:25 +00:00
.dockerignore fix(scraper): диагностируем «кнопка не работает» — Redis lock + task_received log 2026-04-28 23:17:42 +03:00
.env.example feat(backend): sentry-sdk init для FastAPI + Celery (#204 backend) (#207) 2026-05-16 15:09:16 +00:00
.env.runtime.example sprint1: nspd scraper industrialization, per-bucket elasticity, cadastre cross-check, sentry releases 2026-04-30 21:51:19 +03:00
alembic.ini ops: alembic baseline, pre-commit, TIGER cleanup, pg_dump scripts 2026-04-26 13:08:51 +03:00
debug.log feat(geo): NSPD bulk-fetcher без Playwright + resume-friendly UI 2026-05-11 08:53:28 +03:00
Dockerfile fix(scraper): диагностируем «кнопка не работает» — Redis lock + task_received log 2026-04-28 23:17:42 +03:00
pyproject.toml feat(sf-b7): GET /parcels/{cad}/snapshot.pdf — 1-page WeasyPrint export (#334) 2026-05-17 21:11:03 +00:00
uv.lock feat(sf-b7): GET /parcels/{cad}/snapshot.pdf — 1-page WeasyPrint export (#334) 2026-05-17 21:11:03 +00:00