Discord 承認システム仕様書(実装済み)
概要
Discord起点タスクでAntigravityが承認待ちになった場合、Discordへ承認要求を投げ返す。 ローカル起点タスクは従来通りローカルUIで操作する。
ファイル構成
| パス | 役割 |
|---|---|
utils/run_manager.py | run_id生成, context.json, フォルダ構造 |
utils/approval_manager.py | pending/resolved/archive管理, 多重発火防止, TTL |
cogs/approval_watcher.py | pending監視→Discord Embed→ボタンUI→resolved |
SAVE_ROOT
C:\Users\umecc\GoogleDrive\AI_DROPBOX\inbound\anticrow\runs\<run_id>\
├─ context.json
├─ logs/run.log
├─ approvals/
│ ├─ pending/
│ ├─ resolved/
│ └─ archive/
├─ artifacts/
└─ snapshots/
フロー
#ai-commandにメッセージ →command_relay.pyがcreate_run(origin=discord)→ context.json 生成 → VPS Hub push- Worker が承認必要検知 →
create_pending()→ pending JSON 作成 approval_watcher.pyが5秒ポーリングで検出 → Discord Embed + Approve/Reject/Details- ユーザーがボタン押下 →
resolve_approval()→ resolved JSON 作成 + pending → archive - Worker が
wait_for_resolution()で検出 → 再開 or 安全停止
安全制約
- ボタン操作はホワイトリスト制限(Uさんのみ)
- 多重発火防止(同一run_idでpending重複なし)
- TTL超過で自動rejected
- ローカル起点は承認システム不使用