Verify visible hello MCP run and add shared control lease
This commit is contained in:
+18
-12
@@ -2,11 +2,10 @@
|
||||
|
||||
`toolchain/sdbg_mcp.py` подключается к уже работающей `sdbg_server.py` через
|
||||
Unix socket. Это отдельный stdio MCP-сервер для C-уровня: он использует ту же
|
||||
сессию, карту сборки и журнал, что VS Code/DAP. В репозитории MAME есть две
|
||||
Lua-реализации **другого**, raw MCP-моста: `src/mame_bridge.lua`
|
||||
(`-autoboot_script`) и более новый `-plugin mamebridge`. Оба обслуживают
|
||||
один `src/mame_mcp.py` и одинаковый файловый транспорт, но legacy Lua
|
||||
обрабатывает только 16 из 30 публикуемых Python-команд. Plugin использует
|
||||
сессию, карту сборки и журнал, что VS Code/DAP. В MAME.HT отдельно работает
|
||||
raw MCP-мост `-plugin mamebridge` с `src/mame_mcp.py`. Старый
|
||||
`src/mame_bridge.lua` удалён после проверки: он обрабатывал лишь 16 из 30
|
||||
публикуемых Python-команд и не отвечал при остановленном CPU. Plugin использует
|
||||
`register_periodic` и отвечает даже при остановленном CPU. Ни один из этих
|
||||
вариантов не должен одновременно управлять тем же MAME в обход sdbg-сессии.
|
||||
`src/mame_mcp.py` всё ещё импортирует `FastMCP` по пути SDK 1.x;
|
||||
@@ -48,7 +47,8 @@ MCP-сервер заново вместе с новой DAP-сессией. А
|
||||
Доступные инструменты: `session_status`, `where`, `read_registers`,
|
||||
`read_memory`, `list_variables`, `read_variable`, `recent_events`,
|
||||
`mame_console_tail`, `set_line_breakpoint`, `set_function_breakpoint`,
|
||||
`clear_breakpoint`, `clear_my_breakpoints`, `continue_execution`,
|
||||
`clear_breakpoint`, `clear_my_breakpoints`, `claim_control`, `release_control`,
|
||||
`continue_execution`,
|
||||
`pause_execution`, `step_instruction`, `step_source`. Ответы SDK 2.x содержат
|
||||
`structuredContent`. `step_source` принимает `into`, `over` или `out` и
|
||||
возвращает принятие команды; итоговую остановку получите через
|
||||
@@ -71,8 +71,8 @@ MCP-сервер заново вместе с новой DAP-сессией. А
|
||||
Это следующий этап, а не запрет на функции raw MCP. Нельзя просто загрузить
|
||||
`mamebridge` рядом с `sdbgbridge`: два независимых обработчика начнут менять
|
||||
CPU и точки без общего owner ID и журнала.
|
||||
Поэтапные проверки перед удалением legacy Lua и перенос всех 30 возможностей
|
||||
в общую C-сессию описаны в [плане сведения MCP](mcp-convergence-plan.md).
|
||||
Результаты удаления legacy Lua и этапы переноса всех 30 возможностей в общую
|
||||
C-сессию описаны в [плане сведения MCP](mcp-convergence-plan.md).
|
||||
|
||||
Чтение памяти принимает десятичный адрес или `0xHEX`, 1–256 байт logical
|
||||
Z80 memory, только при остановленном CPU, без side effects. Ответ содержит
|
||||
@@ -86,10 +86,16 @@ generation и страницы банков; диапазон не может п
|
||||
удалить DAP-точку отвергается и точка VS Code срабатывает после выхода MCP.
|
||||
Удаление личной точки при running CPU отдельно проверено на ожидании
|
||||
`getchar()`; оно не ставит CPU на паузу и не блокирует ввод.
|
||||
Общий session server сериализует команды, но эксклюзивного владельца
|
||||
управления CPU пока нет: не посылайте `continue`/`step` одновременно из MCP
|
||||
и VS Code. При аварийном завершении MCP его точки могут остаться до конца
|
||||
сессии MAME; нужна отдельная lease/cleanup-механика. Несколько одновременно
|
||||
Общий session server выдаёт 30-секундный control lease первому владельцу
|
||||
команды CPU; MCP может захватить/освободить его явно. Фоновый heartbeat MCP
|
||||
и опрос событий DAP продлевают активный lease. Конкурентная команда получает
|
||||
отказ с именем владельца, после штатного закрытия lease освобождается.
|
||||
При аварийном завершении MCP lease истекает за 30 секунд; сервер удаляет
|
||||
личные точки и отпускает удерживаемые клавиши. Живой прогон с владельцем без
|
||||
heartbeat подтвердил удаление его точки и отсутствие ложной остановки после
|
||||
возобновления DAP; освобождение удерживаемой клавиши пока проверено только
|
||||
unit-тестом.
|
||||
Несколько одновременно
|
||||
запущенных MAME с MCP не проверялись и не гарантируются; это отложенный тест.
|
||||
|
||||
Проверка совместной работы с DAP и реальным MAME:
|
||||
|
||||
Reference in New Issue
Block a user