Repository navigation
docs(plans): план 158 — поля диалога вопроса (#1877) и сверка со слитыми #1528/#1557 - #1916
AnnaSIceberg wants to merge 2 commits into
Conversation
…а со слитыми ivanarama#1528/ivanarama#1557 Вариант 2 по ivanarama#1877: сначала план. Зафиксировано фактическое состояние — ivanarama#1528 слит с событием Ответ и заголовком третьим аргументом (расходится с планом), ivanarama#1557 слит как navigation-only. Слитое не ломается: двух- и трёхаргументный ПоказатьВопрос и событие Ответ остаются замороженным путём совместимости. Третий аргумент разбирается по типу; поля — только четвёртым аргументом при ОписаниеОповещения, заголовок — пятым. Срез A разделён: A1 — общий callback и вопрос, A2 — поля ivanarama#1877 со схемой, пределами, server-side allowlist редактируемых имён и длин в interaction store, проверкой ответа до DSL и textContent. Тесты и критерии A2. Refs ivanarama#1877, ivanarama#1531 Generated-with: Claude Code
|
Ревью. (круг 1) |
|
PromptPilot service marker: REVIEW result publication claimed. |
|
PromptPilot service marker: REVIEW result committed. |
…ет CR/LF Ревью ivanarama#1916, круг 1: 1. Клиент получает каноническое Имя редактируемого поля: подписи могут совпадать или не совпадать с именами, и ключ ответа по ним не восстановить. Описан формат ответа — _interaction, _interaction_button, по одному _interaction_field.<Имя>; повтор ключа отклоняет ответ. 2. Однострочность v1 — проверка сервера: CR и LF отклоняются в ответе (без нормализации CRLF → LF) и запрещены в начальном значении. Тесты: CR, LF, CRLF, одинаковые подписи с разными именами. Generated-with: Claude Code
|
Оба замечания ревью (круг 1) учтены в плане: HEAD
CI зелёный: https://github.com/ivanarama/onebase/actions/runs/37416832459 . Прошу повторное ревью нового HEAD. |
Режим работы
Plan-PR по #1877, вариант 2 (решение сопровождающего от 05.10.2026): сначала актуализация
Plans/158-open-form-programmatically.mdс согласованием с #1531, затем реализация полей диалога. ТолькоPlans/, продуктовый код не меняется. Ветка отmain66a9a104.Refs #1877, #1531
Что меняется в плане 158
ОтветсВопросОтвет;ВопросОтвет— любая строка из POST;ОтветиВопросОтветостаются. Это замороженный путь совместимости, новых возможностей он не получает. Решение о выводеОтветиз употребления — после A1, не здесь.ПоказатьВопрос(Текст, Варианты[, ЗаголовокИлиОповещение[, Поля[, Заголовок]]]):ОписаниеОповещения— callback, иное — ошибка;Поля— только четвёртым аргументом и только при оповещении, заголовок окна — пятым. Так согласованный callback не заменяется (требование решения).Имя,Заголовок,Значение,Выделить,Правка,Длина— с типами и пределами: 20 полей, из них 5 редактируемых; имя ≤ 64 символов, заголовок ≤ 200,Длина1–1000, по умолчанию 256. Ввод в v1 — только однострочная строка.Структура("Ответ,Поля"), вПоля— только редактируемые поля; закрытие —Неопределено.formInstance, сущность или обработка, форма, элемент) плюс 256-bit correlation. Allowlist кнопок, редактируемых имён и длин хранится в server store, а не берётся из браузера.CRLF→LF. Атомарныйconsumed. Отклонённый ответ ничего не вызывает и не гасит interaction; повтор послеconsumedи чужой binding дают одинаковый отказ.textContent, маски диалог не накладывает и не снимает. Уточнение по факту кода:maskDSLValueмаскирует чтение сохранённой записи через DSL-прокси, но неОбъектформы — поэтому в документации обязательно предупреждение про ПДн.Поляс граничными значениями и проверки ответа (включая многобайтовые символы, NUL, невалидный UTF-8, однократное гашение); Node-тест строк и ввода.Ответ; добавлена «подмена полей». Обновлены эстимейт и условия готовности ПоказатьВопрос: строки данных и поле ввода в диалоге (аргумент Поля → ДиалогПоля) #1877/Нет открытия формы с предзаполнением и возвратом значения: план 158 есть, заявки под него нет #1531.Plans/README.md: строка 158 — ПоказатьВопрос: строки данных и поле ввода в диалоге (аргумент Поля → ДиалогПоля) #1877 и срез A2 в описании и оценке. Номер плана не меняется,go run ./tools/plannum: номера уникальны.Решения по спорным местам — на ревью
Заголовок— отдельный параметр.Проверки
Только документные:
git diff --check— чисто;go run ./tools/plannum— 180 планов, номера уникальны. Ссылки на код в новых разделах сверены сmain66a9a104:form_question.go,_question_answer/ВопросОтветвhandlers_managed_events.go(entity и processor);TestShowQuestion_*;maskDSLValueвfield_access.go;newNavigationBuiltin.🤖 Generated with Claude Code