Доказать развертывание по дайджесту, а не по тегу
Предыдущее обязательство останавливает «установленное изображение» как молчаливое бездействие. Это утверждает, что результат: после развертывания тег решается н...
Восстановление одного и того же обязательства ничего не привело к успеху
Изображение помечено фиксированным SHA, поэтому восстановление одного и того же фикса производит Идентичная ссылка на изображение. «Объектное заданное изображен...
Пускай выкатка закончит то, что делала старая подушка
Деплойты заменили единственный блок каждой службы, в котором не было ничего, чтобы поймать запросы. Полёт. Три настройки, применяемые по всему флоту: Престоп с...
Записанное заседание становится per-tab
analytics.auth жил в локальном хранилище, которое делится каждой вкладкой этого происхождения. Аналитика достигнута путем передачи OTK из рабочего пространства,...
Перестаньте перечислять каждого посетителя дважды
События производительности (веб-жизненно важные) были сохранены без имени хоста - коллекционера Ветка производительности никогда не проходила мимо нее, в отличи...
Укрепите загрузку kububl против шелушащегося выхода [skip ci]
dl.k8s.io по выходу бегуна периодически падает в середине передачи: Curl: (56) OpenSSL SSL read: расшифровка не удалась или не удалась который не справляется с ...
Alias ALL - ВСЕ турбопакеты, не только призма
Предыдущее исправление называется @prisma/client-<hash>; сборка также экстернализуется. pg-<hash> (node-postgres, via @prisma/adapter-pg) под одним и тем же кон...
Алиас Присма 7 контент-хешированный клиент, поэтому маршруты DB останавливают 500
Генератор призмы-клиента (engineType=client) выпекает контент-хэш Спецификатор времени выполнения (@prisma/client-<hash>) в Next build. Строитель Удовлетворил е...
Установите депс скрипта после отдельной копии; удар PRISMA VERSION до 7.6.0
На стадии бегуна установлен скрипт deps (semver/chalk/prisma/...) раньше копирование отдельного вывода Next.js. Следы частичного, index.js-less Семвер в автоном...
Pin pnpm до 10.34.3, поэтому списки обзоров в формате build-script почитаются
Unpinned 'npm install -g pnpm' теперь разрешает pnpm 11.8.0 ******************* в пользу НПФ. Поэтому списки обзоров РЕПО были проигнорированы, каждый сценарий ...
Copy pnpm-workspace.yaml + обзор оставшихся сценариев сборки
На стадии депса копировался только пакет.json+lockfile, поэтому pnpm не мог видеть ************************* Списки отзывов (они живут) pnpm-workspace.yaml. С ж...
Разрешить скрипт сборки Prisma, чтобы pnpm не выходил без нуля
Новый pnpm не работает с ERR PNPM IGNORED BUILDS Postinstall игнорируется. Только @prisma/engines была включена в список разрешений, поэтому каждый Создание изо...
Use pg Pool options instead of connection string for geo DB
CockroachDB rejects insecure connections and node-pg can't verify self-signed certs via connection string alone. Parse the URL into Pool options and pass ssl:{r...
*** session check, loading spinner, rebrand analytics to Kamo Analytics
Use redis get instead of exists for more reliable *** validation on logout. Replace "Authenticating..." text with an animated spinner on the OTK auth page. Rena...
Copy GeoLite2 database to production image for country detection
The /geo/ directory containing GeoLite2-City.mmdb was built during the builder stage but never copied to the runner stage, so all country/region lookups returne...
Move CSP to proxy.ts instead of middleware.ts to avoid build conflict
Next.js 16 doesn't allow both middleware.ts and proxy.ts. The Docker build copies proxy.ts as the middleware, so add CSP frame-ancestors header there instead. T...
Use Next.js middleware for CSP so frame-ancestors works at runtime
The standalone build bakes next.config.ts headers at build time, so ALLOWED_FRAME_URLS was always empty. Move CSP to a Next.js middleware that reads the env var...
Read ALLOWED_FRAME_URLS at runtime so CSP frame-ancestors works in standalone mode
The env var was being read at module scope during build, baking an empty value into the standalone server. Move CSP and all header construction into functions c...
Add explicit AS keyword for PostgreSQL column alias in session and event queries
The session and event expanded metrics queries use implicit column aliasing (`${column} name`) which causes a PostgreSQL syntax error when the column name (like...
Use settings timezone in revenue chart date range
The revenue chart was using the browser's local timezone instead of the timezone configured in analytics settings. This caused the chart to show different time ...
Remove searchValue from ValueSelect queryKey to avoid unnecessary refetches
Apply same null referrer fix to link tracking route
The same bug exists in the link route (q/[slug]) where request.headers.get("referer") returns null for requests without a Referer header, causing silent Zod val...
Handle null referrer in pixel tracking route
request.headers.get("referer") returns null when the header is absent (e.g. email clients). The Zod schema uses .optional() which accepts undefined but rejects ...
[#3778] Обновить слово «редактировать» для поддержки перевода
Пропустить анимацию графика в реальном времени, когда данные не изменились
Исправление ошибки синтаксиса SQL в запросе getPageviewExpandedMetrics
Correct autocomplete attributes to enable password manager autofill
Цитировать «событие» зарезервированное ключевое слово в запросах путешествия
Исправляет ошибку синтаксиса PostgreSQL, цитируя псевдоним «событие». Это привело к провалу запроса на поездку. «Событие» является зарезервированным ключевым с...
Parse netlify ip header by default: `x-nf-client-connection-ip`
This header is not clearly documented, but it is mentioned in semi-official sources, and I have tested it to ensure it's working properly. Without this, analyt...
Improve URL normalization and handling in tracking functions
Prevent multiple initialization when script injected more than once
Используйте SafeDecodeURIComponent для полей определения местоположения пользователей
Обработка неизвестных полей местоположения при обнаружении пользователя
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.