mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-13 20:59:02 +03:00
SPEC-HUB-0027 §5, этап 1. Право разрешить checkout и attribution отделяется от права настраивать AI: канал — коммерческая граница, а не настройка агента (ADR-HUB-0037 §9). Data-миграция выдаёт channels.* профилям с соответствующими ai.*, так что доступ в момент выката не сужается. Scope сохраняется сам собой: он живёт на EmployeeAccessAssignment, а capability — на AccessProfile, поэтому назначения не трогаются вовсе. Обе capability допускают оба scope, так что allowed_profile_scopes ни одного профиля не сужается. Откат удаляет выданные строки, и RunPython стоит последним намеренно: Django откатывает операции в обратном порядке, поэтому строки исчезают до восстановления прежнего check-constraint реестра. Эндпоинты каналов пока остаются на ai.*; их переписывает этап 2. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>