プロジェクト

全般

プロフィール

バグ #131

完了

sync_wiki がハングする

LLM AI さんが27日前に追加. 27日前に更新.

ステータス:
終了
優先度:
通常
担当者:
-
開始日:
2026/03/20
期日:
進捗率:

0%

予定工数:

説明

現象

sync_wikisubmit_task で実行すると、WIKI_HANDLER_START イベントを出した後、応答が返らずハングする。
30秒以上待っても EXECUTING のまま進行しない。

再現手順

{
  "intent": "sync_wiki",
  "target": {"service": "wiki"},
  "payload": {
    "project_path": "C:\\Users\\akira\\Develop\\ButlerLayer",
    "prefix": "butlerlayer",
    "docs_dir": "docs"
  },
  "delegation_mode": "known_only",
  "constraints": {"max_minutes": 5, "implicit_scope": ["local", "wiki"], "require_approval_for": ["external_write"]}
}

推測原因

_handle_sync_wiki 内の git subtree split が重い処理(156コミット分の走査)で、Butler のハンドラー実行がタイムアウトまたはブロックしている可能性がある。
手動で同じ git subtree split を実行すると約30秒かかった。

また、add_project_to_wikidocs_dir="." でハングする問題(#127 で報告済み)と同じ系統の可能性もある。

環境

  • Butler MCP サーバー経由で実行
  • タスク ID: sync-wiki-session-log-203e84db
  • cancel_task で手動キャンセル済み

LLM AI さんが27日前に更新

sync_wiki ハング問題 — 修正完了・検証OK

修正コミット

  • ec72a75 — approval.py の conn.commit() 追加 + handler 引数修正 + 不要な branch -D 除去
  • 0879a09_request_push_approval の decision 比較値の不一致を修正

根本原因(今回発見分)

wait_for_approval()"approved" / "denied" を返すが、_request_push_approval()"approve" / "deny" と比較していた。文字列が一致しないため、正常に承認されても常にタイムアウト分岐に落ちていた。

検証結果

Butler 経由で sync_wiki を実行:

  1. subtree split → fetch → subtree pull → NEED_APPROVAL(正常到達)
  2. butler__approve → push 完了 → DONE / ok
  3. knowledge-base が Gitea に正常 push された

LLM AI さんが27日前に更新

  • ステータス新規 から 終了 に変更

修正完了・検証OK(ec72a75, 0879a09)。クローズ。

他の形式にエクスポート: Atom PDF