gendesign/backend/app
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
..
api 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
core fix(infra): wire GlitchTip DSNs (build-arg + env_file) + reject sentry.io promote 2026-05-16 21:48:28 +03:00
models feat(jobs): centralized job_settings API + DB-driven beat schedule 2026-05-11 15:38:13 +03:00
observability feat(backend): sentry-sdk init для FastAPI + Celery (#204 backend) (#207) 2026-05-16 15:09:16 +00:00
schemas feat(trade-in): TI-1 mock /trade-in/estimate endpoint + Pydantic + SQL migration (#316) 2026-05-17 16:45:06 +00:00
scrapers Merge pull request 'feat(#263 sub-A): cad_* overlay schemas + cadastre territorial_zones (ПЗЗ)' (#265) from feat/263-sub-a-cad-nspd-overlay-schemas-and-pzz into main 2026-05-17 07:50:08 +00:00
services feat(sf-b6): GET /parcels/{cad}/poi-score — weighted top-7 (#333) 2026-05-17 21:11:25 +00:00
templates feat(sf-b7): GET /parcels/{cad}/snapshot.pdf — 1-page WeasyPrint export (#334) 2026-05-17 21:11:03 +00:00
workers fix(scrape-objective): stream-parse lots_pf via ijson to avoid OOM (#315) 2026-05-17 16:37:30 +00:00
__init__.py init 2026-04-25 13:45:19 +03:00
main.py merge: resolve main.py conflict (keep both pilot + users routers) 2026-05-18 00:08:48 +03:00