flight recorder for chrome
macOS · v0.9.4
REC · 04:11:38 · пишем на диск

Поймали один раз — этого достаточно.

Xray пишет тестовый браузер непрерывно: путь пользователя, запросы с телами ответов, консоль, куки, WebSocket. Когда что-то сломалось, улика уже на диске. Агент разбирает её по записи — воспроизводить не нужно.

Купить за 2 730 ₽ первым ста, дальше 3 900 ₽ Как выглядит диалог
macOS/разовая лицензия, не подписка/14 дней возврата/для тестовых стендов
диалог с агентомзапись от 08.09 · прогон #14
человек
Оплата упала один раз, повторить не получается. Что произошло?
агент · читает запись

Нашёл. Это единственная попытка оплаты в записи, 14:12:31.

путь: /cart → /cart/step-2 → /checkout форма ушла в iframe pay.provider.ru (frame #3) POST /api/checkout/confirm → 402 body: {"error":"card_declined", "provider_code":"51", "attempt":3,"trace":"a91f2c"}

Первые две попытки вернули 200 с pending. На третьей провайдер ответил 402 внутри iframe, в родительское окно ошибка не всплыла — поэтому в интерфейсе остался спиннер.

Вывод: отказ банка по коду 51, не баг формы. Тело ответа лежит в записи, повторять оплату не нужно.

01
сценарий

Агент видит сценарий, а не свалку запросов.

Мы пишем не только сеть. Мы пишем путь: какие страницы открывались, в каком порядке, куда вели переходы внутри SPA, в каком фрейме родился запрос и что происходило внутри iframe. Поэтому агент отвечает не «вот сорок запросов», а «пользователь пришёл на оплату со второго шага корзины, форма ушла в iframe провайдера, ответ 402 пришёл на третьей попытке».

14:09:02
/catalog
12 запросов
0 ошибок
14:10:41
/cart
8 запросов
0 ошибок
14:11:18 · SPA
/cart/step-2
4 запроса
переход без перезагрузки
14:12:05
/checkout
9 запросов
3 попытки оплаты
14:12:31 · iframe
pay.provider.ru
402 card_declined
frame #3, тело записано
Одна сессия · 33 запроса · 1 ошибка · путь виден целиком
02
проблема

Агент видит только момент вопроса.

«Повтори действие, я не успел посмотреть» — фраза, ради отсутствия которой всё это написано.

Тело ответа достаётся из буфера Chrome в момент вопроса. Буфер чистится при навигации: метаданные останутся, тела уже нет.

К вкладке подключается только один отладчик. Открыл DevTools — сломал агента.

03
запись

Ничего не надо включать заранее — уже пишется.

01

Демон пишет фоном. Вы просто тестируете руками, как обычно.

02

Запись в SQLite, на диске. Переживает навигацию, закрытие вкладки и перезапуск демона.

03

Поиск по прошлым прогонам. Разбирать можно тогда, когда дошли руки, — запись не протухает.

71 час записи·214 000 событий·одна база
04
примеры

Три разбора без единого воспроизведения.

«Почему на проде форма уходит, а на стенде нет?»
агент сравнил прогоны #9 и #14 прогон #9 (стенд) POST /api/form → 200 X-Tenant: staging прогон #14 (прод) POST /api/form → 200 X-Tenant: отсутствует Расхождение одно: заголовок теряется после SPA-перехода на /checkout.
«Где именно теряется токен в трёх вложенных iframe?»
агент восстановил дерево фреймов frame #0 app.local Authorization ✓ └ frame #1 widget.local Authorization ✓ └ frame #2 pay.provider ✓ └ frame #3 3ds.bank Заголовок пропадает на четвёртом уровне: sandbox на iframe 3-D Secure режет пользовательские заголовки.
«Что вернул платёжный провайдер в 402?»
агент достал тело трёхдневной давности 05.09 11:41:07 · прогон #7 POST /confirm → 402 body: {"error":"card_declined", "provider_code":"51", "message":"Insufficient funds"} Вкладка с тех пор закрывалась, демон перезапускался дважды.
05
что внутри

16 инструментов агента поверх одной базы.

claude code · сессия
› найди, почему после релиза во вторник пропали товары в корзине путь: /catalog → /cart (SPA-переход) GET /api/cart/items → 200 14:12:29.118 body: {"items":[],"cartId":"c_8831"} GET /api/cart/items → 200 14:09:02.771 (прогон #12) body: {"items":[…3],"cartId":"c_8831"} console: TypeError cart.items.map is not a function Тело первого пустого ответа записано на диск в 14:12:29. Вкладка с тех пор закрывалась дважды.
запросы с телами консоль ошибки без шума куки storage WebSocket навигации и SPA-переходы дерево фреймов поиск по прогонам экспорт HAR

Claude Code · Claude Desktop · Cursor. SQLite, встроенный в Node. Нативных модулей нет. Всё локально, наружу не уходит ничего.

06
данные

Всё остаётся на вашей машине.

01

База лежит у вас на диске. Ни одного запроса наружу, никакого нашего сервера в схеме.

02

Работает офлайн. Лицензия проверяется файлом, не походом на сервер.

03

Инструмент для тестовых стендов: в записи оказываются куки и тела ответов как есть, поэтому боевые учётные данные в него подключать не нужно.

Полный документ по безопасности →
07 · цена

Разово. Не подписка.

2 730 ₽
3 900 ₽
первым ста покупателям, дальше 3 900 ₽

Две машины · год обновлений в цене, дальше продление по желанию — без продления продукт работать не перестанет · 14 дней безусловного возврата.

осталось по 2 730 ₽63 / 100
 
бесплатно
2 730 ₽
Все 16 инструментов
да
да
Тела ответов и путь пользователя
да
да
История
только текущий прогон
без ограничения срока
Поиск по прошлым прогонам
нет
да
Экспорт баг-репорта и HAR
нет
да
Оплатить 2 730 ₽
Отметьте согласие с офертой, чтобы продолжить.
СБП · карты Мир, Visa и Mastercard, выпущенные в РФ
Пока принимаем оплату только из России.
08 · windows Windows в работе. Оставьте почту — напишем, когда будет.
Похоже, в адресе опечатка.
Записали. Напишем один раз — когда выйдет сборка под Windows.
09
faq

Да: Claude Code, Claude Desktop, Cursor. Подключение — одна строка в конфиге агента. Работает с любым клиентом, который умеет разговаривать с внешними инструментами по стандартному протоколу.

Улика собрана до того, как вы задали вопрос.
Купить за 2 730 ₽