- Implemented CLI commands for listing, downloading, deleting, and retrieving information about reranker models.
- Enhanced the dashboard UI to support embedding and reranker configurations with internationalization.
- Updated environment variable management for embedding and reranker settings.
- Added functionality to dynamically update model options based on selected backend.
- Improved user experience with status indicators and action buttons for model management.
- Integrated new reranker models with detailed metadata and recommendations.
- Implement comprehensive end-to-end tests for MCP Tool Execution, covering tool discovery, execution, parameter validation, error handling, and timeout scenarios.
- Introduce tests for the complete lifecycle of a workflow session, including initialization, task management, status updates, and archiving.
- Validate dual parameter format support and handle boundary conditions such as invalid JSON, non-existent sessions, and path traversal attempts.
- Ensure concurrent task updates are handled without data loss and that task data is preserved when archiving sessions.
- List sessions across all locations and verify metadata inclusion in the results.
- Added `rerankerModels` property to the `ProviderCredential` interface in `litellm-api-config.ts` to support additional reranker configurations.
- Introduced a numerically stable sigmoid function in `FastEmbedReranker` for score normalization.
- Updated the scoring logic in `FastEmbedReranker` to use raw float scores from the encoder and normalize them using the new sigmoid function.
- Adjusted the result mapping to maintain original document order while applying normalization.
Add --queues parameter to enable parallel queue formation with multiple
issue-queue-agents. Solutions are partitioned by file overlap to minimize
cross-queue conflicts. Queue groups are linked via queue_group field.
- Introduced a comprehensive code analysis action template for integrating code exploration and analysis capabilities.
- Added LLM action template for seamless integration of LLM calls with customizable prompts and tools.
- Implemented a benchmark search script to compare multiple search methods across various dimensions including speed, result quality, ranking stability, and coverage.
- Provided preset configurations for common analysis tasks and LLM actions, enhancing usability and flexibility.
- Add Command-to-Tool Mapping for pre_analysis commands
- Add Execution Mode Selection for implementation_approach steps
- command field exists → Execute CLI via Bash
- no command → Agent direct execution with test_commands
- Fix bash command syntax in execute.md for Windows compatibility
- Convert multi-line for loop to single-line format
- Use single quotes for grep patterns to avoid escaping issues
- Simplify agent prompt template in execute.md
- Path-based invocation instead of embedding task content
- Add [FLOW_CONTROL] and "Implement" markers to trigger agent behavior
- Enhance code-developer.md Task JSON parsing
- Add explicit Task JSON field mapping (requirements, acceptance, etc.)
- Add STEP 1/2/3 execution flow for clarity
- Add Pre-Analysis Execution format with command-to-tool mapping
- Define default behavior when command field is missing
- Priority: Use tech_stack from JSON before auto-detection
- Add execution_config alignment rules to action-planning-agent.md
- Ensure meta.execution_config matches implementation_approach
- "agent" mode: no command fields, cli_tool: null
- "hybrid" mode: some command fields
- "cli" mode: all steps have command fields
- Introduced a comprehensive template for autonomous actions, detailing structure, execution, and error handling.
- Added an orchestrator template to manage state and decision logic for autonomous actions.
- Created a sequential phase template to outline execution steps and objectives for structured workflows.
- Developed a skill documentation template to standardize the generation of skill entry files.
- Implemented a Python script to compare search results between hybrid and cascade methods, analyzing ranking changes.
- Update README.md/README_CN.md badges and version text to v6.3.18
- Update INSTALL.md version menu examples from v4.6.0 to v6.3.18
- Fix INSTALL_CN.md repository URL (Claude-CCW → Claude-Code-Workflow)
- Fix INSTALL_CN.md directory name (Dmsflow → Claude-Code-Workflow)
- Add normalizePath() for Windows case-insensitive comparison
- Add resolveMainRepoFromGitFile() to parse .git file when git command fails
- Enhanced fallback logic reads .git file content (gitdir: path) to find main repo
- Supports worktree detection even without git CLI available
getProjectRoot() now detects if running from a git worktree and
automatically resolves to the main repository path. This allows
all ccw issue commands to work correctly from within a worktree.
Uses git rev-parse --git-common-dir to find main repo's .git
- ccw issue commands must run from main repo (not worktree)
- Add worktree execution pattern: fetch solution -> cd worktree -> implement -> cd main -> done
- Replace TodoWrite with update_plan for Codex compatibility
- Add rule 10: worktree ccw commands from main repo
- Use absolute paths via git rev-parse --show-toplevel
- Add cleanup traps for graceful failure handling (EXIT/INT/TERM)
- Add git worktree prune at startup for stale worktrees
- Validate main repo state before merge (fallback to PR if dirty)
- Change default to "Create PR" for parallel execution safety
- Move worktree directory to .ccw/worktrees/ (gitignored)
1. GlobalSymbolIndex constructor: Add project_id parameter lookup
- Get project_id from registry using source_root
- Pass project_id to GlobalSymbolIndex constructor
2. Binary cascade search path handling:
- Add VectorMetadataStore import for centralized search
- Fix _build_results_from_candidates to handle centralized mode
- Use VectorMetadataStore for metadata, source_index_db for embeddings
- Properly distinguish between index_root and index_path
3. Dense reranking for centralized search:
- Get chunk metadata from _vectors_meta.db
- Group chunks by source_index_db
- Retrieve dense embeddings from respective _index.db files
Validate working directory path before passing to spawn() to prevent
ENOENT errors when malformed paths are provided. Uses existing
validatePath utility for path validation and existence checks.
- Import validatePath from path-resolver
- Validate cd parameter with mustExist check before use
- Provide clear error message with invalid path details
- Add --archived flag to explicitly review archived sessions
- Auto-detect session location (active first, then archives)
- Update all path references to use resolved sessionPath
- Add usage examples for archived session review
- Replace auto-complete with AskUserQuestion in execute.md Phase 5
- User can choose "Enter Review" or "Complete Session"
- Fix archived tasks showing incomplete on dashboard
- executeArchive now updates all .task/*.json status to completed
- Add --queue parameter for explicit queue targeting (next, dag, detail, done, retry)
- Implement serialized multi-queue execution (complete Q1 before Q2)
- Add queue activate/priority subcommands for multi-queue management
- Add FailureDetail interface for structured failure tracking
- Preserve failure history on retry for debugging
- Show failure reasons and retry count in queue status display
- Auto-detect queue from item ID in done/detail commands
- Added pre-calculation of estimated chunk count for HNSW capacity in `generate_dense_embeddings_centralized` to optimize indexing performance.
- Implemented binary vector generation with memory-mapped storage for efficient cascade search, including metadata saving.
- Introduced SPLADE sparse index generation with improved handling and metadata storage.
- Updated `ChainSearchEngine` to prefer centralized binary searcher for improved performance and added fallback to legacy binary index.
- Deprecated `BinaryANNIndex` in favor of `BinarySearcher` for better memory management and performance.
- Enhanced `SpladeEncoder` with warmup functionality to reduce latency spikes during first-time inference.
- Improved `SpladeIndex` with cache size adjustments for better query performance.
- Added methods for managing binary vectors in `VectorMetadataStore`, including batch insertion and retrieval.
- Created a new `BinarySearcher` class for efficient binary vector search using Hamming distance, supporting both memory-mapped and database loading modes.
- Added centralized SPLADE database and vector storage configuration in config.py.
- Updated embedding_manager.py to support centralized SPLADE database path.
- Enhanced generate_embeddings and generate_embeddings_recursive functions for centralized storage.
- Introduced centralized ANN index creation in ann_index.py.
- Modified hybrid_search.py to utilize centralized vector index for searches.
- Implemented methods to discover and manage centralized SPLADE and HNSW files.
- Added category support for programming and documentation languages in Config.
- Implemented category-based filtering in HybridSearchEngine to improve search relevance based on query intent.
- Introduced functions for filtering results by category and determining file categories based on extensions.
- Updated VectorStore to include a category column in the database schema and modified chunk addition methods to support category tagging.
- Enhanced the WatcherConfig to ignore additional common directories and files.
- Created a benchmark script to compare performance between Binary Cascade, SPLADE, and Vector semantic search methods, including detailed result analysis and overlap comparison.