# SPPI WebMCP: ошибка центровки, 6 ноября 2026

## Подтверждённый результат

Мост Chat Agent → WebMCP SPPI работает. В установленной панели выполнен один
контрольный запрос без изменения карты: pageTools.list() и Measure.GetActive.
Сохранённый результат run_js содержит ok=true, measure=false и четыре инструмента:
map.CenterOnGeoJsonFeature, map.SetCenter, Measure.GetActive, Measure.MeasureOnOff.

## Сбой исходного запроса

- Request: `445a702f-4268-5c79-ac61-e9eb62bdbfbb`.
- Session: `4f051baa-3791-443a-8362-63717683f53c`.
- Команда: «зацентрируйся на городе москва».
- Первый вызов получил каталог. Второй вызвал map.CenterOnGeoJsonFeature с
  GeoJsonData: Feature / Point, координаты [37.6173, 55.7558].
- Аргумент GeoJsonData соответствует опубликованной схеме инструмента.
- Результат: browser_script_exception, effect=unknown,
  `Cannot read properties of undefined (reading 'clear')`.
- В Monitor сохранены вызов, результат и ошибка запроса. Это не тайм-аут истории.

## Причина в опубликованном SPPI

Проверена фактически загруженная версия DEV-MASTER v1.0.24052 / 04.11.2026.
В [bundle карты](<https://sppi.gis-master.ru/map/chunk-6M6K5IBI.js>), строка 1196
(нумерация с 1), метод MapService.CenterOnGeoJsonFeature сначала выполняет:

```js
this.centerDataSource.clear();
this.centerDataSource = new VectorSource({ features: /* readFeatures */ });
this.CenterOnFeatures(this.centerDataSource.getFeatures());
```

На первом вызове centerDataSource ещё отсутствует. Инициализации до clear в
загруженном классе нет. Исключение возникает до создания источника и центровки.
Реестр SPPI вызывает метод как `instance[method](#archive-availability)`, сохраняя this.
Наш мост сохраняет moduleName/apiName из каталога и передаёт JSON-аргументы.

Минимальная правка на стороне SPPI: проверять существование прежнего источника
перед clear (`this.centerDataSource?.clear()`), либо создавать его до использования.
Окончательный вариант и тест первого/повторного вызова должны выполняться в
исходном репозитории SPPI. Исходники и runtime карты в этой проверке не менялись.

Общий текст ошибки панели недостаточно конкретен: он скрывает за «результат не
подтверждён» фактически полученное исключение. Точное сообщение доступно в
«Ход выполнения» → второй run_js → «Получено от инструмента».

## Границы проверки

Не повторял упавшую центровку и не вызывал изменяющие карту инструменты.
Страницу не перезагружал, микрофон не переключал, настройки и сервисы не менял.
Работоспособность map.SetCenter в этой проверке не устанавливалась.
