Stores
Вкладка Stores показывает текущее значение каждого стора в выбранном scope и позволяет подставить в них свои значения.


Список
Сторы группируются по Файлу, Фабрике, Домену, Модели или Типу (записываемый или производный) — кнопками над списком. Домен и Модель появляются, только когда есть что группировать. Внутри группы сторы идут в порядке строк в исходнике.
В строке — значок (■ записываемый, □ производный), имя, значение и сколько раз стор менялся в записанной истории (×2). Бейджи: derived, нет sid (стор пропустит serialize, а в трейсе он сопоставится только по имени), не сериализуется (serialize: 'ignore').
Юниты одного экземпляра модели можно собрать под понятным именем через registerModel.
Стор
Выберите стор, чтобы увидеть подробности: тип, sid, файл (ссылка открывает панель Sources на нужной строке), фабрику, домен, модель, число обновлений, полное значение деревом и последние десять изменений в разделе История (клик открывает транзакцию в логе).
Задать своё значение
У записываемых сторов есть редактор с текущим значением в JSON. Применить его можно двумя способами:
- Применить работает как
allSettled: приложение реагирует, правка попадает в лог (✎ devtools) и в запись, а значит, и в экспортированный трейс; - Тихо, через fork создаёт новый scope из текущих значений и ваших и делает его живым: watchers и эффекты не запускаются. В логе появляется одна строка
✎ devtools · silent. Нужныfork()и адаптер.
У производных сторов (map, combine) редактора нет: «Производный стор вычисляется из источников: меняйте их.»
Пресеты
Сохранить текущую форму как пресет запоминает значения всех записываемых сторов под именем. Кнопка пресета затем применяет их все разом одной правкой в логе (✎ preset “имя”). Пресеты хранятся в localStorage панели отдельно для каждого имени приложения и переживают перезагрузку. × удаляет пресет.
Вызвать
Вызвать запускает любое событие или эффект в выбранном scope, «как вызов из приложения»: выберите юнит, введите payload в JSON (в подсказке — последний payload, с которым он вызывался) и нажмите Вызвать. Транзакция помечается как запущенная из deffector.
Снимок

Снимок → переключает вкладку на всё состояние целиком:
- Скопировать снимок копирует все записываемые сторы как
{ sid: значение }, какserialize(scope)(сторы без sid — по имени; сторы сserialize: 'ignore'не попадают); - вставьте снимок —
{ sid: значение }или{ имя: значение }, — и до применения появится diff:$count 2 → 41,$terms false → true; неизвестные ключи помечены «нет такого стора», совпадающие значения — «без изменений»; - Применить или Тихо, через fork применяют только изменившиеся сторы, с тем же смыслом, что и для одного стора.
Снимок из лога сервера, баг-репорта или другой вкладки — самый быстрый способ привести приложение ровно в это состояние.
Какой scope
Вкладка показывает scope, выбранный в панели инструментов, или тот, который отрисовывает приложение. Пока приложение показывает прошлое, правки идут в форк, который вы смотрите (см. Перемещение во времени).