Решение владельца: один пояс приложения из .env для всех, пояс устройства не учитывается.
Бэкенд.GET /api/auth/config отдаёт новое поле tz_offset_hours = APP_TZ_OFFSET_HOURS. Валидатор настроек ограничивает смещение диапазоном −12..14: опечатка в .env теперь даёт ошибку старта, а не время, сдвинутое на сутки.
Фронт. В format.ts константа +3 заменена переменной с setAppTzOffsetHours. App.tsx загружает конфиг и выставляет пояс до первой отрисовки страниц. Пока конфиг грузится, показывается спиннер; если конфиг недоступен, остаются запасные +3. В этом поясе теперь всё отображение времени (партии, уведомления, объявления, журнал) и ввод дат объявлений в админке — тот же пояс, в котором сервер считает «дату игры». Сигнатуры функций форматирования не менялись, поэтому компоненты не затронуты.
schema.d.ts сгенерирован через npm run gen:api. В .env.example пояснено, что задаёт APP_TZ_OFFSET_HOURS.
Коммиты
8d4f7a9 Время: один пояс приложения из .env и на сервере, и на фронте
Проверки
pytest — 224 passed. Новые тесты:
/api/auth/config отдаёт смещение из настроек (5 → 5);
смещения −13 и 15 отклоняются.
На старом коде все три падают.
npm run build — успешно.
/api/auth/config на dev-бэкенде: {"…","tz_offset_hours":3}.
## Что сделано
Решение владельца: **один пояс приложения из `.env` для всех**, пояс устройства не учитывается.
- **Бэкенд.** `GET /api/auth/config` отдаёт новое поле `tz_offset_hours` = `APP_TZ_OFFSET_HOURS`. Валидатор настроек ограничивает смещение диапазоном −12..14: опечатка в `.env` теперь даёт ошибку старта, а не время, сдвинутое на сутки.
- **Фронт.** В `format.ts` константа +3 заменена переменной с `setAppTzOffsetHours`. `App.tsx` загружает конфиг и выставляет пояс **до** первой отрисовки страниц. Пока конфиг грузится, показывается спиннер; если конфиг недоступен, остаются запасные +3. В этом поясе теперь всё отображение времени (партии, уведомления, объявления, журнал) и ввод дат объявлений в админке — тот же пояс, в котором сервер считает «дату игры». Сигнатуры функций форматирования не менялись, поэтому компоненты не затронуты.
- `schema.d.ts` сгенерирован через `npm run gen:api`. В `.env.example` пояснено, что задаёт `APP_TZ_OFFSET_HOURS`.
## Коммиты
- `8d4f7a9` Время: один пояс приложения из .env и на сервере, и на фронте
## Проверки
- `pytest` — 224 passed. Новые тесты:
- `/api/auth/config` отдаёт смещение из настроек (5 → 5);
- смещения −13 и 15 отклоняются.
На старом коде все три падают.
- `npm run build` — успешно.
- `/api/auth/config` на dev-бэкенде: `{"…","tz_offset_hours":3}`.
## Отклонения от плана
Нет.
Closes #68
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
APP_TZ_OFFSET_HOURS влиял только на «дату игры», а фронт показывал время в
захардкоженных +3 — при другом значении дата и время партии противоречили друг
другу. Теперь /api/auth/config отдаёт tz_offset_hours, App.tsx выставляет его в
format.ts до первой отрисовки страниц, и в нём же показывается всё время и
вводятся даты объявлений (запасное значение +3, если конфиг недоступен). Пояс
устройства не учитывается — решение владельца. Валидатор ограничивает смещение
−12..14. #68
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Что сделано
Решение владельца: один пояс приложения из
.envдля всех, пояс устройства не учитывается.GET /api/auth/configотдаёт новое полеtz_offset_hours=APP_TZ_OFFSET_HOURS. Валидатор настроек ограничивает смещение диапазоном −12..14: опечатка в.envтеперь даёт ошибку старта, а не время, сдвинутое на сутки.format.tsконстанта +3 заменена переменной сsetAppTzOffsetHours.App.tsxзагружает конфиг и выставляет пояс до первой отрисовки страниц. Пока конфиг грузится, показывается спиннер; если конфиг недоступен, остаются запасные +3. В этом поясе теперь всё отображение времени (партии, уведомления, объявления, журнал) и ввод дат объявлений в админке — тот же пояс, в котором сервер считает «дату игры». Сигнатуры функций форматирования не менялись, поэтому компоненты не затронуты.schema.d.tsсгенерирован черезnpm run gen:api. В.env.exampleпояснено, что задаётAPP_TZ_OFFSET_HOURS.Коммиты
8d4f7a9Время: один пояс приложения из .env и на сервере, и на фронтеПроверки
pytest— 224 passed. Новые тесты:/api/auth/configотдаёт смещение из настроек (5 → 5);На старом коде все три падают.
npm run build— успешно./api/auth/configна dev-бэкенде:{"…","tz_offset_hours":3}.Отклонения от плана
Нет.
Closes #68
🤖 Generated with Claude Code
https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd