# Trade-In MVP # Backend Python backend/.venv/ backend/__pycache__/ backend/**/__pycache__/ backend/*.egg-info/ backend/.pytest_cache/ backend/.ruff_cache/ backend/.mypy_cache/ # backend/uv.lock — ИГНОРИРУЕТСЯ НАМЕРЕННО, это не забытый файл. # Мера — uv-workspace: единственный лок живёт в корне (tradein-mvp/uv.lock), и # именно его берёт сборка (context: ./tradein-mvp, `COPY pyproject.toml uv.lock ./` # + `uv sync --frozen`). `uv lock`, запущенный из backend/, создаёт ВТОРОЙ лок, # который никто не читает и который тихо расходится с рабочим: на 2026-08-29 # в нём висели pillow 12.2.0, starlette 1.0.1, python-multipart 0.0.29, # pydantic-settings 2.14.1 и weasyprint 68.1 — пять пакетов с открытыми # advisory, которых в реальной сборке Меры нет вообще. # Локи обновлять из корня: `cd tradein-mvp && uv lock`. backend/uv.lock # Frontend Node frontend/node_modules/ frontend/.next/ frontend/out/ frontend/dist/ # frontend/package-lock.json — TRACKED с #2770: Dockerfile и CI ставят `npm ci`, # которому лок обязателен. Правишь frontend/package.json — регенерируй лок # (`npm install --legacy-peer-deps --no-audit --no-fund`) в том же PR, иначе # `npm ci` роняет сборку образа и весь deploy откатывается. frontend/next-env.d.ts # Docker postgres-data/ caddy-data/ caddy-config/ # Env (никогда не коммитим) .env .env.local .env.*.local backend/.env backend/.env.runtime frontend/.env.local # Public html mockup (исходник от gendsgn.ru — не наш код, держим в docs) frontend/public/tradein.html # Test PDF outputs docs/sample-svg-test.pdf docs/sample-vps-*.pdf *.tmp.pdf # IDE / OS .vscode/ .idea/ .DS_Store Thumbs.db *.swp # Logs *.log