# TASKS ## Current ### `feat/community-finalization` Status: done Goal: - довести `crank-community` до окончательного самостоятельного состояния как открытой `REST-only` редакции; - убрать transitional split-логику, legacy premium ballast и скрытые assumptions из эпохи общего репозитория. Main code areas: - `TASKS.md` - `docs/community-source-whitelist.md` - `docs/implementation-plan.md` - `docs/repository-split-map.md` - `docs/community-release-checklist.md` - `docs/commercial-boundaries.md` - workspace manifests - Community backend/UI tests and fixtures - Community UI copy and localization Implementation slices: 1. привести документацию и backlog к реальному состоянию `crank-community`; 2. убрать premium зависимости из Community workspace manifests; 3. очистить Community test boundary и убрать зависимость от `test = false` как способа скрывать legacy tests; 4. удалить premium backend ballast, который больше не относится к Community; 5. дочистить UI, локализацию и e2e fixtures до честного Community surface; 6. пройти финальную верификацию Community release path. DoD: - `crank-community` описывает себя как самостоятельный public repository, а не как промежуточный этап split; - Community manifests и workspace dependencies соответствуют `REST-only` product boundary; - Community tests и fixtures проверяют только Community functionality; - UI и docs не содержат рабочих premium flows и misleading copy; - Community release path воспроизводим и проверяем без ссылок на transitional import procedure. Verification: - docs consistency pass; - `cargo metadata --no-deps`; - `just fmt` - `just check` - `just test` - UI build and Community-targeted smoke/e2e pass. Progress: - done: - `deploy/community/*` already acts as the canonical Community delivery contour - Community capability model is already constrained to: - `REST` - static agent key - `security_level = standard` - public wizard HTML surface is already reduced to the Community `REST` flow - transitional docs and backlog now describe `crank-community` as the current source of truth instead of a future split artifact - premium protocol toolchain dependencies have been removed from the Community workspace manifest while keeping the `REST-only` workspace green under `cargo check` - Community backend crates no longer rely on `test = false`; `just test` now runs against a real Community-only test surface on the isolated local test database - premium protocol and streaming ballast has been removed from Community backend test/dev paths, and Community demo expectations now match the actual `REST-only` demo seed - dormant premium UI modules, fixtures, and translation strings have been removed, while the remaining Community wizard and admin pages stay green under local Playwright smoke - final Community verification pass completed: - `cargo metadata --no-deps` - `just fmt` - `just check` - `just test` - `apps/ui` build - Community-targeted Playwright smoke ## Next ### `feat/community-release-hardening` Status: in_progress Goal: - закрепить воспроизводимый Community release path и release checklist без скрытых переходных допущений. Main code areas: - `.github/workflows/ci.yml` - `.github/workflows/deploy.yml` - `deploy/community/*` - `docs/community-release-checklist.md` - `docs/deploy-and-staging-smoke.md` Implementation slices: 1. проверить соответствие CI Community manifests; 2. зафиксировать Community-only smoke baseline; 3. обновить release checklist после финальной cleanup-фазы. DoD: - Community release path не зависит от private repositories; - checklist соответствует реальному Community deploy surface; - пост-деплойная проверка повторяема. ### `feat/common-public-improvements` Status: ready Goal: - вносить общие улучшения в публичную базу, которые потом синхронно переносятся в `enterprise` и `cloud`. Main code areas: - общий Community runtime/UI/API surface Implementation slices: 1. делать изменение в `crank-community`; 2. переносить тот же change set в `crank-enterprise`; 3. переносить тот же change set в `crank-cloud`. DoD: - общий функционал не расходится между тремя редакциями без необходимости; - Community остается source base для общей open-core логики.