diff --git "a/journals/20260206-Tauri\347\247\273\350\241\214\343\201\250Gemma3\347\265\261\345\220\210.md" "b/journals/20260206-Tauri\347\247\273\350\241\214\343\201\250Gemma3\347\265\261\345\220\210.md" deleted file mode 100644 index 3c134ed..0000000 --- "a/journals/20260206-Tauri\347\247\273\350\241\214\343\201\250Gemma3\347\265\261\345\220\210.md" +++ /dev/null @@ -1,61 +0,0 @@ -# 2026-02-06 まとめ:Tauri v2 移行と Gemma 3 統合基盤の構築 - -## 1. プロジェクトの完全移行と技術刷新 - -Electron + Bun ベースの常駐型 MCP サーバーを、軽量・高性能な **Tauri v2 + Rust** 構成へ完全に移植した。 - -### 主な技術的変更 - -- **GUIフレームワーク**: WebView2 を採用し、メモリ使用量を劇的に削減。 -- **データ層**: SeaORM を導入。SQLite + `sqlite-vec` を型安全に操作し、ベクトル検索(MATCH句)を実現。 -- **通信層**: `axum` による MCP SSE サーバー実装と、`reqwest` による `llama.cpp` サーバー連携。 - -## 2. 実装ハイライト - -### 常駐アプリとしての基盤 (Tray & Window) - -- `TrayIconBuilder` を使用したシステムトレイメニュー(表示・終了)の実装。 -- ウィンドウの「×」ボタンによる終了を抑制し、トレイ常駐を維持するライフサイクル管理。 - - -### Gemma 3 300M Embedding モデルの統合(完了) - -- Gemma 3 モデル(embeddinggemma-300m-q4_0.gguf)は `models/` ディレクトリに組み込み済み。 -- 最新の `llama-server` をSidecar形式で起動し、モデルファイルの自動セットアップもPowerShellスクリプトで実現。 -- サーバー起動・連携ロジックはTauriバックエンドに統合済み。 - -今後は安定化・運用自動化・UI連携の強化が課題。 - -### 解析スクリプトのポーティング - -- `analyze_nesting.js` および `count_lines.js` を Rust 向けに調整し、コード品質の自動チェック体制を構築。 - -## 3. システム構成図 - -```mermaid -graph TD - UI["Frontend: HTML/JS"] <-->|Tauri Command| Rust["Backend: Rust"] - Rust --> DB[("SQLite + sqlite-vec")] - Rust --> MCP["MCP SSE Server: Axum"] - Rust --> LLM["Llama Client: reqwest"] - - subgraph "SeaORM Layer" - DB - end - - subgraph "Sidecar (External)" - LS[llama-server] --> Model["Gemma 3 300M"] - end - - LLM <-->|HTTP| LS -``` - -## 4. 検証結果 - -- `mockito` を利用した単体テスト、インメモリDBを用いた統合テスト(全 4 ケース)が正常に PASS。 -- デバッグモード (`tauri dev`) およびスタンドアロンビルドの両方でフロントエンド資産のロードとコマンド実行を確認。 - -## 5. 課題とネクストステップ - -- **Sidecarの安定化**: Windows 環境での DLL 依存関係問題の解決(b7956 ビルドへの更新)。 -- **リリースビルドの最適化**: バンドルされるバイナリのサイズ調整。 diff --git a/journals/20260207-Tauri_Refactoring_and_Stabilization.md b/journals/20260207-Tauri_Refactoring_and_Stabilization.md deleted file mode 100644 index 8c1b910..0000000 --- a/journals/20260207-Tauri_Refactoring_and_Stabilization.md +++ /dev/null @@ -1,56 +0,0 @@ -# 20260207 Tauri化の完了とプロジェクト構造の刷新 - -## 概要 - -本日は、Electron から Tauri v2 への移行作業を完了させ、プロジェクト構造の抜本的な整理(Rationalization)と安定化を行った。主な成果は、バックエンドコードの `src/backend` への集約、Sidecar (`llama-server`) の安定稼働、および MCP プロトコルの基本実装テストのパスである。 - -## 実施事項 - -### 1. プロジェクト構造の整理 - -- **Backendの移動**: `src-tauri` を `src/backend` に移動し、`src/frontend` と対になる構成に変更。これに伴い `tauri.conf.json` や各種パス解決ロジックを修正。 -- **資産の分離**: - - `bin/`: 外部バイナリ (`llama-server` 等) - - `data/`: 永続化データ (`vector.db`) - - `logs/`: 実行ログ - - `resources/`: 静的アセット -- **Electronの廃止**: 不要になった Electron 時代のソースコード (`src/backend/*` 旧) と依存関係を完全に削除。 - -### 2. Sidecar (llama-server) の安定化 - -- Windows 環境における DLL 読み込みエラーを解決するため、起動時に環境変数 `PATH` を継承し、カレントディレクトリをバイナリ配置場所に設定するロジックを実装。 -- `std::env::current_dir` を基準とした絶対パス解決を導入。 - -### 3. 機能実装と修正 - -- **ベクトル次元数の修正**: Gemma 3 300M モデルに合わせて、DBスキーマとバリデーションを 384 次元に統一。 -- **日時フィールドの導入**: `items` テーブルに `created_at`, `updated_at` を追加し、SQLite トリガーによる自動更新を実装。 -- **ロギング**: `tauri-plugin-log` を導入し、ログローテーション(10MB x 5世代)を設定。 - -### 4. 品質保証 - -- **ドキュメント刷新**: `README.md` を全面的に書き換え、セットアップ手順を `bun setup` に集約。 -- **MCP統合テスト**: MCP クライアント(JS)からサーバーへの接続、ツール実行、ベクトル検索の一連のフローを検証するテストを作成し、全パスを確認。 - -## 構成図 (最終形態) - -```mermaid -graph TD - Root[Project Root] --> Data[data/] - Root --> Bin[bin/] - Root --> Logs[logs/] - Root --> Src[src/] - - Data --> VDB["vector.db"] - Src --> FE["frontend/ (Web UI)"] - Src --> BE["backend/ (Rust/Tauri)"] - - subgraph "Sidecar Architecture" - BE -->|Spawn| LS["llama-server.exe (in bin/)"] - LS -->|Load| Model["Gemma 3 (in models/)"] - end -``` - -## 成果 - -プロジェクトの見通しが劇的に改善され、開発環境(`bun dev`)とプロダクションビルドの両方で安定して動作する基盤が整った。次のステップとして、実際の MCP クライアント(Claude Desktop, LM Studio 等)との接続確認が可能な状態となった。 diff --git a/journals/20260208-Review_and_Stabilization.md b/journals/20260208-Review_and_Stabilization.md deleted file mode 100644 index 7e516f5..0000000 --- a/journals/20260208-Review_and_Stabilization.md +++ /dev/null @@ -1,79 +0,0 @@ -# 20260208 開発レビュー: 機能強化と安定化 - -## 概要 - -本日 (2026-02-08) は、MCP サーバーとしての機能強化(長文対応、ツール拡充)と、配布に向けたインストーラーおよびサイドカー起動の安定化を集中的に行った。また、クライアントからの接続安定性を確保するための SSE 通信の改善と、サーバー状態の可視化を行った。 - ---- - -## 1. 長文データの埋め込み対応 (Long Text Chunking) - -**案件**: 2048トークンを超える長文データの埋め込み対応 - -### 実施内容 - -- `llama-server` および埋め込みモデルのコンテキスト制限を超える長文を扱うため、バックエンド (`llama.rs`) にチャンキングと平均プーリング (Mean Pooling) を実装。 -- **Axum設定**: `DefaultBodyLimit::disable()` を追加し、巨大なリクエストを許容。 -- **処理ロジック**: - 1. 4000文字を超える文章を分割。 - 2. 各チャンクに対して埋め込みを取得。 - 3. 各ベクトルの平均を計算し、最終的な文書ベクトルとする。 - -### 検証 - -- 5250文字〜21000文字のテキストで動作確認済み。 - ---- - -## 2. MCP ツールの改善とスキーマ変更 - -**案件**: MCPツールの充実とテーブル構造の変更 - -### 変更点 - -- **スキーマ**: `items` テーブルの `path` カラムを `document_name` に変更 (意味を明確化)。 -- **ベクトル次元**: Gemma 3 300M に合わせ、384次元から **768次元** に変更。 -- **新規ツール**: `delete_item`, `get_vector`, `get_document`, `list_documents` 等を追加し、CRUD を完全サポート。 -- **SSE 対応**: `.copilot/config.json` を `stdio` 形式から `url` (`http://localhost:3000/sse`) 形式に変更し、複数クライアントからの同時接続を可能にした。 - ---- - -## 3. インストーラーとサイドカー起動の安定化 - -**案件**: MSI インストーラー環境でのクラッシュ修正とパス解決 - -### 問題と対応の履歴 - -配布用 MSI パッケージにおける、サイドカー (`llama-server`) の起動失敗や DLL 読み込みエラーに対し、以下の対策を実施した。 - -1. **パス解決の厳密化**: - Tauri の `app_handle.shell().sidecar()` API を使用し、正規の方法でバイナリを呼び出すように修正。手動でのパス結合ロジックを廃止。 - -2. **DLL 検索パスの修正 (Searching Logic)**: - Windows は実行ファイル (`llama-server.exe`) と同じディレクトリにある DLL を最優先で読み込むため、`Resources` ディレクトリ内に DLL を配置し、サイドカー起動時のカレントディレクトリ (`current_dir`) を `Resources` に設定することで解決。 - 念のため `PATH` 環境変数にも `Resources` を追加。 - -3. **リソース配置**: - `tauri.conf.json` の設定を見直し、`models` ディレクトリや `mcp.json` が正しくインストーラーに含まれ、かつプログラムから参照できるように修正 (`resource_dir()` の再帰的探索)。 - ---- - -## 4. サーバー状態の可視化と接続安定化 - -**案件**: MCP クライアントからの接続安定化と UI 改善 - -### 実施内容 (可視化) - -- **SSE Keep-Alive**: 15秒間隔の Keep-Alive を実装し、アイドルタイムアウトを防止。 -- **ブロードキャスト**: クライアントへの通知を `tokio::sync::broadcast` で非同期に行うようにし、レスポンス待ちでのデッドロックを回避。 -- **UI 機能**: - - **Health Check**: `llama-server` の稼働状態をポーリングし、ヘッダーにステータスを表示。 - - **統計情報**: 接続クライアント数、登録ドキュメント数をリアルタイム表示。 - ---- - -## 成果 - -- 長文ドキュメントのベクトル化が可能になった。 -- MSI インストーラーでインストールした環境でも、サイドカー (Local LLM) が正常に起動し、MCP サーバーとして機能するようになった。 -- ユーザーは Web UI を通じて、サーバーの稼働状況や接続数を一目で確認できるようになった。 diff --git "a/journals/20260212-TelosDB\351\226\213\347\231\272.md" "b/journals/20260212-TelosDB\351\226\213\347\231\272.md" deleted file mode 100644 index 23a6e7f..0000000 --- "a/journals/20260212-TelosDB\351\226\213\347\231\272.md" +++ /dev/null @@ -1,293 +0,0 @@ -# 20260212 TelosDB Development Journal - -## 20260212-0001-プロジェクト名変更 (sqlitevector -> TelosDB) - -### 概要 - -プロジェクト名を `sqlitevector` から `TelosDB` に変更する。これに伴い、設定ファイル、ドキュメント、およびルートフォルダ名の更新を行う。 - -### 検討事項 - -- `package.json` の `name` フィールドの変更。 -- `tauri.conf.json` の `productName`, `identifier`, `title` の変更。 -- `README.md` のタイトルおよび説明文の更新。 -- ルートフォルダ名の変更 (Windows command: `move`). - -### 構造図 (変更前) - -```mermaid -graph TD - Root["sqlitevector/"] - Root --> PKG["package.json (name: sqlitevector)"] - Root --> README["README.md (Title: SQLite Vector)"] - Root --> Backend["src/backend/"] - Backend --> Tauri["tauri.conf.json (productName: sqlitevector)"] -``` - -### 構造図 (変更後) - -```mermaid -graph TD - Root["TelosDB/"] - Root --> PKG["package.json (name: telosdb)"] - Root --> README["README.md (Title: TelosDB)"] - Root --> Backend["src/backend/"] - Backend --> Tauri["tauri.conf.json (productName: TelosDB)"] -``` - -### 作業手順 - -1. `implementation_plan.md` の作成 (完了) -2. `package.json` の変更 -3. `tauri.conf.json` の変更 -4. `README.md` の更新 -5. ディレクトリ名の変更 -6. `lint` および `test` の実行 -7. コミット - -### メモ - -ルートフォルダの変更は、エージェントが動作しているパスに影響するため慎重に行う必要がある。 -プログラム内部で `sqlitevector` という文字列をハードコードしている箇所がないか再度確認する。 - -## ビルドエラー修正: target-dir パス不整合 - -**日時:** 2026-02-12 21:06 -**対象:** `src-backend/.cargo/config.toml` - -### 問題 - -フォルダ構成変更(`src-tauri` → `src-backend`)後、`tauri dev` ビルドが失敗。 - -```text -resource path `..\..\bin\llama-server-x86_64-pc-windows-msvc.exe` doesn't exist -``` - -### 原因分析 - -```mermaid -graph TD - A["src-backend/.cargo/config.toml"] -->|"target-dir = ../../target"| B["%DEV_ROOT%/target ❌"] - A -->|"target-dir = ../target"| C["%PROJECT_ROOT%/target ✅"] - D["tauri.conf.json externalBin"] -->|"../bin/llama-server"| E["パス解決が target-dir 基準でずれる"] - E --> F["../../bin/llama-server として解決 ❌"] -``` - -### 修正内容 - -| ファイル | 変更前 | 変更後 | -| :--- | :--- | :--- | -| `src-backend/.cargo/config.toml` | `target-dir = "../../target"` | `target-dir = "../target"` | - -### 検証 - -- `cargo check`: ✅ 成功(Exit code: 0) -- `cargo clippy`: ✅ 成功(既存のwarning 6件のみ、エラーなし) - -## SQLiteテーブルビューア機能の追加 - -**日時:** 2026-02-12 21:18 -**対象:** `src-frontend/index.html`, `src-backend/src/lib.rs` - -### 案件概要 - -ユーザーがGUI上でSQLiteのテーブル構成(スキーマ)や登録内容(データ)を直接確認できるように、左サイドバーとテーブルビューを追加する。 - -### 修正・追加内容 - -#### 1. バックエンド (Rust / Tauri) - -- 新規Tauriコマンドの追加: - - `get_table_list`: `sqlite_master`からテーブル一覧を取得。 - - `get_table_schema`: `PRAGMA table_info`から定義を取得。 - - `get_table_data`: ページネーション対応のレコード取得(SQLインジェクション対策済み)。 -- リファクタリング: - - `analyze_nesting.js`の指摘に基づき、`diagnose_environment`関数のネストをガード条件を用いて解消。 - -#### 2. フロントエンド (HTML / CSS / JS) - -- レイアウト刷新: - - CSS Gridを用いた「左サイドバー + メインパネル」構成。 - - ダークモード、CSS変数、グラスモーフィズムを採用したモダンな配色。 -- 機能実装: - - サイドバーでのテーブル一覧表示。 - - Schemaタブによるカラム定義の表示。 - - Dataタブによる20件ずつのページネーション表示。 - - MCP設定表示機能の統合。 - -### 図解 (Mermaid) - -```mermaid -graph LR - subgraph Frontend - Sidebar["サイドバー (テーブル選択)"] - Tabs["メイン (Data/Schema)"] - end - - subgraph Backend - CmdList["get_table_list"] - CmdData["get_table_data"] - CmdSchema["get_table_schema"] - end - - subgraph Data - DB[("SQLite (items, vec_items)")] - end - - Sidebar --> CmdList - Tabs --> CmdSchema - Tabs --> CmdData - CmdList & CmdSchema & CmdData --> DB -``` - -### 検証結果 - -- `cargo check`: ✅ 成功 -- `cargo clippy`: ✅ 成功 (既存警告のみ) -- `analyze_nesting.js`: `lib.rs` の最大ネストが 5 -> 4 に改善。 -- `tauri dev`: GUI上で全テーブルの表示、ページネーション、タブ切替が正常に動作することを確認。 - -## sqlite-vec → sqlite-vector 移行実装 - -**日時:** 2026-02-12 21:40 -**対象:** `src-backend/src/db.rs`, `src-backend/src/lib.rs`, `src-backend/src/mcp/handlers.rs`, `src-backend/src/entities/items.rs` - -### 案件概要 (移行) - -ベクトル検索エンジンを Alex Garcia 版 (`sqlite-vec`) から sqliteai 版 (`sqlite-vector`) へ移行した。 -これにより、仮想テーブルを使用しない BLOB カラム方式への統合と、より安定した API (`vector_quantize_scan`) の利用が可能になった。 - -### 変更内容 - -#### 1. データベース・スキーマ - -- `vec_items` 仮想テーブルを廃止。 -- `items` テーブルに `embedding BLOB` カラムを追加。 -- 初期化時に `vector_init` を実行してカラムをベクトルとして認識させる。 - -#### 2. ベクトル検索 - -- `MATCH` 句から `vector_quantize_scan` による JOIN 方式に変更。 -- 検索ベクトルをバイト列(f32 LE)に変換してクエリに渡すロジックに統一。 - -#### 3. DLL管理 - -- npmパッケージ `@sqliteai/sqlite-vector-win32-x86_64` から `vector.dll` を取得し `bin/` に配置。 -- バックエンドのパス解決ロジックを `vector.dll` および新パッケージ構成に対応。 - -```mermaid -graph LR - subgraph "Before" - items[items table] - vec_items[vec_items virtual table] - items -- JOIN -- vec_items - end - subgraph "After" - items_new[items table + embedding BLOB] - end -``` - -### 課題と解決 - -- `cargo check` 時、`handlers.rs` で `embedding_bytes` 変数が未定義のまま使用されていた問題を修正。 -- `lib.rs` の `resolve_extension_path` において不要な可変変数 `mut` 警告を解消。 - -### 検証結果 (移行) - -- `cargo check`: Pass -- ネストレベル解析: `lib.rs` で Level 5 (既存ロジック由来) を確認したが、移行ロジック自体は平易。 -- `count_lines`: 各ファイルとも許容範囲内。 - -## 20260212-0005-sqlite-vector拡張機能のロード不具合調査 - -### 概要 (不具合調査) - -`sqlite-vec` (Alex Garcia版) から `sqlite-vector` (sqliteai/sqlite-vector版) への移行に伴い、SQLite拡張機能 (`vector.dll`) が正常にロードできず、アプリケーションがランタイムでクラッシュ(Panic)する問題を調査した。 - -### 経緯 - -1. **移行背景**: 安定性と機能性を求め、仮想テーブルを必要としない `sqlite-vector` (BLOB保存方式) への移行を決定。 -2. **不具合発生**: `db.rs` で `load_extension` を実行した際、「指定されたモジュールが見つかりません」というエラー(Windowsエラーコード 0x7E)が発生。 -3. **調査結果**: - - **プリビルドDLL**: npmパッケージ内のバイナリは `libgcc_s_seh-1.dll` などの外部ランタイムに依存しており、標準的な環境ではロードに失敗しやすい。 - - **ソースビルドの試行**: - - `sqliteai/sqlite-vector` の公式リポジトリを `tmp/sqlite-vector` にクローン。 - - `zig cc` (Clang) を用いたビルドを試みたが、AVX2命令の定数初期化や MSVC ABI 固有の関数衝突でコンパイルエラーが発生。 - - 以下のソースコードを修正してビルドを成功させた: - - `distance-avx2.c`: `popcount_lut` の初期化をインライン化。 - - `libs/fp16/bitcasts.h`: Clangビルド時の MSVC 組み込み関数使用を回避し Union 方式にフォールバック。 - - `sqlite-vector.c`: `strcasecmp` マクロを Windows 用に定義。 -4. **現状**: - - 自前で `-static` 指定ビルドした `vector.dll` を `bin/` に生成したが、依然として SQLite 側からロードした際に「モジュールが見つからない」と判定される。 - - これは DLL 自体の不足ではなく、DLL がインポートしている **SQLite のシンボル解釈**、あるいは **依存 DLL (C Runtime 等)** が実行時に見つかっていない可能性が高い。 - -### 課題 - -- **シンボル解決**: DLL が `sqlite3_...` 関数の実体を見つけられていない。 -- **デバッグ手法**: `sqlx` のワーカースレッド内で落ちるため、詳細なエラーメッセージの取得が困難。 -- **配置**: `tauri dev` 実行時のカレントディレクトリと DLL サーチパスの一致。 - -### 注意点 - -- **仮想テーブルは不要**: 新しい `sqlite-vector` は `CREATE VIRTUAL TABLE` ではなく、通常のテーブルに `BLOB` 型で保存する。 -- **エントリポイント**: ロード時の指定は `sqlite3_vector_init` である必要がある(自動認識されない場合は明示が必要)。 -- **ビルド成果物**: 現在 `bin/vector.dll` に自前ビルド版、`node_modules` にプリビルド版がある。 - -### 修正方針(VS Codeでの対応用) - -1. `sqlite3.dll` を `bin/` に配置し、拡張機能がリンクできるようにする。 -2. `db.rs` でのロードパスを、環境変数などを利用した堅牢な絶対パス指定に変更する。 -3. `dumpbin /IMPORTS` 等で、生成した DLL が何を外部に求めているか最終確認する。 - -```mermaid -graph TD - A[App Start] --> B[Initialize DB] - B --> C{Load extension} - C -- Failed --> D[Runtime Panic] - C -- Target --> E[vector.dll] - E -- depends on --> F[sqlite3.dll] - E -- depends on --> G[VCRuntime] - F -- Missing? --> D -``` - -## 20260212-0006-sqlite-vectorビルド・導入手順のドキュメント化 - -### 概要 (ドキュメント) - -`vector.dll` ロード不具合の解決策と、Windows 環境特有のビルド・配置手順を公式ドキュメントおよび README に記録した。 - -### 実施内容 - -#### 1. ドキュメントの作成 - -- `docs/sqlite-vector-build.md` を作成。 - - Windows における依存関係(`libgcc` 等)の課題を記述。 - - `sqlite3.dll` を自前ビルドしてリンクする解決策を詳述。 - - `zig cc` を使用したビルドコマンドを記録。 - - アプリ起動時に `PATH` を更新する実装意図を解説。 - -#### 2. README.md の更新 - -- エンジン移行の完了を反映。 -- 「ネイティブモジュール (DLL) について」セクションを追加し、`bin/` フォルダの重要性とビルドドキュメントへのリンクを明記。 -- 重複していた「システム構造」セクションを整理。 - -### 構成図 (Mermaid) - -```mermaid -graph TD - subgraph "Development" - Src["sqlite-vector Source"] -- "zig cc + link sqlite3.dll" --> VectorDLL["vector.dll"] - SqliteSrc["sqlite3.c"] -- "zig cc" --> SqliteDLL["sqlite3.dll"] - end - - subgraph "Runtime (TelosDB)" - App["TelosDB.exe"] -- "Add bin/ to PATH" --> Env["Runtime Environment"] - Env -- "load_extension" --> VectorDLL - VectorDLL -- "symbol lookup" --> SqliteDLL - end -``` - -### 成果 - -将来の保守担当者が、なぜ `bin/` に `sqlite3.dll` が存在するのか、また DLL を更新する際にどのような手順が必要なのかを容易に把握できるようになった。 diff --git a/journals/20260213-System_Stabilization_and_UI_Refactoring.md b/journals/20260213-System_Stabilization_and_UI_Refactoring.md deleted file mode 100644 index 3f502d6..0000000 --- a/journals/20260213-System_Stabilization_and_UI_Refactoring.md +++ /dev/null @@ -1,60 +0,0 @@ -# 20260213-System_Stabilization_and_UI_Refactoring - -## 概要 - -2026年2月13日の活動記録まとめ。開発環境の安定化(Java/Marketplace/SQLite)と、UI/UX の刷新を集中的に実施した。 - -## 1. 開発環境の修正 (System Stabilization) - -### Java 25 / Extension 対応 - -- **問題**: `settings.json` で `JavaSE-25` が無効とされた。 -- **対処**: Open VSX のバージョン不整合を解消するため、`product.json` を修正し Microsoft Marketplace を参照するように変更。CLI から最新の `redhat.java` (1.53.x) をインストールし、Java 25 を正式にサポートさせた。 - -### SQLite Vec (vec0.dll) の復元と権限修正 - -- **問題**: `llama-server` との連携に必要な `vec0.dll` が欠落し、ロード時に `not authorized` でパニックが発生。 -- **対処**: `npm install sqlite-vec-windows-x64` で公式バイナリを配置。`rusqlite` 初期化時に `load_extension_enable()` を呼び出し、SeaORM (sqlx) のプール設定でも拡張ロードを有効化して解決。 - -## 2. UI/UX の刷新 (UI Overhaul) - -### フロントエンド再構築 - -- **デザイン**: グラスモルフィズムを取り入れたダークテーマを採用。 -- **構造化**: `index.html` から CSS/JS を分離。サイドバーとタブ(データ/スキーマ/検索)によるモダンなレイアウトに変更。 - -### バックエンドリファクタリング - -- **コード品質**: `lib.rs` のネストを削減し、初期化ロジックを分割。`db.rs` と `mcp.rs` の機能を整理。 -- **MCP ツール拡充**: `update_item`, `delete_item` を実装し、ベクトルデータの CRUD を完全化。 - -## 検証結果 - -- 全ユニットテストおよび `analyze_nesting.js`, `count_lines.js` をパス。 -- UI 上でのテーブル閲覧、ベクトル検索、MCP Config 表示が正常動作することを確認。 - ---- - -## アーキテクチャ図 (現状) - -```mermaid -graph TD - subgraph Frontend - HTML[index.html] -- CSS/JS --> UI - end - - subgraph Backend - Tauri[Tauri App] --> DB[(SQLite / Sea-ORM)] - Tauri --> MCP[MCP Server] - Tauri --> Llama[Llama Client] - end - - subgraph External - Sidecar[llama-server] --> GGUF - VSCode[VS Code] --> Marketplace[MS Marketplace] - end - - UI <--> Tauri - Llama <--> Sidecar - DB -.->|vec0.dll| Sidecar -``` diff --git "a/journals/\343\203\241\343\203\242.md" "b/journals/\343\203\241\343\203\242.md" deleted file mode 100644 index c365efa..0000000 --- "a/journals/\343\203\241\343\203\242.md" +++ /dev/null @@ -1,13 +0,0 @@ -# 次にやりたい事 - -* MCP経由でレコードの無効化機能(テーブルには残すが、検索結果から除外する) -* MCP経由でレコードの有効化機能(無効化したレコードを有効にする) -* MCP経由でレコードの削除機能(テーブルから削除する) -* MCP経由でレコードの更新機能(格納データの更新処理とベクトルの再計算処理) -* 格納データの抽出機能 -* バイナリデータの保存 - * バイナリデータ保存用のフィールドを追加する。 - * 同じテーブルに格納して、マルチモーダルに対応する - * 画像データのベクトル化と保存 - * PDFやWordなどのバイナリ文書をベクトル化して保存 -*