# Доска задач

Published/reference слой по истории runtime-пакетов `../ioot-pro-cabinet`.

Актуальная repo-level очередь `green-robot` больше не ведется здесь: канонический task-entrypoint вынесен в корневой `TASKS.md`. Этот файл оставлен как reference history по уже закрытым runtime-phase и published sync.

## 0) Базовая синхронизация (выполнено/в процессе)

- [x] Зафиксированы уровни системы по модели: Field Device / Local Controller / Tenant Cloud / Master Cloud / Client Applications.
- [x] Зафиксирован единый API-контракт `/api/v1/<resource>/list` + `/scheme`.
- [x] Введен `docs/backend_contracts.md` как общая договоренность по маршрутам, параметрам и envelope.
- [x] Сохранён backend-driven подход в UI-каркасе (`sidebar`, `RouteContent`-модель и модульные карточки в плане разработки).
- [x] Подтверждено правило документационной дисциплины (обновление docs и связей при изменениях структуры).

## 1) Backend — контрактно-ориентированная платформа

- [x] Текущие endpoint-ы (`health`, `modules/list`, `modules/scheme`, `modules/database/list`, `modules/permissions/list`, `modules/commands/install`, `modules/commands/uninstall`, `status/list`, `status/stream`, `passkeys/scheme`, `passkeys/list`, `passkeys/commands/issue`, `passkeys/commands/revoke`).
- [x] Реализован модульный runtime-реестр с install/uninstall, зависимостями и persistent state.
- [x] Добавлено модульное управление моделью БД и правами (`modules/database/list`, `modules/permissions/list`).
- [x] Реализован модуль `passkey` (QR/RFID) с backend plugin и модульными тестами.
- [x] Реализован вход по `passkey` (`auth/passkey/commands/start|commands/complete|status`, `auth/me`, `auth/commands/logout`) и API middleware `auth_required`.
- [x] Реализовано редактирование role/action прав модулей (`modules/permissions/commands/update`) и UI-матрица прав через шестеренку в карточках модулей.
- [x] Расширить API до:
  - [x] `GET /api/v1/modules/scheme` — добавлена поддержка отраслевых метаданных.
  - [x] `GET /api/v1/app/context`.
  - [x] Базовые CRUD-ресурсы по таблицам/формам.
- [x] Ввести мета-инфраструктуру ответа (`meta.request_id`, `meta.timestamp`).
- [x] Добавить OpenAPI спецификацию как source-of-truth.
- [x] Реализовать `tenant-master` контур обмена через whitelisted служебные события и статусы.

## 2) Frontend — shell и динамическая навигация

- [x] Разложить `App.vue` на модули: layout, widgets, services, stores (вынесены `components/layout/AppSidebar.vue`, `components/layout/AppTopbar.vue`, `components/widgets/AuthMethodOption.vue`, `services/ui-persistence`, `services/runtime-cache`, `services/ui-guards`, `services/module-permissions` и `stores/ui-keys`).
- [x] Реализовать `RouteContent`-runtime по `module_view` из `modules/scheme`.
- [x] Базовый sidebar/карточный интерфейс уже присутствует в каркасе.
- [x] Добавлен frontend-реестр модулей (`src/modules/<module>/manifest.js`, `src/modules/registry.js`) и синхронизация dashboard с install state.
- [x] Для `poultry` реализован workspace dashboard:
  - [x] `cloud/tenant` — summary/KPI dashboard с переходом в submodule details;
  - [x] `edge-single` — fullscreen cards-dashboard для 10" с теми же KPI и быстрым переходом в submodule details.
- [x] Добавлена карточка `Ключи доступа` (Passkey): фильтры, выпуск `QR/RFID`, отзыв ключа, полноэкранная поддержка.
- [x] Режимы `table/cards/map/fullscreen` сняты из scope (не требуются в новом интерфейсе).
- [x] Прописать role/mode-aware UI-гварды и permission-маршрутизацию.
- [x] Поддержать degraded mode при частичной недоступности API.
- [x] Добавлены role-gated burger-меню, быстрые topbar-кнопки закрепленных модулей и синхронный drag-and-drop порядок между sidebar и dashboard.
- [x] Добавлено backend persistence для `theme`, `dashboard layout` и `quick modules` с локальным fallback-кешем.

## 3) Компоненты общего/общеконтурного уровня

- [x] Модуль `alarms` (общий для tenant/master).
- [x] Модуль `tasks` с жизненным циклом.
- [x] Модуль `audit` для истории действий.
- [x] Модуль `devices/telemetry` с фильтрами и KPI.

## 4) Tenant-профиль

- [x] Tenant-профиль (мониторинг, infobar/история, базовые операции) снят из scope для нового интерфейса.

## 5) Master-профиль

- [x] Подписки и SLA-профили.
- [x] Политики и ограничения версий.
- [x] Централизованная аналитика (агрегированные метрики).
- [x] Управление синхронизацией tenant <-> master.

## 6) Безопасность и качество

- [x] JWT + RBAC для role-based границ master/tenant.
- [x] Permission matrix для UI и API-операций.
- [x] Security логирование auth/action.
- [x] Добавлены module-level тесты: backend definition/plugin tests, frontend manifest tests, e2e сценарии установки/деинсталляции модулей.
- [x] Добавлены backend-тесты модульной модели БД и прав (manager + modulemanager plugin).
- [x] Добавлены backend-тесты auth middleware и login-flow по passkey.
- [x] Contract tests (api), smoke-тесты, i18n-проверки, линт/билд (добавлены swine contract tests, `scripts/smoke-check.sh`, `frontend-vue/scripts/check-i18n.mjs`, проверены frontend test/build).

## 7) Отраслевые контуры

- [x] Создан раздел `docs/industries` для изолированных отраслевых пакетов.
- [x] Инициализирован первый пакет `poultry` на основе источников `../poultry-module`.
- [x] D-005: определен следующий отраслевой приоритет `melioration` и инициализирован пакет.
- [x] Утвердить решения из `docs/industries/decisions.md`.
- [x] Реализовать `industry dispatcher` в runtime и добавить отраслевые модули через общий реестр.
- [x] Реализован MVP backend API для `melioration` (`scheme|list` + control-mode `A/B/C` и деградация `C -> B/A`).
- [x] Реализованы ingest endpoint-ы `melioration` (machine/drip/soil/weather) и runtime reconciliation осадков по D-008 policy.
- [x] Добавлены frontend manifests и карточки `melioration-*` с загрузкой отраслевых данных.
- [x] Добавлено frontend-представление долей источников воды для `melioration-field`.
- [x] Реализован profile-service нормативов (D-003): YAML export/import, versioning и rollback.
- [x] Реализован отраслевой `industry alarm-bus` (D-004) с bridge в `status`, mapping severity и `correlation_id` трассировкой.
- [x] Формализованы ключи изоляции (`tenant_id`, `industry_code`, `site_id`) в отраслевых API.
- [x] Добавлены отраслевые границы permission-модели по `industry_code` в `modules/permissions`.
- [x] Добавлена policy частичной активации модулей на уровне площадки (`modules/site-policy`, фильтрация по `site_id`).
- [x] Реализован `cross-industry access audit` в `modules/access-audit` (scheme/list) с фиксацией `allow/deny` решений по отраслевым границам.
- [x] Зафиксирована и автоматизирована policy версионирования отраслевых модулей (`MAJOR.MINOR.PATCH`, единая major-линия в отрасли).
- [x] Подготовлены шаблоны для запуска новой отрасли: `KPI/alarms` и `adapter profile` (`docs/industries/_template/*`).
- [x] Для poultry зафиксированы нормативные диапазоны/обязательные KPI и MVP API (`docs/industries/poultry/norms-kpi.md`, `docs/industries/poultry/mvp-api.md`).
- [x] Подготовлен план E2E сценариев poultry-кейсов (`docs/industries/poultry/e2e-scenarios.md`).
- [x] Определить и подготовить следующую отрасль после `melioration` -> `swine` (инициализирован пакет `docs/industries/swine`).
- [x] Реализован swine backend MVP: `scheme|list|ingest/commands` + contracts `swinecontract/swinestatuscontract` и bridge `swine-biosecurity -> status`.

## Ближайшие 2 спринта (приоритет)

1. [x] Углубить `appContext` и policy-гварды (`tenant/master`, `role`, `feature_flags`) в UI/API.
2. [x] `Sidebar -> Content -> Infobar` runtime + каталог модулей с backend-driven обогащением.
3. [x] `status/stream` и resilient-клиенты WS/MQTT.
4. [x] OpenAPI + contract tests.
5. [x] JWT + базовый RBAC и тестирование smoke-пути.

## Этап — Production Delivery (закрыт)

1. [x] Ввести `readiness/live` endpoints и диагностический runtime snapshot (`dependencies`, `deployment_mode`, `industry`, `modules_state`).
2. [x] Добавить валидацию `status/list` (`limit`, `offset`, `sort`, `severity`, `status`, `source`) и heartbeat/keepalive метки для операционного контура.
3. [x] Собрать локальный CI-цикл: `lint + test + build + contract + smoke + release checklist`.
4. [x] Подготовить нагрузочные и интеграционные проверки `tenant <-> master` и описать production runbook/deployment package.
5. [x] Усилить tenant-isolation: распространить scope-гварды на `industry/melioration/poultry/swine` runtime и валидировать `tenant_id` / `target_tenant_id` в query и JSON body.
6. [x] Зафиксировать эксплуатационные критерии приемки и release gate.
7. [x] Перевести production-critical runtime state (`modules/auth/site-policy/status`) на shared persistence/migration layer и убрать runtime DDL/JSON default path из production baseline.

## Этап — Shell Productization (закрыт)

1. [x] Перевести shell preferences и shell rights на backend-driven persistence (`auth/ui-preferences`, `auth/ui-access`) с локальным fallback.
2. [x] Начать сервисную декомпозицию shell и вынести из `App.vue` базовые API-клиенты (`auth`, `runtime bootstrap`, `ui-preferences`, `permissions`, `modules admin`).
3. [x] Вынести feature-specific frontend API clients (`status`, `passkey`, `pult`, `demo`, отраслевые action/list`) в отдельные services/composables.
4. [x] Сократить orchestration-слой `App.vue`: выделить composables для auth-flow, runtime bootstrap, fullscreen/route state и module actions.
5. [x] Добавить переносимость shell-конфигурации между tenant/site: export/import профиля (`theme`, `dashboard layout`, `quick modules`, `ui-access`) и версионность изменений.
6. [x] Подготовить pilot shell presets для `cloud-multi` и `edge-single`, а также acceptance smoke на shell-права, quick modules и persistence.

## Этап — Pilot Rollout & Scale Readiness (закрыт)

1. [x] Подготовить bootstrap-package pilot-контура: `scripts/pilot-bootstrap.py`, preset-артефакты `pilot-bootstrap-cloud-multi.json` / `pilot-bootstrap-edge-single.json`, import `modules_state/site-policy/shell-profile` и воспроизводимый сценарий развертывания.
2. [x] Формализовать SLA/SLO и масштабирование `tenant/master`: подготовлен `docs/process/pilot_scale_profile.md` с capacity profile, hard limits `Postgres/NanoMQ`-зависимостей, degraded thresholds и recovery criteria.
3. [x] Добавить export evidence bundle для pilot handover: `scripts/pilot-evidence-bundle.py` и `docs/process/pilot_evidence_bundle.md` собирают `app/context`, `ready`, `modules`, `module state`, `site-policy`, `shell-profile`, `security-log`.
4. [x] Автоматизировать rollback/restore drill для pilot-контуров: `scripts/pilot-rollback-drill.py` экспортирует baseline, применяет target package, собирает evidence bundle, восстанавливает baseline и включен в release gate как обязательный sign-off.

## Этап — Pilot Execution & Operational Handover (закрыт)

1. [x] Выполнить реальный pilot sign-off на целевом контуре: добавлены `scripts/pilot-signoff.py` и `docs/process/pilot_signoff.md`, которые собирают `bootstrap apply`, `production smoke`, `evidence bundle`, `rollback/restore drill` и архив артефактов площадки.
2. [x] Ввести хранение и ретеншн pilot-артефактов (`bootstrap package`, `evidence bundle`, `rollback drill`) вне локального рабочего каталога: добавлены `scripts/pilot-artifact-retention.py` и `docs/process/pilot_artifact_retention.md` с внешним `archive-root`, `index.json`, `record.json` и retention prune.
3. [x] Добавить pilot observability для SLO: реализованы `GET /api/v1/operability/pilot-summary`, `scripts/pilot-observability-check.py` и process-doc `docs/process/pilot_observability.md` для `/ready`, `tenant-master-sync lag`, `status heartbeat`, optional deps `Postgres/NanoMQ`.
4. [x] Подготовить promotion-path `pilot -> production`: добавлены `scripts/pilot-promotion-check.py` и `docs/process/pilot_promotion_path.md` с checklist различий контура, policy по версиям артефактов и критериями допуска к production rollout.

## Этап — Fleet Rollout & Operations Automation (закрыт)

1. [x] Добавить автоматическое расписание observability/retention jobs: добавлены `ops/systemd/*`, `ops/cron/pilot-operations.example.cron` и `docs/process/fleet_operations_schedule.md`.
2. [x] Ввести wave-based rollout registry по площадкам: добавлены `scripts/fleet-rollout-registry.py`, `docs/process/fleet_rollout_registry.md` и sample-schema `docs/process/presets/fleet-rollout-registry.sample.json`.
3. [x] Добавить operational incident handover package: добавлены `scripts/incident-handover-package.py` и `docs/process/incident_handover_package.md`.
4. [x] Зафиксировать immutability policy для production package: добавлены `scripts/package-immutability-check.py`, `docs/process/package_immutability_policy.md` и sample-manifest `docs/process/presets/production-package-manifest.sample.json`.

## Отложенные задачи по каталогу приборов IOOT PRO

- Актуальный открытый published catalog debt перенесен в корневой `TASKS.md`.
