Публикация на сайте
Подтвердить план публикации в браузере.
Публикация на сайте
План публикации собирается в 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 он нажимать не
должен.
Связанные страницы
- Мои объекты — где живут Start / Open plan.
- Каталог — публичная карточка после успешной публикации.
- Публикация CLI — plan, attest, confirm.
- Опубликовать компонент — сначала выпуск
X.Y. - Команды сетапа — пара публикации сетапа.
- Владелец — evidence версии.
- Доверие и безопасность — публикация ≠ гарантия безопасности.
!!! note "Хеш или этого не было"
Подтверждение без чтения plan_hash и content_digest — как
публичная неверная версия. Кнопка — не «опубликовать latest».