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:
catlog22
2026-02-16 12:12:38 +08:00
parent 2202c2ccfd
commit de3dd044b9
13 changed files with 674 additions and 126 deletions

View File

@@ -1187,6 +1187,7 @@ except Exception as e:
path: projectPath,
mode = 'fusion',
fusion_strategy = 'rrf',
staged_stage2_mode,
vector_weight = 0.5,
structural_weight = 0.3,
keyword_weight = 0.2,
@@ -1198,6 +1199,7 @@ except Exception as e:
path?: unknown;
mode?: unknown;
fusion_strategy?: unknown;
staged_stage2_mode?: unknown;
vector_weight?: unknown;
structural_weight?: unknown;
keyword_weight?: unknown;
@@ -1215,6 +1217,23 @@ except Exception as e:
const resolvedMode = typeof mode === 'string' && ['fusion', 'vector', 'structural'].includes(mode) ? mode : 'fusion';
const resolvedStrategy = typeof fusion_strategy === 'string' &&
['rrf', 'staged', 'binary', 'hybrid', 'dense_rerank'].includes(fusion_strategy) ? fusion_strategy : 'rrf';
let resolvedStage2Mode: 'precomputed' | 'realtime' | 'static_global_graph' | undefined;
if (resolvedStrategy === 'staged' && typeof staged_stage2_mode === 'string') {
const stage2 = staged_stage2_mode.trim().toLowerCase();
if (stage2.length > 0) {
if (stage2 === 'live') {
resolvedStage2Mode = 'realtime';
} else if (stage2 === 'precomputed' || stage2 === 'realtime' || stage2 === 'static_global_graph') {
resolvedStage2Mode = stage2;
} else {
return {
success: false,
error: `Invalid staged_stage2_mode: ${stage2}. Must be one of: precomputed, realtime, static_global_graph`,
status: 400,
};
}
}
}
const resolvedVectorWeight = typeof vector_weight === 'number' ? vector_weight : 0.5;
const resolvedStructuralWeight = typeof structural_weight === 'number' ? structural_weight : 0.3;
const resolvedKeywordWeight = typeof keyword_weight === 'number' ? keyword_weight : 0.2;
@@ -1234,6 +1253,10 @@ except Exception as e:
include_match_reason: resolvedIncludeReason,
};
if (resolvedStage2Mode) {
apiArgs.staged_stage2_mode = resolvedStage2Mode;
}
if (Array.isArray(kind_filter) && kind_filter.length > 0) {
apiArgs.kind_filter = kind_filter;
}