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

@@ -24,6 +24,7 @@ def semantic_search(
structural_weight: float = 0.3,
keyword_weight: float = 0.2,
fusion_strategy: str = "rrf",
staged_stage2_mode: Optional[str] = None,
kind_filter: Optional[List[str]] = None,
limit: int = 20,
include_match_reason: bool = False,
@@ -50,6 +51,10 @@ def semantic_search(
- binary: Binary rerank cascade -> binary_cascade_search
- hybrid: Binary rerank cascade (backward compat) -> binary_rerank_cascade_search
- dense_rerank: Dense rerank cascade -> dense_rerank_cascade_search
staged_stage2_mode: Optional override for staged Stage-2 expansion mode
- precomputed: GraphExpander over per-dir graph_neighbors (default)
- realtime: Live LSP expansion (requires LSP availability)
- static_global_graph: GlobalGraphExpander over global_relationships
kind_filter: Symbol type filter (e.g., ["function", "class"])
limit: Max return count (default 20)
include_match_reason: Generate match reason (heuristic, not LLM)
@@ -97,6 +102,17 @@ def semantic_search(
# Load config
config = Config.load()
# Optional per-call override for staged cascade Stage-2 mode.
if staged_stage2_mode:
stage2 = str(staged_stage2_mode).strip().lower()
if stage2 in {"live"}:
stage2 = "realtime"
valid_stage2 = {"precomputed", "realtime", "static_global_graph"}
if stage2 in valid_stage2:
config.staged_stage2_mode = stage2
else:
logger.debug("Ignoring invalid staged_stage2_mode: %r", staged_stage2_mode)
# Get or create registry and mapper
try:
registry = RegistryStore.default()