Перейти к содержимому

Редактирование сообщений

Фоновая генерация названия чата не задерживает сообщения в очереди или следующий пользовательский ход.

Пока основной агент работает, дополнительные сообщения попадают в редактируемую очередь. Ближайший результат инструмента передаёт доступные сообщения вместе, в порядке очереди, включая ошибки инструментов и ответы на вопросы. Если новых результатов инструментов нет, сообщения запускаются после завершения хода. Работа фонового субагента сама по себе не блокирует основной чат. Это позволяет:

  • Выстроить несколько последующих инструкций, не дожидаясь завершения каждой из них.
  • Отправить сообщение немедленно, минуя очередь, если нужно, чтобы агент действовал прямо сейчас.

Сообщения в очереди сохраняются в локальном хранилище сессий SQLite и переживают перезагрузку.

После нажатия Enter отправленный текст и вложения сразу исчезают из поля ввода, даже если перед началом хода модели Kodik должен сжать контекст или завершить другую подготовку. Если сообщение не удалось принять, Kodik восстанавливает черновик, только если вы ещё не меняли новый. Если вы ввели новый текст, а затем удалили его, поле останется пустым: ошибка предыдущей отправки не вернёт старый текст.

Ошибки отправки отображаются рядом с полем ввода; длинные сообщения и пути к файлам переносятся по его ширине.

Нажатие Escape в любом месте страницы чата, когда в очереди есть сообщение, отправляет его немедленно: текущая генерация останавливается, и сообщение из очереди начинает следующий ход (остальные сообщения из очереди присоединяются к нему) — так же, как кнопка немедленной отправки на карточке очереди. Сама остановка генерации всегда требует двух нажатий Escape: после первого значок Stop заменяется на ESC внутри той же круглой кнопки, а второе нажатие в течение пары секунд останавливает ход.

Сообщение, которое вы ставите в очередь или отправляете немедленно в другом окне Kodik, пока это окно ещё резюмирует чат для новой модели, отправляется сразу после этого ответа на новой модели.

Немедленная отправка не отменяет работу, которую инструменты уже завершили. Следующий ход сохраняет эти вызовы и их результаты в контексте. Если инструмент ещё выполнялся в момент остановки, Kodik сообщает агенту, что он мог выполниться частично, чтобы перед повторной попыткой агент проверил текущее состояние рабочей папки.

Встроенные slash-команды сохраняют поведение команд и не отправляются модели как обычный текст. Если отправить /compact, пока агент ещё работает, Kodik сразу сожмёт разговор и отсечёт поздние результаты старого хода. /newtask тоже остаётся командой, а не превращается в текст в очереди.

Если Kodik ждёт подтверждения инструмента, обычное сообщение добавляется в очередь, а запрос подтверждения остаётся открытым. После вашего решения результат инструмента передаёт сообщения из очереди по порядку. Если явно выбрать Send now на карточке сообщения, Kodik отменит ожидающий инструмент, сразу отметит его карточку как отменённую и начнёт следующий ход с сообщения из очереди. Отменённая карточка сохраняется после перезагрузки. Остановка хода также отменяет ожидающие подтверждения и делает карточки неотвеченных вопросов доступными только для чтения.

Если один и тот же чат открыт в двух окнах, Send now принимает сообщение из очереди один раз, а оба окна показывают одинаковый результат.

Если Send together уже подготавливает сжатие при смене модели, новое сообщение может оставаться видимым в очереди, пока контрольная точка не будет готова. Выбор Send now во время этой передачи не отменяет и не дублирует выполняемую отправку: исходная очередь сама запустит следующий ход.

Первому сообщению после смены модели или режима может потребоваться подготовка перед началом хода, например контрольная точка для новой модели. Чат отображается как работающий с момента отправки, поэтому сообщение, отправленное в это время, встаёт в очередь за ним. Окно «Есть сообщения в очереди» появляется, только если сообщения ещё ждут в очереди, пока чат простаивает, например после остановки запуска, и закрывается само, когда их не остаётся.

Прокручивайте чат вверх, чтобы загрузить предыдущие сообщения. Если чат обновился во время загрузки истории, можно продолжить прокрутку после появления обновлённого диалога. Запоздалый ответ на прежний запрос не возвращает сообщения, удалённые при восстановлении контрольной точки, в том числе при повторном открытии сессии. Закрытие другой панели той же сессии не прерывает новую загрузку. Уже загруженные сообщения остаются на своих местах, когда завершается новый ответ, поэтому каждый ответ остаётся под своим вопросом.

При восстановлении контрольной точки из чата исчезают и ранее загруженные сообщения, которые относятся к отменённой истории. Redo возвращает исходный разговор в прежнем порядке, без дубликатов и перезагрузки окна.

Редактирование отправленного сообщения (восстановление из контрольной точки)

Заголовок раздела «Редактирование отправленного сообщения (восстановление из контрольной точки)»

Нажмите на отправленное сообщение, чтобы открыть редактор, сохранив позицию прокрутки. Можно также выбрать сообщение с клавиатуры и нажать Enter или Space; Escape закрывает редактор.

Если агент уже обработал сообщение, которое вы хотите изменить, воспользуйтесь вместо этого восстановлением из контрольной точки. Это перемотает историю разговора и состояние файлов к моменту непосредственно до обработки этого сообщения, после чего можно повторно отправить изменённую версию.

Если вы редактируете сообщение, пока предыдущий ответ ещё генерируется, Kodik останавливает эту генерацию при восстановлении и сразу отправляет изменённое сообщение; оно не остаётся в очереди.

Полный ответ на изменённый ход появляется в истории сразу после завершения. Фоновое восстановление сессии не дописывает запоздалый ответ, когда чат уже вернулся в состояние ожидания.

Подробности см. в разделе Контрольные Точки.

Если при редактировании предыдущего сообщения вы выбираете другую модель, окно подтверждения оценивает контекст до этого сообщения включительно. Последующие ходы, которые будут заменены при отправке правки, не входят в оценку.

После подтверждения смены модели при редактировании предыдущего сообщения выбранная модель остаётся в редакторе и используется при повторной отправке изменённого сообщения.

Ошибки в редакторе отправленного сообщения показываются под полем ввода, не перекрывая черновик и кнопку отправки.