Newer
Older
TelosDB / document / 06_development_guide.md

💻 開発ガイド (Development Guide)

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


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

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

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

依存関係のインストール

bun install

Sidecar とモデルの準備

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


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

  • bin/: サイドカーバイナリ (llama-server) の格納場所。
  • data/: データベースファイル (vector.db) の永続化レイヤー。
  • logs/: 開発・診断用のログ出力。
  • resources/: バンドルされる静的リソース(アイコン等)。
  • src/backend/src/mcp.rs: MCP の全ツールロジック。
  • src/backend/src/db.rs: スキーマ管理。
  • test/: 統合テスト一式。

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

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

1. ツール名の定義

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

2. ハンドラーの実装

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

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

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

4. 単体テストの追加

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


🧪 テストの実行方法

Rust 単体テスト (推奨)

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

cd src/backend
cargo test

Bun E2E テスト

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

bun test

🚀 リリース手順

本プロジェクトでは、リリースのポータビリティを確保するため、特定のプラットフォームに依存しない自動化スクリプトを採用しています。

1. リリースブランチの作成とバージョン更新

以下のコマンドを実行すると、新しいリリースブランチ(release/vX.Y.Z)が作成され、package.json, tauri.conf.json, Cargo.toml のバージョンが一括更新・コミットされます。

bun run release <新バージョン番号>
# 例: bun run release 0.2.0

2. インストーラーのビルド

作成されたリリースブランチで、以下のコマンドを実行して最終的なパッケージ(MSI/EXE)を確認します。

bun run build

3. マージとタグ打ち

ビルドに問題がなければ、マスターブランチにマージし、タグを打ってリリースを確定させます。

git checkout master
git merge release/v0.2.0
git tag -a v0.2.0 -m "Release v0.2.0"

📝 コーディング規約

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