Add shared-session MCP source debugger adapter
This commit is contained in:
@@ -279,12 +279,39 @@ Quick wins:
|
||||
|
||||
## Прочий backlog
|
||||
|
||||
- [ ] **Довести MCP C-уровня до полного безопасного контракта.** Первый
|
||||
stdio-адаптер с 16 инструментами использует общую sdbg-сессию и
|
||||
owner ID личных точек. Следующее: эксклюзивный control lease для
|
||||
DAP/MCP, heartbeat/очистка точек при аварийном выходе MCP, безопасные
|
||||
input/screenshot/console API через session server, затем доказанные
|
||||
watchpoints, запись typed values, disassemble_src и batch-загрузка
|
||||
точек. Raw `mame_mcp.py` с `-plugin mamebridge` или старым
|
||||
`mame_bridge.lua` не подключать к тому же MAME в обход общей сессии.
|
||||
Отдельно мигрировать raw `mame_mcp.py` с FastMCP SDK 1.x на MCPServer
|
||||
SDK 2.x, если этот standalone-интерфейс сохраняется; сейчас окружения
|
||||
raw и C-адаптера разделены.
|
||||
Проверять конкуренцию, ошибки и lifecycle живым DAP/MCP
|
||||
пробником; см. [sdbg-mcp.md](sdbg-mcp.md).
|
||||
- [ ] **Несколько одновременных экземпляров MAME и MCP bridge (отдельная
|
||||
задача, позже).** Проверить два изолированных процесса с разными
|
||||
дискетами/CHD/state и двумя MCP-сессиями; в протоколе явно связывать
|
||||
команду с PID/session ID, не допускать ответа от чужого процесса,
|
||||
проверить сброс/exit и одновременные команды. До успешного end-to-end
|
||||
теста параллельная работа MAME через MCP не гарантируется.
|
||||
- [ ] **Финальная полировка: оградить ввод до запуска отлаживаемой программы.**
|
||||
Проверить, можно ли не передавать в гостевой Sprinter физические
|
||||
клавиатуру/мышь, пока MAME грузит DSS и launcher вводит команду запуска:
|
||||
MAME может захватить фокус, а пользователь в это время печатает в другой
|
||||
программе. По возможности до запуска EXE сохранить фокус на прежнем
|
||||
приложении, чтобы оно продолжало получать ввод. Автоматический ввод
|
||||
команды launcher должен оставаться рабочим. При переходе к исполнению
|
||||
EXE сразу разрешить прямой ввод в MAME, в том числе для `getchar()`;
|
||||
при Stop, ошибке запуска и restart корректно сбрасывать состояние.
|
||||
Если MAME не умеет различать эти два
|
||||
источника ввода, исследовать управление фокусом/захватом окна либо
|
||||
узкий patch MAME; не блокировать ввод ценой поломки запуска.
|
||||
Проверить ручное переключение окон, сохранение ввода в другом приложении
|
||||
и ранние нажатия живым сценарием.
|
||||
- [ ] factoring parse_argv из crt0/crt0_banked в общий argv.s
|
||||
- [ ] `restore SP on EXIT` (паттерн z88dk +pps) — проверить нужность
|
||||
- [x] ~~CI: MAME с -aviwrite для screenshot-сравнения без человека~~ —
|
||||
|
||||
Reference in New Issue
Block a user