Human Emulator

Human Emulator


RPA и автоматизация действий в браузере

версия 7.0.78 · обновление от 24.09.2026

версия 8.1.5 · бета от 28.09.2026

sales@webemulator.com @saleshumanemulator

Бесплатная онлайн консультация по возможностям программы.

Журнал изменений Human Emulator Studio

Актуальная линейка — Studio и RT на Chromium. Ниже хвост лога Studio. Полные файлы: Studio и исторический лог классической линейки. Скачать сборку для проверки — официальное демо.

Скачать демо Поддержка

Демо — оценка Studio на Windows. Вопросы по установке и скриптам — поддержка или контакты.

Последние записи лога

7.0.68 (13.05.2022)

  • Chromium обновлен 101.0.15+gca159c5+chromium-101.0.4951.54
  • Edge обновлен 103.0.1255.0 (Официальная сборка) canary
  • Chrome Selenium обновлен 101.0.4951.54
  • улучшена работа с почтой и почтовыми msg файлами
  • улучшена работа с xlsx файлами (ускорение + оптимизация)
  • в команду raw->clear_request_array добавлены параметры url и exactly - позволяющие удалять запросы заданного типа
  • добавлена команда soap->call_from_xml
  • Chromium обновлен 101.0.18+g367b4a0+chromium-101.0.4951.67
  • в метод app->maximize добавлен параметр hiding_mode, при значении которого true приложение сворачивается в трей и там максимизируется
  • баг фикс работы функции DOM : get_by_properties
  • добавлен объект ul для работы с тэгом <UL>
  • в методы : send_mail_via_outlook и send_mail_via_smtp добавлен параметр replyTo - позволяющий задать один или несколько Email (через ;) для "Reply To"
  • Tesseract обновлен до версии 5.1.0
  • улучшение работы excelfile->open - сделана асинхронной + добавлены параметры is_wait_busy и wait_busy_seconds, позволяющие дожидаться если файл знят другим приложением
  • улучшение рабоыт функции excel->convert - поддержка форматов : dbf2, dbf3, dbf, ods, mht, mhtml, xlsm, xltm, xltx, prn, xlam
  • улучшение активностей (перевод и иконки)
  • добавлена возможность перейти к определению функции в этом файле (для PHP) по F12
  • добавлена возможность задавать Virtual Host для связи с RabbitMQ в локальный и глобальный оркестратор
  • улучшение работы excelfile->create - сразу задаем активным первый лист
  • добавлен объект outlook для управления MS Outlook c функциями:
  • close
  • delete_all_messages
  • delete_message_by_number
  • get_message_by_from
  • get_message_by_number
  • get_message_by_subject
  • get_message_by_text
  • get_message_count
  • move_message_by_from
  • move_message_by_number
  • move_message_by_subject
  • move_message_by_text
  • save_message_attachments_by_from
  • save_message_attachments_by_number
  • save_message_attachments_by_subject
  • save_message_attachments_by_text
  • send_mail
  • добавлен параметр only_used для функций excelfile: get_rows_count и get_cols_count позволяющий получить колдичество не пустых сстолбцов или строк
  • улучшение работы excel - загрузка поврежденных файлов
  • добавлен объект libreOffice для управления Libre Ofiice c методами:
  • convert
  • set_install_folder
  • улучшен перевод activity
  • баг фикс текущей папки для app->run_as_php
  • добавлена возможность вызова контекстного меню сайта в Edge (при снятии галочки в настройках - заменять контекстное меню сайта)
  • в mouse->send_click и dom interface->send_mouse_click добавлен парамтер addCtrl - добавляющий к щелчку нажатие клавиши Ctrl
  • добавлена функция raw->set_next_url_for_open_in_new_tab для открытия урла в новой вкладке (в том числе можно использовать и для перехвата jQuery)
  • баг фикс обновление даты запуска робота по расписанию в RT
  • в активности добавлен объект RAW
  • улучшен перевод и иконки активностей
  • баг фикс работы команд объект telegram
  • добавлена команда windows->keep_alive для сброса времени простоя Windows
  • добавлена настройка сброса времени простоя windows по таймеру (вкладка скрипты)
  • в RT добавлена возможность вызова менеджера безопасности
  • Chromium обновлен 102.0.9+g1c5e658+chromium-102.0.5005.63
  • улучшение работы функции webpage->get_pos_in_webpage_picture для больших страниц
  • баг фикс запуска WF по расписанию
  • добавлена команды excel:
  • export_sheets - для экспорта закладок в папку в отдельные xslx файлы
  • split_sheet_by_rows - для разбиения закладки на строки в папку в отдельные xslx файлы
  • улучшен перевод активностей
  • добавлены команды для ftp:
  • is_file_exists - проверка существования файла на сервере
  • is_directory_exists - проверка существования папки на сервере
  • баг фикс отображения текущей строки выполнения при отладке PHP скриптов (при редактирование текста)
  • улучшен менеджер безопасности
  • добавлена команда browser.wait_download_and_get_file_path для ожидания загрузки и получения последнего файла
  • баг фикс работы browser.get_last_download_id
  • в дерево активностей добавлены иконки
  • в RT добавлена панель отладки
  • баг фикс пересоздания браузера
  • баг фикс вывода в панель отладку в RT
  • добавлены команды ожидания в UI :
  • wait_for_ui_open_by_property
  • wait_for_ui_close_by_property
  • wait_for_ui_open_by_properties
  • wait_for_ui_close_by_properties
  • добавлен объект word с методами:
  • kill
  • create
  • open
  • close
  • save
  • get_text
  • add_text
  • get_paragraphs_count
  • get_paragraph_text_by_number
  • set_paragraph_text_by_number
  • get_paragraph_number_by_text
  • delete_paragraph_by_number
  • delete_paragraph_by_text
  • add_table
  • get_tables_count
  • add_image
  • баг фикс смены шрифта в панели отладки
  • улучшение работы pdffile->extract_images для некоторых типов pdf
  • tesseractOCR->recognize теперь распознает и pdf файлы с картинками
  • обновлен движок MsEdge Selemium
  • обновлен движок Yandex Browser Selenium
  • баг фикс пропадания горизонтального скрола при работе с деревом элементов
  • добавлены команды windowinterface:
  • wait_for_open_child_by_number
  • wait_for_open_child_by_text
  • wait_for_open_child_by_class
  • добавлена команда pdffile->get_images_count
  • добавлена возможность задания фильтра - например для указания кодировки при конвертации в libreoffice->convert (https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options)
  • баг фикс работы скин версии на масштабах экрана 125% и 150%
  • улучшение работы Black схем
  • обновлен движок браузера 102.0.10+gf249b2e+chromium-102.0.5005.115
  • обновлен движок браузера 103.0.8+g444ebe7+chromium-103.0.5060.66
  • обновлен веб драйвер к MsEdge
  • обновлен веб драйвер к Yandex Browser
  • улучшение работы Black схем
  • улучшение работы плагинов с кодом
  • улучшение работы функций excel->follow_link_by_text и excel->follow_link_by_number
  • в excel добавлена функция kill для закрытия всех открытых EXCEL
  • баг фикс работы ftp
  • баг фикс excelfile->get_row при работе с пустыми ячейками
  • баг фикс excelfile->set_cell при работе с добавление текста с ведущим нулем
  • по умолчанию в php.ini включено расширение fileinfo
  • PHP обновлен до версии 8.1.8
  • Python обновлен до версии 3.10.5
  • баг фикс outlook.send_mail (корректное задание сс и bcc)
  • обновлен Tesseract OCR к версии 5.2.0
  • улучшение работы команд outlook
  • в RT теперь сохраняются состояния панелей
  • баг фикс открытия ссылки с зажатым Ctrl
  • в outlook Добавлены команды
  • open
  • close
  • баг фикс перезапуска скриптов с названиями на кириллице
  • добавлена настройка - добавлять номер порта к php.exe
  • Chromium обновлен - версия CEF 103.0.12+g8eb56c7+chromium-103.0.5060.134
  • Chrome Web Driver обновлен - версия 103.0.5060.13400
  • улучшен перевод активностей
  • улучшен внешний вид дерева активностей
  • добавлена команда windowinterface->wait_for_input_idle
  • добавлены команды excel
  • open
  • save
  • close
  • get_cell
  • ускорена работа php
  • добавлена команда excelfile->get_sheet для получения содержимого листа в массив строк
  • добавлена команда excel->get_sheet для получения содержимого листа в массив строк
  • баг фикс excel->run_macro_by_name
  • улучшен перевод и иконки действий Workflow
  • добавлены команды excel
  • set_cell
  • улучшена работа follow_link_by_number и follow_link_by_text
  • в функцию wordfile->read_table_by_number добавлен параметр as_array - для получения таблицы как массива
  • добавлены команды wordfile
  • get_shapes_count - получить количество фигур в файле
  • get_shape_properties - получить свойства фигуры (в виде xml)
  • улучшена работа команд видеозаписи содержимого встроенных браузеров и десктопа
  • движок MS Edge Обновлен
  • движок Chromium обновлен
  • улучшена работа команд по управлению приложениями Ms Office
  • баг фикс excel->save
  • улучшение передачи клавиши Enter в Firefox модели браузера
  • баг фикс опечаток интерфейса
  • улучшение внешнего вида редактора Workflow
  • улучшена производительность работы с диском
  • баг фикс повторного открытия файла с уже сделанными изменениями
  • улучшение работы комбобокса выбора функций в редакторе кода
  • Chromium обновлен до версии 104.4.24+gdf482f6+chromium-104.0.5112.102
  • добавлена настройка - добавлять номер порта к имени процесса python.exe при запуске скрипта
  • баг фикс обновления списка переменных в менеджере безопасности при добавление, удалении и изменении
  • улучшена работа плагинов
  • улучшение подсказок по встроенным функциям в редакторе
  • добавлена команда excel->sort_sheet для сортировки листа используя столбец в качестве ключа
  • добавлена команда excel->dedupe_sheet для удаления дубликатов в листе, используя все или заданные столбцы в качестве первичного ключа (столбцы задаются в строке, например "1" или "1;2;3" или "*" - если все)
  • добавлена команда excelfile->sort_sheet для сортировки листа используя столбец в качестве ключа
  • добавлена команда excelfile->dedupe_sheet для удаления дубликатов в листе, используя все или заданные столбцы в качестве первичного ключа (столбцы задаются в строке, например "1" или "1;2;3" или "*" - если все)
  • добавлена настройка : максимальное число символов у значений в контекстном меню
  • баг фикс диалога выбора типа в типизированных активностях WF

7.0.69 (01.09.2022)

  • wordfile->convert перенесен в word->convert (для работы нужен установленный MS Word от 2013 версии)
  • wordfile->compare перенесен в word->compare (для работы нужен установленный MS Word от 2013 версии)
  • wordfile->get_page_count перенесен в word->get_page_count (для работы нужен установленный MS Word от 2013 версии)
  • wordfile->export_pages перенесен в word->export_pages (для работы нужен установленный MS Word от 2013 версии)
  • wordfile->export_all_pages перенесен в word->export_all_pages (для работы нужен установленный MS Word от 2013 версии)
  • добавлены команды в wordfile
  • open
  • close
  • save
  • create
  • wordfile, word , excel, excelfile
  • ускорение работы
  • улучшена авто диагностика при выполнении команд
  • улучшены тесты
  • все команды теперь работают в асинхронном режиме
  • file,textfile,pdffile,msgfile,folder,bd,libreoffice,cryptography - все команды теперь работают в асинхронном режиме
  • fineReaderOCR,tesseractOCR,yandexVisionOCR - все команды теперь работают в асинхронном режиме
  • добавлена подсветка встроенных объектов и функций в редакторе
  • добавлена команд excel->add_link - для вставки гиперссылок
  • добавлена команд excelfile->add_link - для вставки гиперссылок
  • баг фикс pdf->export_images для файлов с некорректным bitsperpixel атрибутом
  • баг фикс word->compare если передан один и тот же файл для сравнения
  • баг фикс word->export_pages при выходе за диапазон страниц
  • добавлена команда excel->set_row_format
  • добавлена команда excel->set_col_format
  • добавлена команда excel->set_cell_format
  • по форматам : https://support.microsoft.com/ru-ru/office/%D0%BA%D0%BE%D0%B4%D1%8B-%D1%87%D0%B8%D1%81%D0%BB%D0%BE%D0%B2%D1%8B%D1%85-%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%BE%D0%B2-5026bbd6-04bc-48cd-bf33-80f18b4eae68?ui=ru-ru&rs=ru-ru&ad=ru)
  • поддерживаются синонимы:
  • "Number" = "0"
  • "NumberDotTwoDigits" = "0.00"
  • "Currency" = "$#,##0.00;[Red]$#,##0.00";
  • "Accounting" = "_($* #,##0.00_);_($* (#,##0.00);_($* \" - \"??_);_(@_)"
  • "Date" = "d/m/yy"
  • "Time" = "hh:mm:ss"
  • "Percentage" = "0.00%"
  • "Fraction" = "# ?/?"
  • "Scientific" = "0.00E+00"
  • "Text" = "@"
  • "Special" = ";;"
  • "Custom" = "#,##0_);[Red](#,##0)"
  • в excelfile->set_cell добавлен параметр type, позволяющий сразу задать тип ячейки - например: $excelfile->set_cell($path, 0, 1, 1, "3525,12","Text");
  • добавлена команда excel->add_row
  • Chromium обновлен 105.3.33+gd83f874+chromium-105.0.5195.102
  • Edge обновлен 105.0.1343.27
  • добавлена команда app->block_input для блокировки/разблокировки ввода с мыши и клавиатуры (Ctrl+Alt+Del разблокирует заблокировный ввод в случае не выполнения скриптом команды app->block_input(false) )
  • добавлена команда excel->set_connection_source_data_file_by_number
  • добавлена команда excel->add_rows
  • Chromium обновлен: 105.3.39+g2ec21f9+chromium-105.0.5195.127
  • улучшена работа с плагинами
  • добавлена настройка, позволяющая задавать логин и пароль для входа
  • добавлены таймауты для :
  • pdffile->print_pages
  • pdffile->compress_images
  • pdffile->split
  • pdffile->extract_images
  • pdffile->combine
  • добавлена возможность отладки PHP скриптов под селениум модели браузера
  • добавлены таймауты для :
  • word->convert
  • word->compare
  • word->open
  • pdffile->export_pages
  • pdffile->export_all_pages
  • баг фикс модели безопасности работы с макросами
  • улучшен диалог инсталляции плагинов
  • Chrome Selenium Webdriver обновлен : 106.0.5249.2100
  • в bd добавлена поддержка PostgreSQL
  • баг фикс активностей WF для отправки почты через Outlook
  • добавлена возможность использования postgresql в объекте bd
  • баг фикс excelfile->add_row для листов без данных
  • добавлен параметр командной строки clear_settings:"1" - удаляющий все настройки при старте
  • в меню сервис добавлен пункт, удаляющий все настройки и перезапускающий программу
  • обновлен движок Chromium 106.0.29+gc10d419+chromium-106.0.5249.119
  • в настройки задач расписания скриптов добавлена возможность задавать рабочее время
  • добавлена команда excel->set_row
  • Edge обновлен до версии 106.0.1370.47 (official)
  • в дерево быстрого старта добавлена поддежка файлов с расширениями json и ini
  • баг фикс windowinterface get_x, get_y при получении неклиентских координат окна
  • баг фикс excelfile->get_sheet для таблиц содержащих ячейки с неопределенными данными
  • добавлен параметр командной строки /maximize для страта студии с главным окном в максимизированом режиме
  • баг фикс работы excel->close
  • в настройки задач расписания скриптов добавлена возможность задавать рабочие дни месяца
  • добавлена функция word->connect_by_hwnd позволяющая присоединится к уже открытому окну word с открытым в нем документом
  • добавлена функция excel->connect_by_hwnd позволяющая присоединится к уже открытому окну excel с открытым в нем документом
  • улучшена работа word->kill
  • Chrome Selenium Driver обновлен до версии 107.0.5304.6200
  • Edge Selenium Driver обнволен до версии 106.0.1370.34
  • Yandex Driver обновлен до версии 22.9.1
  • в менеджере безопасности добавлено скрытие вводимых значений перменных
  • улучшен диалог добавления кода
  • добавлены функции excel c возможностью задания поискового слова с использованием ? и * (например n?w для поиска слов с new и now или n* - для поиска всех слов начинающихся с буквы n)
  • get_pos_by_text
  • get_all_pos_by_text
  • добавлены функции объединения и разъединения ячеек
  • merge_cells
  • umerge_cells
  • баг фикс работы raw->set_additional_headers при работе с заголовками, содержащими ":"
  • баг фикс задания прокси с авторизацией в Firefox модель
  • баг фикс команды и настройки ожидания для Windows 10 (отмена также блокировки экрана)
  • баг фикс работы Workflow в Runtime
  • добавлена команда app->set_progress_text
  • добавлены действия задания ширины и высоты браузера по отдельности в Workflow
  • добавлен редактор выражений на C# (по настройке)
  • улучшен размер редактора выражений C#
  • баг фикс работы шедулера для WF для режима прерывать работу текущего задания
  • Chromium обновлен до версии 107.1.9+g1f0a21a+chromium-107.0.5304.110
  • обновлены статические объект PHP (например DOM::anchor и т.д)
  • в редактор добавлены подсказки по статическим объектам (DOM:: SYSTEM: WEB:: VISION:: WINDOW::)
  • баг фикс смены локализации после вызова диалога настроек
  • баг фикс перевода некоторых активностей
  • добавлен сброс состояния прогресса при старте скрипта
  • уточнение времени ожидания для file_os->wait_for_exist
  • добавлены таймауты в команды excelfile:
  • autosize_row
  • autosize_col
  • увеличены таймауты по умолчанию для операций : excel и excelfile
  • добавлены таймауты в активности Excel и ExcelFile для Workflow
  • добавлены предупреждения о не найденых и пустых переменных при работе через менеджер безопаcности
  • в RT в меню сервиc добавлен пункт меню Выход
  • улучшение работы excelfile->create
  • улучшение работы excel (можно работать с множеством открытых экземпляров разных excel файлов)
  • добавлено excel->create
  • добавлено excel->get_row
  • добавлено excel->set_sheet
  • существенно ускорена работа excel->set_row и excel->add_row
  • улучшены диагностические сообщения при работе с excel и excelfile
  • добавлены функция excel->autosize_row для автоматического задания размеров заданной строки или всех строк
  • добавлены функция excel->autosize_col для автоматического задания размеров заданного столбца или всех столбцов
  • баг фикс app.quit для WF
  • добавлена команда browser->get_webdriver_session для Selenium моделей
  • Node.JS обновлен до версии 19.2.0
  • Python обновлен до версии 3.11.0
  • баг фикс смены порта отладки PHP в php.ini-debugger при изменении его в настройках
  • поправлены найденные баги в переводе активностей
  • в excel->run_macro_by_name добавлена возможность передачи параметров в выполняемый макрос
  • PHP обновлен до версии 8.2.0 Thread Safe
  • добавлена функция keyboard->press_key_by_code - для альтернативного нажатия горячих клавиш - например для Citrix Woekspace
  • баг фикс folder->get_all_items при работе с папками, содержащими очень много файлов
  • в app->run_powershell_script добавлена возможность задания параметров для передачи в скрипт
  • баг фикс найденных багов в WF
  • улучшен перевод активностей
  • добавлены команды в pdffile
  • get_links_count
  • get_link_by_number
  • get_all_links
  • обновлен Selenium Yandex Driver до последней версии
  • обновлен Chromium: 108.4.13+ga98cd4c+chromium-108.0.5359.125
  • добавлены команды excelfile
  • remove_rows_by_number
  • remove_rows_by_text
  • remove_rows_by_ranges
  • добавлены команды excel
  • remove_row
  • remove_rows_by_number
  • remove_rows_by_text
  • remove_rows_by_ranges
  • улучшение работы run_as_bat, при пустом параметре content запускает уже существующий bat файл
  • обновлены chrome и edge selenium webdriver
  • улучшение работы outlook - функции get_message_by_ могут теперь получать письма из папок (Корзина, Отправленные, Черновики)
  • баг фикс некорректного COM при работе с outlook + исправлены утечки памяти
  • добавлены активности anticaptcha2
  • в C# добавлена работа с anticaptcha2
  • баг фикс при просмотре дерева окон и outlook
  • баг фикс ввода комбинированного языкового текста в оконные интерфейсы
  • баг фикс set_tab_content в RT версиях
  • Chromium обновлен : 109.1.11+g6d4fdb2+chromium-109.0.5414.87
  • Edge обновлен: 109.0.1518.52 (official)
  • баг фикс переводов активностей
  • баг фикс некорректного COM при работе с Outlook + исправлены утечки памяти
  • баг фикс некорректного COM при работе с Excel + исправлены утечки памяти
  • баг фикс некорректного COM при работе с Word + исправлены утечки памяти
  • в excelfile добавлена функция is_opened, для проверки что файл уже открыт
  • добавлен параметр командной строки /check_license при запуске с которым создается текстовый файл is_licensed в котором указано активирована или нет программа
  • улучшен функционал по поиску изображений
  • Tesseract обновлен к версии 5.3.0
  • добавлена команда clipboard->clear
  • баг фикс опечаток в интерфейсе
  • добавлена команда outlook->set_default_folder
  • улучшение работы app->run_as_php - добавлено возвращение результата работы скрипта + если не задан content то выполняется файл по заданному пути
  • добавлена команда app->run_as_python
  • добавлена команда app->run_as_js
  • добавлена команда app->run_as_console
  • баг фикс расписания
  • баг фикс перевода и недостающих параметров в редакторе действий
  • добавлен параметр команднйо строки open_file: для открытия файла в закладке редактора
  • улучшение работы outlook
  • добавлены команды excel :
  • remove_sheet_by_name
  • remove_sheet_by_number
  • add_sheet
  • get_sheet_number_by_name
  • get_sheet_name
  • set_sheet_name
  • get_range
  • обновлен движок Chromium 110.0.25+g75b1c96+chromium-110.0.5481.78
  • обновлены Selenium движки (Edge,Chrome,Yandex)
  • добавлена панель дерева элементов UI
  • обновлен движок Edge 110.0.1587.50
  • баг фикс Менеджера Безопасности для WF
  • в excel->open добавлен параметр password, позволяющий открывать файлы с паролем
  • в excel->save добавлен параметр password, позволяющий сохранять файлы с паролем
  • добавлена команда excel->is_row_hidden - спрятана или видима строка
  • добавлена команда excel->show_row - показать / спрятать строку
  • в excel->get_sheet добавлен параметр only_visible, позволяющий получать только видимые ячейки

7.0.70 (01.03.2023)

  • обновлен движок Chromium 110.0.30+g3c2b68f+chromium-110.0.5481.178
  • обновлен Selenium Edge Driver до версии 110.0.1587.50
  • баг фикс отладочных сообщений outlook
  • баг фикс работы с роботов, защищенных паролем с smtp
  • добавлено дерево UI
  • добавлен инспектор UI
  • улучшение работы excel: get_cell get_row get_sheet добавлен параметр use_value2, (https://learn.microsoft.com/ru-ru/office/vba/api/excel.range.value2)
  • в excel->get_row добавлен параметр only_visibled
  • оптимизация времени загрузки студии
  • добавлен метод ui->is_equal для проверки что это один и тот же ui
  • улучшена работа дерева элементов, окон и ui
  • улучшение вывода ошибок для Python
  • PHP обновлен к версии 8.2.3 (TS)
  • улучшена работа дерева элементов, окон и ui
  • добавлены настройки отображения дерева окон
  • добавлена обработка нового фильтра в pdffile->extract (распознание новых типов картинок)
  • улучшение работы windows->get_screen_width и get_screen_height
  • движок Chromium обновлен до версии 111.2.2+g1b83ff6+chromium-111.0.5563.65
  • улучшен инспектор UI
  • добавлены команды для ui
  • get_text
  • input
  • улучшена работа мыши на виртуалке
  • в инспектор UI добавлены значения по поддерживаемым шаблонам
  • баг фикс textfile->sort (удален лишний перевод строки в конце)
  • добавлен метод ui->get_window_interface
  • улучшена работа ui->input
  • в меню Редактор->Операции добавлена команда "Заменить Табуляции на пробелы в выбранном тексте"
  • в редактор добавлена реакция на перевод строки с учетом отступа на предыдущей строке
  • в windows->get_screen_width и get_screen_height добавлен параметр monitor_number, позволяющий получать разрешение на разных мониторах и параметр with_scale, позволяющий учитывать масштаб
  • добавлен метод windows->get_screen_zoom для получения масштаба на заданном мониторе
  • добавлен метод mail->check_smtp_auth для получения проверки smtp авторизации перед отправкой писем
  • баг фикс разных методов в textfile, которые создавали раньше завершающую строку с переводом строки
  • в ui->get_by_property добавлена возможность искать по частичному соответствию текста (параметр exactly)
  • в ui->get_by_properties добавлена возможность искать по частичному соответствию текста (параметр exactly)
  • в дерево окон добавлена кнопка позволяющая выбрать и сделать скриншот любой части экрана
  • в инспекторе окон улучшен механизм сохранения скриншота окна
  • в инспекторе ui добавлен механизм сохранения скриншота ui
  • по умолчанию теперь все команды ui, windowinterface,dominterface позиционируются в центр элемента представляющего из себя интерфейс (dx=-1 dy=-1)
  • улучшена отработка команд windowinterface->send_mouse_xxx
  • добавлены команды ui->send_mouse_xxx
  • улучшен шаблон Template JS
  • улучшен шаблон Template PY
  • добавлена дополнительная прозрачная для кликов и полупрозрачная для десктопа панель отладки, вызвается из контекстного меню над закладкой панели отладки, после активации через панель задач можно:
  • закрыть из панели задач
  • осуществить перемещение клавишами стрелок и быстрое пермещение с зажатым Ctrl
  • осуществить изменение размеров клавишами стрелок с зажатым Shift и быстрое с зажатыми Ctrl+Shift
  • обновлен движок Chromium : 111.2.7+gebf5d6a+chromium-111.0.5563.148
  • встроенный MS Edge обновлен : 111.0.1661.62
  • Chrome Selenium WebDriver обновлен 111.0.5563.6400
  • Firefox Selenium WebDriver обновлен 0.33.0
  • MS Edge Selenium WebDriver обновлен 111.0.1661.62
  • Tesseract обновлен до версии 5.3.1
  • баг фикс excelfile->add_link при ссылках на другие файлы
  • добавлен Chromium-Gost в поддерживаемые модели
  • улучшена работа Selenium моделей, особенно Headless типа
  • добавлена кнопка на панель инструментов браузера - транслировать скриншоты как видео ряд для селениум моделей
  • в панель отладки добавлены команды:
  • show_extended_debug_pane
  • set_extended_debug_pane_pos
  • set_extended_debug_pane_opacity
  • set_extended_debug_pane_colors
  • добавлена передача событий колесика мыши в Selenium модели браузера
  • улучшена передача событий мыши в Selenium модели браузера
  • добавлена передача двойных кликов событий мыши в Selenium модели браузера
  • добавлена поддержка передачи клавиши Tab
  • улучшена работа с Word документами без офиса
  • Cromium обновлен 112.2.7+gef29713+chromium-112.0.5615.49
  • Selenium Chrome обновлен 112.0.5615.50
  • Selenium MS Edge обновлен 112.0.5615.50
  • встроенный MS Edge обновлен 112.0.1722.34 (official)
  • улучшена работа с ядром JS для селениум моделей
  • баг фикс создания встроенной MS Edge модели браузера
  • баг фикс создания Selenium MS Edge модели браузера
  • баг фикс открытия панели разработчкика при raw->enable_all_streams(true)
  • баг фикс открытия некоторых сайтов при raw->enable_all_streams(true)
  • в метод file_os->get_folder добавлен параметр (level: родительский каталог данного пути на level+1 уровней вверх, при level =-1 - получить полный путь папки, при level=0 - имя последней папки, в которой находится файл)
  • добавлена настройка - разрешить использованеи JS в логах
  • в WF добавлены забытые активности: FTP: получить список файлов и папок в удаленной папке
  • добавлена возможность задания параметров командной строки робота из диалога настроек
  • добавлены параметры ctrl,alt,shift в команды windowinterface: send_key_down + send_key_up
  • добавлены команды для UI: send_key_down + send_key_up
  • добавлена команада windows_os->get_time_zone
  • селениум моденли браузера:
  • сделано изменение курсора над элементами
  • добавлена возможность переключения между попапами через интерфейс (кнопка с книжой вверху браузера)
  • в команду cryptograpy->hash_file добавлена возможность задания алгоритмов: (CNG: sha256,sha384,sha512,md5)
  • Chromium обновлен до версии 112.3.0+gb09c4ca+chromium-112.0.5615.165
  • обновлен питон 3.10.11, добавлен модуль pip
  • добавлен объект selenium для работы с селениум моделями браузера
  • улучшена работа селениум моделей с клавишами и буфером обмена
  • баг фикс работы с яндекс драйвером
  • баг фикс загрузки и совместимости плагинов с MS Workflow
  • улучшены подсистемы отвечающие за работу с графикой, фтп
  • улучшена работа keyboard->send_key с Ctrl Alt в браузере
  • в селениум headless добавлена возможность Copy,Paste
  • переработаны вызовы всех DOM команд селениума на асинхронную модель
  • улучшение работы селениум моделей
  • баг фикс excelfile.add_row на пустом листе
  • добавлен диалог-заставка, показывающийся при страте студии
  • окно сохранения паролей в селениуме отключено
  • добавлена команда word.replace_text - замена текста в документие (в том числе в графических фигурах)
  • добавлена команда outlook.send_image - отправка сообщения - картинки (с подписью)
  • добавлены активности с новыми действиями для Selenium в WF дерево активностей
  • баг фикс открытия (warning) Selenium Edge Headless модели браузера

7.0.71 (15.05.2023)

  • обновлена встроенный Edge: 113.0.1774.35
  • обновлен Selenium Chrome: 113.0.5672.93
  • excel:
  • баг фикс для только что созданной закладки excel
  • get_rows_count
  • add_row
  • add_rows
  • get_cols_count
  • get_cols_count баг фикс вычисления количества столбцов в заданной строке
  • browser.start_video_record добавлен параметр zoom + ускорен и уменьшен итоговый размер видео
  • windows.start_video_record добавлен параметр zoom + ускорен и уменьшен итоговый размер видео
  • улучшены команды word: get_text + repace_text (учтены фигуры содержащие текст)
  • в excel добавлены команды
  • get_cell_font
  • set_cell_font
  • set_cell_font_bold
  • set_cell_font_italic
  • set_cell_font_underline
  • set_cell_font_striketrough
  • set_cell_font_shadow
  • set_cell_font_size
  • set_cell_font_name
  • добавлена команда : word->add_page_break
  • улучшен показа стартовой сплэш-заставки
  • улучшение скорости запуска
  • баг фикс вызова справки по объекту в диалоге добавления кода
  • баг фиксы опечаток и неправильного размещения элементов в диалогах
  • в команды run_as_xxx добавлен вывод ошибок при запуске
  • добавлен метод pdffile->is_pdf_file (быстро проверить что это Pdf файл по заголовку)
  • Chromium обновлен 113.3.5+g0b33855+chromium-113.0.5672.129
  • Edge обновлен 114.0.1823.37
  • Selenium Chrome Webdrive обновлен 114.0.5735.9000
  • улучшение работы pdf->extract_images
  • Chromium обновлен 114.2.12+g7c09f21+chromium-114.0.5735.199
  • баг фикс word->get_text
  • улучшение работы excel->convert
  • баг фикс wordfile->export_all_pages + добавлена возможность экспорта в расширение docx
  • баг фикс webpage.load_web_page для питона
  • улучшение app.quit для питона при использовании сторонних редакторов
  • добавлены итераторы в объекты интерфейсорв на питоне
  • в excelfile добавлены методы:
  • get_cell_color
  • get_cell_background_color
  • добавлен метод : excelfile->set_cell
  • улучшена работа метода : wordfile->export_all_pages
  • Chromium обновлен : 115.3.11+ga61da9b+chromium-115.0.5790.114
  • Selenium Chrome Webdrive обновлен 115.0.5790.17000
  • criptography добавлен методы для работы с токенами авторизации
  • get_totr
  • get_hotr
  • добавлены методы в excelfile
  • set_col_type
  • set_range_type
  • set_cell_number_format (https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.numberingformat?view=openxml-2.8.1)
  • set_col_number_format
  • set_range_number_format
  • добавлен метод excel->update_sheet для обновления данных листа из внешних источников
  • обновлены селениум драйвера для Яндекс - браузера, Хрома и Гост - браузера
  • добавлен метод excel->get_sheets_names
  • добавлена настройка командной строки : /disable_splash:"1" для отключения стартового окна-заставки
  • добавлена настройка для включения и отключения стартового окна-заставки
  • добавлены методы в browser
  • set_cli
  • get_cli
  • Chrome обновлен до версии 116.0.13+g557a56f+chromium-116.0.5845.97
  • добавлена команда word->remove_info для удаления различной вспомогательной информации из word файла
  • "comments"
  • "revisions"
  • "versions"
  • "personalinformation"
  • "emailheader"
  • "routingslip"
  • "sendforreview"
  • "properties"
  • "template"
  • "workspace"
  • "annotations"
  • "serverproperties"
  • "managementpolicy"
  • "contenttype"
  • "taskpanewebextensions"
  • "all"
  • Chromium обновлен до версии 116.0.13+g557a56f+chromium-116.0.5845.97
  • MS Edge обновлен 116.0.1938.62
  • добавлена возможность использовать тип "oracle" в объекте bd
  • сделано удаление в корзину при удалении файлов и папок из панели быстрого старта
  • Chromium обновлен до версии 116.0.23+g375735a+chromium-116.0.5845.189
  • добавлен метод images->get_lines
  • добавлен метод excel->set_range_name
  • добавлен метод excelfile->set_range_name
  • добавлен метод image->create_qr_code
  • добавлен метод windows->shutdown
  • добавлен метод windows->restart
  • добавлен метод windows->logoff

7.0.72 (15.10.2023)

  • Chromium обновлен 117.2.2+ge80c977+chromium-117.0.5938.132
  • баг фикс word->replace для длинных текстов
  • excelfile->insert_col добавлена возможность вставки перед столбцом А при передаче -1 или пустого значения в параметре после какого столбца вставлять
  • excelfile->set_sheet оптимизирован
  • excelfile->set_row оптимизирован
  • исправлены лишние пробелы в pdffile->read
  • Chromium 117.2.4+g5053a95+chromium-117.0.5938.150
  • outlook в get_message_by_xxx добавлено свойство is_readed, для получения просмотра статуса прочтения письма
  • outlook добавлены методы set_message_readed_by_xxx для смены статуса прочтения письма
  • оптимизация инcталла по объему
  • добавлены новые плагины в инсталл по умолчанию
  • Tesserat обновлен до версии 5.3.3
  • баг фикс удаления лишних файлов
  • добавлен парfметр readed в функции работы с письмами в outlook
  • в outlook добавлены методы:
  • get_message_count_by_from
  • get_message_count_by_subject
  • get_message_count_by_text
  • Chromium обновлен 118.6.8+ge44bee1+chromium-118.0.5993.117
  • улучшение работы image->unborder
  • обновлен Selenium Chrome Web Driver к версии 119.0.6045.10500
  • PHP обновлен к версии 8.2.12
  • улучшение работы outlook
  • добавлены методы в outlook
  • get_accounts
  • logon
  • logoff
  • менеджер безопасности - для каждого пользователя Windows - свои данные
  • excelfile->set_cell добавлена возможность задания формул (если value начинается со знака '=')
  • в шедулер добавлена возможность сброса последнего запуска задачи через контекстное меню
  • в шедулер добавлена возможность принудительного запуска задачи через контекстное меню
  • улучшение работы дерева UI элементов
  • баг фикс работы настройки создания резервных копий при сохранении файла
  • баг фикс отображения точек останова
  • добавлен метод pdffile->insert_image
  • добавлена возможность изменения php.ini из настроек
  • Chromium обновлен 119.1.2+g2677830+chromium-119.0.6045.105
  • в шедулер добавлена возможность просмотра лога запуска задач
  • обновлена библиотека работы компьютерной графики
  • добавлен метод excel->export_to_access
  • обновлен встроенный Edge браузер: 119.0.2151.44
  • обновлен Selenium Web Driver Edge: 119.0.2151.44
  • улучшена работа метода pdffile->read
  • добавлен метод excelfile->split_sheet_by_rows
  • Chromium обновлен 119.4.3+gc76a3b9+chromium-119.0.6045.159
  • в RT добавлен пункт Активация в меню Сервис
  • улучшение работы excelfile->get_rows_count и excelfile->get_сols_count
  • в свойства задачи по расписанию (шедулер) добавлена опция "Останавливать выполнение задачи в нерабочее время"
  • баг фикс excel->run_macro_by_name
  • баг фикс менеджера безопасности
  • улучшение работы метода mail->smpt_connect (возврат соединение успешно или нет)
  • баг фикс работы получения сообщения в объекте mail
  • добавлена настройка инспектора окон - выбор окна по левой или средней кнопки мыши (по умолчанию сделана средняя)

7.0.73 (15.12.2023)

  • обновлен Chromium 120.1.8+ge6b45b0+chromium-120.0.6099.109
  • баг фикс запуска накладывающихся друг за другом задач по расписанию
  • баг фикс get_sheet для пустых листов
  • баг фикс set_sheet для пустых листов
  • баг фикс опечаток и горячих в подсказкам по горячим клавишам
  • обновлен Edge 120.0.2210.61 (official)
  • обновлен Selenium Chrome WebDriver
  • улучшена конвертация в MS Access: excel->export_to_access
  • Обновлен Chromium 120.1.10+g3ce3184+chromium-120.0.6099.129
  • улучшена работа команды excelfile.set_sheet
  • добавлена команда : folder->get_all_files
  • добавлена команда : folder->get_all_folders
  • Chromium обновлен 120.2.5+g618ea46+chromium-120.0.6099.216
  • FireFox WebDriver обновлен до последней версии
  • в excel->convert добавлен параметр delimeter для указания разделителей во воходном файле (; или ,)
  • улучшение работы команды files_os->un7z - поддержка 001 и z01 типов (архивов из нескольких частей)
  • Chromium обновлен 120.2.7+g4bc6a59+chromium-120.0.6099.234
  • в pdffile->read добавлен параметр method, позволяющий задавать метод чтения pdf фaйла ("","docnet","pdfpig")
  • улучшение textfile->add_string_to_file - новый файл создается в кодировке Utf-8 без BOM
  • улучшение WF ExcelFile:Get_Sheet - вместо JArray используется string[,]
  • app.exitapp выполняется даже в том случае если программа занята выполнением какой либо другой задачи
  • баг фикс $windows->screenshot при скриншоте 2го монитора
  • баг фикс интерфейса WF при выдаче подсказок по параметрам некоторых команд
  • баг фикс недостающих параметров в некоторых команд WF
  • обновлен Edge
  • в pdffile->combine добавлен параметр method для указания библиотеки для чтения pdf (может принимать значения "" и "docnet")
  • в excel добавлены методы работы с авто-фильтрами
  • add_autofilter
  • clear_autofilters
  • обновлен Chromium 121.3.7+g82c7c57+chromium-121.0.6167.160
  • добавлен объект webdav для работы с облачными хранилищами по протоколу WebDav (например Яндекс.Диск и команды)
  • connect
  • disconnect
  • disconnect_all
  • list_files
  • list_folders
  • is_directory_exists
  • create_directory
  • remove_directory
  • clear_directory
  • is_file_exists($server,$remote_file)
  • get_file
  • put_file
  • remove_file
  • rename
  • добавлен объект s3 для работы с облачными хранилищами по протоколу S3 (например Яндекс.Облако и команды
  • connect
  • disconnect
  • disconnect_all
  • list_files
  • list_folders
  • is_directory_exists
  • create_directory
  • remove_directory
  • clear_directory
  • is_file_exists($server,$remote_file)
  • get_file
  • put_file
  • get_folder
  • put_folder
  • remove_file
  • в mail->send_mail_via_smtp добавлена проверка валидности емейл адресов
  • Chromium обновлен 121.3.13+g5c4a81b+chromium-121.0.6167.184
  • folder->rename баг фикс при повторяющихся путях
  • исправлен баг подстановки параметров в редакторе кода по всплывающей подсказке
  • исправлен баг вывода русского текста в панель отладки при выполнении питон кода
  • добавлен метод file_os->wait_copy для ожидания окончания копирования файла
  • улучшение работы excelfile->set_cell_type
  • добавлен метод excelfile->clear_range для очистки диапазона ячеек
  • excel->convert поддерживает теперь конвертацию в xlsb
  • в методы app добавлен параметр timeout, для длительных операций
  • run_as_bat
  • run_powershell_script
  • run_as_console
  • run_as_php
  • run_as_js
  • run_as_python
  • Chromium обновлен 122.1.12+g6e69d20+chromium-122.0.6261.112
  • обновление встроенных в Питон библиотек
  • обновление Selenium драйверов под текущие версии браузеров
  • в s3 добавлены методы:
  • get_size - получить размер файла
  • get_meta - полeчить прикрепленную к файлу мета информацию
  • в метод textfile->add_string_to_file добавлен параметр encoding для указания кодировки
  • Chromium обновлен 122.1.12+g6e69d20+chromium-122.0.6261.112
  • Chromium обновлен 123.0.6+ge4984ab+chromium-123.0.6312.46
  • улучшение выдачи подсказок по параметрам функций в редакторе
  • browser->set_default_download баг фикс при задании путей в линукс стиле
  • в pdffile->read_page добавлен параметр method, указывающий через какую библиотеку мы будем работать с файлом pdf (по аналогии с методом read)
  • в WF исправлен баг с добавлением цикла ForEach
  • в объектах excel,excelfile, в методе autosize_col добавлена возможность задавать несколько столбцов используя разделитель ";" и дипазон столбцов, используя разделитель "-" , например "1-3;5;8-10;12"
  • добавлена команда excel->clear_cell для очистки заданных ячеек
  • в объектах excel,excelfile, в методе clear_cell добавлена возможность задавать несколько столбцов используя разделитель ";" и дипазон столбцов, используя разделитель "-" , например "1-3;5;8-10;12"
  • добавлены методы в объект excel
  • copy_range_to_clipboard - копировать диапазон ячеек в буфер обмена
  • cut_range_to_clipboard - вырезать диапазон ячеек в буфер обмена
  • paste_range_from_clipboard - вставить из буфера обмена диапазон ячеек
  • в excelfile добавлен метод move_range для копирования диапазона ячеек в другой лист
  • в excelfile добавлен метод copy_range для перемещения диапазона ячеек в другой лист
  • баг фикс опечаток в интерфейсе действий WF
  • баг фикс excel->dedupe_sheet
  • в метод excel->merge_cells добавлен параметр across = false, указывающий как объединять ячейки (true для объединения ячеек в каждой строке указанного диапазона в виде отдельных объединенных ячеек)
  • добавлен метод webpage->html_to_text для перевода произвольного куска html в текст
  • улучшение работы excelfile->set_col_type при задании числового типа для столбца с числами, содержащими запятую
  • улучшение работы excelfile->set_range_type при задании числового типа для столбца с числами, содержащими запятую
  • хранение настроек путей к папке MyRobots, путей к PHP,JS,Python интерпретаторов и последних и открытых в редакторе файлов и других путей сделано относительным
  • добавлен метод excelfile->set_col для задания данных столбца
  • добавлен метод excelfile->get_col для получения данных столбца
  • в метод excelfile->dedupe_sheet, добавлен параметр header_length, позволяющий указать высоту заголовка (если он есть)
  • добавлен метод pdffile->get_page_number_by_text, для поиска номера страницы с заданным текстом
  • добавлен метод word->read_page, для чтения текста страницы по ее номеру
  • улучшено отображение JSON файлов в редакторе
  • улучшено отображение HTML файлов в редакторе
  • баг фикс смены браузера через настройки
  • апгрейд версии встроеного браузера MS Edge
  • в Python добавлен по умолчанию пакет openpyxl
  • обновление Selenium Chrome драйвера
  • улучшение работы функции file_os->get_name - если путь - папка то выдает пустую строку.
  • баг фикс excelfile->get_row
  • баг фикс сохранения скриншотов картинок без размеров
  • улучшение работы метода: word->convert (убраны лишние диалоги и ошибка конвертации xlsx)
  • finereaderOCR->convert добавлена обработка диалогов запроса паролей
  • Chromium обновлен 124.3.2+gb6e819b+chromium-124.0.6367.119
  • объект telegram переведен на новый объект, обновлены все существующие методы
  • telegram.authorization добавлено возможность вызывать кодом и с паролем
  • telegram добавлены методы
  • get_chats - получить список всех чатов (группы и каналы)
  • get_members - получить список пользователей группы или канала (если у вас есть права администратора в этих каналах)
  • get_dialogs - получить список всех диалогов (есть возможность получения диалогов в заданной папке)
  • get_chat_messages - получить сообщения чата (есть возможность получения сообщение со смещением и до определенной даты)
  • find_chat_messages - найти сообщения чата (есть возможность получения сообщение со смещением и в диапазоне дат)
  • send_message_to_chat - отправить сообщение в чат
  • добавлен метод excelfile->get_name_for_new_sheet
  • косметические изменения интерфейса (опечатки и перевод)
  • Chromium обновлен 124.3.5+gff7dcd8+chromium-124.0.6367.119
  • добавлены методы для telegram:
  • get_chat_id_by_name - получить ID чата по его имени
  • join_chanel - присоединится к каналу
  • send_media_to_chat - отправить медиафайл в чат
  • добавлен методы в mail:
  • get_message_by_id_via_pop3 - получить сообщение по Message-Id (POP3)
  • get_message_by_id_via_imap - получить сообщение по Message-Id (IMAP)
  • delete_message_by_id_via_imap - удалить сообщение по Message-Id (IMAP)
  • move_message_by_id_via_imap - переместить сообщение по Message-Id в другую папку (IMAP)
  • save_message_attachments_by_id_via_imap - сохранить вложения сообщения по Message-Id (IMAP)
  • set_message_readed_by_id_via_imap - изменить статус прочитанности сообщения по Message-Id (IMAP)
  • методы mail.get_message_by_xxx_via_imap - теперь возвращают также Message-Id и IsReaded
  • добавлены методы excel
  • set_sheet_zoom
  • set_row_height
  • set_col_width
  • добавлены методы excelfile
  • set_sheet_zoom
  • set_row_height
  • set_col_width
  • Chromium обновлен 124.3.8+gc712fb4+chromium-124.0.6367.207
  • добавлены методы excelfile
  • add_autofilter
  • conditional1 может быть cледующим: "Top", "Bottom", "AboveAverage", "BelowAverage", "EqualTo", "NotEqualTo", "GreaterThan", "LessThan", "EqualOrGreaterThan","EqualOrLessThan", "BeginsWith", "NotBeginsWith", "EndsWith", "NotEndsWith", "Contains", "NotContains"
  • conditional2 может быть cледующим: "EqualTo", "NotEqualTo", "GreaterThan", "LessThan", "EqualOrGreaterThan","EqualOrLessThan", "BeginsWith", "NotBeginsWith", "EndsWith", "NotEndsWith", "Contains", "NotContains"
  • operation1 может быть cледующим: "and", "or", "&&", "||"
  • clear_autofilters
  • добавлен парметры в excelfile->remove_col : shift_to_left, указывающий сдвигать ячейки вправо или влево при удалении столбца
  • добавлен метод excelfile->add_rows - для добавления нескольких столбцов
  • добавлен метод excelfile->removet_sheets_by_name - для удаления нескольких листов по имени
  • обновлен Chrome Selenium Driver
  • обновлен Gost Selenium Driver
  • добавлены методы для telegram:
  • get_last_messages - получить последние сообщения
  • send_media_to_chatget_messages_count - получить количество сообщений
  • repost_message - сделать репост сообщения

7.0.74 (27.05.2024)

  • в excelfile, excel-> set_sheet добавлены параметры row,col для указания начального места встаки массива данных + добавлена возможность вставлять массивы переменной длинны
  • excelfile.get_sheets_count: результат возвращает как int
  • улучшение работы browser->close_all_tabs - Перед закрытием останавливает все процессы в закрываемых бразуерах
  • telegram добавлен параметр schedule_date, позволяющий задавать дату отправки сообщения в методы:
  • send_media_to_chat
  • send_message_to_chat
  • send_message_to_contact
  • баг фикс работы: telegram->send_message_to_contact
  • обновлен движок MS Edge : 125.0.2535.67 (official)
  • баг фикс редактирвоания задачи расписания раз в N минут
  • Edge Selenium обновлен 125.0.2535.85 (Официальная сборка) (64-разрядная версия)
  • Chromium обновлен 125.0.21+gc8b1a8c+chromium-125.0.6422.142
  • баг фикс работы excel->add_rows
  • обновлен Chrome Selemium драйвер: 126.0.6478.6100
  • улучшенн вывод в лог команд : добавлена дата
  • баг фикс редактирования задачи расписания
  • баг фикс работы парметра mask в folder->get_all_folders
  • excelfile->copy_sheet(path, sheet, newSheetName) копировать указанный лист документа и вставлял его как новый лист в тот же документ;
  • excel->convert() баг фикс при указании в качестве парметра delimeter запятую (,) для исходного файла в CSV;
  • libreOffice.convert добавлен параметра timeout для WF;
  • excelfile->split_sheet_by_rows() в редакторе всплывает подсказка "разбить закладку по строкам" заменена на "лист".
  • добавлена возможноcть показа мультистрочных комментарие по всплывающей подсказке
  • обновлен Chrome Selemium драйвер: 127.0.6533.7200
  • Chromium обновлен 126.2.18+g3647d39+chromium-126.0.6478.183
  • баг фикс excel->dedupe_range при сложных диапазонах и условиях
  • добавлен параметр в функцию wordfile->read
  • добавлен объект libreOfficeCalc и WF
  • в textfile->sort и dedupe добавлен параметр encoding, позволяющий явно задавать кодировку текстового файла, например "windows-1251","utf-8"
  • переименован метод excelfile->set_col_number_format на set_col_format (старый вызов тоже работает)
  • переименован метод excelfile->set_cell_number_format на set_cell_format (старый вызов тоже работает)
  • переименован метод excelfile->set_range_number_format на set_range_format (старый вызов тоже работает)
  • методы excelfile->set_xxx_type объявлены устаревшими, вместо них надо использовать set_xxx_format
  • убран лишний параметр в функции textfile/get_all_files_in_folder
  • баг фикс ввода точки при вводе с клавиатуры для селениум моделей браузера
  • word->open, второй параметр по умолчанию read_only = true
  • обновлен Chromium 127.3.5+g114ea2a+chromium-127.0.6533.120
  • добавлена команда textfile->get_encoding, позволяющая получить текущую кодировку текстового файла
  • обновлен Chrome Selenium Driver : 128.0.6613.8600
  • обновлен Edge Selenium Driver : 128.0.2739.56
  • добавлен функциональный объект excelDataReader чтение xls, xlsx файлов Excel;
  • исправлена команда excelfile->add_rows() не передавался аргумент add_rows.
  • баг фикс работы word->convert (корректная очистка после работы)
  • небольшие исправление интерфейса
  • в WF Word.Convert добавлен таймаут
  • добавлен элемент WF: Word.Kill
  • добавлено больше плагинов в базовую установку
  • добавлена папка Plugin Sample со всем необходимым, чтобы создавать собственные плагины
  • добавлена команда app->start_rest_service(pathy,port,host), позволяющая создавать REST сервис на заданном host:port,
  • по обращению к которому запускается скрипт path, которому передаются argv из PUT/GET запроса (например http://localhost:4000/Run?param=1&param2=2)
  • добавлена команда selenium->set_model_binary_path (укажем где брать бинарники для селениум моделей браузера)
  • добавлена команда selenium->foreground() (переместить окно селениума на передний план)
  • обновлен драйвер Chrome Selenium к версии 128.0.6613.13700
  • добавлена команда selenium->maximize() (максимизировать окно селениума)
  • добавлена команда selenium->minimize() (минимизировать окно селениума)
  • добавлена команда selenium->fullscreen() (перевести в полноэкранный режим окно селениума)
  • добавлена команда selenium->set_pos() (передвинуть окно селениума в заданные координаты)
  • добавлена команда selenium->set_size() (изменить размер окна селениума)
  • улучшение передачи аргументов CLI Chrome Selenium (сделано рабочим load-extension в том числе для загрузки плагинов из папок)
  • улучшение работы selenium->add_plugins - сделана возможность передачи плагина не только через crx файл, но и через папку с плагином
  • при работе функций get_message_by_xxx дополнительно теперь получаются поля:
  • To - Cc - Bcc - Priority
  • улучшена работа input функций в Selenium
  • Chromium обновлен
  • Chrome Selenium WebDriver обновлен
  • улучшение перевода WF
  • обновлен Node.js
  • улучшен инсталл (можно сразу выбирать php,python,js конфигурации)
  • баг фикс работы browser.clear_local_storage для селениум моделей
  • обновлен Chromium : 130.1.9+gfc42567+chromium-130.0.6723.70

7.0.75 (22.11.2024)

  • улучшен инсталл
  • добавлена поддержка sqlite для объкта bd
  • расширена всплывающая подсказка для Templates типов с PHPDoc;
  • исправлена авто-подстановка типов аргументов функции в редакторе полей при вводе имени функции и символа скобки;
  • ФО excel команда get_row() обработка случая если строка пустая, обработка случая если только одна ячейка (ошибка), корректная обработка итоговой строки, добавлен параметр only_visible = false (только не скрытые ячейки), в итоге get_row(path, sheet, row, use_value2 = true, only_visible = false);
  • ФО excel excel->get_sheet_number_by_name() тип возврата при плохом исходе -1 (было false);
  • ФО excel Templates (PHP) добавлены PHPDoc для всех команд;
  • ФО excelfile Templates (PHP) корректировка PHPDoc для некоторых команд;
  • ФО excel Templates (PHP) добавлены PHPDoc для всех команд;
  • XHEExcel дял команд set_sheet(), set_row(), create() исправлена ошибка: если в одной из ячеек данных для вставки в файл значение содержит двойные кавычки, то команда не выполняется;
  • Обновлен CEF 131.2.7+g9a14dc9+chromium-131.0.6778.86;
  • Обновлен ChromeDriver EdgeDriver;
  • в команду excelfile->clear_range добавлен парметр option для указания что очищать в регионе (строка - комбинацией значений Contents, DataType, NormalFormats, ConditionalFormats, Comments,
  • DataValidation, MergedRanges, Sparklines, AllFormats, AllContents, All через |, например "Comments|MergedRanges", по умолчанию "All");
  • улучшение стабильности выполнения JS в Chromium;
  • папкка, задаваемая командой browser->set_dafault_download_folder теперь хранится в настройках, и команда работает для селениум моделей (полсе нее надо выполнить browser->recreate);
  • ФО excel новая команда copy_range_and_paste_to_range() - копировать значения ячеек из диапазона и вставить значения в другой диапазон;
  • ФО excel новая команда cut_range_and_paste_to_range() - вырезать значения ячеек из диапазона и вставить значения в другой диапазон;
  • ФО новая команда excelfile get_range() - получить содержимое диапазона как массив;
  • ФО новая команда excelfile get_and_clear_range()- получить содержимое диапазона как массив и очистить;
  • ФО excel баг фикс для set_sheet() - ошибка для значений с двойными кавычками;
  • ФО excel баг фикс для set_row() - ошибка для значений с двойными кавычками;
  • ФО excel баг фикс для create() - ошибка для значений с двойными кавычками;
  • добавлена команды excelfile->set_range_border
  • баг фикс очистки куков под селениум
  • баг фикс работы сабмитера - первод на FB3
  • добавлен метод : app.get_plugin_status - получающий статус плагина ("plugin not found","plugin not enabled","plugins not enabled","installed")
  • баг фикс деструктора dominterface и windowinterface

7.0.76 (21.07.2026)

  • обновление библиотек Selenium
  • добавлены команды ftp:
  • put_directory - залить папку на сервер
  • get_directory - скачать папку с сервера
  • добавлена команда app->get_settings_folder для получения текущей папки с настройками программы (актуально для случая изменения папки через CLI /settings_folder:)
  • ФО ftp коррекция названий параметров для методов: put_directory, get_directory, get_file, put_file. Коррекция: local_file->local_folder, remote_file->remote_folder, flag_fail_exist->flag_file;
  • ФО ftp для connect() добавлен параметр 'ecnoding';
  • ФО ftp для методов command(), get_file(), put_file() удалены параметры file_attributes, transfer_attributes, context (не были реализованы);
  • ФО ftp Добавлен метод command_texts();
  • ФО ftp обновлены тесты для PHP, CS, JS, PY;
  • добавление TimeStamp в логи коннектов smpt,imap,pop3
  • Tesseract OCR обновлен до 5.5.0
  • ФО ftp перведен в асинхронный режим исполнения команд;
  • ФО ftp исправлена ошибка некорректной работы с кодировкой отличной от UTF-8;
  • добавлена команда debug->get_editor_text для получения всего или выбранного текста в редакторе;
  • ФО excelfile добавлена команда get_sheet_page() для чтения Листа Excel файла постранично. Команда внесена в WF;
  • ФО excelfile баг фикс критический сбой в библиотеке при чтении значения из ячейки типа формула. Если ячейка типа формула, то получем ее кэшированное значение. Фикс внесен для команд get_sheet(), read_sheet(), get_row(), copy_row(), get_col(), get_cell();
  • добавлена команда debug->get_cur_tab_path для получения путь к файлу в текущей закладке редактора
  • обновлены библиотеки и селениум драйвера
  • обновлен встроенный Ms Edge
  • баг фикс задвоения объектов в редакторе при подсказках
  • баг фикс задвоения объектов в диалоге добавления кода
  • обновлены библиотеки и селениум драйвера до последних версий
  • обновлен встроеный Chromium 133.4.2+g0852ba6+chromium-133.0.6943.12
  • добавлен метод mail->add_message_via_imap для добавления сообщения в заданную папку через IMAP
  • улучшено отображение плагинов - окон (немодальные плагины показываются в таскбаре)
  • добавлены методы: $bd->query_dicts и $bd->query_results для получения результатов запроса в виде словаря и массива
  • баг фикс работы bd для sqlite
  • по умочланию добавлены плагины
  • AnythingLLM
  • Docker
  • CodeAssistant
  • LMStudio
  • Ollama
  • обновлен плагин паспорт робота
  • добавлена переменная с типом String[,] при создании нового WF
  • добавлены Http активности в панель WF
  • добавлено много новых активностей в раздел Базовые
  • Словари
  • Дата и время
  • Динамические переменные
  • Значения
  • Guid
  • Операции
  • Сравнения
  • добавлено несколько новых активностей в раздел работы со строками
  • добавлены методы для mail
  • get_message_by_attachment_name_via_pop3
  • get_message_by_attachment_name_via_imap
  • при получении письма mail (pop3,imap) теперь получаем имена вложений
  • добавлено в команде browser->send_post_query возможность добавления двух и более дополтьельных заголовков, разделенных \n
  • добавлен парметр timeout к pdffile->get_pages_count
  • увеличен таймаут по умолчанию для WF команд
  • баг фикс mail.get_massage_by_xxx
  • баг фикс mail.get_message_by_attachment_name
  • баг фикс bd с типом sqlite
  • мелкие улучшение инсталятора и интерфйеса платформы
  • обновление селениум драйверов
  • улучшена справочная информация о методах шаблона
  • существенное ускорение и улучшение работы функции pdffile->combine для method="docnet"
  • баг фикс таймаута ожидания при выполнении внешних команд app->run_as_bat app->shell_execute
  • ФО window исправлена ошибка при вызове команды get_by_hwnd()
  • WindowInterface исправлена ошибка замена типа возврата int[] на string с разделитлем точка с запятой для get_all_child_by_text() and get_all_child_by_class() замена типа возврата int[] на строку с разделитлем точка с запятой
  • добавлены новые методы в объект outlook
  • get_message_by_category
  • get_message_by_attachment_name
  • get_message_by_id
  • get_message_categories_by_id
  • add_message_categories_by_id
  • remove_message_categories_by_id
  • добавлен новый метод в объект mail
  • add_message_flag_by_id_via_imap
  • добавлен новый объект msexchange
  • clipboard добавлены новые методы
  • Работа с изображениями
  • get_image() - получение изображения в формате base64
  • put_image(base64Image) - установка изображения из base64 строки
  • has_image() - проверка наличия изображения в буфере
  • Работа с файлами
  • get_files() - получение списка файлов в формате JSON
  • put_files(files) - установка списка файлов
  • has_files() - проверка наличия файлов в буфере
  • Работа с форматами данных
  • get_data(format) - получение данных в указанном формате
  • put_data(format, data) - установка данных в указанном формате
  • has_format(format) - проверка наличия данных в формате
  • get_formats() - получение списка доступных форматов
  • Работа с RTF
  • get_rtf() - получение RTF-текста из буфера
  • put_rtf(rtfText) - установка RTF-текста в буфер
  • Работа с аудио
  • get_audio() - получение аудио-данных в формате base64
  • put_audio(base64Audio) - установка аудио из base64 строки
  • Утилитарные методы
  • get_size() - получение размера данных в буфере
  • is_empty() - проверка, пуст ли буфер обмена
  • get_info() - получение информации о содержимом буфера
  • Работа с метаданными
  • get_source_url() - получение URL источника из буфера
  • put_source_url(url) - установка URL источника в буфер
  • Обновлены шаблоны clipboard для всех языков (PHP, JavaScript, Python, C#)
  • Добавлены тесты для всех новых методов clipboard
  • telegram добавлены новые методы
  • Работа с каналами
  • create_channel() - создание нового канала
  • create_supergroup() - создание супергруппы (мегагруппы)
  • change_channel_title() - изменение названия канала
  • change_channel_description() - изменение описания канала
  • set_channel_username() - установка username для канала
  • invite_users_to_channel() - приглашение пользователей в канал
  • get_channel_subscribers() - получение списка подписчиков канала
  • get_channel_admins() - получение списка администраторов канала
  • promote_to_channel_admin() - назначение администратора канала
  • publish_to_channel() - публикация сообщений в канал
  • publish_media_to_channel() - публикация медиа файлов в канал
  • create_channel_invite_link() - создание ссылки-приглашения в канал
  • get_channel_info() - получение информации о канале
  • Работа с группами
  • create_group() - создание обычной группы
  • create_megagroup() - создание супергруппы (мегагруппы)
  • change_group_title() - изменение названия группы
  • invite_users_to_group() - приглашение пользователей в группу
  • get_group_members() - получение списка участников группы
  • get_group_info() - получение информации о группе
  • create_group_invite_link() - создание ссылки-приглашения в группу
  • Получение информации из чужих групп
  • get_group_info_by_link() - получение информации о группе по ссылке
  • get_group_statistics_by_link() - получение статистики группы по ссылке
  • get_group_messages_by_link() - получение сообщений из группы по ссылке
  • search_group_messages_by_link() - поиск сообщений в группе по тексту
  • get_group_members_by_link() - получение участников группы по ссылке
  • get_group_members_count() - получение количества участников группы
  • get_group_media_messages_by_link() - получение медиа сообщений из группы
  • get_group_messages_by_hashtag() - получение сообщений с хештегами
  • get_group_id_from_link() - получение ID группы из ссылки
  • check_group_exists() - проверка существования группы
  • get_group_messages_by_date() - получение сообщений за определенный период
  • ФО excelfile новая типизация. Если параметр set_all_cell_values_as_string = true, то все значения для ячейки будут строковые. \nЕсли set_all_cell_values_as_string = false (по умолчанию) для изменения ячеек тип данных для значения ячейки по JSON типизации, если в словарь типов колонок содержит данные о типах для этого файла иЛиста, то типы определяются по словарю. Для команд: add_row, add_rows, ser_col, set_cell, set_row, set_sheet. Добавлены команды для упралвения словарем колонок: remove_column_types_dict, set_column_types_dict.
  • ФО mail улучшена работа с протоколом IMAP. Добавлена команда set_limit() для установки значения лимита глубины прохода при поиске писем (по умолчанию Limit = 5000);
  • XHEInterfaces, XHEWindowInterfaces, XHEUIS исправлено: не добавлять в коллекцию элемент с пустым номером или с номером -1;
  • XHEInterfaces, XHEUIS для PHP исправлена ошибка приведения типов для конструктора;
  • XHEInterfaces Python исправлен сбой для вызова методов типичных для XHEInterface на объекте коллекции XHEInterfaces (для ограниченного набора команд)
  • XHEInterfaces JS исправлен сбой не хвататет ссылок на модули классов;
  • xhe_table Добавлены команды add get_rows_count_by_number, add get_cols_count_by_number
  • Для всех ФО добавлены PHPDoc для всех команд;
  • Для всех ФО удалены устаревшие классы Compatable;
  • добавлены функции в объект sound для работы с нейросетями (TTS/STT):
  • text_to_speech - преобразование текста в звук через OpenAI API или локальные инструменты (piper-tts)
  • параметры:
  • method - метод преобразования ("api" по умолчанию или "local")
  • text - текст для преобразования (обязательный)
  • output_path - путь к выходному аудиофайлу (обязательный)
  • voice - голос для синтеза (для api: "alloy", "echo", "fable", "onyx", "nova", "shimmer", по умолчанию "alloy"; для local: имя модели голоса, по умолчанию "ru_RU-denis-medium")
  • model - модель для api ("tts-1" или "tts-1-hd", по умолчанию "tts-1")
  • api_key - ключ OpenAI API (если не указан, берется из настроек)
  • timeout - таймаут выполнения в секундах (по умолчанию 60)
  • для method="api": поддерживаются форматы .mp3, .opus, .aac, .flac
  • для method="local": поддерживается формат .wav
  • speech_to_text - распознавание речи из аудиофайла через OpenAI Whisper API или локальные инструменты (whisper.cpp)
  • параметры:
  • method - метод распознавания ("api" по умолчанию или "local")
  • audio_path - путь к аудиофайлу для распознавания (обязательный)
  • language - код языка (2 символа, например "ru", "en"; для api опциональный, для local по умолчанию "ru")
  • timeout - таймаут выполнения в секундах (по умолчанию 60)
  • model - модель для local (по умолчанию "ggml-base.bin")
  • api_key - ключ OpenAI API (если не указан, берется из настроек)
  • для method="api": поддерживаются форматы .mp3, .mp4, .mpeg, .mpga, .m4a, .wav, .webm (максимальный размер файла 25MB)
  • для method="local": поддерживаются различные форматы, поддерживаемые whisper.cpp
  • ФО LibreOffce добавлены методы чтения файлов ODT как текстовые блоки;
  • ФО Keyboard обновлены методы для ввода символов в Браузере 'send_key', 'send_key_down', 'send_key_up' исправлен ввод сочетаний клавиш и определение клавиш по alt коду;
  • ФО Keyboard в методы для ввода символов в Браузере 'send_key_down', 'send_key_up' добавлены параметры 'ctrl', 'alt', 'shift' по аналогии с 'send_key';
  • Добавлена ​​турецкая локализация для классов пользовательского интерфейса и API;
  • Обновлены тесты в пвпке TestSamples";
  • Добавлен ФО Logger для записи логов в файлы, панель отладки или базу данных SQLite;
  • Добавлен AI чат;
  • автоматического назначения значения глобальной переменной xhe_host из Environment процесса исполнения для скриптов PHP, PY, CS, C#. Позволит избегать ошибок при смене порта приложения. Образец: $xhe_host = getenv("RPABOT_HOST_URL");
  • обновлены файлы шаблонов создания файлов из меню Файл и создание времменого файла из выделенного кода, для всех языков с учетом новых методов и параметров;
  • обновлены библиотеки CefSharp для Браузеров версия 147.0.100;

7.0.78 (24.09.2026)

  • ИИ Ассистент: генерация PHP-проектов робота:
  • пустая папка проекта получает каркас сама (init, tools/core, слайсы, AGENTS.md), ассистент запускает робота только через среду - из консоли API недоступен;
  • исправлено: выгрузка в CSV падала с "Class CsvHelper not found" во всех новых проектах робота;
  • исправлено: за один запрос агент делал не больше 25 шагов и обрывался на чтении проекта - лимит поднят до 60 и настраивается;
  • исправлено: разные команды в терминале считались повтором и обрывали ход как «зацикливание»;
  • исправлено: вложенный субагент мог держать ход «молча» десятки минут - тулз task выключен во всех режимах.
  • Браузеры: движки обновлены до последних версий (151, CefSharp / CEF 151.3.240);
  • ИИ Ассистент (панель ИИ чата):
  • волна новых возможностей: пикер элемента (кнопка-прицел дает локатор-сниппет), скриншот при любой ошибке верификации, офлайн-каталог частотных методов при выключенном MCP, бриф перед написанием скрипта, тосты и звук при завершении задачи и запросе к пользователю;
  • применение правок до записи файла: диалог с диффом - Отклонить / Применить / Применить все для задачи;
  • /replay - повторный прогон без агента со сверкой живого запуска (заголовок, URL, артефакт);
  • честный линт скрипта при отсутствии интерпретатора;
  • вкладка нового чата, очередь сообщений во время работы агента, статусная панель агента с деталями;
  • композер: @-упоминания (файл, браузер, лог, вкладка и др.), слеш-команды, меню «еще» (копия и экспорт чата), кнопки действий сообщения;
  • откат правок: Отклонить карточку, Откатить шаг (все файлы шага агента);
  • справка в панели: обновлен список «Что получается» по подтвержденным сценариям;
  • ИИ Ассистент (панель ИИ чата): исправления:
  • тултип кнопки сворачивания панели инструментов теперь меняется «Свернуть»/«Развернуть» по состоянию;
  • вкладка «Новый чат» появляется сразу при создании черновика;
  • выравнивание кнопок и комбинации режимов композера, добавлены недостающие иконки;
  • локализация тултипов и подписей панели (англ/рус/тур);
  • ИИ Ассистент:
  • поддержка прокси HTTP/HTTPS/SOCKS5: общая настройка и отдельно на провайдера;
  • настройки скорости ответа: отключение thinking, сокращённый набор инструментов, уменьшенный контекст;
  • стартеры с вкладками для быстрого запуска типовых задач;
  • закреплённый статус-бар с прогрессом по этапам выполнения;
  • короткие имена моделей в списке выбора;
  • офлайн-каталог документации API (PHPDoc) для подсказок без интернета;
  • ИИ Ассистент: исправления:
  • настройки приложения сохраняются атомарно — защита файла настроек от повреждения при сбое;
  • исправлен сбой в load_web_page при коротких URL;
  • убраны зашитые сетевые учётные данные из impersonate_user;
  • ИИ Ассистент: настройка «Свернуть карточки инструментов» сворачивает и одиночные карточки (раньше оставались развёрнутыми);
  • ИИ Ассистент: стрим с thinking больше не обрывается через 30 с паузы и не запускает второй запрос без потока — простой считается по таймауту запроса, сломанный SSE по-прежнему повторяется без стрима;
  • ИИ Ассистент: методы API модель берёт через `search_api` из Templates (и при MCP off); неизвестный метод в записи указывает на этот тул, а не «включи MCP»;
  • ИИ Ассистент: PHP DOM — только `->`, не `::`; `get_by_*` даёт XHEInterface (`$el->set_value`), не аргумент для `set_value_by_name`; `WINDOW::$window` — окно ОС, не поле страницы;
  • ИИ Ассистент: нет `WEB::$keyboard` (это `SYSTEM::$keyboard` / `$el->send_key`); нет CSS-селекторов в API; `search_api` без `__` в имени тула всё равно находится;
  • ИИ Ассистент: пустые SSE-строки и keepalive не сбрасывают таймаут стрима — зависшая модель обрывается по лимиту запроса;
  • ИИ Ассистент: сумма токенов — кольцо заполнения контекста (вызов / окно) с подсветкой на 70 % и 90 %, клик по ней даёт разбивку расхода и кнопку «Сжать контекст»; в панели чата считается сумма всего хода, а не одного сообщения;
  • ИИ Ассистент: повторный XML-вызов тула больше не падает в базе чата (уникальный id, не xml_1);
  • ИИ Ассистент: карточки чата компактнее — шапки «Пользователь», «Размышления», «Система» и инструмента показаны иконкой с подсказкой на языке интерфейса, тело результата развёрнуто сразу, у блока «Система» — оценка токенов в шапке и прокрутка;
  • ИИ Ассистент: PHP Deprecated в логе запуска больше не считается ошибкой скрипта;
  • ИИ Ассистент: XML-вызов тула в тексте/размышлении (Qwen `<tool_call>`) исполняется как обычный tool_call — без пустого хода;
  • ИИ Ассистент: пустой ход модели — «Модель завершила ход без текста» вместо «Call: stop»; служебный nudge скрыт;
  • ИИ Ассистент: `init.php` робот берёт только из Studio `Templates` (для далёкой папки — абсолютный require), копия в папку робота не нужна и не создаётся; без слэша в `__DIR__ . "init.php"` запись отклоняется;
  • ИИ Ассистент: search_replace учитывает CRLF и trim строк; короткие имена tools; компакт логов с хвоста; стоп doom-loop и битого JSON аргументов;
  • ИИ Ассистент: панель плана над полем ввода — раскрываемый чеклист шагов агента (счётчик 2/6, перечёркивание выполненных, текущий шаг выделен);
  • ИИ Ассистент: сброс настроек не очищает папку проекта; на стартовом экране кнопки показывают локализованный текст, а не ID ресурса;
  • ИИ Ассистент: проверка MCP с индикатором «Checking…» по адресу из формы (таймаут 3 с);
  • ИИ Ассистент: экспорт и сохранение настроек работают без предварительного Save;
  • ИИ Ассистент: ввод температуры в настройках не сбрасывается при наборе десятичной дроби;
  • ИИ Ассистент: при приближении к лимиту контекста история сжимается сама (саммари Objective / Work State), не дожидаясь ошибки модели;
  • ИИ Ассистент: запись PHP-робота без `<?php` отклоняется (Studio иначе не исполняет файл); `TEST_POLYGON_URL` без `constForTestSamples.php` тоже;
  • ИИ Ассистент: в узкой панели кнопка «ещё» не уезжает за край — лишние иконки уходят в меню;
  • ИИ Ассистент: запись PHP с `escapeshellarg`/`escapeshellcmd` или `LOG::$app` отклоняется — на Windows ломают пути, лог через `SYSTEM::$textfile`;
  • ИИ Ассистент: A−/A+ в меню «ещё» сохраняют ChatFontPx в ai_settings (как Ctrl+/−), не только zoom в localStorage;
  • ИИ Ассистент: стрим ответа не подвешивает окно — текст обновляется плавно; если сервер модели перестал отвечать, платформа выходит из состояния «занято» примерно за 30 с, а не ждёт полный таймаут запроса;
  • ИИ Ассистент: провайдер Anthropic Claude — убран нерабочий адрес по умолчанию api.anthropic.com (нативный API /v1/messages не реализован), добавлена подсказка указать OpenAI-совместимый эндпоинт/прокси (напр. OpenRouter);
  • Установка: инсталлятор теперь при необходимости доустанавливает Microsoft Edge WebView2 Runtime — без него на чистой машине не работал браузерный движок Edge;
  • ИИ Ассистент: NVIDIA NIM — отдельный провайдер с собственными настройками (модель, ключ, адрес); сохранённые ранее ключ и модель переносятся автоматически;
  • ИИ Ассистент: блоки в чате сворачиваются в одну строку — системный промпт, «Thinking» и карточки инструментов по умолчанию свёрнуты, клик по заголовку раскрывает;
  • ИИ Ассистент: диалог настроек разбит на страницы по закладкам (General, Model, Agent, …) и переключается; открывается в теме чата и без белой вспышки при загрузке;
  • ИИ Ассистент: интерфейс чата и настроек пересобран без DevExtreme — открывается заметно быстрее и выглядит как прежний диалог; исправлен выбор провайдера (раньше список не раскрывался);
  • ИИ Ассистент: полировка диалога настроек — иконочные кнопки, карточки режимов в одну строку, кнопки «Открыть»/«Выбрать папку» справа от полей, тёмная тема без пробелов, подтверждение при закрытии с несохранёнными изменениями, вкладка «Инструменты» теперь показывает и семейство PowerShell;
  • ИИ Ассистент: «Компактный набор инструментов» и «Быстрый локальный контекст» по умолчанию выключены — модель получает полный набор инструментов и полный контекст;
  • ИИ Ассистент: LLM-судья артефактов отвечает на языке интерфейса — карточка в чате объясняет причину отклонения или недоступности судьи по-русски;
  • ИИ Ассистент: на вкладке «Правила» можно создать файл правила и редактировать содержимое существующих — без ручного похода в папку .agents/rules;
  • ИИ Ассистент: вкладка «Инструменты» полностью на русском — понятные названия сервисов и категорий, человеческие описания «что это и зачем» у каждого инструмента, поиск тоже по русскому тексту;
  • ИИ Ассистент: на вкладке «Агент» блок настроек прокси сворачивается кликом по заголовку и по умолчанию свёрнут;
  • ИИ Ассистент: «Проверить соединение» работает с адресами без http:// и порта (например, 192.168.1.109 для LM Studio — схема и порт достраиваются автоматически) и показывает причину сбоя вместо голого «Ошибка соединения»;
  • ИИ Ассистент: диалог настроек всегда в теме ИИ-чата — кнопка смены темы и блок «Тема чата» из настроек убраны (тема переключается в самом чате), при незаданной теме учитывается скин приложения;
  • ИИ Ассистент (Windows): исправлена маршрутизация запросов с параметрами в мосту WebView2 — «Проверить соединение» и сохранение настроек ИИ молча не срабатывали;
  • ИИ Ассистент: бейдж «thinking» у провайдера в настройках заменён иконкой с подсказкой на языке интерфейса;
  • ИИ Ассистент (Windows): окна настроек и справки закрываются сами после сохранения/закрытия — раньше на экране оставалось пустое белое окно;
  • ИИ Ассистент: понятные сообщения об ошибках модели — если модель недоступна для аккаунта провайдера, снята с поддержки или не найдена (например, NVIDIA NIM), чат объясняет это человеческим языком и предлагает выбрать другую модель в настройках ИИ вместо сырого HTTP-ответа;
  • ИИ Ассистент: локализация чата — роли сообщений (Пользователь/Ассистент/Система/Инструмент), режимы (Вопросы/План/Код) и их подсказки, «Авто» в выборе языка, кнопка копирования у блоков кода и прочие мелкие строки теперь на языке интерфейса;
  • ИИ Ассистент: кнопка «Очистить всю историю» действительно удаляет все чаты — раньше она чистила только архив и список истории оставался на экране;
  • ИИ Ассистент: поля настроек не теряют фокус при вводе текста — раньше диалог перехватывал фокус после каждого символа;
  • ИИ Ассистент (Windows): сохранённые настройки (размер шрифта чата, скрытие/свёртывание блоков и др.) сразу применяются в панели чата — раньше шрифт обновлялся только после перезапуска;
  • ИИ Ассистент: на странице «Модель» блок выбора провайдера свёрнут по умолчанию — выбранный провайдер и модель видны прямо в заголовке секции;
  • ИИ Ассистент: настройки открываются на той вкладке, которая использовалась в прошлый раз;
  • ИИ Ассистент: поле «Базовый системный промпт» на вкладке «Контекст» стало высоким и растягивается по вертикали — раньше оно было в одну строку;
  • ИИ Ассистент: на каждой странице настроек появилась кнопка «Справка» — открывает справку ассистента на разделе об этой странице с описанием каждой настройки простым языком (русский, английский, турецкий);
  • ИИ Ассистент: подсказка «Сессия» в шапке чата (провайдер, модель, режим, MCP) обновляется сразу после сохранения настроек — раньше оставалась со старыми значениями;
  • ИИ Ассистент: размер шрифта чата настраивается в диапазоне 8–40 px (раньше 11–20);
  • ИИ Ассистент: незавершённый ответ (закрытие Studio, обрыв связи) больше не остаётся в чате пустым пузырём «…» — при следующем запуске он помечается как прерванный с подсказкой продолжить;
  • ИИ Ассистент: пузыри ответов в разных диалогах больше не склеиваются — текст одного ответа не перезаписывает соседний (раньше одинаковое содержимое хранилось одной записью на несколько сообщений);
  • ИИ Ассистент: новый инструмент «открыть файл в редакторе» — на просьбу «открой в редакторе то, что создал» ассистент сам показывает файл во вкладке редактора, ничего в нём не меняя;
  • ИИ Ассистент: если ход прерван (кнопка «Стоп», ошибка модели, лимит итераций или времени), в чате появляется блок [TURN STATE] — сколько итераций пройдено, какой скрипт записан, класс ошибки и какое действие ждёт вашего подтверждения;
  • ИИ Ассистент: действие, не подтверждённое вовремя в диалоге подтверждения, больше не считается отказом — ассистент сообщает, что действие ждёт подтверждения, вместо того чтобы молча бросать задачу;
  • ИИ Ассистент: сообщение, отправленное во время работы агента, не теряется — Enter ставит его в очередь (виден статус и полоска «подхвачу на следующем шаге»), ассистент подхватывает его на следующем шаге; раньше такое сообщение уходило незамеченным, а в чате стартовал второй параллельный ход, из-за которого «Стоп» переставал действовать на первый;
  • ИИ Ассистент: в стриминге у провайдера теперь запрашивается статистика токенов — в истории хода появляются реальные значения вместо нулей; провайдеры, которые не поддерживают это поле, определяются автоматически и продолжают работать как раньше;
  • ИИ Ассистент: в первом сообщении диалога до модели теперь доходят @-упоминания файлов и состояние рабочей папки (раньше этот блок на первом ходу терялся), а в повторных ходах он больше не дублируется в системном промпте;
  • ИИ Ассистент: длинный диалог больше не обрывается ошибкой шаблона модели после сжатия истории — запрос всегда начинается с пользовательского сообщения, как того требуют локальные модели qwen (раньше ход падал с «No user query found in messages»);
  • ИИ Ассистент (Windows): панель ИИ-чата скрывается по крестику (HideOnClose), как остальные док-панели;
  • Редактор: контекстное меню закладок — закрыть / остальные / все, сохранить, переименовать, перечитать, проводник, путь, удалить; у пунктов иконки;
  • ИИ Ассистент: пункты панели и настроек вынесены из «Вид»/«Сервис» в отдельное меню «ИИ» после «Плагины»;
  • Панель браузера: адрес в комбобоксе не затирается во время набора;
  • Браузер: в списке моделей появились Brave и Opera и переключение на них (Selenium) в панели браузера;
  • ИИ Ассистент: вкладка модели не проверяет подключение сама — только по кнопке «Проверить соединение»; ошибка недоступности не сыплется в панель отладки;
  • ИИ Ассистент: числа и bool в вызовах тулов принимаются и строкой ("5"/"true"); повтор той же ошибки даёт подсказку; после первого тула в Code размышление отключается; правки search_replace линтятся по целому файлу, а не по фрагменту;
  • ИИ Ассистент: вызов метода на чужом объекте (webpage->get_by_inner_text) отклоняется до запуска — подсказка с правильным DOM/WEB фасадом;
  • ИИ Ассистент: поиск в Google агент пишет по рабочему сценарию — `set_inner_text_by_name` / `send_input`, Enter через `send_key(VK_ENTER)`, после Enter только `sleep(3)` без `wait_js` (иначе зависание), заголовки `get_by_number` без «Почта/Картинки» и футера, `data/` через `mkdir` и `__DIR__`;
  • ИИ Ассистент: `harvest_locators` и snapshot — тулы чата, не методы PHP; карточки MCP/search не краснеют из-за JSON `null`; `*_by_name` только на фасаде, не на `$el`;
  • ИИ Ассистент: пустой STOP с thinking — хвост reasoning в чат; после лимита empty_stop — краткое резюме хода;
  • заставка при старте показывается на том же мониторе, что и главное окно;
  • ИИ Ассистент: XHE MCP ставится со Studio (готовый индекс в `{app}\MCP`) и поднимается только при первой проверке или включении MCP, не при старте программы;
  • ИИ Ассистент: после ответа вкладка остаётся «ИИ Ассистент», а не «Готово»; окончание работы — всплывающее уведомление;
  • ИИ Ассистент: llama.cpp больше не падает HTTP 500 на втором ходе с тулами — в сообщениях не уходит JSON null вместо строки (content, id вызова, tool_call_id);
  • Справка: онлайн-справка и справки по PHP / JS / Python / C# открываются во внешнем браузере по умолчанию;
  • Скриншот: выбор области — контрастная пульсирующая рамка и кнопка камеры в стиле ИИ-чата; диалог сохранения — меню «Сохранить / Открыть / Инструменты» (копирование, размер, вписать в окно, перевыбор);
  • Скриншот: рамка выбора области снова ресайзится; в диалоге сохранения — масштаб изображения (− / % / +, вписать) и изменение размера самого окна;
  • диалог установки плагинов: запоминает последний путь и по умолчанию открывается в папке Plugins рядом с программой;
  • Редактор: на панели кнопка включения/выключения режима отладчика PHP;
  • отладка: панель стека вызовов — имя функции и тип кадра, локали выбранного кадра в Watch, текущий кадр, копирование, скрытие Templates/vendor, пустое состояние, клавиатура;
  • Outlook: несколько экземпляров Studio и роботов больше не мешают друг другу — межпроцессный lock, attach к уже запущенному Outlook, one-shot не делает Quit, close() не убивает процесс; COM на выделенном STA-потоке с повтором при CALL_REJECTED, плагин outlook2 не гасит чужой Outlook;
  • ИИ Ассистент: в классической Studio `run_script` идёт через встроенный запуск (F5 / панель отладки), а не отдельным консольным окном;
  • ИИ Ассистент: кнопка «Новый проект» в чате — папка в «Мои роботы» с правилами/скилами; главный скрипт только из этой папки, не leftover с прошлого прогона;
  • ИИ Ассистент: после doom loop (один и тот же tool 3 раза) в ленту пишется итог хода, а не только карточка тула;
  • Мои роботы: в тулбаре и контекстном меню папки — «Показать только эту папку», «Показать все папки» (выход из режима) и «Открыть как проект в ИИ-чате»;
  • Мои роботы: дерево само обновляется при создании/удалении проекта, если папка развёрнута и видна;
  • Мои роботы: «Очистить папку» — удаляет все файлы и подпапки, сама папка остаётся;
  • Мои роботы: JSON и Markdown — и в фильтре дерева рядом с PHP/JS/Python, и в меню «Создать»;
  • Мои роботы: «Недавние» и «Избранное» — поиск открывается кнопкой (поле скрыто до нажатия), контекстное меню «Удалить из недавних» и «Очистить», в подсказке дата и время открытия и родительская папка (различать одноимённые файлы), иконки того же цвета, что в дереве;
  • Мои роботы: в тултипе дерева — дата изменения файла, чип «Служ.» скрывает .ai, log, temp и .git;
  • Мои роботы: у папки-робота точка последнего запуска (OK / ошибка / не запускали) по хвосту лога;
  • Мои роботы: файлы и папки перетаскиваются по дереву; горячие клавиши F2 / Del / Ctrl+D / Ctrl+Enter (открыть папку как проект в ИИ-чате);
  • Мои роботы: в контекстном меню папки — «Открыть AGENTS.md» и паспорт;
  • Мои роботы: «Недавние» и «Избранное» скрываются, фильтр типов — выпадающий список, тулбар в одну строку с «…», контекстное меню с подменю, полоска «Папка: …» цветом папки и бледнее, иконки MD/docs бирюзовые;
  • Редактор: после правок ИИ Ассистента скрипт сохраняется перед запуском;
  • Редактор: подсветка синтаксиса для Markdown, JSON, HTML, XML/SVG, CSS, INI, YAML, SQL и BAT/CMD;
  • ИИ Ассистент: движок агента выбирается в настройках — «Встроенное» или «Сервер» (`{app}\Tools\AI\RPAloop1\RPAloop1.exe`, кладётся в установщик); без бренда OpenCode в UI;
  • ИИ Ассистент: движок «Сервер» больше не подвешивает чат — после записи файла возвращается в ожидание, ответ не дублирует вопрос и не теряется в размышлениях (короткие ответы врод «4» тоже попадают в ответ), в чат не пишутся служебные system/скрипт, а зависший на порту процесс снимается перед запуском и порт при первом старте подбирается свободный;
  • ИИ Ассистент: карточки тулов — имя в шапке и итог ok/error без спама pending/running, строка ответа не дублируется; ход «Сервер» не рвётся, пока тул выполняется, финальный ответ отдельно от рассуждений;
  • ИИ Ассистент: в движке «Сервер» робот пишет файлы и запускает их инструментами Studio (после записи файл открывается в редакторе), подтверждение правок — Deny / Approve / Approve all, в движок уходят режим Спросить/План/Код и AGENTS.md;
  • ИИ Ассистент: режимы движка «Сервер» разграничены — «Спросить» не пишет файлы, «План» сохраняет PLAN.md и не оставляет .php, в «Код» открыт нативный набор инструментов;
  • ИИ Ассистент: локальный мост инструментов движка «Сервер» отклоняет запросы без авторизации и действия, запрещённые режимом; системный промпт передаётся одним каналом;
  • ИИ Ассистент: на вкладке «Инструменты» — реальные тулзы текущего движка, каждый с чекбоксом вкл/выкл; выключенный тулз не уходит модели и не выполняется (в «Сервере» его файл не пишется в tools-папку и мост отвечает отказом);
  • ИИ Ассистент: у движка «Сервер» свои правила вместо встроенных подсказок OpenCode — ответы полные и на языке пользователя, проверка робота — его запуск в эмуляторе; аргументы инструментов описаны в самих инструментах и не дублируются в системном промпте;
  • ИИ Ассистент: удаление первого сообщения в диалоге больше не делает историю нечитаемой (раньше чат не открывался, панель крутила «занято»);
  • ИИ Ассистент: движок «Сервер» получил те же инструменты, что и «Встроенное» — адрес страницы, список и переключение вкладок, снимок экрана, проверка текста на странице, а также лог робота, проверка что он завершился и его остановка;
  • ИИ Ассистент: второй и каждый следующий запрос в открытом чате снова дожидаются ответа (раньше панель показывала только ваш вопрос и больше не обращалась к движку);
  • ИИ Ассистент: честная проверка результата робота — файлы, обещанные внутри подключённых файлов проекта (slices/adapters), и выгрузка в xlsx/xls теперь тоже проверяются; пустой или мусорный файл больше не выдаётся за выполненную задачу.
  • ИИ Ассистент: справка по API XHE («поиск методов») отдаёт вызовы, которые действительно запускаются: раньше готовая строка выводилась с объявлением параметров — `send_key(bool $is_key, …)` — и скопированный в робота код падал; теперь остаётся только имя переменной.
  • ИИ Ассистент: карточка запуска робота в движке «Сервер» показывает красный статус, когда проверка не пройдена (раньше за «успех» выдавался завершившийся с ошибкой скрипт); csv с одной строкой заголовков и ноль строк данных больше не считается выполненной задачей;
  • ИИ Ассистент: подсказки после падения робота и справочный каталог больше не советуют несуществующих объектов (`WEB::$textfile`, `DOM::$heading`) и вызовов — все имена берутся из живых Templates/Objects;
  • ИИ Ассистент: уточнение, отправленное посреди хода, доходит до движка «Сервер» — сообщение встаёт в очередь, виден его статус, а ответ разбивается на раунды (раньше такое сообщение молча терялось);
  • ИИ Ассистент: движок «Сервер» называет причину пустого хода — отказ модели или стенда (например, «не хватает контекста») и превышение лимита времени больше не прячутся за «сервер завершил ход без текста», при таймауте показывается сделанное;
  • ИИ Ассистент: длинная задача в движке «Сервер» больше не встаёт на уточняющем вопросе модели и не обрывается на обходе страниц;
  • ИИ Ассистент: застрявшая на повторе одного и того же вызова модель получает подсказку сменить тактику и доводит задачу до конца (раньше ход обрывался на третьем повторе, в том числе на безобидном обращении к справочнику API);
  • ИИ Ассистент: робот, созданный в чате, пишет файлы по относительным путям в свою папку проекта (раньше `data/…` уходило в папку программы, а проверка результата его там не находила);
  • ИИ Ассистент: в движке «Сервер» о выдуманном методе XHE модель узнаёт из результата этого же запуска робота и чинит скрипт в том же ходе (раньше замечание о правде API доходило только во встроенном движке, и «Сервер» переписывал выдуманный метод другим выдуманным);
  • ИИ Ассистент: перед запуском ловятся молча ломающиеся скрипты — однострочник, где `//` отрезает весь остаток (ни кликов, ни сохранения файла), и скалярная работа со списком из `get_all_by_…` (раньше `trim()` и сравнение со строкой давали пусто вместо найденных элементов);
  • Классический рантайм (отдельная RT-версия): скрипт с действиями из категории «Строки» больше не вылетает при запуске — раньше такие роботы работали только в Студии, а в рантайме программа завершалась сразу;
  • ИИ Ассистент: карточка инструмента показывает вывод целиком — раньше он обрывался на 500 символах, и остаток нельзя было посмотреть; запуск робота теперь несёт расширенный хвост лога, а в движке «Сервер» — и начало, и конец длинного вывода;
  • Excel: `excelfile->add_sheet(файл, лист, заголовки)` — новый лист создаётся сразу с заголовками в первой строке, одним вызовом (раньше заголовки требовали второго обращения к файлу и лишнего пересохранения книги); доступно в PHP, JS, Python и C#;
  • ИИ Ассистент: справка по API XHE («поиск методов») показывает примеры реального вызова не только для объектов страницы, но и для работы с экраном и изображением (XHETesseractOCR, XHEFineReaderOCR), окнами (XHEWindow, XHEUI, XHEScheduler), системой (XHEClipboard, XHEBd, XHEExcel) и браузером (XHEBrowser, XHERest, сервисы капчи);
  • Справка по API XHE: список параметров метода больше не обрезается - сигнатуры с необязательным типом (?array), выбором типов (string|array), типом из пространства имён и передачей по ссылке (&$var) теряли параметры (у XHERest::request доходило 2 из 5); теперь параметров ровно столько, сколько в объявлении метода;
  • Локализация: подписи, которые показывались оператору сырым ключом, переведены — 24 в турецком (группы настроек ИИ Ассистента, провайдеры, диалог несохранённых изменений, каталог MCP), 2 в русском (шкала планировщика: «сейчас» и пустой график) и 1 в английском («Обновить» в контекстном меню); впредь расхождение наборов ключей между ru, en и tr ловит тест;
  • Визуальные роботы в Electron: файл .wf открывается структурным видом — шаги деревом, свойства в панели, палитра доступных действий и список непереносённых мест; правка свойства сохраняется в сам файл (с отменой и .bak), а не в текст XAML, и если сохранение отвергнуто — файл остаётся прежним; XAML виден только по явному «Показать как текст» и только для чтения.
  • Визуальные роботы в Electron: нового робота можно собрать, не открывая XAML — файл создаётся из дерева сценариев («Визуальный робот»), шаг добавляется в выбранный контейнер из палитры или контекстного меню, переносится между шагами, удаляется (с подтверждением, если внутри есть непереносимые места) и отменяется вместе с возвратом назад/вперёд, а собранный робот запускается и показывает результат; условие вставленного «если» правится на месте, а в ветку «иначе» шаг кладётся тем же контекстным меню. `TryCatch` и развилку по значению (`Switch`) добавить пока нечем.
  • Визуальные роботы в Electron: у робота появились переменные — в свойствах блока шагов их можно объявить (имя, тип, значение по умолчанию) и снять, а шаг «Присвоить» вставляется из палитры или контекстного меню с уже выбранной переменной и приводит значение к её типу. Снять переменную, которую где-то используют, нельзя: сохранение отвергается целиком с названием узла-потребителя — как и одноимённое объявление в том же блоке, где второе молча потеряло бы первое. Объявить переменную массивного типа и переименовать существующую пока нечем.
  • Визуальные роботы в Electron: открыв робота, панель проверки сразу говорит, что с ним можно делать здесь — «исполняется здесь», «исполняет только Windows Studio с плагином», «здесь не исполняется: в файле есть узлы вне подмножества net8», «формат не распознан» или «воркер не разобрал документ»; там же видно, сколько свойств и шагов доступно правке, сколько неизвестных мест и скрытых Activity за ними и под какими сборками они лежат, а для файла, который правкой здесь не покрывается, в панели есть кнопка «Показать файл в проводнике». Число мест считается по всему разбору, а не по показанному списку первых 50: ничего не теряется молча и не исправляется самовольно.
  • Визуальные роботы в Electron: цикл «Для каждого» доведён до конца — у вставленного цикла его коллекция показана в панели свойств незаполненным полем, заполняется выражением (набор элементов или ссылка на переменную) и при запуске обходит элементы ровно по одному разу; тем же полем чинится пропущенное условие у «если». Пока обязательное свойство не задано, робот помечен как неисполняемый, а место названо в списке непереносённого — раньше и то, и другое лечилось только ручной правкой XAML в Windows Studio. Цикл по переменной-массиву, TryCatch и развилку по значению (Switch) добавить пока нечем.
  • Визуальные роботы в Electron: зашифрованный робот (файл вида «имя.wf.encoded_wf») больше не молчит и не притворяется битым — редактор и запуск одним словом говорят, что это зашифрованный визуальный робот, который здесь не расшифровывается, и что нужно открыть исходный .wf или Windows Studio с паролем дешифрования. Раньше воркер называл целый файл «битым XML», вкладка предлагала править его как текст, а кнопка запуска молчала; сам контейнер при этом не меняется ни байтом, и расшифрованное содержимое нигде не появляется — ни в логе, ни в аргументах запущенного процесса.
  • Визуальные роботы в Electron: режим «Показать как текст» перестал быть ходом в одну сторону — пока робот открыт текстом, к его структуре возвращает кнопка в тулбаре редактора, и этот ход ничего не стоит: очередь несохранённых правок, отмены/повторы, счётчик несохранённых правок и значение в поле свойств остаются теми же, а сохранение после возврата записывает правку тем же точечным механизмом. Раньше панель структуры размонтировалась вместе со своей кнопкой переключения, и вернуться можно было только закрытием и повторным открытием вкладки.
  • Визуальные роботы в Electron: подсветка исполнения доведена до каждого шага — во время запуска светятся не только отдельные действия, но и контейнеры (последовательность, «если», «для каждого»), у шага внутри цикла видно который это проход («×3») и сколько он длился, у упавшего — причина, и она остаётся на строке до конца запуска, а не стирается следующими шагами; шаг, который не дождались на конце рана, назван «не завершён», а не «исполняется». Подсветка относится к тому роботу, который запущен: вкладки двух файлов с одинаковым именем из разных папок больше не светятся разом. Строка лога теперь говорит, каким шагом она напечатана.
  • Визуальные роботы в Electron: шагу можно поставить точку останова — контекстное меню шага говорит «поставить точку останова» / «снять точку», а при запуске робот встаёт на этом шаге ДО его действия и ждёт команды: в контуре видно, какой шаг держит паузу, панель лога за это время не получает ни одной строчки от него, а в тулбаре появляется «Продолжить». Действие шаг сделает только после этой команды, поэтому побочный клик или запрос, который иначе ушёл бы в боевой сайт, можно остановить до того, как он случился; из паузы доступен и ■ (запуск завершается отменой, а не «ошибкой шага»). Раньше любую нежелательную ветку можно было только убить вместе с роботом. Точка относится к открытому сеансу: рестарт продукта её не переживает, ставится она на шаг целиком (не на строку XAML внутри него).
  • Визуальные роботы в Electron: на паузе роботом можно идти по шагам — пока запуск стоит, в тулбаре документа появляются «В узел», «Следующий узел» и «Наружу». «В узел» спускает в шаги контейнера, а если спускаться некуда, переводит на следующий шаг; «Следующий узел» перескакивает содержимое контейнера, дав ему отработать целиком, и внутри цикла переходит по его проходам, оставаясь на том же шаге; «Наружу» поднимает на уровень выше, а с шага верхнего уровня доводит запуск до итога. Одна команда — одна остановка: робот встаёт ровно на том шаге, куда его обещали привести, и действия этого шага к моменту остановки не совершил; стоящая точка останова важнее шага и названа причиной паузы, а шаг, отданный вне паузы, отвергается с объяснением. Раньше из паузы была одна команда — снять её или убить запуск целиком. Значения переменных на паузе показывает отдельная панель — см. следующий пункт; не хватает шага внутри перехвата исключения: штатную запись TryCatch редактор пока не понимает.
  • Визуальные роботы в Electron: пауза показывает значения — пока робот стоит на точке останова или на шаге, в правой колонке редактора появляется панель «Значения на паузе» с числом строк в снимке: переменные робота и их значения ровно в тот момент, когда робот встал, и «продолжить» двигает робота дальше именно с ними. Показываются только те значения, которым продукт доверяет: текст, число, дата, логическое, перечисление, Guid; у значения, которое показывать нечем, на его месте стоит «не показывается» с настоящим именем типа в подсказке строки. Ни для одного значения не вызывается чужой код, который мог бы напечатать секрет или уронить запуск. Защищённое значение (пароль) отдаётся словами «скрыто: защищённое значение», и его тела нет ни в панели, ни в логе. Длинные строки обрезаются с честной отметкой «обрезано, всего N симв.», переменная без значения названа «не присваивалось», пустая строка — «пустая строка», а если переменных больше 64, лишние не теряются молча: панель говорит «ещё N не вошло в снимок». Раньше пауза говорила только, на каком шаге робот встал, а куда он пойдёт с этими значениями, приходилось угадывать. Значения видны только на паузе: истории изменений нет, идущему без паузы роботу смотреть нечего, переменной массивного типа в редакторе пока нечем объявить, поэтому коллекции в этой панели ещё не видно, и нет снимка внутри перехвата исключения — штатную запись TryCatch редактор пока не понимает.
  • Визуальные роботы в Electron: робот на паузе отвечает на команды по существу, а не молча делает вид. Кнопки «Продолжить», «В узел», «Следующий узел», «Наружу» и ■ работают тогда, когда команду действительно есть кому принять: процесс робота жив, и установленный исполнитель эту команду объявил. Иначе панель говорит почему — «процесса воркера нет: ран завершился или был остановлен, слушать команду некому», «Исполнитель такой-то сборки не умеет “шаг по узлам”; он объявил: …» — и нажатие не выдаётся за выполненное. Раньше ответ команды был четырьмя независимыми «да» без адреса: по нему было нельзя узнать, жив ли робот и принята ли команда, а отказ был неотличим от успеха. Пока робот стоит на паузе, редактор жив: шаг можно выбрать, посмотреть его свойства, уйти «как текст» и вернуться к структуре, а контур перечитать прямо с диска (самое медленное из этих действий — 0,12 с при пределе 4 с), и всё это время робот действия не совершает. Закрытие вкладки документа робота не останавливает — снять его можно только кнопкой ■, и она даёт «отменён», а не «ошибка шага»; если окно перезагрузить, та же пауза вместе с командами и снимком значений возвращается на тот же шаг. Ответа команды робот ждёт две секунды и, если вердикта не было, честно об этом говорит — сам робот при этом остаётся там, где стоял. Истории значений, точки внутри штатного перехвата исключения (TryCatch) и отладки роботов, собранных исполнителем, объявившим не все команды, в этом релизе нет.
  • Визуальные роботы в Electron: гибель процесса исполнителя больше не выглядит как «робот ещё идёт» — если процесс, который ведёт визуального робота, упал или был снят снаружи, панель лога тут же получает ровно одну строку итога: «итог: lost · … · воркер вышел с кодом N без терминального события». Пауза и значок запущенного рана снимаются, кнопки «Продолжить», «В узел», «Следующий узел» и «Наружу» исчезают, ■ гаснет, а «продолжить», отданное мёртвому запуску, отвечает тем же названным отказом, а не молчаливым «да». Потеря видна и после перезагрузки окна — её больше не нужно угадывать по молчанию панели; следующий запуск того же файла работает как обычно, потеря одного запуска не заражает другой. Раньше об этом знало только внутреннее состояние рана: панель обрывалась на строке паузы, и убитый робот был неотличим от долгого. Не мерялось: гибель процесса посреди исполняющегося шага (вне паузы) и гибель самого бэкенда.
  • Визуальные роботы в Electron: набор команд, который робот разрешено требовать от исполнителя, стал настраиваемым и видимым. Запуск продукта принимает список разрешённых возможностей (переменная окружения XHE_WF_CAPS): исполнитель объявляет ровно их, и всё остальное для редактора недоступно по-настоящему — кнопки «В узел», «Следующий узел» и «Наружу» (или «Продолжить», или панель значений — каждая по своей возможности) выключены, в подсказке названо, чего именно исполнитель не объявил, рядом лежит понятный без мыши чип отказа, а вместо молчаливого «да» панель говорит, что команде некому отозваться. Пустой список снимает объявление целиком: робот при этом собирается и выполняется как обычно, ■ на паузе по-прежнему даёт «отменён», и действие шага за это время не совершается; неизвестные имена и повторы в списке отбрасываются. Попутно закрыта утечка: исполнитель, которому снимок значений не разрешён, больше не выносит его наружу — раньше значения уезжали в поток всегда, а редактор их просто не показывал. Прежняя оговорка «отладки роботов, собранных исполнителем, объявившим не все команды, в этом релизе нет» этим снята. Границы: объявление — это право, а не умение (необъявленную команду исполнитель всё равно исполнит, если послать её ему напрямую), точкой останова объявление не ограничивается, проверка сделана на сборке, которой нужная команда запрещена списком, а не на сборке, где её физически нет; повторный запуск и остановка во время загрузки робота, а также гибель самого бэкенда в этом релизе не проверялись.
  • Визуальные роботы в Electron: остановка, нажатая сразу после «Запустить», теперь действительно останавливает запуск. Раньше у кнопки ■ в тот момент, когда редактор уже назвал запуск, но процесс исполнителя ещё не родился, не было адресата: нажатие терялось, робот шёл дальше и успевал совершить действие, а ответ был «остановлено» — то есть ложь. Теперь отмена резервируется за запуском и передаётся исполнителю с самой первой его секунды: робот в таком случае получает итог «отменён» (в проверке — за 0,6 с) и не совершает ни одного действия, ни в одном из восьми прогонов. Тем же слоем остановка уже завершившегося робота перестала отвечать «успешно»: она говорит, что останавливать нечего, и это слово видно в панели лога. Границы: остановка по-прежнему работает на границе шага — начатое действие шага не прерывается на середине; повторный запуск во время идущего, запуск робота, стоящего на паузе, и гибель самого бэкенда в этом релизе не проверялись.
  • Визуальные роботы в Electron: «Запустить», нажатое на роботе, который стоит на точке останова, больше не отменяет его молча и не выдаёт это за успех. Раньше у этого действия было две нечестные стороны: кнопка была выключена и подписана общим «Выполнить» — ни слова о том, почему робота нельзя запустить; а тот же запрос, пришедший снаружи (планировщик или прямой вызов), останавливал стоящий запуск, начинал новый и отвечал «успешно» — в проверке за 0,7 с робот, стоявший на паузе, был отменён и перезапущен, и в панели появился второй процесс. Теперь кнопка и запрос называют одно и то же: робот стоит перед шагом «имя (шага)», запуск того же файла паузу не снимает, для стоящего робота есть «Продолжить» и шаги. Подсказка выключенной кнопки говорит эти же слова, нажатие с клавиатуры показывает их всплывающей строкой, а запрос снаружи получает отказ вместо ложного «успешно» (в проверке — за 0,009 с). Отказ при этом не трогает стоящий запуск: робот остаётся на том же шаге, и «Продолжить» после отказа доводит его до конца ровно с одним действием шага. Границы: повторный запуск робота, который идёт и при этом не стоит на паузе, этим слоем не менялся; остановка по-прежнему работает на границе шага, а не посреди начатого действия.
  • Визуальные роботы в Electron: «Запустить», посланное роботу, который идёт и при этом не стоит на паузе, больше не поднимает второй запуск того же файла. Раньше кнопка была выключена без объяснения, а тот же запрос снаружи отвечал «успешно» и не отменял идущий запуск — в проверке первый дошёл до конца сам, после чего стартовал второй: робот исполнялся дважды и делал свои побочные действия дважды, а не один раз, как ожидает тот, кто нажал кнопку. Теперь кнопка и запрос называют одно и то же: робот идёт на шаге «имя (шага)», остановите его кнопкой ■ и дождитесь итога; отказ приходит за 0,01 с и идущий запуск не трогает — в проверке робот с 180 000 итераций шёл 14 с, экран выключил кнопку и назвал её идущим шагом через 0,5 с, нажатие настоящей мышью за 1,5 с не породило ни запроса, ни отмены, ни второго итога, а сам запуск дошёл до конца с ровно одним итогом. Случай, когда ■ уже нажата и робот останавливается, назван теми же словами и тоже не выдаётся за успех. Границы: гибель самого бэкенда и отладка роботов под Linux в этом релизе не проверялись, остановка по-прежнему работает на границе шага, а не посреди начатого действия.
  • Визуальные роботы в Electron: структурный контур робота стал проходимым с клавиатуры и понятным программам чтения с экрана. Раньше его строки были для клавиатуры недоступны: на WF-поверхностях было 32 клавиатурные остановки, а стрелки по шагам ничего не двигали — робота правили только мышью. Теперь весь контур — одна клавиатурная остановка (на WF-поверхностях их стало 12): стрелки вверх/вниз водят выбор по шагам, вправо раскрывает контейнер и ведёт в него, влево возвращает к родителю, Home/End ведут к первому и последнему шагу, буква — к следующему шагу с этим именем, Enter открывает меню выбранного шага, а закрытое меню возвращает фокус тому же шагу, Delete снимает правку этого шага из очереди; мышь по-прежнему делает то, что делала. Меню шага и палитра конструкций тоже проходятся с клавиатуры — из поля поиска палитры в список ведёт стрелка вниз, а у конструкции названо её место в общем списке. Выбранный шаг, раскрытый контейнер и шаг, на котором робот встал, помечены так, что их различает программа чтения с экрана, а вердикт панели проверки и отказ произносятся вслух (живая область), а не только показаны цветом. Границы: как именно эти метки озвучивает конкретная программа чтения с экрана, не проверялось — проверены сами роли, состояния и путь клавиатуры в работающем продукте; имя строки пока называет тип дважды («DebugMessageDebugMessage…»), это правит следующий слой того же трека; обратный путь Shift+Tab от контура до кнопки сохранения в первой проверке не дошёл (45 шагов), и этим же слоем выяснено, что 45 было границей самой пробы, а не экрана: на чистом экране обратный ход доходит до кнопки сохранения за 12 шагов; клавиатурная семантика панелей свойств и проверки сделана частично.
  • Визуальные роботы в Electron: состояние шага в контуре стало читаться без наведения мыши и без различения цветом. Раньше о том, что шаг исполняется, упал, стоит на точке, не дошёл до конца или скрыт, говорили цвет, тонкая полоска и значок, а настоящее объяснение пряталось в подсказке: его было видно только наведя курсор, и программа чтения с экрана его не произносила. Теперь строка шага несёт своё состояние словами — «исполняется», «на паузе», «отказ», «не завершён», «точка останова», «скрыт», «не сохранён», — и эти слова лежат на самой строке: их видно без наведения и их читает программа чтения с экрана. У отказа тем же текстом показана причина, а не только в подсказке, и точка останова остаётся на строке, пока робот идёт, не перекрывая его состояние. Пока робот читается с диска, вместо пустой панели показывается заготовка строк; пустой контур больше не молчит — в нём одна кнопка «Прочитать заново». Имя шага перестало называть свой тип дважды: было «DebugMessageDebugMessage», стало «DebugMessage». Проверено в работающем продукте на роботе с отказом: из 15 шагов состоянием названы 7, и все 7 читаются без текста значка; на собранном прямо в окне роботе с точкой останова и падением — 3 полосатых строки, и все 3 названы словами, плюс 2 пойманных по ходу запуска исполняемых шага, тоже названных; подсказок, остающихся единственным источником смысла, — 0, имён с удвоенным типом — 0; соседние проверки отладки (подсветка исполнения, пауза по точке, жизнь рана на паузе) зелёные. Границы: как именно эти метки озвучивает конкретная программа чтения с экрана, не проверялось — проверена разметка в работающем продукте, а не дерево доступности; состояния «скрыт» и «не сохранён» полосой в живом прогоне не пойманы (первое требует робота с непонятым исполнителем шагом, второе видно в прогоне как счётчик несохранённых правок), заготовка строк и пустой контур покрыты тестами оболочки, а не живым прогоном; переходы между состояниями и поведение при «уменьшенном движении» — следующий слой того же трека.
  • Визуальные роботы в Electron: подсветка шагов в контуре теперь движется только вместе со сменой состояния, а системная просьба «уменьшить количество движения» гасит её целиком. Раньше состояние шага переключалось мгновенно, и «исполняется» было неотличимо от «только что было» (на роботе с циклом в 300 проходов — ни одного анимированного перехода), а настройка ОС над контуром не властвовала: по ней продолжали шевелиться элементы, пришедшие из общего интерфейса. Теперь смена состояния шага (исполняется, пауза, отказ, отработал, точка останова) ведётся коротким переходом цвета той же полосы и глифа — той же длительностью, что наведение и фокус, а при уменьшенном движении на поверхностях визуальных роботов не остаётся ни одного анимированного элемента. Проверено живьём: за прогон робота с циклом в 300 проходов начинается 30 переходов, и все 30 заканчиваются (ни одного оборванного), состояние строки переписывается не чаще одного раза на событие (343 записи на 302 прохода), ни одна строка контура при этом не пересоздаётся, а число движущихся элементов на экране робота меняется с 3 на 41 и на 0 под системной просьбой — и обратно на 41, как только просьбу снять.
  • Визуальные роботы в Electron: экран робота стал приспосабливаться к собственной ширине, а его текст и кнопки — быть читаемыми. Раньше ширины панелей были заданы на все случаи: если месту робота доставало тесно, подпись строки уезжала за край с горизонтальной прокруткой и без всякого предупреждения, часть подписей была нарисована серым, который не отличался от фона (самый плохой контраст текста — 1,84 при пороге доступности 4,5), а кое-какие цели клика были меньше 24×24 точки. Теперь уровень раскладки считается от ширины самого экрана робота, а не от размера окна (окну в 1024 точки соответствует поверхность 418 точки — по ширине окна раскладка осталась бы полной, хотя места там хватает только на рельсы); боковые панели на узком месте сворачиваются в узкие рельсы с кнопкой возврата и, пока свёрнуты, не перехватывают переключение Tab, так что клавиатура не бродит по невидимому; словесные подписи перешли на цвета, которые держат контраст в обеих темах, а цели клика и строк выросли до порога. Проверено живьём в работающем продукте на четырёх ширинах окна (1920 / 1440 / 1280 / 1024) и в обеих темах: горизонтальной прокрутки контура не осталось (было 166 точек на узкой ширине), подписей с контрастом ниже порога — 0 (было 37 на худшем замере, сам худший скор 1,84 → 5,23), целей клика меньше 24×24 точки — 0 (было 35 и 41), обрезанных подписей без пояснения в подсказке — 0; экран того же робота дополнительно снят в трёх языках интерфейса и обеих темах (шесть кадров). Границы: панель свойств на длинных выражениях по-прежнему прокручивается сама — это следующий слой того же трека; названия шагов печатает исполнитель, поэтому в английском и турецком окнах строки контура остаются русскими, а страница не сообщает программам чтения с экрана свой язык (везде «en») — обе вещи найдены этой сеткой и тоже переданы следующему слою; экран робота в две тысячи шагов этим срезом не проверялся, и как именно раскладку ведут разрешения 768 и ниже на других ОС, не мерялось.
  • Визуальные роботы в Electron: поля палитры и панели свойств получили настоящие подписи, а длинные значения — перенос вместо горизонтальной прокрутки. Раньше имя поля держалось только внутри самого поля как подсказка при вводе: программа чтения с экрана произносила вместо «Url» всё, что стояло в строке, обязательный аргумент, которого нет в файле, ничем не отличался от заполненного, группы конструкций не говорили, сколько в них элементов, а панель свойств на длинном выражении уезжала за край с горизонтальной прокруткой (24 точки на широком экране и 64 на узком). Теперь у каждого поля есть подпись, которая не исчезает при вводе; чем записано значение — выражением, переменной или литералом — видно в самой строке поля, а не только под курсором; незаполненный обязательный аргумент назван словом и помечен на самой строке; группы палитры несут число своих элементов, найденные поиском совпадения подсвечены, а описание конструкции показывается, когда она в фокусе клавиатуры, и не только под мышью; панель свойств переносит длинные значения вместо прокрутки; рамка поля стала достаточно контрастной, чтобы её было видно (1,47 → 3,62 при пороге 3) — в обеих темах; страница робота теперь сообщает программам чтения с экрана язык интерфейса, а не английский всегда. Проверено живьём в работающем продукте: полей, живущих одной подсказкой, — 0; доступное имя без терминов значка читают 4 поля контура из 4, 1 поле палитры из 1 и 3 поля панели свойств из 3 — и на исполняемом, и на блокированном роботе; горизонтальной прокрутки панели свойств — 0 точек (было 24 и 64); подписей и рамок с контрастом ниже порога — 0 из двадцати замеренных сочетаний «элемент × тема × область», самый плохой контраст текста — 5,23 в светлой теме и 5,90 в тёмной; целей клика меньше 24×24 точки — 0; под системной просьбой «уменьшить количество движения» не остаётся ни одного движущегося элемента (из 51 и из 74); групп палитры со счётчиком — 2 из 2, а фильтр по слову «Web» даёт 2 строки и 2 подсвеченных совпадения; язык страницы в русском интерфейсе прочитан «ru» (раньше на всех трёх языках было «en»). Границы: язык страницы переснят живьём только в русском интерфейсе — в английском и турецком правка идёт тем же значением, но числом не покрыта; на разрешениях 1024 и 1280 панель свойств свёрнута, и «все поля названы» там не мерялось; названия шагов и событий отладки печатает исполнитель, поэтому в турецком окне они остаются русскими — это не правка экрана; область проверки на блокированном роботе по-прежнему прокручивается сама (156 точек), и значок сохранённой ревизии объясняет себя только на наведении — обе вещи переданы следующему слою того же трека.
  • Визуальные роботы в Electron: список замечаний в панели проверки перестал быть лентой строк — замечания одного шага стоят теперь под одним заголовком, заголовок говорит словами, что с этим шагом («блокирует» или «правится здесь»), и печатает число замечаний; блокирующие шаги показываются выше исправляемых; строка замечания стала путём в робот — щелчок или Enter раскрывает свёрнутые блоки и ставит выделение на нужный шаг, а если показать нечего, панель говорит это словами и держит ответ на экране; весь список обходится с клавиатуры (одна остановка Tab и стрелки), длинное замечание переносится, а не уезжает за край; значок сохранённой ревизии теперь печатает слово «ревизия», а не только восемь незнакомых символов. Проверено живьём в работающем продукте: групп замечаний стало 3 вместо 0, заголовков 7 вместо 4, строк, достижимых без мыши, 1 вместо 0 (все три адресованные строки ходятся стрелками), прокрутка области по горизонтали сократилась с 230 до 27 точек; на роботе, подобранном так, что порядок разбора спорит с порядком чтения, замечаний, стоящих ниже исправляемых, — 0 вместо 2; значок, объясняющий себя только наведением, в контуре — 0 вместо 1. Границы: 27 точек горизонтальной прокрутки области проверки на узких разрешениях остались и переданы следующему слою того же трека; случай «показать нечего» живьём не мерялся (у всех замечаний подобранного робота есть адрес шага) и доказан тестом, как и группировка двух замечаний одного шага (в корпусе такого шага нет); кнопка «Сохранить» общего тулбара по-прежнему объясняет себя только наведением — она вне экрана робота.
  • Визуальные роботы в Electron: снимок значений на паузе стал таблицей, а слова о паузе, итоге и отказе — видимыми на экране, а не только под курсором. Раньше переменные робота на паузе печатались лентой: у строк не было ни колонок, ни ролей, программа чтения с экрана не могла сказать, где имя, где тип, где значение, а чем записано значение (текст, число, «скрыто», «не показывается»), у одних строк было напечатано прямо внутри значения и путалось с ним, а у других не было видно вовсе; команды паузы и отказ «запустить нельзя» существовали только в подсказке кнопки. Теперь снимок — таблица с колонками «имя», «тип», «значение», «состояние»: у строки есть своё имя, каждая ячейка адресована своей колонке, род значения несёт отдельный знак и в самом значении больше не повторяется, длинное значение по-прежнему обрезается с честным числом, но уже в своей колонке. Экран паузы и конец запуска произносятся вслух программам чтения с экрана: «Пауза рана на шаге …», «Итог рана: … · N мс», а отказ запустить робота, который уже стоит на паузе или идёт, напечатан на экране теми же словами, что и в подсказке. Клавиатуре больше не нужно обходить весь робот, чтобы дотянуться до «продолжить»: от выбранного шага до неё один ход Tab (раньше тридцать шагов, и экран по пути покидался). Колонка свойств робота на паузе перестала уезжать за своё место — было 4050 точек горизонтальной прокрутки при колонке в 350. Этим же замером нашлись и закрыты три мелочи, не видимые по отдельности: список замечаний в панели проверки больше не прокручивается сам (27 → 0), подписи, разобранные на отдельные куски, собраны в одну строку (4 → 0), а кнопка «Сохранить» вне экрана робота получила имя, которого у неё раньше не было. Проверено живьём в работающем продукте: строк таблицы с ролью было 0 — стало 5, ячеек, привязанных к своей колонке, 0 — 15, строк с родом на своём знаке 0 — 5 из 5, живых областей, называющих паузу и итог, 0 — по одной на каждое; текстов с контрастом ниже порога читаемости — 0 и в светлой, и в тёмной теме, целей клика меньше 24 × 24 точек — 0. Границы: замер снят на светлой теме и полном уровне раскладки — узкие уровни, снимок внутри штатного перехвата исключения (TryCatch) и значения-коллекции (массив, список) этим слоем не проверялись, обратный ход Shift+Tab от строки шага до команд по-прежнему идёт через весь документ, а цена кадра на паузе (медиана 31,2 мс) больше предела, который поставит следующий слой этого трека.
  • Визуальные роботы в Electron: большой робот назван числом, а не обещанием. Экран собирает и держит две тысячи шагов без расплывчатой «виртуализации»: на модели в 2000 шагов (5997 свойств, файл в 22 000 строк) смонтировано 32 185 узлов страницы при 25 видимых в кадре — в восемьдесят раз больше видимого, прокрутка проходит 55 320 из 56 051 точки, а кадр остаётся на частоте экрана (медиана 17,4…17,5 мс при том, что сам экран отдаёт 17,4…17,6 мс), то есть виртуализация контуру не нужна, и это сказано числом. Заодно закрыто поведение при холодном открытии файла: раньше первый кадр успевал показаться на старой ширине, список палитры растягивался, а его подпись перепрыгивала на другую строку, кнопки возврата панелей и значок числа шагов доезжали справа уже после отрисовки и сдвигали соседей — теперь всё это собрано до первого кадра, и смещение вёрстки при холодном открытии большого файла стало 0 (было 0,0028 и 0,00366 в двух прогонах). Названо честное нарушение: время до первой отрисовки на двух тысячах шагов — 542,8 мс при пороге 400 мс, и 427 мс из них занимает отчёт исполнителя о структуре файла, а не страница (на фронте остаётся 115,8 мс); ниже перелома порог держится — 601 шаг 212,8 мс, 1000 шагов 281,4 мс, — значит перелом лежит между 1000 и 2000, и судьба самого порога на таком объёме оставлена решением финального слоя трека, а не объявлена выполненной. Границы: плотность палитры и панели свойств на двух тысячах шагов, тёмная тема и переключение вкладки без перезапуска окна этим слоем не мерялись; порог «16 мс на кадр» на экране 60 Гц неизмерим в принципе, поэтому проверка меряет «не больше пола стенда плюс 3 мс».
  • Визуальные роботы в Electron: переменные робота стало можно объявлять массивом. Раньше редактор позволял только шесть скалярных типов; теперь к каждому из них добавлены одномерный массив и двумерная матрица — восемнадцать типов, и список в панели переменных печатается ровно тем же порядком, каким их разрешает исполнитель. Одномерному массиву можно задать значение списком элементов, и по нему работает цикл «для каждого элемента»: робот, собранный прямо в редакторе (объявление → цикл → шаг тела), исполняется до итога «готово» и обращается к текущему элементу в теле как к обычной переменной. Матрице значение присвоить нельзя — это ограничение читателя старой Studio, измеренное на ней, а не выдумка редактора: попытка ввести значение не портит файл, редактор словами называет, что многомерному объявлению значение не присваивается, начатая правка остаётся в очереди и чип «не сохранено» на месте, а робот на диске не переписывается.
  • Визуальные роботы в Electron: правка, приехавшая на перечитываемый или не показанный сейчас робота, больше не исчезает молча. Раньше экран продолжал держать введённое в поле значение там, где бэкенд его уже не принимал (сразу после любого сохранения файл перечитывается, и всё, что успели ввести в это окно, терялось, никак об этом не сказав). Теперь такое поле отвечает словом — «документ перечитывается — правка не принята, дождитесь конца перечитывания» или «документ не показан — правка не принята» — и говорит это до того, как правка попала в очередь, а не вместо неё. Назван и остаток: текст, введённый в это окно, не возвращается — правка отказана, а не отложена.
  • Визуальные роботы в Electron: развилка «если» перестала делать вид, что она заполнена, и научилась говорить, по какой ветке она прошла. Раньше новый блок «если» приезжал в робот уже с вписанным условием «ложь»: робот из одного шага внутри «тогда» заканчивался статусом «готово», не выполнив ни одного действия, а запуск рапортовал, что выбрана ветка «иначе», — той ветки в файле не было вовсе. Теперь незаполненное условие названо: собранный прямо в редакторе робот со «если» и двумя шагами показывает «не понято: 1» и словами говорит, что обязательный аргумент «Condition» у «If» в файле не задан или записан пустым, а запуск такого робота заканчивается статусом «не поддержано» без единого побочного действия и без единой подсвеченной строки. Заполненное условие возвращает роботу право запускаться, и запуск называет взятую ветвь: на строке отработавшего шага видно «шаг отработал, взята ветвь тогда» или «взята ветвь иначе», а шаги проигнорированной ветки помечены «ветвь не взята» — то есть не взятая ветка отличается от той, до которой запуск просто не дошёл. Заодно экран перестал держать собственное мнение о файле после сохранения: знак «не понято» снимается по перечитанному к тому моменту роботу, а не по тому, что экран нарисовал сам (было «не понято: 3» до правки и то же число после сохранения — стало 1 и пусто). Проверено живьём в работающем продукте: обе ветки собраны и прогнаны в редакторе, при «[1 = 1]» — «готово · 192 мс», ветвь «тогда», 4 события узла и 4 подсветки, маркеров «взята/чужая» 1 и 0; при «[1 = 2]» — «готово · 168 мс», ветвь «иначе», те же 4 и 4 и те же 1 и 0. Границы: развилка внутри развилки живьём не собиралась; слово «ветвь не взята» мерялось на широком экране и в тёмной теме — на узких уровнях, в светлой теме и в английском и турецком интерфейсах правка идёт общим правилом, но числом не покрыта; установленного продукта с этой правкой пока нет — сборка инсталлятора на этом прогоне упала на своей внутренней ошибке, а замер снят на собранной, но не установленной версии.
  • MCP: справка API в установленном продукте снова отдаёт примеры вызовов — в конфигурации пакуемого сервера осталась настройка, вырезавшая их из выдачи;
  • pdffile.get_page_count (WF): параметр ожидания теперь «Таймаут операции» в секундах, а не «Интервал ввода» (эта подпись досталась от клавиатурных блоков); 0 и отрицательное значение больше не означают «ждать вечно» — берётся таймаут по умолчанию;
  • pdffile.get_page_count: когда файла нет по указанному пути или PDF не читается, в лог пишется причина, а не молча возвращается -1;
  • $connection->get_local_ip(): возвращает IPv4-адрес машины, а не последний адрес из DNS-записи её имени (на машинах с IPv6 отдавался IPv6-адрес);
  • $connection->get_all_local_ip(): новая команда — все локальные IP адреса машины (IPv4 и IPv6) в виде массива;
  • pdffile: одна нечитаемая аннотация в PDF больше не обнуляла весь список — get_all_links, get_links_count и get_link_by_number отдают все читаемые ссылки, а ошибка по битой пишется в лог;
  • WF: у блоков запуска BAT/Console/JS/PHP/Python/PowerShell, «Запрос к БД» и «Вставить картинку в PDF» параметр ожидания подписан «Таймаут операции» в секундах — раньше он нёс клавиатурную подпись «Интервал ввода»; у «Запуска JS» заданный таймаут наконец доходит до команды;
  • PHP- и C#-клиенты: таймаут 0 или меньше в команде больше не означает «ждать ответа вечно» — берётся таймаут по умолчанию, робот не зависает;

Показаны последние 10 записей (в логе их 120). Полный лог Studio — change_log_studio.txt, исторический лог классической линейки — changelog.txt.

Смотрите также: FAQ, PHP, демо, поддержка.

Готовы автоматизировать браузер?

Актуальная линейка — Human Emulator Studio и RT. Посмотрите примеры задач, скачайте демо или сразу купите лицензию. Вопросы — в Telegram или на странице поддержки.

Скачать демо Поддержка

Купить →   |   Что нового →   |   О Studio →   |   FAQ →