Newer
Older
TelosDB / document / development_guide.md

💻 開発ガイド (Development Guide)

本ドキュメントでは、本プロジェクトの開発環境構築、コードの変更、新しいツールの追加、およびテストの手順について解説します。


🛠️ 開発環境のセットアップ

プログラミング言語・ランタイム

  • Rust: rustup を通じて最新の安定版をインストールしてください。
  • Bun: フロントエンドの管理と外部テストの実行に使用します。

依存関係のインストール

bun install

Sidecar とモデルの準備

開発実行には llama-server と学習済みモデルが必要です。scripts/ 内のスクリプトを使用してください。


📁 主要なディレクトリ構成と責務

  • src-tauri/src/mcp.rs: MCP の全ツールロジックが集約されています。新しいツールを追加する場合はここを編集します。
  • src-tauri/src/db.rs: テーブルの定義、インデックス、トリガーなどの DB スキーマ管理。
  • src-tauri/src/entities/: SeaORM のモデル。DB スキーマを変更した際は再生成が必要です。
  • test/: JavaScript/Bun による外部結合テスト。

➕ 新しい MCP ツールの追加手順

新しい機能を MCP ツールとして公開する場合、以下の手順を踏みます。

1. ツール名の定義

src-tauri/src/mcp.rs 内で、JSON-RPC でやり取りするメソッド名(例: tools/list)を確認し、新しいツール用の定義を追加します。

2. ハンドラーの実装

handle_search_vector などの既存の関数を参考に、新しい非同期関数を実装します。

3. リクエストのディスパッチ

message_handler 関数の match 文にツール名を追加し、実装したハンドラーを呼び出すように設定します。

4. 単体テストの追加

mcp.rs の末尾にある mod tests に、新しいツールの入出力を検証するテストを追加してください。


🧪 テストの実行方法

Rust 単体テスト (推奨)

コアロジック(DB・MCP・LLM連係)のテストです。

cd src-tauri
cargo test

Bun E2E テスト

実際の HTTP/SSE 通信を介したテスト(開発環境が整っている場合)。

bun test

🚀 リリース手順

1. バージョンアップ

package.json および src-tauri/cargo.toml のバージョンを更新します。

2. ビルドの実行

bun tauri build

src-tauri/target/release/bundle/ 内に MSI インストーラーや EXE ファイルが生成されます。


📝 コーディング規約

  • Rust: cargo fmt および cargo clippy を遵守してください。
  • Commit: 分かりやすいメッセージを心がけ、必要に応じてジャーナルファイルを更新してください。
  • Documentation: ユーザーに影響する変更を加えた場合は、README.mddocument/ 内の該当ドキュメントを必ず更新してください。