Skip to content

Releases: karaage0703/xangi

v0.25.0

13 May 13:13
4e6ec2e

Choose a tag to compare

xangi v0.25.0

新機能

  • xangi-cmd web_history サブコマンド追加

    • Web Chat 履歴を CLI から取得できるサブコマンドを追加(xangi-cmd web_history --count 10
    • セッション再開時の文脈把握用にプロンプトテンプレートも整備し、xangi-cmd discord_history / slack_history と統一感ある運用に
    • 既存の Discord / Slack history と同じ操作感で Web Chat 単独運用でも履歴を扱える
  • Web Chat: Stop / メッセージ編集・削除対応

    • 応答生成中に Stop ボタンで途中中断可能(ストリーミング中の取り消し)
    • 既存メッセージの編集・削除に対応
    • AI 更新時の auto-scroll を「下端付近にいるときだけ追従」化し、過去ログを読み返す途中でスクロールが下に飛ぶ問題を解消
    • Thinking スクロール挙動の修正
  • Discord / Slack メッセージ編集・削除を transcript jsonl に反映

    • Discord / Slack で送信済みメッセージが編集・削除された場合に、xangi 側の transcript(per-session jsonl)にも反映
    • 各プラットフォームのメッセージ操作と xangi のログが乖離しない
  • runtime-context を毎ターン prompt に注入

    • [runtime] cwd=... repo=name@branch を会話の先頭に注入し、AI が「いま自分はどのリポ・どのブランチで動いているか」を明示的に把握できるように
    • XANGI_RUNTIME_CONTEXT_ENABLED で ON/OFF 切替可能
    • exec フッタ [exec.cwd] は廃止(重複情報のため)
  • Web Chat: ファイルアップロードのデフォルト挙動を全許可に

    • これまでは画像/音声/PDF 等の許可リストでアップロード MIME を制限していたが、デフォルトでは全形式を許可する挙動に変更
    • 制限したい場合は WEB_CHAT_UPLOAD_ACCEPT env で従来通りに絞り込み可能
    • m4a / ogg / flac 等の MIME 推定にも対応

改善 / 破壊的変更

  • ⚠️ SKIP_PERMISSIONS のデフォルトを true に変更

    • Discord / Slack / Web Chat 経由の非対話実行で permission 待ちが発生し、AI が止まってしまう問題を回避
    • 対話的に permission を確認したい場合は明示的に SKIP_PERMISSIONS=false を設定する必要があります
  • ⚠️ xangi-cmd system_restart を tool-server 経由に再実装 + dataDir 重複検知を proper-lockfile に置換 + PID file 完全廃止

    • xangi-cmd system_restartXANGI_TOOL_SERVER/api/execute に POST する経路に統一。シェル直叩きで XANGI_TOOL_SERVER が未設定だと動かなくなります(fallback なし)
    • systemCmd.systemRestart は「自プロセスに SIGTERM」に簡素化(応答先返却 100ms 後に kill)
    • dataDir の重複検知を従来の PID file 方式から proper-lockfile.xangi.lock/ + 30s heartbeat + 60s stale 自動回収)に置き換え。Docker 環境でも安定動作
    • xangi.pid ファイルは完全廃止
    • JA/EN ドキュメント同期(usage / design 両方更新、EN に「Running Multiple Instances」「Session Retention」を新規追加)
  • ⚠️ Local LLM lite モードのデフォルトで xangi-cmd を ON に変更

    • LOCAL_LLM_MODE=lite の既定が「tools/triggers ON のみ」→「tools/xangiCommands/triggers ON」に変更
    • 軽め雑談 + Discord 操作を一通りこなす karaagebot 系のユースケースが既定でそのまま動くように
    • 従来挙動が欲しい場合は LOCAL_LLM_XANGI_COMMANDS=false を明示
  • docs/usage.md 再構成

    • 未実装だった !schedule の記述を削除(操作経路を /schedule + xangi-cmd schedule_* に統一)
    • 「危険コマンドの承認フロー」「per-message skip (!skip)」を末尾のオプションセクションに整理

バグ修正

  • Web Chat 関連の連鎖修正

    • auto-scroll の無限再帰
    • Stop ボタンが表示されないケース
    • web_history プロンプトが暴走してしまうケース
  • Docker 全プロファイルで xangi-cmd を使えるように修正

    • bin/xangi-cmd が Dockerfile から COPY 漏れしていて、Docker 運用(karaagebot 等)で xangi-cmd: command not found だった問題を修正
    • 全 Dockerfile に COPY bin/ ./bin/ + chmod +x + PATH=/app/bin:$PATH を追加
    • Dockerfile.max / Dockerfile.standalone には jq も追加

統計

  • 41 files changed, 2138 insertions(+), 431 deletions(-)
  • テスト計 430 件 pass(v0.24.0 比 +41 件)

🤖 Generated with Claude Code

v0.24.0

06 May 14:28
69893f6

Choose a tag to compare

xangi v0.24.0

新機能

  • インスタンス間チャット (inter-instance-chat)

    • 同マシン上の複数 xangi インスタンス(ホスト直 + Docker 混在)が、Discord/Slack を介さず軽量にメッセージをやり取りするコア機能
    • 共有ディレクトリ配下の per-instance JSONL を相互 watch する方式(デフォ /tmp/xangi-chat
    • INTER_INSTANCE_CHAT_ENABLED=true で有効化、docker-compose.yml も bind mount 設定済み
    • CLI: xangi-cmd inter_chat_send/tail/clear/list/config
    • Web UI: /inter-chat で全インスタンス横断の履歴を時系列表示・編集・自分の jsonl だけ削除可能(単一 writer 原則)
    • 自走モード(auto-talk): 🤖 トグル ON でエージェントが 10〜45 秒(既定)のランダム間隔で発話継続。双方 ON で AI 同士のおしゃべりが成立
    • 詳細: docs/inter-instance-chat.md
  • 外部イベントストリーム(pull 型 SSE)

    • GET /api/events/stream でチャット応答ライフサイクル(turn.started / message.delta / turn.complete / turn.aborted / agent.error)を SSE 配信
    • Discord / Slack / Web Chat の全プラットフォーム共通でイベントが流れる
    • サーバ側フィルタなし・consumer self-filter 設計。instance_id / host_hint / thread_label / platform を同梱
    • consumer 増減で xangi 側の設定変更ゼロ。N 台 consumer を繋いでも OK
    • XANGI_EVENTS_ENABLED / XANGI_INSTANCE_ID で制御
    • 詳細: docs/events.md
  • Web Chat UI を全面刷新

    • Linear 風デザインにリニューアル(ライト/ダーク両対応)
    • マルチペイン対応(複数セッションを横並び表示、🟢 は runner 生存ベース)
    • SSE ストリーミング対応(タイピング中の表示)
    • メディア添付対応(画像・ファイルのアップロード)
    • セッション再開・削除機能、セッション一覧で移行済みログも表示
    • Discord セッション可視化、「+ New Chat」インラインクリッカブル化
    • 起動時に localhost / Tailscale IP / MagicDNS hostname のアクセス URL を [web-chat] Access URLs: セクションで表示
  • 複数 Web セッションの並存

    • contextKeyappSessionId 中心に再設計し、同一ブラウザでも複数セッションを開ける

改善

  • session 状態の dataDir 統一 (#208)
    • settings.jsonDATA_DIR 配下に統一、他プロセス警告・古セッション剪定を追加
  • LOCAL_LLM_THINKING のデフォルトを false に変更
    • thinking タグを既定で抑止
  • events 配信を runWithBubbleEvents() で共通化
    • web-chat / Discord / Slack / auto-talk すべての call site を一本化、events 配信が抜ける構造的バグを排除

バグ修正

  • 親プロセスの XANGI_CHANNEL_ID が leak しないように修正
  • 自走モードの events 配信漏れを修正
    • agentRunner.run() 直叩きで events.* 配信が抜けていた問題を runWithBubbleEvents() で解消
  • 自走モード UI を見分けやすく改善(プロンプト全文 UI 表示の抑止、🤖 ボタン視認性)

ドキュメント

  • docs/events.md 新規追加(pull 型 SSE 仕様)
  • docs/inter-instance-chat.md 新規追加
  • .env.example に events / inter-instance-chat / auto-talk セクションを追加
  • README に「複数インスタンスの運用・セッションの保持期間」言及を追記

統計

  • 42 files changed, 7486 insertions(+), 975 deletions(-)
  • テスト計 389 件 pass(v0.23.0 比 +93 件)

🤖 Generated with Claude Code