File tree Expand file tree Collapse file tree 1 file changed +138
-0
lines changed
Expand file tree Collapse file tree 1 file changed +138
-0
lines changed Original file line number Diff line number Diff line change 1+ # Roo Cline スタンドアロンWebアプリ化実装方針
2+
3+ ## 1. プロジェクト概要
4+
5+ VS Code拡張として実装されているRoo ClineのwebviewをスタンドアロンのWebアプリとして切り出し、独自に運用できるようにする。同時にオリジナルのRoo Clineからの更新も取り込める形で維持する。
6+
7+ ### 目的
8+ - VS Code拡張に依存しない形でWebアプリとして動作させる
9+ - 独自の機能拡張や改修を可能にする
10+ - オリジナルの更新を継続的に取り込める体制を整える
11+
12+ ## 2. 具体的な実装ステップ
13+
14+ ### Phase 1: 環境セットアップ
15+ 1 . 依存パッケージのインストール
16+ ``` bash
17+ pnpm install
18+ cd webview-ui && pnpm install
19+ cd ..
20+ ```
21+
22+ ### Phase 2: VS Code依存の切り離し
23+
24+ 1 . ** VS Code API のモック化**
25+ - ` webview-ui/src/utils/vscode.ts ` の修正
26+ - ` postMessage ` 関数の抽象化
27+ - ` acquireVsCodeApi ` の参照箇所の修正
28+
29+ 2 . ** 通信層の抽象化**
30+ ``` typescript
31+ // 新規作成: src/services/api/index.ts
32+ interface MessageHandler {
33+ send: (type : string , payload : any ) => void ;
34+ receive: (callback : (type : string , payload : any ) => void ) => void ;
35+ }
36+
37+ class WebSocketHandler implements MessageHandler {
38+ // WebSocket実装
39+ }
40+
41+ class RestHandler implements MessageHandler {
42+ // REST API実装
43+ }
44+
45+ export const messageHandler = process .env .USE_WEBSOCKET
46+ ? new WebSocketHandler ()
47+ : new RestHandler ();
48+ ```
49+
50+ ### Phase 3: スタンドアロン機能の実装
51+
52+ 1 . ** 環境判定機能の追加**
53+ ``` typescript
54+ // webview-ui/src/utils/environment.ts
55+ export const isVsCodeEnv = typeof acquireVsCodeApi === ' function' ;
56+ export const useVsCodeEnvironment = isVsCodeEnv && process .env .FORCE_STANDALONE !== ' true' ;
57+ ```
58+
59+ 2 . ** 設定の外部化**
60+ - 環境変数での制御
61+ - 設定ファイルの作成
62+
63+ ### Phase 4: テスト実装
64+
65+ 1 . ** 単体テスト**
66+ - 通信層のモック
67+ - 環境判定のテスト
68+ - UI コンポーネントのテスト
69+
70+ 2 . ** 統合テスト**
71+ - エンドツーエンドのフロー確認
72+ - WebSocket/REST API 通信テスト
73+
74+ 3 . ** テストカバレッジ目標**
75+ - コアロジック: 90%以上
76+ - UI コンポーネント: 80%以上
77+
78+ ### Phase 5: ビルドとデプロイ
79+
80+ 1 . ** ビルド設定の調整**
81+ - webpack/vite の設定調整
82+ - 環境別ビルドの設定
83+
84+ 2 . ** CI/CD パイプラインの構築**
85+ - GitHub Actions の設定
86+ - デプロイ自動化
87+
88+ ## 3. 技術的考慮事項
89+
90+ ### セキュリティ
91+ - クロスオリジン制限の対応
92+ - API キーの安全な管理
93+ - CORS 設定
94+
95+ ### パフォーマンス
96+ - バンドルサイズの最適化
97+ - レンダリングパフォーマンスの確保
98+ - キャッシュ戦略
99+
100+ ### 保守性
101+ - コードの分割と整理
102+ - インターフェースの明確な定義
103+ - ドキュメントの整備
104+
105+ ## 4. リファクタリング方針
106+
107+ 1 . ** 段階的なリファクタリング**
108+ - VS Code 依存部分の特定と分離
109+ - インターフェースの抽象化
110+ - テストカバレッジの維持
111+
112+ 2 . ** コード品質の維持**
113+ - Lint ルールの遵守
114+ - 型安全性の確保
115+ - コードレビューの実施
116+
117+ ## 5. アップストリーム更新対応
118+
119+ 1 . ** 更新取り込みフロー**
120+ ``` bash
121+ git fetch upstream
122+ git merge upstream/main
123+ # または
124+ git rebase upstream/main
125+ ```
126+
127+ 2 . ** コンフリクト対応方針**
128+ - 変更の影響範囲の確認
129+ - テストの実行による動作確認
130+ - 必要に応じたリファクタリング
131+
132+ ## 6. 完了条件
133+
134+ 1 . スタンドアロンでの起動確認
135+ 2 . 全テストのパス
136+ 3 . テストカバレッジ目標の達成
137+ 4 . ドキュメントの整備完了
138+ 5 . アップストリーム更新の取り込み確認
You can’t perform that action at this time.
0 commit comments