e15a4d8a69
Фаза 2 Этап A, Task 8. toggle пишет строку firm_channels(channel, status=warming, mode=funnel, warming_started_at=firm.warmup_started_at, warmed_times++) вместо булева ch_*; off удаляет строку (инкремент двумя шагами, без raw). firmRow на вкладке площадки считает state/warming_active по строке канала через decideForChannelRow (нет строки или loaded → stopped/false). firms() eager-грузит firmChannels (против N+1). Границы этапа A: warming_channels-бейджи, platformState, channelColumn, allFirms и показ всех фирм — без изменений (ch_*, показ состава → этап C). ch_* колонки не удаляются. Бамп baseline (+9 actingAs-ложняков). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>