fix(ton-trading-bot): обновление плагина не зависает — синхронизация версии (#186)#187
Conversation
Adding .gitkeep for PR creation (default mode). This file will be removed when the task is complete. Issue: xlabtg#186
…ие не зависало (xlabtg#186) Корневая причина: версия плагина дублируется в двух местах — `manifest.json` ("version") и рантайм-объекте `export const manifest` в `index.js` ("version"). В PR xlabtg#183 подняли только `manifest.json` (2.3.0 → 2.4.0), а `index.js` остался на 2.3.0. Хост teleton сообщает установленную версию из рантайм-манифеста (index.js = 2.3.0), а каталог обновлений строится из manifest.json (2.4.0). После обновления код всё равно отдаёт 2.3.0 ≠ 2.4.0, поэтому кнопка «Обновить» появляется снова и обновление как будто не применяется. Исправления: - синхронизированы обе версии и подняты до 2.4.1 — чистый релиз, чтобы застрявшие пользователи получили рабочее обновление, которое «закрепится»; - добавлен регрессионный тест: версия в index.js == версия в manifest.json; - добавлена общая проверка в scripts/validate-plugins.mjs — рассинхрон версий теперь ловится в CI для любого плагина.
Working session summaryВсе ключевые CI-проверки прошли (Build Runtime, Build SDK, Lint, Test, TypeScript, deploy — pass; CodeQL Analyze ещё выполняется, к коду не относится). PR готов к ревью. ИтогIssue #186: кнопка «Обновить» у плагина Корневая причина: версия плагина дублируется в двух местах — Что сделано:
Проверено: тест и валидатор падают при искусственном откате версии на 2.3.0, проходят (189/189) после фикса. Lint/tsc — чисто. PR: #187 This summary was automatically extracted from the AI working session output. |
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
📊 Context and tokens usage:
Total: (3.6K new + 84.4K cache writes + 1.7M cache reads) input tokens, 13.8K output tokens, $1.753198 cost 🤖 Models used:
📎 Log file uploaded as Gist (1620KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
✅ Ready to mergeThis pull request is now ready to be merged:
Monitored by hive-mind with --auto-restart-until-mergeable flag |
This reverts commit 91561b8.
Проблема
Issue #186: в веб-интерфейсе агента у плагина
ton-trading-botпоказывается доступное обновление, но при нажатии кнопки «Обновить» плагин не обновляется, и кнопка появляется снова.Корневая причина
Версия плагина дублируется в двух местах:
manifest.json→ полеversion(каталог обновлений)index.js→export const manifest.version(рантайм-объект, который хост teleton читает как установленную версию)Исторически их всегда держали синхронными. В PR #183 (#182) подняли только
manifest.json:2.3.0 → 2.4.0, аindex.jsостался на2.3.0.В результате:
manifest.json) → показывает кнопку «Обновить»;index.js);2.3.0 ≠ 2.4.0→ хост считает плагин устаревшим, и кнопка «Обновить» появляется снова. Обновление никогда не «закрепляется».Исправление
index.jsиmanifest.jsonи подняты до2.4.1— это чистый релиз, чтобы застрявшие на сломанном состоянии пользователи получили рабочее обновление, которое наконец совпадёт с установленной версией и кнопка пропадёт.tests/index.test.js): версия изindex.jsобязана совпадать с версией изmanifest.json.scripts/validate-plugins.mjs): еслиindex.jsэкспортируетmanifestсversion, она должна равнятьсяmanifest.json.version. Теперь рассинхрон версий ловится в CI для любого плагина и не повторится.Воспроизведение и проверка
Откат версии в
index.jsобратно на2.3.0(исходное сломанное состояние):После исправления (версии синхронны = 2.4.1):
node --test plugins/ton-trading-bot/tests/index.test.js→ 189/189 passnode scripts/validate-plugins.mjs→ton-trading-bot: 42 tool(s) validated(без ошибок версии)eslint→ 0 ошибок (только унаследованные warnings)tsc --noEmit→ без ошибокCloses #186