Skip to content

Releases

wsl-notify 1.0.4 — тост через -Command (фикс лимита argv у interop)

Choose a tag to compare

@AlexeyShirshov AlexeyShirshov released this 14 Oct 10:49

wsl-notify 1.0.4 — Windows-тосты для OpenCode (V1 и V2)

Исправление к 1.0.3: скрипт тоста уходит через -Command, а не -EncodedCommand.

Почему

base64 от UTF-16LE раздувает единственный аргумент в 2.67 раза (наш скрипт:
771 символ → 2056 символов одного аргумента). На хосте, где interop-слой
ограничивает длину аргумента (~2 KB), execve возвращает EINVAL: в выводе
powershell.exe: Invalid argument, exit code 1. Плагин спавнит с stdio: "ignore",
поэтому падение было невидимым: «спавн успешен», тоста нет — и никаких следов.
Теперь скрипт передаётся как есть, одним argv-элементом (шелла нет, кавычки
buildScript одинарные; -ExecutionPolicy не нужен — скрипт не из файла).

Проверено на OpenCode 1.18.35 с реальным powershell.exe:
-NoProfile -NonInteractive -WindowStyle Hidden -Command <771 симв.> → exit=0,
stderr пуст, тост поднят.

Что ещё внутри 1.0.4 (было в 1.0.3)

  • Пакет работает на V1: сабпас exports["./server"] / main; setup тихо
    выходит, когда в контексте 1.18.x нет потока событий (события идут в server()-хуки).
  • Повторные тосты о завершении в одном долгоживущем процессе: ключ дедупа
    снимается по новому user-сообщению (у 1.18.x нет session.execution.started).
  • Строка загрузки в логе без флагов: loaded path=v1 powershell=… — сразу видно,
    поднялся ли плагин вообще.
  • Имя сессии и parentID из properties.info, ошибки из session.error.
  • Дефолты как везде: graceMs 500, minTurnMs 500 (WSL_NOTIFY_* — переопределение).
  • Тесты: 49 проверок на подставном powershell.

Установка

V2: "plugins": ["wsl-notify"] в opencode.json(c).
V1 (1.18.x): opencode plugin -g <tarball-URL> (или запись "plugin": […]) + перезапуск.

opencode plugin -g https://github.com/AlexeyShirshov/skills/releases/download/wsl-notify@1.0.4/wsl-notify-1.0.4.tgz

wsl-notify 1.0.3 — V1: установка из npm, повторные тосты, мгновенный ask

Choose a tag to compare

@AlexeyShirshov AlexeyShirshov released this 14 Oct 09:14

Windows-тосты для OpenCode (V1/V2), без зависимостей.

Один релиз вместо разрозненных 1.0.2/1.0.3/1.0.4/1.0.5 — все правки здесь.

Установка на OpenCode 1.18.x (V1)

1.18.x резолвит пакет по сабпасу exports["./server"] (или main) — теперь он
есть, поэтому пакет ставится и поднимается штатно:

  • opencode plugin -g wsl-notify (если реестр доступен);
  • если реестр закрыт прокси — этот tarball:
    opencode plugin -g https://github.com/AlexeyShirshov/skills/releases/download/wsl-notify@1.0.3/wsl-notify-1.0.3.tgz
  • после установки перезапустить opencode (плагины грузятся на старте сервера).

V2: "plugins": ["wsl-notify"] в opencode.json(c).

Что вошло в 1.0.3

  • Пакет работает на V1: ./server-экспорт, setup тихо выходит, когда в
    контексте 1.18.x нет потока событий (события идут через хуки server()).
  • Повторные тосты о завершении: ключ дедупа снимается по новому
    user-сообщению, а не только по V2-событию session.execution.started — иначе в
    долгоживущем процессе (TUI) тостил лишь первый завершённый ход сессии.
  • Мгновенный ask на V1: graceMs и minTurnMs на V1-пути по умолчанию 0
    (как в старом отдельном V1-файле); отмена отложенного тоста теперь логируется.
  • Имя сессии и parentID читаются из properties.info; ошибки — из
    session.error с текстом properties.error.data.message.
  • Строка загрузки в логе (без флагов): loaded path=v1 powershell=… —
    мгновенно отвечает на вопрос «плагин вообще загрузился?».
  • Тесты: 45/45.

wsl-notify 1.0.2 — установка из npm на OpenCode 1.18.x

Choose a tag to compare

@AlexeyShirshov AlexeyShirshov released this 14 Oct 07:01

Windows-тосты для OpenCode (V1/V2), без зависимостей.

Что нового в 1.0.2

  • плагин ставится из npm и на OpenCode 1.18.x: эта версия резолвит пакет по
    сабпасу exports["./server"] (или main) — без них плагин пропускался как
    «не имеет server entrypoint». Теперь объявлены оба, и setup в 1.18.x не
    используется для событий: всё идёт через хуки server();
  • V1 получает имя сессии (объект сессии в properties.info), ошибки
    (session.error) и завершение (session.idle) — проверено живьём на 1.18.35;
  • на 2.0.28 поведение прежнее (один тост на ход, дедуп по globalThis),
    юнит-тесты 36/36.

Установка

  • V2: "plugins": ["wsl-notify"] в opencode.json(c)
  • V1: opencode plugin -g wsl-notify
  • Реестр закрыт прокси (403 от Artifactory и т.п.) — этот tarball:
    opencode plugin -g https://github.com/AlexeyShirshov/skills/releases/download/wsl-notify@1.0.2/wsl-notify-1.0.2.tgz

npm: https://www.npmjs.com/package/wsl-notify