[b]Assembly.AI v1.0.0[/b] [b][color=saferyorange]BETA[/color][/b]
[url=https://commfort.com/ru/forum/viewtopic.php?t=8852]MAJOR UPDATE[/url]

[b][color=navy]Список изменений:[/color][/b]

✅ [b][color=azure]Поддержка нативных изображений[/color][/b]
- ⚙️ ИИ теперь может видеть изображения, отправленные в чат (для бэкендов с поддержкой vision).
- ⚙️ Новые syscalls: image_list{} и send_image{filename}{--channel=} или {--to=}.
- ⚙️ ИИ может отправлять JPG изображения в каналы и пользователям напрямую (размер ограничен API CommFort).
- ⚙️ EnableVision=1 в INI персоны (включено по умолчанию, безопасно для бэкендов без vision).

✅ [b][color=azure]Улучшения мыслящих моделей[/color][/b]
- ⚙️ Опция ReasoningEffort= в INI для o-series / DeepSeek-R1 моделей.
  Значения: none | low | medium | high | xhigh.
- ⚙️ Анимация мышления больше не спамит в debug каждый тик кадра.
- ⚙️ Команды внутри блоков <think> теперь игнорируются (выполняется только видимый ответ).
- ⚙️ Тишина после блока think теперь корректно детектируется.
- ⚙️ Пустые разделители параграфов <think></think> больше не ломают вывод.
- ⚙️ Циклы генерации (повторяющиеся строки) автоматически обрезаются перед отправкой.

✅ [b][color=azure]Агентные улучшения / Syscalls[/color][/b]
- ⚙️ send_code{code}{--to=Username}{--lang=pascal} — отправляет код напрямую во вкладку Workshop Coding получателя вместо флуда в чат.
- ⚙️ syscall set_profile для обновления само-профиля ИИ (AllowAISelfProfile=1).
- ⚙️ invite_user теперь принимает имя пользователя в блоке контента, а не только через флаг --user=.
- ⚙️ ИИ теперь получает уведомления о доставке при отправке сообщений.
- ⚙️ Флаг --wait=X:"reminder": устанавливает одноразовый таймер; ИИ пробуждается через X минут с напоминанием, инжектированным в контекст.
- ⚙️ Флаг --stop: ИИ может явно завершить цепочку auto-continue досрочно.
- ⚙️ ИИ теперь может предварительно планировать цепочки с {--continue N} перед началом.
- ⚙️ Статус бездействия получателя инжектируется после send_dm / send_pm при ExtendedUserInfo=1 (показывает, если пользователь AFK, прежде чем ИИ продолжит отправку).
- ⚙️ Детекция циклов: одинаковая команда + одинаковый контент подряд блокируется, ИИ вынужден сменить подход.

✅ [b][color=azure]Память[/color][/b]
- ⚙️ Новый режим хранения: dmbalanced — полный общий контекст везде, изоляция PM сохранена, DM записи не сохраняются на диск.
- ⚙️ Лимиты контекста на канал: ChannelContextLimits=main:16384,memes:512 — ограничение объёма контекста на канал без влияния на другие.

✅ [b][color=azure]Пульс / Автономные ходы[/color][/b]
- ⚙️ Стартовые сообщения на окно: инжектирование директив при первом тике пульса каждого календарного дня в пределах окна расписания.
- ⚙️ PulseReplyToLastSource: пульс теперь срабатывает в последний активный канал или DM/PM вместо всегда дефолтного Channel= из конфига.
- ⚙️ Пульс больше не срабатывает во время активных задач автономных ходов для избежания конфликтов слотов.

✅ [b][color=azure]Система задач[/color][/b]
- ⚙️ Loop задачи (--loop): бюджет перезапускается при истощении вместо удаления.
- ⚙️ Последовательные усечения по лимиту токенов детектируются; ИИ инструктируется отправлять частичные результаты вместо бесконечного вращения.

✅ [b][color=azure]Триггеры входа/выхода[/color][/b]
- ⚙️ JoinTriggerEnabled / LeaveTriggerEnabled на персону.
- ⚙️ Срабатывание ответа ИИ, когда конкретный пользователь (или любой) входит/покидает целевой канал; cooldown настраивается (JoinLeaveCooldownH=).

✅ [b][color=azure]Поддержка OpenRouter[/color][/b]
- ⚙️ OpenRouter_Referer= и OpenRouter_Title= поля в INI для заголовков атрибуции (HTTP-Referer, X-Title) при использовании openrouter.ai.

✅ [b][color=azure]Скрипты запуска/остановки[/color][/b]
- ⚙️ StartupScript= в AssemblyCoreConfig.ini: запускает скрипт или .bat при старте плагина (например, автозапуск бэкенда ИИ).
- ⚙️ ShutdownScript=: запускается при остановке плагина (например, завершение процесса бэкенда).
- ⚙️ MessageProcessDelayMs=250: краткая задержка перед маршрутизацией сообщений, позволяет ответам бота/расширения прийти до того, как ИИ увидит контекст.

✅ [b][color=azure]Улучшения модерации[/color][/b]
- ⚙️ ИИ теперь знает, когда он забанен на сервере или в канале:
  - Заметка в памяти инжектируется немедленно с именем модератора, длительностью, целевым каналом и причиной.
  - При переподключении после бана сервера: заметка подтверждает истечение бана.
- ⚙️ Уведомления о модерации для других пользователей теперь включают длительность бана и целевой канал (ранее отсутствовало).
- ⚙️ send_channel блокируется, если ИИ в данный момент забанен в целевом канале; возвращается информативная ошибка вместо индикатора доставки сообщения.

🔧 [b][color=azure]Исправления ошибок[/color][/b]
- 🔧 Исправлено: Уведомление о входе в канал (1062) теперь включает имя пригласившего в заметку памяти, когда ИИ был приглашён, а не присоединился сам.
- 🔧 Исправлено: Предотвращение дублирующих ответов — ходы продолжения больше не переотправляют уже доставленные сообщения.
- 🔧 Исправлено: Команды, обёрнутые в блоки ``` или [code], теперь извлекаются и выполняются (с предупреждением ИИ прекратить так делать).
- 🔧 Исправлено: AllowAIStop=0 по умолчанию позволяет ИИ досрочно прервать цепочку --continue.

═══════════════════════════════════════════════
[b]Assembly.Workshop — Что нового[/b]
═══════════════════════════════════════════════

- ⚙️ Добавлен поиск во вкладках Coding и Multimedia.
- ⚙️ Базовый редактор профиля пользователя: поля имени и био, отправляются ИИ при подключении. Поддерживается шифрование через FortLock + FortBureau.
- ⚙️ Workshop уведомляет ИИ об установленных возможностях (SVG viewer, code viewer), чтобы ИИ знал, что может отправлять SVG и использовать syscall send_code для этого пользователя.
- ⚙️ Позиция и состояние плавающего просмотрщика кода сохраняются между сессиями.
- 🔧 Различные исправления layout и стабильности после конверсии на TScrollBox.
