Перейти к содержанию

Публикация на сайте

План публикации собирается в CLI. Сайт показывает этот неизменяемый план и, когда состояние ready, даёт подтвердить точный plan_hash. Браузер не строит паспорта, не гоняет сканеры и не пакует артефакты.

URL и кто их видит

Проекция URL Кому видно
Human /{locale}/publications/{plan_id} вошедшему владельцу
Machine /{locale}/ai/publications/{plan_id} та же сессия

Индекса публикаций нет. Сюда попадают:

  • со страницы версии Объектов — Открыть план публикации или Начать публикацию;
  • из CLI, который печатает веб-ссылку (link web или payload плана).

Нет сессии → login с returnTo на этот план. 404/403 → План публикации не найден или недоступен. без уточнения, что именно. Онбординг pending → сначала онбординг.

Зачем этот экран

Страница нужна, чтобы просмотреть план, который сервер уже заморозил, и подтвердить его, если состояние ready.

CLI создаёт план, подписывает attestation evidence и опрашивает статус из скрипта.

Страница не:

  • правит паспорт;
  • меняет дайджест;
  • передаёт experimental consent установщикам;
  • публикует «что сейчас в рабочем дереве».

Подтверждение окончательно для этого plan_hash. Consent сам не передаётся.

Что на экране

Подзаголовок: Проверьте план публикации перед подтверждением. Браузер паспорта не собирает.

Поле Подпись Смысл
Состояние Состояние состояние плана на сервере
Объект Объект object_kind / stable_id / version
Content digest Content digest публикуемые байты
Plan hash Plan hash значение, к которому привязывает confirm
Версия политики Версия политики закрепление политики публикации
Истекает Истекает expires_at
Эффекты Эффекты заявленные эффекты или тире

Строки evidence (если есть): check_id плюс result · source.

Когда state === "ready" и есть CSRF: Подтвердить публикацию с предупреждением выше. Пока ждёт: Подтверждение…. После успеха может появиться mutation reference; страница затем обновляется в состояние не-ready.

Иначе:

План в состоянии {state}. Подтверждение недоступно.

Human / Machine: machine publication печатает plan_id, plan_hash, policy_version, expires_at, effects, идентичность объекта. Confirm только human.

Совпадающие команды CLI

ai-stp task start --intent publish --idempotency-key publish-session-01 --json

Expert leaves, если план уже построен (status/confirm на этой странице):

ai-stp publication status --plan-id <plan_id> --json
ai-stp publication confirm --plan-id <plan_id> --plan-hash <plan_hash> --confirm --json
ai-stp attestation sign --json
ai-stp owner version show --json
ai-stp link web --json

publication plan (plan) создаёт неизменяемый серверный план для одной точной выпущенной версии компонента. publication status его читает. publication confirm (apply, explicit_flag) — близнец кнопки на этой странице. attestation sign (apply, explicit_flag) подписывает тестовые данные, зависящие от учётных данных, активным ключом устройства — в браузере этого нет.

Expert leaves публикации сетапа (просмотренный набор pin, затем сетап):

ai-stp setup publish plan --json
ai-stp setup publish confirm --json

Они подтверждают просмотренный набор: закреплённые компоненты, затем сетап. См. Команды сетапа.

Тупики

Что видно Что это значит Что делать
План публикации не найден или недоступен. плохой id или не ваше начните с Objects или publication status
Подтверждение недоступно state ≠ ready или нет CSRF подождите / обновите; перелогиньтесь, если нет CSRF
Plan expired expires_at прошёл start publish
Начать публикацию нет на Objects нет устройства или не разрешено привяжите CLI-устройство; start publish
Evidence пустой нет дополнительных строк всё равно читайте дайджест и хеш
Хотите поменять файл для этого хеша уже поздно новая версия, новый план
Browser «build» не существует только CLI

Не вставляйте plan_hash, attestation-подписи и ключи устройства в чат. Confirm привязывает хеш; утечка — не выдача, но привычка держать его как секрет всё равно верная.

Состояния, которые вы увидите

Кнопка confirm есть только у ready. Остальные состояния на сайте только для чтения:

Нужно CLI Сайт
Создать план publication plan Начать публикацию на странице версии
Смотреть publication status обновить этот URL
Подписать evidence attestation sign не предлагается
Подтвердить хеш publication confirm Подтвердить публикацию
Опубликовать набор сетапа setup publish plan / confirm не эта форма URL

Если CLI и сайт оба подтверждают, второй вызов — no-op или отказ на уже израсходованном хеше — не кликайте дважды «на всякий случай». После одного confirm читайте publication status.

Machine-проекция — факты, которые агент должен цитировать: plan_id, plan_hash, дайджест, версия политики, срок. Confirm он нажимать не должен.

Связанные страницы

Хеш или этого не было

Подтверждение без чтения plan_hash и content_digest — как публичная неверная версия. Кнопка — не «опубликовать latest».