fbe5e9e17d
Drag-drop между колонками теперь сохраняется в БД через существующий DealBulkActionController@transition endpoint (single-element массив). Optimistic UI update (statusSlug меняется сразу) + revert-on-fail с toast «Не удалось переместить — восстановлен исходный статус». Без auth.user.tenant_id (dev/demo без login) — local-only mode, API не зовётся (graceful degradation). +3 Vitest specs в KanbanView.spec.ts (success / revert / no-auth skip). Pest covered by existing DealTransitionTest. Регрессий 0. Closes audit ID C4 from docs/superpowers/specs/2026-05-15-portal-audit-design.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>