1.1.2

Fixed (#374)

  • Агент отвечает «нет такой возможности» на просьбу «напоминай мне каждый час» (#374, аудит heartbeat-описаний): системный промпт нигде не заявлял возможность напоминаний, а единственный её источник — строка инструмента в блоке # Tools — обрезалась байтовым срезом до 117 символов посреди слова, теряя списки действий и «Difference from cron». (1) Новая секция промпта scheduling (эволюция heartbeats, buildSchedulingGuidance в context.go): при наличии cron — явная связка «просьба напомнить в конкретное время/интервал → инструмент cron» с примерами every/cron_expr/at и указанием передавать deliver: true для повторяющихся напоминаний (дефолт у них false); при наличии heartbeat_task — объяснение роли (фоновые циклы обслуживания без собственного расписания, временные запросы — cron); хвост про ответ на heartbeat-опрос сохранён безусловно (задачи могут создаваться через WebUI агенту и без инструмента). Секция переведена из режима Full в Light — раньше она не рендерировалась в самих cron/heartbeat-прогонах, которым адресована (каналы резолвятся в Light). (2) Обрезка # Tools: toolSummaryForPrompt режет по границе первой строки (описания инструментов многострочны), при более длинной первой строке — по рунам через общий truncateUTF8 (прежний desc[:117] был byte-slice — небезопасен для multibyte UTF-8 и ломал слово). Полные описания по-прежнему доступны модели в JSON-схемах инструментов. (3) Описания инструментов: cron — абзац «Use this when the user asks to be reminded…» с примерами маппинга просьб + второй <good-example> (every: "1h", deliver: true) + уточнение параметра deliver; heartbeat_task — явная отсылка «напоминания по времени — это cron, у heartbeat-задач нет собственного расписания». Тесты: toolSummaryForPrompt (passthrough/граница строки/жёсткая руновая обрезка multibyte), buildSchedulingGuidance (с инструментами/без, сохранение poll-хвоста), регрессия рендера секции в heartbeat-канале (Light). Сопутствующая находка аудита (вне коммита): инструменты cron/heartbeat по умолчанию выключены в permissions (включают пресеты «Ассистент»/«Автоматизация») — при отказе агента проверять настройки агента.