Skip to content

Artifact review

ID: @artiroute/artifact-review
Статус: implemented
Зависимости: нет (standalone)

Опциональный workflow ревью версий артефактов с gate на RAG-индексацию. Не меняет тип пространства.

Назначение

ВопросОтвет
Для кого?Любой Space (любой spaceTypeId)
Что это?Отправка версии на ревью + одобрение reviewer-ом
Gate?Опционально: RAG только для approved версий (или с явным allowIndex)
Space types?Не регистрирует тип

Настройки пространства (EAV на space)

KeyОписание
artifact-review.reviewEnabledВключена ли система ревью
artifact-review.indexApprovedOnlyИндексировать только одобренные версии

UI: app.spaceCreateExtras (создание) + app.spaceSettingsSections (настройки).

Поля версии (EAV на artifactVersion)

KeyЗначения
artifact-review.reviewStatusnonependingapproved
artifact-review.approved"true" / "false"
artifact-review.approvedAtISO datetime
artifact-review.approvedByuserId
artifact-review.allowIndex"true" / "false" — разрешить RAG без Approve (upload preflight / AI)

Abilities

  • artifact-review.review — одобрить версию (роль artifact-review.reviewer)
  • Submit на ревьюartifact.update

Поток

  1. Автор сохраняет версию → ядро вызывает maybeEnqueueRagIndex после afterSaveVersion (EAV уже выставлены).
  2. При indexApprovedOnly RAG ставится в очередь только если approved=true, либо allowIndex=true, либо forceIndex (ручной Index).
  3. Upload preflight (app.uploadPreflight): перед загрузкой indexable-файлов extension спрашивает «Индексировать сейчас?» → allowRagIndex на upload session / версии.
  4. AI-created артефакты (source: 'ai', напр. transcript) автоматически получают allowIndex=true.
  5. Автор жмёт «На ревью» → reviewStatus=pending.
  6. Reviewer одобряет → approved=true, enqueue rag_index.
  7. Контекстное меню артефакта: Index in RAG → GraphQL enqueueArtifactRagIndex с forceIndex.

Gate: entity hook artifactVersion:beforeRagIndex.

Frontend

  • Toolbar: app.uiSlotsartifact-editor.toolbar
  • Upload middleware: app.uploadPreflightartifact-review-index
  • Настройки space: drawer + create extras

API (extension HTTP)

  • PATCH /api/ext-http/artifact-review/spaces/:spaceId/settings
  • POST /api/ext-http/artifact-review/versions/:versionId/submit
  • POST /api/ext-http/artifact-review/versions/:versionId/approve

См. также

AI workspace для командных материалов и знаний