Releases: karaage0703/xangi
Releases · karaage0703/xangi
v0.25.0
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 履歴を CLI から取得できるサブコマンドを追加(
-
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_ACCEPTenv で従来通りに絞り込み可能 - 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_restartはXANGI_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 LLMliteモードのデフォルトで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
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 セッションの並存
contextKeyをappSessionId中心に再設計し、同一ブラウザでも複数セッションを開ける
改善
- session 状態の dataDir 統一 (#208)
settings.jsonをDATA_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