Skip to content

v0.20.0

Choose a tag to compare

@seibe seibe released this 28 May 15:12
· 575 commits to main since this release

Added

  • Slack bot: per-thread session resumption. Each Slack thread now maps to a persistent agent session, so follow-ups stay in context instead of starting fresh every message.
  • Slack bot: channel/thread context injection. The bot now passes the channel name and thread metadata into the system prompt, and ships tool-execution progress as the streamed reply is built. Final messages render through Slack markdown_text so tables survive.
  • Check-in templates as files. The previous in-DB cronMessage is now a file-backed checkin.md under the agent dir, editable from the same Save Changes flow as the rest of the agent files. The chat UI collapses check-in posts behind a generic system-message pill so long templates don't dominate the transcript.
  • user.md user context file. Per-agent user-context file replaces the LLM-generated persona summary. When the file exceeds the system-prompt budget it is truncated head/tail rather than re-summarised by an LLM.
  • Point-in-time memory truncation. Agent memory is now truncated against the snapshot at send time, so concurrent edits during a long stream no longer corrupt the resulting prompt.

Improved

  • English by default. Built-in prompts and UI strings now default to English. Existing Japanese installs keep their saved overrides.
  • System-message pills. The pill renderer is generic — any collapsible system message now shares one component instead of bespoke regex per kind.
  • JSONL reader. Replaced bufio.Scanner with bufio.Reader.ReadBytes for the JSONL log reader so single lines larger than bufio.MaxScanTokenSize (64 KiB) parse cleanly.

Fixed

  • Claude non-interactive backend. Disabled interactive-only tools when the Claude agent runs without a TTY, preventing the agent from picking tools it cannot drive.
  • Codex system prompt. Codex agents now receive their base instructions through the dedicated system slot instead of being concatenated onto the first user message.
  • Tool-use stream trail. When a streamed response ends empty the partial tool_use trail is now preserved instead of being dropped, so the retry path has the right context.
  • Check-in read errors. checkin.md read failures now propagate instead of silently falling back to the default template, so missing-disk / permission bugs are visible.
  • Slack chunk posting. Per-chunk budget is now isolated so one slow chat.update cannot starve later chunks, and MsgOptionText is no longer set on updates (Slack ignored it and warned).

Requirements

  • Go 1.25+
  • Node 22+ for building the web UI
  • Tailscale for the default (tsnet) listener; use --local to bind to 127.0.0.1 instead

追加

  • Slack bot: スレッド単位のセッション再開。 Slack のスレッドごとに永続セッションを紐付け、フォローアップが文脈を保持したまま継続するようになった。
  • Slack bot: channel / thread コンテキスト注入。 チャンネル名とスレッド情報を system prompt に渡し、ストリーミング中の返信にツール実行進捗を表示。最終メッセージは markdown_text で送るのでテーブルが崩れない。
  • チェックインテンプレートのファイル化。 旧 cronMessage をエージェント配下の checkin.md に移行し、他のエージェントファイルと同じ Save Changes フローで編集できるようになった。チャット UI ではチェックイン投稿を汎用の system-message pill で折りたためる。
  • ユーザコンテキストファイル user.md。 LLM 生成のペルソナ要約を廃止し、エージェント単位のユーザコンテキストファイルに置換。system prompt 予算を超える場合は LLM 再要約ではなく head/tail truncation で削る。
  • 送信時点メモリの truncation。 ストリーム中の編集と並走しても破綻しないよう、送信時のスナップショットに対して truncation を行うように変更。

改善

  • 既定言語を英語に。 ビルトインプロンプトと UI 文言の既定を英語に変更。既存日本語環境のユーザ上書き設定は保持される。
  • system-message pill 統一。 kind ごとに正規表現で組んでいた pill レンダラを共通の汎用 component に統合。
  • JSONL リーダ。 JSONL ログリーダを bufio.Scanner から bufio.Reader.ReadBytes に置換。bufio.MaxScanTokenSize (64 KiB) を超える 1 行も読めるようになった。

修正

  • Claude 非インタラクティブ backend。 TTY なし backend で interactive 専用ツールを無効化。エージェントが扱えないツールを選ぼうとしなくなった。
  • Codex の system prompt。 Codex エージェントの base instructions を最初のユーザメッセージへの連結ではなく専用の system スロット経由で渡すように修正。
  • tool_use ストリーム末尾の保持。 ストリーミング応答が空で終わったとき、途中の tool_use 末尾を破棄せず保持するように修正。リトライ経路に正しいコンテキストが渡る。
  • checkin.md 読み取りエラー。 デフォルトテンプレートへの暗黙フォールバックをやめ、ディスク不在 / 権限エラーを上に伝播するように変更。
  • Slack chunk 投稿。 chunk ごとの予算を独立化し、遅い chat.update が後続 chunk を食いつぶさないように修正。MsgOptionText は chat.update から削除 (Slack が無視して警告していた)。

要件

  • Go 1.25+
  • Web UI ビルドに Node 22+
  • デフォルト (tsnet) listener 使用時は Tailscale が必要。--local で 127.0.0.1 にバインドすることも可能。