Newer
Older
TelosDB / journals / 202603-017-自動起動改善とフォルダモニタカテゴリ機能.md

2026-03-09 自動起動改善・フォルダ選択ダイアログ・モニターカテゴリ機能

実施内容

1. 自動起動時のウィンドウ一瞬表示を修正

自動起動(--minimized)時にメインウィンドウが一瞬表示されてから隠れる問題を修正した。

  • 原因: tauri.conf.json でウィンドウが visible: true(デフォルト)で作成され、setup() の重い初期化完了後に hide() していた。
  • 修正: ウィンドウを visible: false で作成し、通常起動時のみ初期化完了後に show() する方式に反転した。自動起動時はウィンドウが一度も表示されない。

2. モニター先フォルダ追加時にフォルダ選択ダイアログを表示

手入力のみだったモニター先フォルダのパス指定に、OS ネイティブのフォルダ選択ダイアログを導入した。

  • tauri-plugin-dialog v2.6.0 を導入(Cargo.toml, package.json, capabilities, lib.rs)
  • 「追加」ボタンクリックでフォルダ選択ダイアログが開き、選択パスが自動入力される。重複チェック付き。

3. モニター先フォルダにカテゴリ名を付与(検索フィルタ対応)

モニター先フォルダごとにカテゴリ名を付けられるようにし、検索時にカテゴリで絞り込めるようにした。

  • DB: documents テーブルに category TEXT DEFAULT '' カラムを追加(ALTER TABLE マイグレーション)。
  • settings.json: monitor_paths を文字列配列からオブジェクト配列 [{path, category}] に変更。旧形式(文字列配列)との後方互換を維持する parse_monitor_paths ヘルパーを types.rs に追加。
  • WatcherConfig: category_map: HashMap<PathBuf, String> を追加。ファイル取込時にモニターディレクトリからカテゴリを解決して documents.category に保存。
  • 検索 API: search_text ツールに category フィルタパラメータを追加。レスポンスの各アイテムに category フィールドを含む。
  • MCP ツール: add_item_text ツールにもオプションの category パラメータを追加。
  • 設定画面 UI: 各モニターパス行にカテゴリ名入力欄を追加。
  • 検索画面 UI: カテゴリ選択ドロップダウンを追加。結果カードにカテゴリバッジを表示。

主な変更ファイル

バックエンド (Rust)

ファイル 変更内容
src/backend/tauri.conf.json ウィンドウ visible: false
src/backend/Cargo.toml tauri-plugin-dialog 追加
src/backend/capabilities/default.json dialog:allow-open 追加
src/backend/src/lib.rs dialog プラグイン登録、起動時 show/hide 反転
src/backend/src/db/migration.rs migrate_add_documents_category 追加
src/backend/src/db/mod.rs get_item_content_with_doc に category 追加
src/backend/src/mcp/types.rs WatcherConfig.category_mapparse_monitor_paths
src/backend/src/mcp/handlers.rs 設定保存時の WatcherConfig 構築で parse_monitor_paths 使用
src/backend/src/mcp/mod.rs 起動時の設定読込で parse_monitor_paths 使用
src/backend/src/mcp/watch.rs resolve_category 追加、ingest 呼び出しにカテゴリ伝播
src/backend/src/mcp/tools/items.rs ingest_file_path / handle_add_item_text / list_documents にカテゴリ対応
src/backend/src/mcp/tools/search.rs category フィルタ・レスポンスに category 追加
src/backend/src/mcp/tools/registry.rs search_text / add_item_text スキーマに category 追加

フロントエンド

ファイル 変更内容
src/frontend/components/main-panel.js カテゴリ入力欄、カテゴリフィルタ dropdown、フォルダ選択ダイアログ
src/frontend/index.html 検索リクエストに category、結果カードにカテゴリバッジ
src/frontend/styles.css カテゴリ入力欄・フィルタ・バッジのスタイル

計測

count_loc.cjs / nesting_depth.cjs 実行済み。items.rs (670行, depth 7)、main-panel.js (747行, depth 10) 等の超過は既存。今回の変更で新たに閾値を超えたファイルはない。