🔀PR Timeline & Status
aegis-platform #1-64 / aegis-sip-bridge #1-16 / voice-edge #1-12 の状態を色分けで可視化。
全 Pull Request の時系列とステータス。3 リポ(aegis-platform / aegis-sip-bridge / voice-edge)を 対象に、GitHub の PR 実データから作成。6月ハンドオフ後の7月回収(段階1〜4・課金・E1-E3・ Toll Fraud 一次対策)まで反映している。
俯瞰(ステータス色分け)
Merged 72Open 17Draft 2Closed 1 合計 92 PR
aegis-platform
ℹ️レビューサイクルの現在地
- Merged 72 件: Route C / Phase B v2 の本実装(#1-21)に加え、7月回収の段階1〜4・ 課金・E1-E3(platform #32-64)、bridge の D-1/段階2/段階4 R 系(#7-16 のうち merged)、 voice-edge の Toll Fraud 一次対策・整地(#4-12 のうち merged)。いずれも取り込み済み。
- Open 17 件: 6月ハンドオフ時のレビュー指摘修正(Critical-1 / H-1〜H-5 / CM・PM 群)と、 実機テスト前の Phase C 統合 PR。Chris レビュー待ちを含む。
- Draft 2 件: Phase C v2 standalone(凍結)+ 既存 plan Draft。
- reviewer 指定は collaborator 招待後(Chris の GitHub: walmsleyc)。
全 PR 一覧
aegis-platform
#1Merged Route C: OpenAI Realtime 統合 (realtime)#2Merged Route C B4 (duration_seconds)#3Merged Route C B7 (event-trace)#4Merged Route C B5 (transcript-tick docs)#5Merged Route C B6 (retention sweeper)#6Merged B1' ダッシュボード live 更新 (SSE)#7Merged B7' event-trace prime#8Merged B2 rtc-stats summary#9Merged B8 dashboard#10Merged B9 tools (MCP)#11Merged chore: tech-debt (env/cors/db)#12Merged docs: Phase B v2 completion + Phase C v1 foundation#13Merged feat(ux): dashboard polish (SSE status, empty states, toast)#14Merged feat(observability): health, version, structured logs, JP errors#15Merged docs: B3/B10 design drafts for Rick Kazman review#16Merged feat(verify): OpenAI Realtime WebSocket direct-connection verify#17Merged docs(phase-c): record 2 bridge implementation gotchas#18Merged feat(b3): AES-256-GCM at-rest encryption for recordings#19Merged feat(b10): WebRTC session recovery v2.5 (backoff + mute + Retry-After)#20Merged docs(phase-c): operator JWT / DB migration runbooks#21Merged docs: NAS staging 移行#22Open whitelist CSV import に strict_approval ゲート + 監査を結線#23Open 録音 at-rest 暗号化の復号を get_recording に配線#24Open logout 後の JWT を Redis denylist で失効#25Open RhodiumAdapter の「仮実装」表現を整理 (挙動不変)#26Open 全19 FK に ON DELETE 方針を付与 (CASCADE/SET NULL/RESTRICT)#27Open 認可境界テストを6モジュールに追加#28Open check_client_access に NULL テナントガード追加#29Open 録音保存ログから NAS フルパスを除去#30Open tools_core の日本語文言を API 層へ分離#31Open .env.example に未掲載の10設定を追補#32Merged transcript pipeline + eval + health check (AI-side, pre-hardware)#33Closed engine: verdict port + Scorer L1 blocklist wiring (L3-D2/D4)#34Merged engine: opener floor ガードレール(L1 rules・フロア0.6 OR合成)— 突破3→0/誤爆ゼロコスト#35Merged engine: verdict port + Scorer L1 blocklist wiring (L3-D2/D4) — #33 再作成(base=main)#36Merged GitHub Actions でテスト自動実行を追加#37Merged F-1 require_roles を本物のテストに是正#38Merged 段階1-A 番号→client の共通判定関数(フラグOFF)#39Merged 段階1-B 番号判定を共通関数へ切替(フラグ分岐・既定OFF)#40Merged specs: 段階1ルーティング設計をAegis正本リポへ移送#41Merged specs: 段階0-c宿題メモをAegisリポにGit保存#42Merged 段階3-① 時刻を内部UTC統一・表示JST維持(+3-b無言すり替え是正)#43Merged 段階3-c 通話ログ喪失防止(create_task待ち合わせ)#44Merged 通知チャネル抽象化(アプリ最優先・Slack/LINE/メールは口だけ・既定OFF)#45Merged 段階3-② stats集計窓をUTC化(JST日付境界を正しく計算・フラグOFF既定)#46Merged 課金メータリング S1 エンジン種別正準化 + 設計文書#47Merged 課金メータリング S2 usage_events + emit#48Merged 課金メータリング M1 集約API(GET /api/usage)#49Merged 段階3-f F1 retention周期タスク配線(dry-run強制・実削除なし・既定OFF)#50Merged 段階3-d retell_client例外握り潰し是正(RetellApiError)#51Merged 段階3-③ 過去JST行のUTC移行スクリプト(dry-run既定・冪等)#52Merged 段階3-f F3 retention_until付与(retention.py一本化・課金原本除外・非削除)#53Merged 段階3-e E1 Redis fail-open観測(挙動不変・観測のみ)#54Merged 段階4 C-1 Retell二重課金の冪等化(3防波堤)#55Merged 段階4 ① 承認ゲート payload/target束縛(4-eyes実効化)#56Merged 段階4 ② reseller テナント越境封鎖(fail-closed)#57Merged 段階4 ③ SIP Webhook署名検証(Critical③・rhodium_webhook_secret結線)#58Merged 段階4 P1 承認適用のTOCTOU防止(条件付きUPDATE)#59Merged 段階4 F-2 Retell webhook署名の実テスト(偽テスト是正の締め)#60Merged 段階4 §3-1 テナント越境穴の横展開封鎖(check_client_access)#61Merged 段階4 §3-2 approve/reject TOCTOU封鎖(全遷移CAS統一)#62Merged 段階4 §3-3 webhook入力検証(不正bodyで500→400)#63Merged 段階3-e E2 Redis update_fieldsのLuaアトミックmerge(lost update防止)#64Merged 段階3-e E3 on_transcript threadpool化(イベントループ詰まり解消)
aegis-sip-bridge
#1Draft Phase C implementation plan (既存・番頭作成物ではない)#2Draft Phase C v2 standalone bridge + Asterisk 一式 (実機テスト前)#3Open AMI secret の文字種検証 (sed/eval 堅牢化)#4Open 発信者 PII を含む tool args を INFO→DEBUG#5Open bridge.py docstring の「proxy 未配線」表記を修正#6Open デプロイ構成の分離方針 + 用語集 + 用語整合#7Merged docs: CLAUDE.md の存在しない docs/ 参照を修正#8Open Phase C D-1: AMI hangup + transcript pipeline + terminate safety-valve#9Merged GitHub Actions でテスト自動実行を追加#10Merged F-3 transfer_to_human 偽テストを是正(未配線をxfail明示)#11Merged obs: 段階0-c 通話追跡番号(call_uuid)をログに一貫付与#12Merged 段階2 通話全体タイムアウト(無音ハングのbackstop)#13Merged 段階2 watchdog(systemd Restart + sd_notify心拍)#14Merged 段階4 R-2 transcript-final再送(記録喪失防止)#15Merged 段階4 R-1/R-4 ポンプ協調終了(孤児・片肺無音解消)#16Merged 段階4 §2-B-1 ami_unset時のAI継続(無音解消)
voice-edge
#1Open voice-edge: Aegis bridge 統合 + RDS/Arrowfone 繋がる口#2Merged docs: v1 草案の AudioSocket ポートを 9092 に統一#3Open Phase C D-1: dialplan (AMI-hangup verdict, dead DBPut path removed) + SSoT reference#4Merged shellcheck + bash -n の lint 自動実行を追加#5Merged ラボ実機テスト チェックリスト(段階0〜2集約)#6Merged チェックリスト参照先を移送後の正に更新(1行)#7Merged P0-4a 発信制限フラグ方式(Toll Fraud・既定OFF)#8Merged P0-4b シェルインジェクション消毒(録音ファイル名)#9Merged P0-4c 接続元ACL(res_pjsip_acl死蔵解消・LAN限定)#10Merged P0-4d securityログ(監査痕跡・fail2ban前提)#11Merged P1 JWT失効サイレント降格の是正(判定不能を痕跡化)#12Merged P2 死コード整理+placeholder検知