operations: enforce community capability limits
This commit is contained in:
@@ -2,49 +2,49 @@
|
||||
|
||||
## Current
|
||||
|
||||
### `feat/edition-capability-model`
|
||||
### `feat/community-surface-trim`
|
||||
|
||||
Status: in_progress
|
||||
|
||||
Goal:
|
||||
- ввести capability model по редакциям и перестать смешивать Community и premium surface.
|
||||
- привести открытую редакцию к честному product surface и убрать расхождение между текущим кодом и edition policy.
|
||||
|
||||
Main code areas:
|
||||
- `crates/crank-core/src/*`
|
||||
- `apps/admin-api/src/service.rs`
|
||||
- `apps/admin-api/src/app.rs`
|
||||
- `apps/ui/js/*`
|
||||
- `apps/ui/html/*`
|
||||
- `apps/ui/js/wizard.js`
|
||||
- `apps/ui/js/wizard-model.js`
|
||||
- `apps/ui/js/agents.js`
|
||||
- `apps/ui/js/settings.js`
|
||||
- `apps/ui/js/i18n.js`
|
||||
- `docs/product-editions.md`
|
||||
- `docs/frontend-roadmap.md`
|
||||
- `docs/architecture.md`
|
||||
- `docs/mcp-interface.md`
|
||||
|
||||
Implementation slices:
|
||||
1. Ввести серверную модель capabilities:
|
||||
- protocols
|
||||
- auth modes
|
||||
- security levels
|
||||
- workspace/user/agent limits
|
||||
2. Отдавать capability flags в `admin-api`.
|
||||
3. Привести UI к capability gating вместо скрытых продуктовых допущений.
|
||||
4. Зафиксировать Community defaults в docs и runtime config.
|
||||
1. Скрыть или честно заблокировать:
|
||||
- `WebSocket`
|
||||
- `SOAP`
|
||||
- `gRPC streaming`
|
||||
- streaming execution modes
|
||||
- `elevated/strict` security levels
|
||||
в Community.
|
||||
2. Привести copy и feature affordances к open-core границе.
|
||||
3. Добавить edition-aware explanation в wizard и agents UI.
|
||||
|
||||
Progress:
|
||||
- done: shared capability payload exists in `crank-core` and `admin-api`;
|
||||
- done: authenticated `/api/admin/capabilities` exposes Community defaults to UI;
|
||||
- done: first UI consumer uses capability payload in `Settings`;
|
||||
- done: `protocol-capabilities` is edition-aware and Community wizard hides premium protocol cards;
|
||||
- in_progress: surface Community-only security guidance inside wizard flow;
|
||||
- pending: add server-side validation so unsupported protocol and security-level drafts are rejected, not only hidden in UI.
|
||||
- done: Community wizard protocol list hides premium protocol cards;
|
||||
- done: Community security note is shown inside wizard flow;
|
||||
- done: server-side Community enforcement rejects unsupported protocols and premium security levels;
|
||||
- pending: убрать или честно заблокировать оставшиеся Community-incompatible streaming affordances;
|
||||
- pending: привести Agents/Settings copy к окончательной open-core границе.
|
||||
|
||||
DoD:
|
||||
- UI знает, какие функции входят в текущую редакцию;
|
||||
- Community не показывает рабочие controls для premium-only features;
|
||||
- capability checks существуют не только в UI, но и на сервере.
|
||||
- Community UX не создает ложного ожидания наличия premium functionality;
|
||||
- protocol set и security levels совпадают в docs, UI и runtime contracts.
|
||||
|
||||
Verification:
|
||||
- API tests for capability payloads;
|
||||
- frontend smoke for hidden/locked states;
|
||||
- manual verification on Community build.
|
||||
- e2e checks for wizard protocol list;
|
||||
- manual Community smoke;
|
||||
- localized copy review.
|
||||
|
||||
## Next
|
||||
|
||||
@@ -83,43 +83,6 @@ Verification:
|
||||
- unit tests for credential-kind enforcement;
|
||||
- docs sync check.
|
||||
|
||||
### `feat/community-surface-trim`
|
||||
|
||||
Status: ready
|
||||
|
||||
Goal:
|
||||
- привести открытую редакцию к честному product surface и убрать расхождение между текущим кодом и edition policy.
|
||||
|
||||
Main code areas:
|
||||
- `apps/ui/js/wizard.js`
|
||||
- `apps/ui/js/wizard-model.js`
|
||||
- `apps/ui/js/agents.js`
|
||||
- `apps/ui/js/settings.js`
|
||||
- `apps/ui/js/i18n.js`
|
||||
- `docs/product-editions.md`
|
||||
- `docs/architecture.md`
|
||||
- `docs/mcp-interface.md`
|
||||
|
||||
Implementation slices:
|
||||
1. Скрыть или честно заблокировать:
|
||||
- `WebSocket`
|
||||
- `SOAP`
|
||||
- `gRPC streaming`
|
||||
- streaming execution modes
|
||||
- `elevated/strict` security levels
|
||||
в Community.
|
||||
2. Привести copy и feature affordances к open-core границе.
|
||||
3. Добавить edition-aware explanation в wizard и agents UI.
|
||||
|
||||
DoD:
|
||||
- Community UX не создает ложного ожидания наличия premium functionality;
|
||||
- protocol set и security levels совпадают в docs, UI и runtime contracts.
|
||||
|
||||
Verification:
|
||||
- e2e checks for wizard protocol list;
|
||||
- manual Community smoke;
|
||||
- localized copy review.
|
||||
|
||||
## Planned
|
||||
|
||||
### `feat/frontend-commercial-polish`
|
||||
|
||||
Reference in New Issue
Block a user