mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-06 16:31:12 +08:00
feat: Add indexing group to CodexLens environment variable schema
- Introduced a new `indexing` group in the environment variable schema with fields for AST grep usage, static graph enablement, and relationship types. - Updated the CodexLens configuration to support new indexing features. feat: Enhance DashboardToolbar with session and fullscreen controls - Added props for session sidebar visibility and fullscreen mode to the DashboardToolbar component. - Implemented handlers for toggling session sidebar and fullscreen mode. - Updated the toolbar layout to include session sidebar toggle and fullscreen button. refactor: Improve TerminalGrid and TerminalPane components - Refactored GridGroupRenderer to handle pane size changes directly via store. - Enhanced TerminalPane to remove unused file browser logic and improve layout handling. - Updated key generation for child panes to ensure stability. feat: Extend CodexLens API for staged Stage-2 expansion modes - Added support for `staged_stage2_mode` in the CodexLens API, allowing for different expansion strategies. - Updated semantic search handlers to process new stage-2 mode parameter. - Implemented validation and handling for new stage-2 modes in the backend. test: Add benchmarks for staged Stage-2 modes comparison - Created a benchmark script to compare performance and results of different staged Stage-2 modes. - Included metrics for latency, overlap, and diversity across modes.
This commit is contained in:
@@ -24,7 +24,12 @@ import {
|
||||
useCodexLensLspStatus,
|
||||
useCodexLensSemanticSearch,
|
||||
} from '@/hooks/useCodexLens';
|
||||
import type { CodexLensSearchParams, CodexLensSemanticSearchMode, CodexLensFusionStrategy } from '@/lib/api';
|
||||
import type {
|
||||
CodexLensSearchParams,
|
||||
CodexLensSemanticSearchMode,
|
||||
CodexLensFusionStrategy,
|
||||
CodexLensStagedStage2Mode,
|
||||
} from '@/lib/api';
|
||||
import { cn } from '@/lib/utils';
|
||||
|
||||
type SearchType = 'search' | 'search_files' | 'symbol' | 'semantic';
|
||||
@@ -40,6 +45,7 @@ export function SearchTab({ enabled }: SearchTabProps) {
|
||||
const [searchMode, setSearchMode] = useState<SearchMode>('dense_rerank');
|
||||
const [semanticMode, setSemanticMode] = useState<CodexLensSemanticSearchMode>('fusion');
|
||||
const [fusionStrategy, setFusionStrategy] = useState<CodexLensFusionStrategy>('rrf');
|
||||
const [stagedStage2Mode, setStagedStage2Mode] = useState<CodexLensStagedStage2Mode>('precomputed');
|
||||
const [query, setQuery] = useState('');
|
||||
const [hasSearched, setHasSearched] = useState(false);
|
||||
|
||||
@@ -76,6 +82,7 @@ export function SearchTab({ enabled }: SearchTabProps) {
|
||||
query,
|
||||
mode: semanticMode,
|
||||
fusion_strategy: semanticMode === 'fusion' ? fusionStrategy : undefined,
|
||||
staged_stage2_mode: semanticMode === 'fusion' && fusionStrategy === 'staged' ? stagedStage2Mode : undefined,
|
||||
limit: 20,
|
||||
include_match_reason: true,
|
||||
},
|
||||
@@ -123,6 +130,11 @@ export function SearchTab({ enabled }: SearchTabProps) {
|
||||
setHasSearched(false);
|
||||
};
|
||||
|
||||
const handleStagedStage2ModeChange = (value: CodexLensStagedStage2Mode) => {
|
||||
setStagedStage2Mode(value);
|
||||
setHasSearched(false);
|
||||
};
|
||||
|
||||
const handleQueryChange = (value: string) => {
|
||||
setQuery(value);
|
||||
setHasSearched(false);
|
||||
@@ -308,6 +320,29 @@ export function SearchTab({ enabled }: SearchTabProps) {
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Staged Stage-2 Mode - only when semantic + fusion + staged */}
|
||||
{searchType === 'semantic' && semanticMode === 'fusion' && fusionStrategy === 'staged' && (
|
||||
<div className="space-y-2">
|
||||
<Label>{formatMessage({ id: 'codexlens.search.stagedStage2Mode' })}</Label>
|
||||
<Select value={stagedStage2Mode} onValueChange={handleStagedStage2ModeChange}>
|
||||
<SelectTrigger>
|
||||
<SelectValue />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="precomputed">
|
||||
{formatMessage({ id: 'codexlens.search.stagedStage2Mode.precomputed' })}
|
||||
</SelectItem>
|
||||
<SelectItem value="realtime">
|
||||
{formatMessage({ id: 'codexlens.search.stagedStage2Mode.realtime' })}
|
||||
</SelectItem>
|
||||
<SelectItem value="static_global_graph">
|
||||
{formatMessage({ id: 'codexlens.search.stagedStage2Mode.static_global_graph' })}
|
||||
</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Query Input */}
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="search-query">{formatMessage({ id: 'codexlens.search.query' })}</Label>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// CodexLens Environment Variable Schema
|
||||
// ========================================
|
||||
// TypeScript port of ENV_VAR_GROUPS from codexlens-manager.js
|
||||
// Defines the 5 structured groups: embedding, reranker, concurrency, cascade, chunking
|
||||
// Defines structured groups for CodexLens configuration
|
||||
|
||||
import type { EnvVarGroupsSchema } from '@/types/codexlens';
|
||||
|
||||
@@ -306,6 +306,36 @@ export const envVarGroupsSchema: EnvVarGroupsSchema = {
|
||||
},
|
||||
},
|
||||
},
|
||||
indexing: {
|
||||
id: 'indexing',
|
||||
labelKey: 'codexlens.envGroup.indexing',
|
||||
icon: 'git-branch',
|
||||
vars: {
|
||||
CODEXLENS_USE_ASTGREP: {
|
||||
key: 'CODEXLENS_USE_ASTGREP',
|
||||
labelKey: 'codexlens.envField.useAstGrep',
|
||||
type: 'checkbox',
|
||||
default: 'false',
|
||||
settingsPath: 'parsing.use_astgrep',
|
||||
},
|
||||
CODEXLENS_STATIC_GRAPH_ENABLED: {
|
||||
key: 'CODEXLENS_STATIC_GRAPH_ENABLED',
|
||||
labelKey: 'codexlens.envField.staticGraphEnabled',
|
||||
type: 'checkbox',
|
||||
default: 'false',
|
||||
settingsPath: 'indexing.static_graph_enabled',
|
||||
},
|
||||
CODEXLENS_STATIC_GRAPH_RELATIONSHIP_TYPES: {
|
||||
key: 'CODEXLENS_STATIC_GRAPH_RELATIONSHIP_TYPES',
|
||||
labelKey: 'codexlens.envField.staticGraphRelationshipTypes',
|
||||
type: 'text',
|
||||
placeholder: 'imports,inherits,calls',
|
||||
default: 'imports,inherits',
|
||||
settingsPath: 'indexing.static_graph_relationship_types',
|
||||
showWhen: (env) => env['CODEXLENS_STATIC_GRAPH_ENABLED'] === 'true',
|
||||
},
|
||||
},
|
||||
},
|
||||
chunking: {
|
||||
id: 'chunking',
|
||||
labelKey: 'codexlens.envGroup.chunking',
|
||||
|
||||
Reference in New Issue
Block a user