Add versioned design profile releases

This commit is contained in:
DCCONSTRUCTIONS
2026-07-11 22:34:01 +03:00
parent 50718a33a1
commit 1f2dffc031
8 changed files with 473 additions and 17 deletions
+11 -2
View File
@@ -23,7 +23,7 @@
Manifest фиксирует:
- identity, slug, draft status и версию;
- ссылку на Design Profile и Dark/Light;
- ссылку на конкретный Design Profile release (`id + version + status + theme`);
- хотя бы одну страницу и pinned page-template version;
- navigation visibility;
- только заранее разрешённые feature flags;
@@ -58,7 +58,11 @@ Catalog server предоставляет минимальный временн
## Design Profile lifecycle
Visual Library использует отдельный Hub-style selector профилей. Общая кнопка Save открывает каноническую модалку `Сохранить / Сохранить как новый`. Приложение хранит только pinned `profile id + version + theme`; media, favicon и material settings принадлежат Design Profile.
Каноническая JSON Schema: `registry/schemas/design-profile-v0.1.schema.json`.
Visual Library использует отдельный Hub-style selector профилей. Общая кнопка Save открывает каноническую модалку `Сохранить / Сохранить как новый / Опубликовать`. Приложение хранит pinned `profile id + version + status + theme`; media, favicon и material settings принадлежат Design Profile.
`Draft` — изменяемая рабочая голова профиля. Каждое сохранение увеличивает patch-версию. `Published` — неизменяемый снимок конкретной версии: повторная публикация той же версии запрещена. Application Manifest может ссылаться на draft для внутренней разработки, но стабильный модуль должен фиксировать published release. Изменение будущего draft или публикация следующей версии не меняют уже закреплённое приложение.
Временный catalog server предоставляет:
@@ -66,4 +70,9 @@ Visual Library использует отдельный Hub-style selector про
- `GET /api/design-profiles/:id`;
- `POST /api/design-profiles`;
- `PUT /api/design-profiles/:id`;
- `GET /api/design-profiles/:id/versions`;
- `GET /api/design-profiles/:id/versions/:version`;
- `POST /api/design-profiles/:id/publish`;
- `DELETE /api/applications/:id` с переносом draft в локальное deleted-storage.
Catalog server проверяет полный layout-контракт Design Profile и существование выбранной Application Manifest ссылки при создании и сохранении модуля. Опубликованные снимки лежат отдельно от draft-head в `runtime-data/design-profile-releases` и исключены из Git; в production этот lifecycle должен перейти в Platform `design-profile-core` без изменения публичного контракта.