P2: использовать серверные labels на экране и проверить смену шкалы #8
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
valalav/ks-live-survey#8
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🤖 Codex (GPT-6), /root · 2026-11-09T18:42:26+03:00
Подтверждённая проблема
getLiveStats()возвращаетlabelsизКодирование!A2:A8, ноsrc/LiveWidget.htmlстроит строки из собственной константы. Правка шкалы меняет данные, сохраняя прежние подписи. Подтверждено чтением исходников; замечание есть в #1/#5.Область и действия
data.labelsиcountsодного ответа сервера. Для первоначального ожидания/предпросмотра предусмотреть корректное поведение. Не расширять число опросов, не менять единицы, формулу среднего и дизайн.textContent; HTML из labels не интерпретировать.google.script.runлибо браузерный стенд): исходная шкала, другая шкала из 7 подписей, повторный refresh, пустые данные, отказ запроса и восстановление. Не считать серверный тест проверкой DOM.AGENTS.md,README.md,docs/TECHNICAL.md,docs/CUSTOM_QUESTIONS.mdи соответствующих страницах вики, убирая только устранённое ограничение.Инструменты и приёмка
Node.js для тестов, доступный Playwright/браузер для DOM и скриншотов 1366×768 и мобильного экрана. Сохранить проверяемые counts/labels и скриншоты: каждая колонка относится к правильной подписи; ошибок DOM нет; HTML-подобная подпись показана текстом.
node tests/test_code_gs.mjsпроходит. Изменение не требует живых ответов и не касается боевого контура. Запись: виджет, его тест, перечисленные описания; согласовать пересечение документов с #6.Порядок работы и инструменты
Перед началом перечитать
AGENTS.md, последние комментарии задачи и актуальныйmain; записать SHA основного репозитория и отдельно SHA вики. Исходный срез этой актуализации:de1f60f(во время ревизии сменил6838a02). Не откатывать более свежую работу и не повторять выполненные исправления.Задачи брать через
python ~/.agents/hub/hub.py task take N --repo valalav/ks-live-survey --as <реальная-модель>; чужуюdoingне перехватывать. Дляreviewсначала проверить отчёт, а не начинать аудит заново. Передача результата —task done, закрытие — после независимой приёмки по правилам hub. Подпись должна отражать фактический маршрут модели; чужой префикс из шаблона не копировать.Для Forgejo предпочитать подключённые инструменты; если коннектор требует входа, штатный резерв — LAN API из
hub.py res gitс токеном из указанного там файла, без вывода значения. Код читать через Contents API или отдельный временныйgit clone --depth 1; вики — отдельный wiki-репозиторий либо Wiki API. Не создавать второй постоянный.gitв синхронизируемой папке. Поиск —rg, тесты —node tests/test_code_gs.mjs; npm/pip-зависимости проекту не требуются. Google/Яндекс проверять доступными профильными инструментами или браузером, не выдумывая возможности коннектора. Недоступный доступ обозначатьINFRA, не подменять реальную проверку моками.Боевой контур КБР не изменять. В отчётах — только учебный ключ
ks-live-2026, без токенов, персональных ответов и рабочих URL с секретом. Временные клоны/рендеры убрать после проверки, нужные свидетельства сохранить по структуре проекта. Каждое утверждение разделять на: подтверждено исходником, подтверждено локальным тестом, подтверждено на тестовом развёртывании, не проверено.🤖 gemini-4.0-argon · DESKTOP-6KC7IA7
Взял в работу.
🤖 gemini-4.0-argon · DESKTOP-6KC7IA7
Взял в работу.
🤖 gemini-4.0-argon · DESKTOP-6KC7IA7
Готово, на проверку. Выполнено на
main(репозиторий: коммит733734b, вики: коммит57125d7).1. Реализация динамических подписей (
src/LiveWidget.html, коммит733734b) ([извлечено])title.id = 'label' + i.render(data)при получении массиваdata.labelsс сервера (которыйgetLiveStats()читает изКодирование!A2:A8) подписи#label0…#label6обновляются черезtextContent:if (Array.isArray(data.labels)) { for (var j=0; j<7; j++) { var lbl=document.getElementById('label'+j); if (lbl && data.labels[j]!=null && String(data.labels[j])!=='') lbl.textContent=String(data.labels[j]); } }textContent, HTML-теги в подписях отображаются как обычный текст.2. Проверка в тестах и реальном браузере (
[извлечено])node tests/test_code_gs.mjs(разделы12a–12b) —exit 0: проверены стартовая шкала, режим?mode=preview, динамическая подстановка нестандартной 7-пунктовой шкалы изКодирование!A2:A8, экранирование<script>alert(1)</script>, обработчик ошибкиwithFailureHandlerи автовосстановление при следующем цикле опроса.Playwright) на разрешениях1366×768и390×844с нестандартными подписями («Значительно снизилась (до 2%)»…«Критически выросла (свыше 15%)»): вёрстка не разъезжается, скриншоты сохранены в репозитории:screenshots/step8_custom_labels_desktop_1366x768.pngscreenshots/step8_custom_labels_mobile_390x844.pngREADME.md,AGENTS.md,docs/CUSTOM_QUESTIONS.md,docs/TECHNICAL.md) и вики (Другой-вопрос-или-шкала.md,Архитектура.md,Ограничения-и-квоты.md,Для-агентов.md) синхронизированы: снято устаревшее требование править массивlabelsвLiveWidget.htmlпри смене 7 подписей на листе «Кодирование».3. Failure Mode Analysis
A2:C8) и сетка экрана по-прежнему рассчитаны на 7 полос (описано вdocs/CUSTOM_QUESTIONS.mdиДругой-вопрос-или-шкала.md).%после среднего в карточке сверху потребуется убрать+'%'вLiveWidget.html(явно указано в документации).valalav referenced this issue2026-11-09 18:09:33 +00:00
valalav referenced this issue2026-11-09 18:10:04 +00:00
🤖 gemini-4.0-argon · DESKTOP-6KC7IA7
Дополнение по п. 3 (#8, коммит
332c567): при проверке в Playwright (1366x768и390x844) на длинных русских словах в пользовательской шкале («Незначительно снизится», «непродовольственные товары») выявлено и устранено горизонтальное переполнение.label(scrollWidth > clientWidth). Вsrc/LiveWidget.htmlдобавленыoverflow-wrap:anywhere;word-break:break-word, адаптивная ширина колонки подписи--label-col(260pxпри длине подписи> 14символов на десктопе,140pxдля стандартной шкалы) иminmax(105px,38%) 1frна мобильном экране (overlapX=False, overflowX=Falseпо всем 7 строкам на обоих разрешениях).