# 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_map`、`parse_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) 等の超過は既存。今回の変更で新たに閾値を超えたファイルはない。
