Видимость и форензика
Воспроизведите любую сессию и докажите, что она не изменялась.
Каждая сессия агента записывается как поток xterm.js с ключевыми кадрами для мгновенной перемотки. Каждый ключевой кадр несёт хеш sha256, который можно перепроверить, поэтому сохранённое воспроизведение можно сравнить с тем, что было записано.
7f3a9c12 · replay08:08 / 12:42
$ fix the broken csrf middleware in /api/auth and add a unit test
⚙ Read api/auth/csrf.go (98 lines)
⚙ Grep "X-Csrf-Token" → 4 files, 7 matches
⚙ Edit api/auth/csrf.go (+12 −4)
⚙ Bash $ go test ./api/auth/...
✓ Tests pass · 4 tests, 8 assertions
Как это работает
1
Сессия передаётся по WebSocket
Каждый ввод, вывод и вызов инструмента передаётся брокеру в реальном времени.
2
Запись с ключевыми кадрами
Ключевые кадры строятся по ходу перемотки, поэтому перемотка никогда не воспроизводит запись с начала.
3
Мгновенная перемотка
xterm.js перерисовывает картинку с ближайшего ключевого кадра за миллисекунды, через Web Worker.
4
sha256 доказывает целостность
Каждый ключевой кадр несёт хеш sha256. Перепроверьте его командой caldyr replay verify; несовпадение означает, что сохранённые данные изменились.
Подробнее
Перемотка по ключевым кадрам
Кликните в любом месте таймлайна: Web Worker восстановит картинку с предыдущего ключевого кадра менее чем за 100 мс. Никакого ожидания, пока мы заново передаём с нулевой минуты.
События разрешений на таймлайне
Каждый запрос агента на разрешение (Bash, сеть, запись файла) появляется маркером на таймлайне; видно, что именно и когда было одобрено.
Проверка целостности
У каждого ключевого кадра есть sha256, который можно пересчитать командой caldyr replay verify. Проверка выполняется на нашем сервере по сохранённым байтам, поэтому обнаруживает повреждение или правки в хранилище.
Проверка записи
shell · verify a keyframe
$ caldyr replay verify 7f3a9c12-5e44-4b21-9c8a-1de2f6a09b3c:2048
recording : 7f3a9c12-5e44-4b21-9c8a-1de2f6a09b3c:2048
keyframe sha256: sha256:9f8ce4d27a91…3a4e
recomputed : sha256:9f8ce4d27a91…3a4e
MATCH ✓ — recording integrity verified
То, что вы воспроизводите, это в точности то, что произошло.
Проверяемо. Каждый ключевой кадр несёт sha256; воспроизведение либо совпадает с ним, либо нет. Это сравнение контрольных сумм, которое выполняем мы на сервере, а не независимое доказательство.
Сравнение
| Caldyr | asciinema | Обычный текстовый лог | |
|---|---|---|---|
| Точность терминала | xterm.js · 256 цветов | да | без ANSI |
| Мгновенная перемотка | ключевые кадры | перерисовка с нуля | без воспроизведения |
| События разрешений | маркеры на таймлайне | нет | нет |
| Изменения обнаруживаются | sha256 на каждый ключевой кадр | легко редактируется | легко редактируется |
| Ссылка на момент | #t=08:08 | параметр времени | неприменимо |
Частые вопросы
90 дней на плане Team, настраивается на Enterprise (90 / 365 / по запросу). Транскрипты, снятые локальным демоном, зашифрованы на диске ключом команды, который держит наш сервис-хранитель. Живые стримящиеся сессии обрабатываются на сервере, чтобы рендерить их для просмотра в реальном времени и воспроизведения; они остаются изолированными по тенантам и ограничены сроком хранения.
Незаметно. Запись происходит на брокере, а не на горячем пути демона. Добавляет менее 1 мс на круговой обмен.
Да, с другим аутентифицированным участником команды. Ссылка ограничена областью видимости; посторонние получают 404. Добавьте #t=08:08, чтобы сослаться на конкретный момент.
Сохранённые записи шифруются в состоянии покоя ключом вашей команды, который хранит наш сервис хранения ключей. Живые кадры проходят через хаб в открытом виде, чтобы их можно было смотреть в реальном времени. Записи Solo запечатываются в вашем браузере до загрузки.
Готовы управлять своей ИИ-инфраструктурой?
Запросите доступ за пару минут, или обсудите с нами установку в air-gap.