# Journal: 20260223-0015-MIMEタイプ対応の追加

## 1. 作業実施の理由

ユーザーの提案に基づき、`documents` テーブルに MIME タイプを保持することで、将来的なファイル形式の拡張（PDF, 画像, 各種コード等）に対応しやすくするため。

## 2. 指示（背景、観点、意図を含む）

- **背景**: 現状はテキストチャンクのみだが、ソースファイルの形式をメタデータとして保持したい。
- **観点**: スキーマの正規化を維持しつつ、自動検知と明示的指定の両方をサポートする。
- **意図**: フロントエンドでの表示切り替えや、バックエンドでの適切なパース処理の布石とする。

## 3. 指示事項とその対応

- **スキーマ更新**: `documents` テーブルに `mime TEXT` カラムを追加。
- **自動検知の実装**: `mcp.rs` 内で、`path` の拡張子から主要な MIME タイプ（markdown, rust, javascript 等）を自動判別するロジックを追加。
- **ツール更新**: `add_item_text` に `mime` 引数を追加。また、検索結果に `mime` 情報を返すように変更。
- **ドキュメント更新**: データベース仕様書（`03_database_specification.md`）に新設カラムを反映。

## 4. 作業詳細

AIエージェントは以下の手順で作業を実施した。

1. `src/backend/src/db.rs` を修正し、テーブル作成 SQL に `mime` カラムを追加。
2. `src/backend/src/mcp.rs` をリファクタリング。
   - `add_item_text` の引数処理と、拡張子ベースの MIME 推測ロジックを実装。
   - すでにドキュメントが存在する場合の MIME アップデート処理を追加。
   - `search_text` および `get_item_by_id` の SQL クエリとレスポンス JSON に `mime` カラムを追加。
3. `docs/specification/03_database_specification.md` を更新。
4. `cargo check` により、バックエンドの整合性とビルド可能性を確認。

## 5. AI視点での結果

今回の変更により、TelosDB は単なるテキスト断片の集まりではなく、「型（MIME）を持ったドキュメントの集合」としての性質が強まりました。自動検知ロジックにより、ユーザーが意識せずとも適切なメタデータが蓄積されるようになり、将来的な UI 改善やマルチモーダル対応への強力な基盤となりました。

```mermaid
graph LR
    A[File Path] --> B{Extension?}
    B -->|md| C[text/markdown]
    B -->|rs| D[text/x-rust]
    B -->|other| E[application/octet-stream]
    C --> F[documents.mime]
    D --> F
    E --> F
```
