Repository navigation
Releases
wsl-notify 1.0.4 — тост через -Command (фикс лимита argv у interop)
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. - Дефолты как везде:
graceMs500,minTurnMs500 (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.tgzwsl-notify 1.0.3 — V1: установка из npm, повторные тосты, мгновенный ask
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
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