Three #1953 audit follow-ups: - perf: add migration 174 — composite index idx_kn_flats_obj_snap on domrf_kn_flats (obj_id, snapshot_date DESC). Serves the #1956 flats_latest CTE in best_layouts.py (DISTINCT ON (obj_id) ORDER BY obj_id, snapshot_date DESC + self-join on (obj_id, snapshot_date)); previously only (obj_id) existed so Postgres sorted per object. Prod: 789 569 rows, idx ~5.7 MB, dry-run instant. Idempotent, self-wrapped BEGIN/COMMIT. - frontend: route every max_height_m read through coerceFloat (same string-bug class as max_far #1962). max_height_m is NUMERIC → arrives as a string on the wire; ptica-adapt.ts read it raw at 4 sites and relied on formatInt/Math.round coercion. Widen the type in nspd.ts and fix the stale "real number" comment in nspd-regulation.ts. - frontend: hide the «Дата регистрации» EGRN row entirely when registration_date is null (~97% of parcels) instead of rendering a bare «—». |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .eslintrc.json | ||
| Dockerfile | ||
| next-env.d.ts | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| sentry.client.config.ts | ||
| sentry.edge.config.ts | ||
| sentry.server.config.ts | ||
| tsconfig.json | ||
| vitest-env.d.ts | ||
| vitest.config.ts | ||
| vitest.setup.ts | ||