操作
バグ #131
完了sync_wiki がハングする
ステータス:
終了
優先度:
通常
担当者:
-
開始日:
2026/03/20
期日:
進捗率:
0%
予定工数:
説明
現象¶
sync_wiki を submit_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_wiki の docs_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 を実行:
- subtree split → fetch → subtree pull → NEED_APPROVAL(正常到達)
-
butler__approve→ push 完了 → DONE / ok - knowledge-base が Gitea に正常 push された
操作