Skip to content

Releases

Pixprite v0.0.8

Choose a tag to compare

@github-actions github-actions released this 09 Nov 16:48

Pixprite 0.0.8 — кисти, штампы и заливка фигур

Дата выпуска: 9 ноября 2026 года.

Установщики для macOS arm64/x64, Windows и Linux доступны на
странице выпуска.
Все четыре платформы прошли desktop-матрицу CI; приложен SHA256SUMS.

Создание кистей и нанесение

  • Кисть создаётся существующими инструментами: нарисуйте элемент, выделите его
    и нажмите Ctrl/Cmd+B. Кнопка «Перо → Из выделения» вызывает ту же команду;
    исходный рисунок остаётся на месте.
  • В «Перо → Штамп» доступны звезда, сердце, искра, алмаз, крест и лист.
    Пользовательская кисть рисует исходными цветами либо текущим цветом через
    alpha-маску; прозрачность маски и выбранного цвета учитывается совместно.
  • «Один отпечаток» наносит кисть один раз за нажатие. Движение и удержание
    не добавляют отпечатков. Режим «Штрих» поддерживает шаг 0–1000% размера кисти;
    0 сохраняет прежнее сплошное рисование.
  • Шаг считается в логических пикселях с учётом размера кисти и переносится между
    событиями. На прямом отрезке смена zoom или частоты событий не меняет размещение.
  • Штрих и одиночный отпечаток остаются одним шагом undo/redo; Escape отменяет
    незавершённое действие. Прежняя локальная alpha от нажима и доведение хвоста
    стабилизатора сохраняются.

Размер, отражения и динамика

  • Для bitmap-кисти доступны масштаб 1–400%, отражения по X/Y и ручной угол.
    Кнопка «100%» сбрасывает масштаб, отражения и угол. Преобразование сохраняет
    исходное изображение и использует nearest-neighbour без сглаживания.
  • Нажим на размер применяется поверх ручного масштаба. Длина стороны
    преобразуемого изображения ограничена 4096 px.
  • Угол может следовать направлению штриха, наклону или вращению пера.
    Ручной угол задаёт смещение; недоступные данные ориентации используют его
    как исходное значение. Нулевой наклон не разворачивает кисть неожиданно.
  • Предпросмотр обновляется после смены кисти, окрашивания, масштаба и отражений.
    Параметры доступны и через меню переполнения; кнопка «Перо» сохраняет приоритет.

Полные пресеты и обмен кистями

  • Пресет сохраняет изображение кисти или захваченный узор, нажим, динамику,
    масштаб, отражения, угол, шаг, способ нанесения, прозрачность и стабилизатор.
    После перезапуска можно выбрать пресет без повторного захвата исходника.
  • Пресет обычной кисти возвращает обычную кисть после bitmap-отпечатка.
    Старые пресеты продолжают работать; их отсутствующие новые поля получают
    совместимые значения, а прежняя общая настройка нажима не подменяется.
  • Новые записи библиотеки сохраняют параметры. Изменение текущей кисти
    не переписывает ранее сохранённые записи и пресеты.
  • «Импорт кистей…» принимает .pixbrush и PNG, включая несколько файлов.
    «Экспорт кисти…» сохраняет текущую кисть с настройками, «Экспорт набора…» —
    bitmap-кисти общей библиотеки и текущего проекта. «PNG кисти…» сохраняет
    исходное изображение без запекания преобразований и динамики.
  • .pixbrush — переносимый JSON-формат версии 1 для изображений, alpha,
    метаданных и настроек кистей. PNG переносит только изображение.
  • Импорт проверяет пакет целиком до добавления. Повреждённый файл, неподдерживаемая
    версия, недопустимые настройки или нехватка места сохраняют прежнюю библиотеку.
    Отмена выбора файлов ничего не меняет; совпавшие имена получают суффиксы.

Фигуры с заливкой

  • Прямоугольник, эллипс и многоугольник получили заметные кнопки
    «Контур / С заливкой». Заливка показывается во время построения.
  • Многоугольник поддерживает оба режима и закрывающую сторону; Enter завершает
    построение. Свободная заливка показывает заполненный предпросмотр.
  • Геометрическая область заливки не расширяется размером пользовательской кисти.
    Выделение и прозрачность учитываются; undo/redo точно восстанавливают действие.

Проверки и известные ограничения

Пересчёт видимой области и вместимости панели инструментов из ResizeObserver
перенесён в следующий кадр: обновления React не запускают вложенный пересчёт
размеров при доставке уведомлений WebKit.
Браузерное уведомление об отложенной доставке resize учитывается отдельно от
исключений JavaScript и остаётся в нативных логах. Тесты отклоняют повторяющиеся
уведомления и любые необработанные исключения.

Локально пройдены unit, typecheck, переводы, расширения, production build,
bundle check, релевантные сценарии Chromium/WebKit и полный бенчмарк с параметрами
baseline. Результаты и последующая проверка выпуска записываются в
плане 0.0.8.
Desktop CI проверяет Rust, ресурсы, нативный редактор и MCP перед публикацией пакетов.

Настоящий планшет и его драйвер в этой приёмке не проверялись: синтетические
pen-события не подтверждают аппаратную поддержку наклона и вращения.
Клонирование, Smart Shape, отдельные цвета контура/заливки и галерея миниатюр
остаются будущими задачами. Процедурные графы из плана 0.0.10 в этот выпуск не входят.
Формат пиксельного документа .pixprite не меняется.

Участники

Спасибо Elitium (@cc4221) за
PR #3: из него выборочно перенесены
маски встроенных штампов, основа окрашивания кисти и динамики угла, а также
исправление проверки путей переводов на Windows. Перенесённые механизмы
доработаны для совместимости с текущим редактором.

Руководство по кистям ·
История выпусков

Pixprite v0.0.7

Choose a tag to compare

@github-actions github-actions released this 09 Nov 13:45

Pixprite 0.0.7 — цвет, нажим и текст

Дата выпуска: 9 ноября 2026 года.

Установщики для macOS arm64/x64, Windows и Linux доступны на
странице выпуска.
Desktop CI собирает и проверяет пакеты перед публикацией. Исходные цели и результаты
локальных проверок сохранены в плане релиза.

Рисование пером

  • Изменение нажима меняет прозрачность новых участков штриха. Уже нарисованные
    пиксели сохраняют alpha при перерисовке «Чистых линий» и очистке углов.
  • Промежуточные пиксели получают нажим события, которое их добавляет. В режиме
    одного нанесения повторный проход сохраняет первый результат на затронутом пикселе.
  • Стабилизатор доводит хвост до точки отпускания с последним контактным нажимом
    и размером кисти. Один штрих остаётся одним шагом undo/redo.
  • В параметрах карандаша, ластика и распылителя появилась подписанная кнопка
    «Перо». При узком окне она доступна через «Другие параметры инструмента».
    Привязки «Нажим → размер/прозрачность», «Минимум, %» подписаны явно;
    стабилизатор доступен для карандаша и ластика.
    Значение стабилизатора 0 отключает его; нажим остаётся общей настройкой пользователя,
    стабилизатор сохраняется в editor-состоянии и пресетах.

Цвет в COLOR

  • Нажатие на основной или фоновый образец открывает редактор выбранного цвета
    с HEX и числовыми R/G/B/A. Вкладка HSL/HSV/RGB основной панели сохраняется.
  • Поддерживаются HEX из 3, 4, 6 и 8 цифр, необязательный # и пробелы по краям.
    RGB без alpha сохраняет прозрачность; неполный или неверный ввод не меняет цвет.
  • В popup доступны системный выбор цвета и экранная пипетка. Для desktop добавлен
    API с NSColorSampler на macOS, захватом Win32 на Windows и XDG PickColor на Linux;
    браузер использует EyeDropper при наличии поддержки.
  • Отмена экранного выбора не меняет текущий цвет. Закрытие popup завершает
    незаконченный захват; уже внесённые правки цвета сохраняются.
    Сообщения об ошибках и недоступности пипетки переносятся в узком окне.

Текстовый инструмент

  • Ведущие и замыкающие пробелы сохраняют ширину строки. Поле начинается в точке
    нажатия верхним левым углом; при расчёте размера учитываются выступы глифов.
  • Многострочный текст можно вставить или набрать через Shift+Enter.
    Enter применяет текст, Escape отменяет его.
  • Полная очистка удаляет прежний предпросмотр. Пустой текст и одни пробелы
    не создают нанесение и шаг истории.
  • Живой текст обновляется при смене шрифта, размера, начертания, сглаживания
    и основного цвета. Поля параметров можно редактировать без перехвата фокуса.
  • Текст можно перетаскивать во время набора и продолжать ввод на новом месте.
    Новая рамка или смена инструмента применяет предыдущую одним шагом истории.
  • Очистка перемещённого текста сохраняет положение рамки. Переключение документов,
    переход на Home или во вкладку сравнения, создание/закрытие документа и явное
    сохранение завершают ввод с ожиданием шрифта, сохраняя текст в исходном документе.
  • Применение дожидается загрузки выбранного шрифта, в том числе в WebKit;
    завершение загрузки не восстанавливает отменённый текст.

Проверки и ограничения

Автоматические pen-события проверяют alpha, живой штрих и PNG после undo/redo;
UI-регрессии покрывают цвет, текст, настройки и крупные русский/английский интерфейсы.
Точный результат запусков записывается в плане.

Для оценки аппаратного ввода и поддержки среды нужна ручная проверка настоящего
планшета, системных диалогов и выбора экранного пикселя на целевых ОС.
Проверка подменённого ответа native-адаптера не подтверждает работу UI системы.
Текст после применения остаётся растровыми пикселями; формат .pixprite не меняется.

План 0.0.7 · История выпусков

Pixprite v0.0.6

Choose a tag to compare

@github-actions github-actions released this 04 Nov 02:09

Pixprite 0.0.6 — автоматизация, неквадратные пиксели и безопасный экспорт

Дата выпуска: 4 ноября 2026 года.

Установщики для macOS arm64/x64, Windows и Linux доступны на
странице выпуска.
Desktop CI проверяет пакеты и нативные сценарии на каждой платформе перед публикацией.

Интерфейс

  • Управление кадрами и масштабом закреплено справа. Длинные подсказки и сведения
    о слоях обрезаются в доступном месте слева; смена текста и длительности кадра
    сохраняет положение кнопок и полей.
  • На главной странице скрыты панели расширений. При возвращении в редактор
    они появляются с прежним состоянием; выполняемые задачи продолжаются в фоне.

MCP и AI Assistant

  • MCP и AI Assistant используют общий каталог инструментов, схемы аргументов,
    исполнитель и инструкции. В AI Assistant 0.4.1 доступны те же операции
    изучения спрайта, редактирования, анимации и сравнения.
  • Агент адресует документ по ID и проверяет revision. Смена пользовательской
    вкладки сохраняет цель агента; закрытый документ и конфликт с ручной правкой
    возвращают ошибку. Контекст агента хранит отдельные кадр, слой, камеру,
    выделение, playback и внутренний буфер фрагментов.
  • Команда file.save сохраняет выбранный документ в библиотеку без диалога,
    переключения вкладки и дополнительного undo-шага.
  • Пакетное редактирование и запись пикселей атомарны: один шаг undo и полный
    откат при ошибке. Preview захватывает актуальную модель и возвращает её revision.
  • Сравнение кадров и документов открывается отдельной вкладкой с канвасом
    для просмотра. Zoom/pan и направляющие помогают сравнивать позы и референсы;
    рисование и undo в этой вкладке не меняют документы.
  • Во время ручной работы агент не переключает вкладки и не перехватывает фокус.
    Слежение возможно после простоя внутри видимого активного редактора и сразу
    прекращается при вводе. AI Assistant продолжает работу при переходе на Home.

Неквадратные пиксели

  • При создании документа и в меню «Изображение → Пропорции пикселя» доступны
    1:1, 2:1, 1:2, 4:5, 8:7 и своё целое соотношение от 1 до 255 по каждой оси.
    Эквивалентные значения сокращаются: 4:2 становится 2:1.
  • Размеры документа, пиксели и координаты инструментов остаются логическими.
    Холст, указатель, сетка, выделения, направляющие, текст, референсы, Preview
    и миниатюры учитывают пропорции. Изменение соотношения поддерживает undo/redo;
    поворот всего холста на 90° поворачивает и форму пикселя.
  • .pixprite и .aseprite сохраняют соотношение сторон. Ранее сохранённая
    диагностика неквадратных пикселей восстанавливается в редактируемое свойство.
  • При растровом экспорте можно сохранить исходную сетку или применить пропорции
    с nearest-neighbour масштабированием. JSON спрайтшита соответствует полученному PNG.
  • MCP Preview и сравнение показывают пропорции; чтение и запись пикселей используют
    исходные координаты. image.pixelRatio принимает args:{x,y}. Сохранение PNG
    через MCP по умолчанию сохраняет исходные пиксели, applyPixelRatio:true применяет пропорции.

Повтор экспорта

  • Последние успешные настройки экспорта хранятся отдельно для каждого документа
    и восстанавливаются вместе с сессией и сохранённым проектом библиотеки.
  • Ошибка, отмена или отсутствие результата сохраняют предыдущие настройки.
    Нативный диалог сообщает об отмене; успех означает завершённую запись файла.
    В браузере успех означает передачу загрузки браузеру.
  • Если сохранённый тег, слой или slice исчез или заменён, повтор открывает диалог
    для выбора параметров. Отсутствующие выделение или диапазон также требуют
    нового выбора. Настройки другого документа не используются.
  • Завершение экспорта после переключения вкладки обновляет настройки исходного
    документа. Быстрый экспорт текущего PNG сохраняет настройки последнего
    экспорта через диалог.

.aseprite и защита исходных файлов

  • Добавлена матрица поддержки: поддерживаемые,
    запекаемые и пропускаемые данные перечислены явно.
  • Импорт диагностирует неизвестные chunks, ICC и нестандартную
    gamma, внешние ресурсы, пользовательские свойства и другие неподдерживаемые
    данные. Предупреждения сохраняются в .pixprite и рабочих копиях.
  • Перед выгрузкой .aseprite показывается список потерь. Импорт с предупреждениями
    получает имя копии; нативное сохранение и MCP запрещают заменять существующий
    файл при таком экспорте, включая вызовы с overwrite:true.
  • Сохранение нового файла атомарно. Пропущенные данные исходника не восстанавливаются
    из рабочей копии; оригинал следует хранить отдельно. Полная поддержка ICC,
    внешних тайлсетов и расширенных свойств остаётся отдельной задачей.

Настройка MCP · План развития · История выпусков

Pixprite v0.0.5

Choose a tag to compare

@github-actions github-actions released this 01 Nov 18:10

Pixprite 0.0.5 — нативный MCP и работа с файлами

Дата выпуска: 1 ноября 2026 года. Исходники:
v0.0.5.
Изменения относительно v0.0.4.

Настольное приложение и MCP

  • MCP использует Streamable HTTP и работает на Rust прямо в процессе редактора.
    Установленному приложению больше не нужны Node.js, Bun или внешний stdio-адаптер.
    Клиентам нужно заменить прежнюю команду запуска на HTTP-подключение из настроек.
  • Панель MCP доступна из меню и постоянной кнопки внизу настроек. Она показывает
    состояние сервера, автозапуск, порт и готовый JSON подключения с токеном;
    конфигурацию можно скопировать одной кнопкой.
  • По умолчанию MCP выключен. --mcp принудительно включает его на текущий запуск,
    --mcp --mcp-port 4321 задаёт другой порт, а --no-mcp отключает сервер даже
    при сохранённом автозапуске. Флаги не меняют предпочтения; --mcp и --no-mcp
    вместе недопустимы. Порт 0 позволяет системе выбрать свободный порт.
  • Повторный запуск передаёт файлы в существующий редактор. Относительные пути
    разрешаются от каталога вызывающего процесса; несохранённые вкладки сохраняются.
    MCP завершается вместе с окном без отдельного процесса и задержки ожидания.
  • MCP умеет просматривать сохранённые проекты и папки библиотеки, фильтровать их
    и открывать проект по постоянному ID, сохраняя уже открытую рабочую копию.
  • Явное изменение размера скрытого окна сохраняется с общей задержкой записи,
    даже если GTK ещё не прислал событие изменения размера.
  • Исправлена гонка восстановления сессии: события видимости при запуске больше
    не могут перезаписать вкладки до окончания загрузки. Старые сессии нескольких
    окон восстанавливаются в одном окне.

Файлы и интерфейс

  • Несколько изображений при обычном открытии становятся отдельными документами.
    Импорт последовательности кадров остаётся отдельным действием. Повреждённый
    файл не прерывает открытие остальных; нативные перетаскивания проходят через
    очередь открытия файлов редактора.
  • Перетаскивание проектов и папок в библиотеке работает через события указателя,
    в том числе в Tauri, где системное перетаскивание файлов обрабатывает оболочка.
  • В небольших окнах и при крупном интерфейсе строки настроек больше не
    накладываются друг на друга. Кнопка MCP остаётся доступной внизу диалога.
    Подпись изменения прозрачности кальки за кадр переведена.

Расширения

  • AI Assistant 0.3.0 получает шесть встроенных навыков: изучение спрайта,
    рисование, локальное редактирование, анимация, палитры и команды редактора.
    Модель получает краткий каталог и загружает нужную инструкцию через read_skill.
  • Добавлено чтение выделения. Некорректные цвета, размеры и строки пикселей
    отклоняются до изменения документа. Если пользователь переключил документ
    во время ответа модели, дальнейшее выполнение инструментов этого запроса
    останавливается.
  • Украинский языковой пакет обновлён до 1.1.1 с новой строкой AI Assistant.

Проверки

Нативные сценарии используют настоящий WebView со скрытыми окнами, без захвата
фокуса. Проверки без MCP запускаются с --no-mcp; проверки MCP используют
встроенный HTTP-сервер. Покрыты флаги, жизненный цикл, единственный экземпляр,
открытие файлов, сохранность сессии и авторизация. Браузерные проверки охватывают
панель MCP, раскладку настроек, библиотеку и инструменты AI Assistant.

Настройка MCP · История выпусков

Pixprite v0.0.4

Choose a tag to compare

@github-actions github-actions released this 01 Nov 13:52

Pixprite 0.0.4 — рабочее пространство и версии расширений

Дата выпуска: 1 ноября 2026 года. Исходники:
v0.0.4.
Изменения относительно v0.0.3.

Расширения

  • При публикации каждый пакет получает неизменяемый Git-тег
    ext-<id>-v<version>, например ext-game-rig-v0.6.0. Каталог сохраняет
    историю версий со ссылками на конкретные коммиты и контрольными суммами.
    История ранее опубликованных каталогов используется для восстановления старых
    версий. Изменение файлов уже опубликованной версии запрещено.
  • В манифестах появились категория и поисковые теги. В каталоге доступны фильтры
    категорий, поиск по тегам и выбор версии. Из настроек тем, языков и иконок можно
    открыть соответствующий раздел каталога.
  • minEditorVersion задаёт минимальную версию редактора. Проверки выполняются
    при установке, обновлении, включении и запуске сохранённого пакета; скачанный
    манифест проверяется независимо от метаданных каталога. Из истории выбирается
    совместимая версия. Расширения без нового поля остаются допустимыми.
  • При обновлении редактор хранит предыдущий пакет с его файлами. После ошибки
    загрузки или активации обновления восстанавливается прежний пакет. Кнопка
    возврата версии работает офлайн. Новая версия записывается в постоянное
    хранилище после активации, поэтому закрытие во время обновления сохраняет
    последнюю установленную версию. Откат касается пакета; данные расширения и
    завершённые изменения документов сохраняются.
  • Game rig 0.6.0, AI assistant 0.2.0 и шаблон 0.2.0 используют TSX-страницы
    с компонентом по умолчанию и @pixprite/ui-react. В AI assistant сохранены
    чаты, очередь сообщений, Markdown и вызовы инструментов; для многострочного
    ввода добавлен общий компонент TextArea.
  • В платформере Game rig исправлены прыжок с нулевым coyote time, разворот
    одностороннего спрайта и столкновения на высокой скорости. При смене режима
    добавляются необходимые состояния; пользовательские настройки сохраняются.
    Время завершения анимации учитывает ping-pong, начальный кадр и скорость.
  • Числовые поля поддерживают обычное выделение мышью и с клавиатуры.
    Изменение перетаскиванием выполняется через Alt; колесо и перетаскивание
    учитывают дробный шаг поля.
  • Категории, теги и версии обновлены также у Neon Night 0.2.0, Duotone 1.1.0
    и украинского языкового пакета 1.1.0. Новые элементы интерфейса переведены
    на русский, английский и украинский.

Рабочее пространство

  • Сохранённая раскладка включает размеры, расположение, видимость и активные
    вкладки панелей расширений вместе с панелями редактора. Старые раскладки
    загружаются с прежними настройками панелей. Данные отсутствующего расширения
    остаются в сохранённой раскладке.
  • Исправлен ресайз пикера цвета в реальном времени. Пикер, боковая панель цвета
    и таймлайн сворачиваются до нуля и раскрываются за разделитель; размеры
    сохраняются после окончания перетаскивания.
  • Вложенные Flex-компоненты используют собственные параметры раскладки.
    Образцы основного и дополнительного цвета заполняют панель, располагаясь
    рядом либо друг под другом по её ширине.
  • Подсказки сохраняют title iframe, необходимый для доступного имени панели.

Воспроизведение

  • Выбор кадра или слоя в таймлайне больше не останавливает проигрывание.
    При ручном переходе обновляются диапазон и отсчёт времени выбранного кадра.
  • В параметрах доступны текущий тег, выбранный диапазон цикла и вся анимация.
    Переключение диапазона и скорости применяется во время проигрывания.
  • Один проход и возврат к стартовому кадру работают независимо: при отключённом
    возврате один проход заканчивается на последнем кадре последовательности.
  • Повторы и направления тегов, включая короткий ping-pong, согласованы с
    последовательностями кадров Preview. Сообщения об ошибках активации сохраняют
    текст причины и в WebKit, где stack может содержать только адреса.

Проверки

Проверяются история публикаций и неизменяемость пакетов в отдельном локальном
Git-репозитории; установка, понижение версии и офлайн-откат; восстановление после
ошибки активации и закрытия во время обновления; раскладки и восстановление сессии;
реальные TSX-панели AI assistant и Game rig; ручные переходы при воспроизведении.
Локально прошли проверка типов, 304 unit-теста, 121 браузерный сценарий Chromium
и 85 сценариев WebKit, проверки переводов и расширений, production-сборка
и лимиты бандла. Один opt-in тест с внешними Aseprite fixtures пропущен.
На macOS Apple Silicon прошли 9 тестов Rust и 9 desktop/MCP-сценариев.

JavaScript занимает 502 045 байт initial и 532 347 байт всего (gzip level 9)
при лимитах 512 000 и 544 768 байт. Сохраняются один браузерный бандл,
самостоятельные Workers и отдельные пакеты расширений.

Формат документов остаётся .pixprite v5 с чтением v3–v5.

Предыдущий выпуск: 0.0.3 · История выпусков

Pixprite v0.0.3

Choose a tag to compare

@github-actions github-actions released this 01 Nov 10:14

Pixprite 0.0.3 — общий интерфейс редактора и расширений

Редактор и панели расширений используют общий UI kit на Web Components.
Исправления общих контролов теперь приходят вместе с обновлением Pixprite,
а авторам расширений доступен тот же набор компонентов.

Дата выпуска: 1 ноября 2026 года. Исходники:
v0.0.3.
Изменения относительно v0.0.2.

Для пользователей

  • Исправлены селекты в Game rig: список открывается рядом с контролом,
    не перебрасывает прокрутку вниз и работает после изменения размеров панели.
    Доступны выбор мышью, стрелками и подтверждение с клавиатуры.
  • Селекты, поля, флажки, ползунки, меню, диалоги и выбор цвета получили общую
    реализацию в редакторе и расширениях. Прежние HTML-контролы расширений
    автоматически подключаются к тому же поведению.
  • Уточнены клавиатурная навигация, закрытие вложенных меню, работа подписей
    полей, required/disabled/readonly, отправка и сброс форм. При ошибке
    обязательного селекта фокус получает его видимая кнопка.
  • Незавершённые числовые значения и выражения сохраняются при переносе
    полей между панелью и меню «Ещё», в том числе в WebKit. Перетаскивания
    завершаются при отмене указателя; закрытие и повторное открытие контролов
    освобождает обработчики и восстанавливает состояние.
  • Исправлены переносы подсказок на Home при крупном интерфейсе и шрифтах;
    градиенты сохраняют цвет и прозрачность при переключении между WebGL
    и Canvas fallback.

Для авторов расширений

  • Добавлен @pixprite/ui: 30 общих custom elements для полей, раскладки,
    меню, диалогов, форм, цвета, перетаскивания, адаптивных панелей,
    виртуальных списков, Canvas, градиентов и иконок.
  • Панели и виджеты могут указывать TSX-страницу с React-компонентом в
    export default. Новый @pixprite/ui-react предоставляет общие контролы;
    хуки импортируются из react. JSX компилируется редактором, компонент
    монтируется автоматически и получает подключённый API через props ctx.
    HTML и отдельная сборка не нужны. В шаблон расширения добавлен React-виджет.
  • Исправлена инициализация уже загрузившегося iframe: виджеты получают API
    и в WebKit, когда событие load произошло до подключения моста.
  • @pixprite/ui и @pixprite/ui/elements регистрируют компоненты,
    @pixprite/ui/legacy адаптирует существующие HTML-контролы.
    Реализацию предоставляет редактор внутри sandbox; отдельная сборка
    или копия библиотеки в пакете расширения не требуется.
  • Компоненты используют нативные поля, события input/change, формы
    и CSS-переменные темы. Повторные импорты используют одну регистрацию
    компонентов внутри документа.
  • React-интерфейс редактора подключён через @pixprite/ui/react и адаптеры.
    Изоляция iframe, CSP и разрешения Extension API сохраняются.

Примеры импорта и API: руководство расширений.
Архитектура и измерения: общий UI kit.

Сборка и зависимости

  • Обновлены зависимости: TypeScript 7.0.2, Vite 8.3.5, React/React DOM 19.3.1,
    styled-components 6.6.0 и связанные библиотеки и типы. Обновлён bun.lock.
  • Rust Tauri обновлён до 2.12.5 для совместимости с JS API 2.12.4.
    В CI и подготовку desktop-сборки добавлена ранняя проверка совпадения
    major/minor версий Tauri.
  • Сборка переведена на настройки Rolldown и Oxc; разрешение путей TypeScript
    использует встроенную возможность Vite. Проверка переводов использует
    совместимый классический AST API из @typescript/typescript6.
  • Убраны дублирующие реализации контролов и шейдеров, расширена документация.
    Исправлена совместимость HTMLElement.hidden с новыми DOM-типами.
    Пример AI assistant обновлён до 0.1.1 после исправления типизации списка чатов.
  • Сохраняются один браузерный JS-бандл и самостоятельные Workers. Общий
    runtime UI для расширений входит в измеряемый размер JS; действуют лимиты
    500 KiB для initial и 532 KiB для всего JavaScript (gzip level 9).
    Изолированный React runtime для TSX-страниц добавляет около 76.5 KiB gzip;
    он поставляется редактором и работает внутри sandbox без загрузки с CDN.

Проверки и совместимость

На итоговом коде UI и зависимостей прошли проверка типов, 289 unit-тестов,
94 браузерных сценария Chromium и 65 WebKit, проверки переводов и расширений,
production-сборка и проверка размера/графа бандла. Один opt-in тест с внешними
Aseprite fixtures пропущен. Отдельно проверены реальные селекты Game rig,
вложенные меню, формы, перенос полей и режим без WebGL.

После обновления версии повторно проверены production-сборка, лимиты и граф
бандла, совпадение версий JavaScript/Rust и desktop:prepare (мост Tauri и MCP).
После выравнивания Tauri локально прошли все 9 тестов нативной части Rust
и 9 desktop/MCP-сценариев на macOS Apple Silicon.

Релизный workflow собирает установщики для macOS Apple Silicon и Intel,
Windows x64 и Linux x64, проверяет нативную часть, ресурсы приложения и
desktop/MCP-сценарии перед публикацией. Вместе с установщиками публикуются
pixprite-mcp.mjs, mcp-builtin.mjs и контрольные суммы SHA256SUMS.
Формат документов остаётся .pixprite v5 с чтением v3–v5; существующим
расширениям не требуется переупаковка для подключения адаптера HTML-контролов.
Для новых компонентов и исправлений UI обновляется само приложение.

Предыдущая версия: 0.0.2 · История выпусков

Pixprite v0.0.2

Choose a tag to compare

@github-actions github-actions released this 31 Oct 22:02

Pixprite 0.0.2 добавляет настольное приложение и локальное управление редактором через MCP.

  • Единый бандл интерфейса и кодеков; вычислительный Worker остаётся отдельным. Повторных загрузок экранов и диалогов больше нет.
  • Анимированная заставка до запуска JavaScript, поддержка reduced motion и повтор после ошибки загрузки.
  • Открытие файлов из установленной PWA после восстановления сессии; ошибка одного handle не мешает остальным файлам.
  • Настольные приложения на Tauri 2 и системном WebView, без встроенного Chromium/Node.js: отдельные сборки macOS для Intel (x64) и Apple Silicon (arm64), Windows x64, Linux x64; файловые ассоциации и восстановление сессии.
  • Одно окно с компактным заголовком Pixprite: кнопки окна слева на macOS и справа на Windows/Linux. Меню остаётся внутри приложения; системное меню оболочки отключено. Старые многооконные сессии объединяются при переносе профиля.
  • Компактное закрываемое уведомление о новой версии поверх интерфейса сверху. Не занимает строку, не сдвигает редактор и открывает страницу релиза; скачивание и установка выполняются пользователем.
  • Сетевые проверки обновлений выполняются в фоне после готовности редактора и не задерживают запуск.
  • Системный диалог сохранения и нативный буфер изображений. Для перехода с Electron добавлен перенос IndexedDB и настроек с сохранением исходного профиля.
  • Проекты настольной версии хранятся обычными .pixprite-файлами в каталоге данных ОС. Рабочие копии и снимки разнесены по папкам, на главной есть кнопка открытия каталога; существующая IndexedDB переносится с сохранением исходной базы.
  • MCP через stdio: создание и выбор документов, пиксели, слои и кадры, команды, PNG preview, сохранение файлов и undo/redo. Пакетные изменения откатываются целиком при ошибке.
  • Исправлено ограничение частоты WebKit около 60 fps на macOS: интерфейс запрашивает частоту дисплея. Перетаскивание и ресайз больше не сохраняют настройки на каждом движении; диалоги и панели перемещаются без перерисовки React на каждом событии.
  • Панели инструментов, параметры, таймлайн и строка состояния адаптируются к ширине окна: дополнительные действия доступны через меню. Исправлены переносы текста на главной странице, в том числе с крупными шрифтами.
  • Встроенные наборы иконок: контурные по умолчанию и пиксельные на выбор; оба доступны офлайн. Пример расширения Duotone добавляет двухцветный вариант. Выбор доступен в меню «Окно → Набор иконок» рядом с языком и темой, а также в настройках; смена применяется сразу.
  • Обновлены README и навигация по документации, добавлен пример проекта. Результаты сборок и отчёты собраны в dist/.

Инструкции: настольное приложение и подключение MCP. pixprite-mcp.mjs и соседний mcp-builtin.mjs — stdio launcher и payload для Node.js 24+; перед использованием откройте настольное приложение.

Это ранние неподписанные сборки: сертификаты подписи и macOS notarization пока не настроены. Поддержка файловых ассоциаций PWA зависит от браузера и ОС. Проекты веб-версии и настольного приложения хранятся отдельно; переносите их через .pixprite.

SHA-256 каждого файла приведён в SHA256SUMS.