From 8a210c43794afc7f21dcb9318008cc3331484ce1 Mon Sep 17 00:00:00 2001 From: Fedorov Vladimir Date: Mon, 12 Oct 2026 23:40:02 +0700 Subject: [PATCH] up --- docs/agent/COMPLETED_TASKS.md | 67 +++++++++++++++++++++++++++++++++++ prod | 2 +- 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/docs/agent/COMPLETED_TASKS.md b/docs/agent/COMPLETED_TASKS.md index 2de66f1..60456f3 100644 --- a/docs/agent/COMPLETED_TASKS.md +++ b/docs/agent/COMPLETED_TASKS.md @@ -2,6 +2,73 @@ Архив задач, переведённых в статус `DONE`. +### ED-039 — Черновики без сценария и лист выдачи улик + +- Статус: `DONE` +- Репозиторий: `evening_detective_server` +- Цель: убрать название сценария из обоих черновиков, исключить развязку из печатного комплекта, очистить подписи улик как у игроков и растянуть таблицу на доступную ширину страницы. +- Результат: генератор черновиков получает только заголовок и не выводит сценарий. Документ ведущего переименован в «Ответы.pdf», генератор принимает только вопросы и сохраняет правильные ответы без доступа к развязке. В `issuancePDF` подписи очищаются существующим `ClearText(clue.Name)`; исходные названия не изменяются. Столбец команды остаётся 51 мм, остальные столбцы равномерно занимают всю ширину альбомного A4 между полями 15 мм, включая последнюю неполную группу. +- Ограничения: исходные файлы улик, сценарий в БД, интерфейс ведущего и API не менялись; зависимости не добавлены; commit/push не выполнялись; существовавшее изменение backend-бинарника не затронуто. +- Проверка: `gofmt`, `go test ./...`, `git diff --check` — успешно; весь изменённый код и тесты проверены по Go-стандарту. Тест полного архива проверяет отсутствие развязки во всех генерируемых PDF, наличие правильных ответов и отсутствие сценария в обоих черновиках. Геометрия готового PDF проверяет полную ширину каждого листа при 0/1/8/9/17 уликах; тест подписей проверяет очистку `([код])` и сохранность оригинального названия. +- Дополнительная проверка: визуально проверены черновик, документ ответов, таблица на три улики и последняя страница таблицы на 17 улик; чистые подписи и полная ширина подтверждены. Примеры находятся только в `/tmp/ed039-print-preview`. На вопрос пользователя указано точное место очистки — `internal/services/game_print_service/pdf.go:251`. +- Не проверено: физическая печать, браузер на живом сервере и PostgreSQL-интеграции; существующее ограничение исходного шрифта из ED-034 сохраняется. + +### ED-038 — Крупнее название сценария, без номеров страниц + +- Статус: `DONE` +- Репозиторий: `evening_detective_server` +- Цель: увеличить название сценария в шапке до 18 пунктов, сохранив одну строку; убрать номера страниц во всех генерируемых PDF комплекта. +- Результат: базовый размер подписи увеличен с 14 до 18 пунктов, длинные названия уменьшаются по доступной ширине без обрезки. Общий footer с нумерацией полностью удалён; PDF игрока и ведущего создаются без номеров страниц. Генератор QR нумерацию и раньше не добавлял. +- Ограничения: поля, одностраничность правил и вопросов, API и состав ZIP сохраняются; исходные улики не менялись; зависимости не добавлены; commit/push не выполнялись; существовавшее изменение backend-бинарника не затронуто. +- Проверка: `gofmt`, `go test ./...`, `git diff --check` — успешно; изменённый код и тесты проверены по Go-стандарту. Тест подписи обновлён на 18 пунктов, добавлен тест отсутствия номеров на двух страницах PDF игрока и ведущего; существующие проверки длинных названий, правил и вопросов прошли. +- Дополнительная проверка: многостраничное введение визуально проверено; извлечённый текст всех страниц не содержит нумерации. Координаты короткого и длинного названия проверены: подпись ниже «Вечерний детектив», в одну строку, без пересечения. Примеры находятся только в `/tmp/ed038-intro.pdf` и `/tmp/ed038-long-title.pdf`. +- Не проверено: физическая печать, браузер на живом сервере и PostgreSQL-интеграции. Длинные подписи по-прежнему уменьшаются для размещения в одной строке; ограничение исходного шрифта из ED-034 сохраняется. + +### ED-037 — Крупная подпись сценария и правила на одном листе + +- Статус: `DONE` +- Репозиторий: `evening_detective_server` +- Цель: увеличить название сценария в шапке, сохранить одну строку; оба варианта правил размещать на одном A4; добавить отступ над полем команды. +- Результат: подпись сценария увеличена с 10 до 14 пунктов; длинные названия уменьшаются по доступной ширине без обрезки. Перед «Команда:» в вопросах и обоих черновиках добавлены 3 мм, дополнительный отступ учитывается при подгонке вопросов. Правила печатаются на одном A4 с полным текстом и разделами; размер текста, заголовков, межстрочных интервалов и отступов подбирается по доступной высоте. Подбор размера шрифта переиспользован для правил и вопросов. +- Ограничения: правила остаются без названия сценария; API и состав ZIP не менялись; зависимости не добавлены; commit/push не выполнялись; существовавшее изменение backend-бинарника не затронуто. +- Проверка: `gofmt`, `go test ./...`, `git diff --check` — успешно; весь diff проверен по Go-стандарту. Тесты проверяют очные/онлайн/длинные/пустые правила на одну страницу, сохранность полного текста и разделов, ошибку неподдерживаемого текста, подпись до 14 пунктов. Существующие тесты длинных названий, геометрии вопросов и состава архива прошли. +- Дополнительная проверка: визуально проверены оба варианта правил, вопросы и черновик; координаты извлечённого текста проверены для правил, вопросов и обоих черновиков — одна страница, текст внутри полей, поле команды ниже заголовка. PDF-примеры находятся только в `/tmp/ed037-print-preview`. +- Не проверено: физическая печать, браузер на живом сервере и PostgreSQL-интеграции. Длинные названия и объёмные тексты уменьшаются для сохранения одной строки/страницы; ограничение исходного шрифта из ED-034 сохраняется. + +### ED-036 — Правила без названия сценария + +- Статус: `DONE` +- Репозиторий: `evening_detective_server` +- Цель: убрать название сценария со всех страниц PDF правил, сохранив логотип и «Вечерний детектив». +- Результат: генератор правил больше не принимает название сценария и создаёт фирменную шапку с пустой подписью. Обновлены caller сборки архива и тест ассетов; тест полного архива проверяет отсутствие названия сценария в правилах и сохранение его в остальных документах. +- Проверка: `gofmt`, `go test ./...`, `git diff --check` — успешно; изменённый код проверен по Go-стандарту. Правила визуально проверены после рендера, пример сохранён только в `/tmp/ed036-rules.pdf`. +- Ограничения: остальные документы, API и состав ZIP не менялись; commit/push не выполнялись; существовавшее изменение backend-бинарника не затронуто. +- Не проверено: физическая печать, браузер на живом сервере и PostgreSQL-интеграции. + +### ED-035 — Название сценария в шапке и вопросы на одном листе + +- Статус: `DONE` +- Репозиторий: `evening_detective_server` +- Цель: название сценария второй строкой рядом с логотипом под «Вечерний детектив»; название игры не подставляется в генерируемые PDF; вопросы всегда на одном листе A4. +- Результат: генераторы получают `scenario.Name`; на правилах, введении и обоих черновиках название повторяется только в шапке, длинная подпись уменьшается без обрезки. В документах ведущего название игры заменено названием сценария. На бланке вопросов сохранены нумерация, поле команды и четыре строки ответа после каждого вопроса; шрифт до 11 пунктов подбирается по фактической высоте перенесённых строк, интервалы и поля ответа уменьшаются пропорционально. Автоматические переносы на второй лист отключены. +- Ограничения: API, состав ZIP и исходные улики не менялись; зависимости не добавлены; нижнего ограничения размера шрифта нет по выбору пользователя, поэтому большой объём может стать очень мелким. Существующее ограничение исходного машинописного шрифта описано в ED-034 и не менялось. Commit/push не выполнялись. +- Проверка: `gofmt`, `go test ./...`, `git diff --check` — успешно. После уточнения теста геометрии повторно успешно проверен пакет `game_print_service`. Ревью изменённого кода и тестов по Go-стандарту выполнено. +- Дополнительная проверка: разные названия игры и сценария, в том числе название игры с эмодзи; название игры отсутствует в извлечённом тексте всех генерируемых PDF, название сценария встречается один раз на страницу документов игрока. Длинная подпись сохраняется и повторяется в шапке; многостраничное введение сохраняет текст. Пустой список, 3/40/200 вопросов, длинные абзацы и явные переносы проверены на одну страницу; геометрия готового PDF проверяет четыре линии ответа на вопрос и нижнее поле. Бланки на 8 и 40 вопросов и вторую страницу введения проверены визуально; `pdfinfo` подтверждает один лист A4, `pdftotext` — сохранность текста. +- Не проверено: физическая печать, браузер на живом сервере и PostgreSQL-интеграции. Примеры PDF сохранены только в `/tmp/ed035-print-preview`; существовавшее изменение backend-бинарника не затронуто. + +### ED-034 — Фирменное оформление PDF игрока + +- Статус: `DONE` +- Репозиторий: `evening_detective_server` +- Цель: оформить правила, введение, вопросы и оба черновика машинописным шрифтом фронтенда и предоставленным логотипом. +- Решение: белая бумага A4, поля 15 мм, шапка с цветным логотипом шириной 18 мм и сохранением пропорций, названием «Вечерний детектив» и разделителем на каждой странице; шрифт `a_OldTyper.ttf` в заголовках, тексте и нумерации. +- Результат: точные копии шрифта и логотипа встроены через `go:embed`; для пяти документов игрока добавлено фирменное оформление, верхняя граница текста перенесена на 43 мм под шапку. Общие функции заголовка и нумерации сохраняют выбранный шрифт. Кириллица, содержание и поля ответов сохраняются на новых страницах. +- Ограничения: API, состав ZIP, оригиналы улик и оформление документов ведущего не менялись; новые зависимости не добавлены; commit/push не выполнялись. Исходный файл логотипа во фронтенде не изменён. +- Проверка: `gofmt`, `go test ./...`, `git diff --check` — успешно; полный прогон тестов выполнен с разрешённым доступом к системному кэшу после ошибки read-only в песочнице. Ревью всего diff по Go-стандарту выполнено, нарушений в изменённом коде не осталось. +- Дополнительная проверка: тесты встроенного шрифта и оригинального JPEG, повторения логотипа на страницах и отступа текста, сохранения стиля ведущего, длинного введения и вопросов; `pdftotext` проверяет сохранность текста и повторение шапки. Все пять документов визуально проверены, включая вторые страницы правил и вопросов. Копии ассетов сверены с исходниками через `cmp`; PDF-примеры находятся только в `/tmp/ed034-print-preview`. +- Известное ограничение: исходный `a_OldTyper.ttf` содержит `OS/2 fsType=0x0002`; библиотека PDF выводит предупреждение `ERROR - copyright restrictions.` при встраивании. Шрифт и его флаги не изменялись, предупреждение не подавлялось; PDF создаётся и отображается. Пользователь уведомлён об этом в процессе работы. +- Не проверено: физическая печать, браузер на живом сервере и PostgreSQL-интеграции; фронтенд-проверки не запускались, его код не менялся. + ### ED-033 — Скачать материалы игры для печати - Статус: `DONE` diff --git a/prod b/prod index df0d2dd..27262e0 160000 --- a/prod +++ b/prod @@ -1 +1 @@ -Subproject commit df0d2dd4759d3e860eb3fc7ab1f7ffdeb10a16fe +Subproject commit 27262e04ae275bd2c1963e39bbbf2ef3f02c54c9