Skip to content

release: Phase 6 Team Extension (#76 #77 #78 #79 #80)#86

Merged
Kewton merged 19 commits into
mainfrom
develop
Mar 22, 2026
Merged

release: Phase 6 Team Extension (#76 #77 #78 #79 #80)#86
Kewton merged 19 commits into
mainfrom
develop

Conversation

@Kewton
Copy link
Copy Markdown
Owner

@Kewton Kewton commented Mar 22, 2026

Summary

Test plan

🤖 Generated with Claude Code

Kewton and others added 19 commits March 21, 2026 23:52
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(indexer): Embeddingストレージ追加 (#62)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(embedding): Embedding生成基盤追加 (#61)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(search): Semantic Search実装 (#63)

`commandindex search --semantic <query>` オプションを追加し、
Embeddingベースの意味検索機能を実装。

- CLIに--semanticオプション追加(--symbol/--related/query/--headingと排他)
- run_semantic_search(): Config読み込み→ベクトル化→コサイン類似度検索→メタデータ取得→フィルタ→出力
- enrich_with_metadata(): file_pathグルーピング+section_heading照合
- apply_semantic_filters(): tag/path/typeポストフィルタ
- SemanticSearchResult構造体+human/json/path出力対応
- SearchErrorにEmbedding/NoEmbeddingsバリアント追加
- SymbolStoreにcount_embeddings()追加
- matches_file_type() pub(crate)化でDRY
- CLIテスト5件追加(排他制御+受付)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(indexer): Embeddingストレージ追加 (#62)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(embedding): Embedding生成基盤追加 (#61)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(search): Semantic Search実装 (#63)

`commandindex search --semantic <query>` オプションを追加し、
Embeddingベースの意味検索機能を実装。

- CLIに--semanticオプション追加(--symbol/--related/query/--headingと排他)
- run_semantic_search(): Config読み込み→ベクトル化→コサイン類似度検索→メタデータ取得→フィルタ→出力
- enrich_with_metadata(): file_pathグルーピング+section_heading照合
- apply_semantic_filters(): tag/path/typeポストフィルタ
- SemanticSearchResult構造体+human/json/path出力対応
- SearchErrorにEmbedding/NoEmbeddingsバリアント追加
- SymbolStoreにcount_embeddings()追加
- matches_file_type() pub(crate)化でDRY
- CLIテスト5件追加(排他制御+受付)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(search): Hybrid Retrieval実装 (#64)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(indexer): Embeddingストレージ追加 (#62)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(embedding): Embedding生成基盤追加 (#61)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(search): Semantic Search実装 (#63)

`commandindex search --semantic <query>` オプションを追加し、
Embeddingベースの意味検索機能を実装。

- CLIに--semanticオプション追加(--symbol/--related/query/--headingと排他)
- run_semantic_search(): Config読み込み→ベクトル化→コサイン類似度検索→メタデータ取得→フィルタ→出力
- enrich_with_metadata(): file_pathグルーピング+section_heading照合
- apply_semantic_filters(): tag/path/typeポストフィルタ
- SemanticSearchResult構造体+human/json/path出力対応
- SearchErrorにEmbedding/NoEmbeddingsバリアント追加
- SymbolStoreにcount_embeddings()追加
- matches_file_type() pub(crate)化でDRY
- CLIテスト5件追加(排他制御+受付)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(search): Hybrid Retrieval実装 (#64)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(search): Reranking実装 (#65)

ハイブリッド検索結果に対してCross-Encoder方式で再順位付けを行うReranking機能を追加。
Ollama /api/generate ベースのプロンプトスコアリングで関連度を再評価する。

- --rerank フラグでCross-Encoderによる再順位付けを有効化
- --rerank-top で候補数を指定(CLI > config.toml > デフォルト20)
- RerankProvider トレイト + OllamaRerankProvider 実装
- Graceful Degradation(接続不可時は元結果返却+警告)
- 全体タイムアウト30秒、UTF-8安全なdocument_text切り詰め(4096文字)
- --symbol, --related, --semantic との排他制約

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(indexer): Embeddingストレージ追加 (#62)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(embedding): Embedding生成基盤追加 (#61)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(search): Semantic Search実装 (#63)

`commandindex search --semantic <query>` オプションを追加し、
Embeddingベースの意味検索機能を実装。

- CLIに--semanticオプション追加(--symbol/--related/query/--headingと排他)
- run_semantic_search(): Config読み込み→ベクトル化→コサイン類似度検索→メタデータ取得→フィルタ→出力
- enrich_with_metadata(): file_pathグルーピング+section_heading照合
- apply_semantic_filters(): tag/path/typeポストフィルタ
- SemanticSearchResult構造体+human/json/path出力対応
- SearchErrorにEmbedding/NoEmbeddingsバリアント追加
- SymbolStoreにcount_embeddings()追加
- matches_file_type() pub(crate)化でDRY
- CLIテスト5件追加(排他制御+受付)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(search): Hybrid Retrieval実装 (#64)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(search): Reranking実装 (#65)

ハイブリッド検索結果に対してCross-Encoder方式で再順位付けを行うReranking機能を追加。
Ollama /api/generate ベースのプロンプトスコアリングで関連度を再評価する。

- --rerank フラグでCross-Encoderによる再順位付けを有効化
- --rerank-top で候補数を指定(CLI > config.toml > デフォルト20)
- RerankProvider トレイト + OllamaRerankProvider 実装
- Graceful Degradation(接続不可時は元結果返却+警告)
- 全体タイムアウト30秒、UTF-8安全なdocument_text切り詰め(4096文字)
- --symbol, --related, --semantic との排他制約

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test: Phase 5 E2E統合テスト追加 (#66)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(config): チーム共有設定ファイル実装 (#76)

チームで共有可能な commandindex.toml をリポジトリルートに配置し、
インデックス設定やEmbeddingプロバイダー設定をチーム全体で統一できるようにする。

主な変更:
- config モジュール新規作成(src/config/mod.rs)
- 設定ファイル優先順位: env > config.local.toml > commandindex.toml > 旧config.toml > デフォルト
- フィールドレベルマージによる設定統合
- config show / config path CLIサブコマンド追加
- 既存 embedding::Config を config::load_config() に移行
- 秘匿値(api_key)のマスク表示とチーム設定での api_key 禁止バリデーション
- 旧 .commandindex/config.toml の deprecated fallback 対応

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(config): Codexレビュー指摘対応 - 環境変数api_key表示と設定エラー警告 (#76)

- config show で環境変数 COMMANDINDEX_OPENAI_API_KEY も考慮してマスク表示
- main.rs の設定エラー時に警告メッセージを stderr に出力(握り潰し防止)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(config): チーム共有設定ファイル実装 (#76)

チームで共有可能な commandindex.toml をリポジトリルートに配置し、
インデックス設定やEmbeddingプロバイダー設定をチーム全体で統一できるようにする。

主な変更:
- config モジュール新規作成(src/config/mod.rs)
- 設定ファイル優先順位: env > config.local.toml > commandindex.toml > 旧config.toml > デフォルト
- フィールドレベルマージによる設定統合
- config show / config path CLIサブコマンド追加
- 既存 embedding::Config を config::load_config() に移行
- 秘匿値(api_key)のマスク表示とチーム設定での api_key 禁止バリデーション
- 旧 .commandindex/config.toml の deprecated fallback 対応

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(cli): インデックス共有モード実装 (#77)

export/import サブコマンドと status --verify オプションを追加。
CI/CDパイプラインでインデックスを事前生成し、チーム共有可能に。

- commandindex export: tar.gz形式でインデックスをエクスポート
- commandindex import: tar.gzからインデックスをインポート(--force対応)
- commandindex status --verify: インデックス整合性チェック
- セキュリティ: パストラバーサル防止、シンボリックリンク拒否、圧縮爆弾対策
- 一時ディレクトリへの展開後にアトミックスワップ(データ保護)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(config): チーム共有設定ファイル実装 (#76)

チームで共有可能な commandindex.toml をリポジトリルートに配置し、
インデックス設定やEmbeddingプロバイダー設定をチーム全体で統一できるようにする。

主な変更:
- config モジュール新規作成(src/config/mod.rs)
- 設定ファイル優先順位: env > config.local.toml > commandindex.toml > 旧config.toml > デフォルト
- フィールドレベルマージによる設定統合
- config show / config path CLIサブコマンド追加
- 既存 embedding::Config を config::load_config() に移行
- 秘匿値(api_key)のマスク表示とチーム設定での api_key 禁止バリデーション
- 旧 .commandindex/config.toml の deprecated fallback 対応

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(cli): マルチリポジトリ横断検索実装 (#78)

ワークスペース設定ファイルによる複数リポジトリの横断検索機能を実装。
--workspace/--repo CLIオプション、SearchContext導入、rrf_merge_multiple
汎用化、WorkspaceSearchResult compositionパターンを採用。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(cli): statusコマンド拡張(--detail/--coverage/--format json) (#79)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(config): チーム共有設定ファイル実装 (#76)

チームで共有可能な commandindex.toml をリポジトリルートに配置し、
インデックス設定やEmbeddingプロバイダー設定をチーム全体で統一できるようにする。

主な変更:
- config モジュール新規作成(src/config/mod.rs)
- 設定ファイル優先順位: env > config.local.toml > commandindex.toml > 旧config.toml > デフォルト
- フィールドレベルマージによる設定統合
- config show / config path CLIサブコマンド追加
- 既存 embedding::Config を config::load_config() に移行
- 秘匿値(api_key)のマスク表示とチーム設定での api_key 禁止バリデーション
- 旧 .commandindex/config.toml の deprecated fallback 対応

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(config): Codexレビュー指摘対応 - 環境変数api_key表示と設定エラー警告 (#76)

- config show で環境変数 COMMANDINDEX_OPENAI_API_KEY も考慮してマスク表示
- main.rs の設定エラー時に警告メッセージを stderr に出力(握り潰し防止)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(cli): インデックス共有モード実装 (#77)

export/import サブコマンドと status --verify オプションを追加。
CI/CDパイプラインでインデックスを事前生成し、チーム共有可能に。

- commandindex export: tar.gz形式でインデックスをエクスポート
- commandindex import: tar.gzからインデックスをインポート(--force対応)
- commandindex status --verify: インデックス整合性チェック
- セキュリティ: パストラバーサル防止、シンボリックリンク拒否、圧縮爆弾対策
- 一時ディレクトリへの展開後にアトミックスワップ(データ保護)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test: Phase 6 E2E統合テスト追加 (#80)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Kewton Kewton merged commit e1a60ec into main Mar 22, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant