Newer
Older
TelosDB / journals / 20260223-0015-MIMEタイプ対応の追加.md
@楽曲作りまくりおじさん 楽曲作りまくりおじさん 18 hours ago 2 KB docs: remove English translations from journals

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

1. 作業実施の理由

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

2. 指示(背景、観点、意図を含む)

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

3. 指示事項とその対応

  • スキーマ更新: documents テーブルに mime TEXT カラムを追加。
  • 自動検知の実装: mcp.rs 内で、path の拡張子から主要な MIME タイプ(markdown, rust, javascript 等)を自動判別するロジックを追加。
  • ツール更新: add_item_textmime 引数を追加。また、検索結果に 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 改善やマルチモーダル対応への強力な基盤となりました。

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