test(ton-trading-bot): выделенные тесты управления позициями; инструменты уже экспортированы (#188) - #189
Conversation
Adding .gitkeep for PR creation (default mode). This file will be removed when the task is complete. Issue: xlabtg#188
…тов управления позициями (xlabtg#188)
Working session summaryГотово. Подведу итог. РезультатIssue #188 уже была решена в
То есть основное требование (export + manifest + README + базовые тесты) уже выполнено предыдущей работой. Что я добавилЕдинственный буквально невыполненный пункт acceptance criteria — выделенный файл тестов, явно запрошенный в issue (раздел «4. Add tests»). Я создал
Проверки
Единственный «фейл» в полном прогоне PR обновлён (заголовок + подробное описание) и переведён в статус ready for review: #189 Замечание: по сути issue #188 — устаревший дубликат работы по issue #144. Если хотите, могу вместо добавления тестов просто закрыть issue с пояснением, что функциональность уже в 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.3K new + 57.9K cache writes + 1.3M cache reads) input tokens, 19.1K output tokens, $1.524453 cost 🤖 Models used:
📎 Log file uploaded as Gist (958KB)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 fdceb80.
Итог расследования
Issue #188 сообщает, что три инструмента управления позициями (
ton_trading_get_open_positions,ton_trading_close_position,ton_trading_close_all_positions) задокументированы, но отсутствуют в экспортируемом API.При проверке оказалось, что функциональность уже полностью реализована в ветке
mainкоммитом2fe18d0(feat(ton-trading-bot): add position close tools). На текущемmain:tools(sdk)— всего 42 инструмента, что совпадает с manifest;ton_trading_get_open_positions,ton_trading_close_position,ton_trading_close_all_positionsприсутствуют вmanifest.json;README.md;formatOpenPosition,closeOpenPosition,closeTradeJournalEntry) подключена и используется;tests/index.test.js.Таким образом, основное требование issue (export + manifest + README) уже выполнено. Воспроизведение из issue (
tool not found) на актуальном коде не повторяется.Что добавляет этот PR
Единственный пункт acceptance criteria, не выполненный буквально, — выделенный тестовый файл
plugins/ton-trading-bot/tests/open-positions.test.js, который явно запрошен в issue (раздел «4. Add tests»). Он добавлен в этом PR и закрывает два сценария, ранее не проверявшихся явно:close_positionкорректно отклоняет закрытие уже закрытой позиции (graceful failure);close_all_positionsне закрывает позицию дважды при гонке двух параллельных проходов (compare-and-swap / CAS).Полный список новых проверок (
tests/open-positions.test.js, 9 тестов):tools(sdk);get_open_positionsвозвращает только записи соstatus = 'open';get_open_positionsучитывает фильтрmode(real/simulation/all);get_open_positionsограничиваетlimitдиапазоном 1–100;close_positionпереводит симуляционную позицию из'open'в'closed';close_positionкорректно отклоняет уже закрытую позицию;close_positionкорректно отклоняет несуществующую сделку;close_all_positionsзакрывает все открытые позиции выбранного режима (не трогая чужой режим);close_all_positionsне допускает двойного закрытия при гонке (CAS).Как воспроизвести / проверить
Заметки
index.js↔manifest.json(issue The plugin is not updated after the update. #186) остаётся зелёной.Acceptance Criteria
ton_trading_get_open_positionsвызывается и возвращает открытые позиции в режиме simulationton_trading_close_positionзакрывает одну открытую симуляционную позицию и обновляет P&Lton_trading_close_all_positionsзакрывает все открытые позиции выбранного режима атомарно (CAS)Fixes #188