5.0 KiB
5.0 KiB
CAX Technical Roadmap - Post‑Bootstrap Implementation Plan
Target: Mini-VM完成後の即実装
Duration: 2-3週間でMVP完成
Dependency: Mini-VM安定化 + 既存PluginHost基盤
🏗️ Implementation Phases
Phase 0: Foundation (Mini-VM安定化待ち)
Duration: Mini-VM完成まで
Tasks:
- ✅ 設計文書化(完了)
- ✅ Gemini実装コード保存(完了)
- ✅ ChatGPT設計仕様保存(完了)
- 既存PluginHost.Invoke調査
- IPC実装方式決定(WebSocket/Unix Socket)
Phase 1: Core Implementation (Week 1)
Duration: 5日間
Deliverables: 基本IPC + 最小GUI
Backend (3日)
// src/tools/cax_server/
├── ipc_server.rs // IPC通信層
├── cabi_debugger.rs // フック・ログ・検証
├── plugin_manager.rs // アタッチ・デタッチ管理
└── main.rs // サーバー起動
Frontend (2日)
// gui/cax/
├── src/
│ ├── components/
│ │ ├── Explorer.svelte // プラグイン一覧
│ │ ├── Timeline.svelte // ライブログ表示
│ │ └── Inspector.svelte // 詳細表示
│ ├── api/
│ │ └── cax_client.ts // IPC通信
│ └── App.svelte // メインアプリ
└── tauri.conf.json
MVP機能
- プラグイン一覧表示
- アタッチ/デタッチボタン
- リアルタイムログ表示(JSONL)
- 基本フィルタリング
Phase 2: Advanced Features (Week 2)
Duration: 5日間
Deliverables: Record/Replay + Hot-swap
Record/Replay System
// レコーダー
pub struct CallRecorder {
output: BufWriter<File>,
format: RecordFormat, // JSONL | TLV
}
// リプレイヤー
pub struct CallReplayer {
calls: Vec<RecordedCall>,
mock_mode: bool, // プラグイン無しで再生
}
Hot-Swap Management
// ホットスワップ管理
pub struct PluginSwapper {
state: SwapState, // Attached | Quiescing | Swapping
pending_calls: AtomicU64,
swap_queue: VecDeque<SwapRequest>,
}
GUI拡張
- 録画/再生コントロール
- ホットスワップウィザード
- コール詳細インスペクター
- 簡易スクリプト実行
Phase 3: Polish & Advanced (Week 3)
Duration: 5日間
Deliverables: 本格運用可能版
Analytics & Visualization
// ヒートマップ・統計表示
interface CallStats {
plugin: string
method: string
call_count: number
avg_time_us: number
error_rate: number
hot_paths: string[]
}
Advanced Scripting
// CAX Macro API
using cax.api as CAX
CAX.enable({profile: true, assert: "warn"})
CAX.attach("map.so")
// 自動化スクリプト例
local errorCount = CAX.filter({outcome: "error"}).count()
if errorCount > 10 {
CAX.hotswap("map.so", "/backup/map_stable.so")
}
Production Features
- 詳細設定・永続化
- エクスポート(HTML/PDF レポート)
- プラグイン署名検証
- 権限・セキュリティ管理
🎯 Success Criteria
MVP Success (Phase 1)
- プラグインアタッチ→ログ表示まで1クリック
- リアルタイム表示でパフォーマンス影響<5%
- 基本的なABIバグ(型ミスマッチ)を検出
Advanced Success (Phase 2)
- Record→Replay でCI回帰テスト実現
- ホットスワップでサービス無停止更新
- 複雑なABIバグを根本特定
Production Success (Phase 3)
- 日常開発ワークフローに統合
- 他言語(Python/C++)開発者も使用開始
- 学術発表・OSS公開で注目獲得
🔧 Technical Implementation Notes
IPC選択基準
WebSocket: ブラウザベースGUI用(開発容易)
Unix Socket: ネイティブGUI用(性能優先)
→ 両対応、設定で選択可能
フック実装位置
// PluginHost::invoke の入口・出口
impl PluginHost {
pub fn invoke(&self, call: &PluginCall) -> Result<Value> {
CAX_TRACER.pre_call(call); // 🎯 フック点1
let result = self.invoke_impl(call);
CAX_TRACER.post_call(call, &result); // 🎯 フック点2
result
}
}
パフォーマンス最適化
// 条件付きトレース(オーバーヘッド最小化)
if CAX_ENABLED.load(Ordering::Relaxed) {
tracer.log_call(call_info);
}
// 非同期ログ書き込み
async fn log_writer(mut receiver: Receiver<LogEntry>) {
while let Some(entry) = receiver.recv().await {
// バッファリング→バッチ書き込み
}
}
📅 Realistic Timeline
Prerequisite: Mini-VM安定化(推定2-3週間)
Implementation: CAX開発(3週間)
Total: 約6週間でプロダクション品質版完成
Note: この実装計画は、Geminiの172行実装とChatGPTの設計仕様を基に、現実的なタイムラインで作成。Mini-VM完成後、即座に実装開始可能。