Conversation
Add comprehensive benchmark infrastructure with Criterion for measuring performance across core modules: - Set up index pipeline benchmarks covering parsing, tree building, ToC extraction and full pipeline performance - Implement retrieval pipeline benchmarks for query analysis, search algorithms, judge evaluation and end-to-end retrieval - Create pilot module benchmarks for intervention decisions, context building, response parsing, score merging and full decision flows - Update roadmap.md to reflect v0.2.0 status with completed features including Pilot implementation, backtracking support and new modules - Add placeholder examples for future implementation including batch processing, CLI tool, custom pilot, multi-format support and streaming - Configure Cargo.toml with benchmark definitions and criterion dependency These benchmarks provide the foundation for performance optimization and regression testing as the system evolves.
- Add `child_count()` method for efficient child counting without allocation - Add `children_iter()` method providing iterator interface to avoid Vec allocation - Update `children()` to use `children_iter()` internally for consistency - Add `siblings_iter()` method to get sibling nodes as iterator - Add `ancestors_iter()` method to get ancestor nodes as iterator - Add `path_from_root()` method to get complete path from root to node - Add `depth()` method to get node depth (root = 0) - Add `first_child()` and `last_child()` convenience methods refactor(context): use iterator methods instead of collecting into Vec - Replace `tree.children()` with `tree.children_iter()` in recursive section collection - Improves memory efficiency by avoiding unnecessary Vec allocations during traversal refactor(search): use optimized is_leaf check - Replace manual `tree.children(leaf_id).is_empty()` check with `tree.is_leaf(leaf_id)` - Uses existing optimized method that was already available in the codebase
- Add RetrievalIndex struct with pre-computed traversal data - Include methods for accessing leaves, levels, paths, and siblings in O(1) time - Implement build_retrieval_index method on DocumentTree to create the index - Add HashMap dependency for caching path and sibling relationships feat(retrieval): integrate RetrievalIndex into PipelineContext - Update PipelineContext to include optional RetrievalIndex field - Automatically build retrieval index when creating new context - Enable fast access to commonly needed tree traversal operations
- Add leaves_cache field to DocumentTree struct to store cached leaf nodes - Implement lazy rebuilding of leaves cache with rebuild_leaves_cache() method - Add invalidate_leaves_cache() method to clear cache when tree is modified - Update add_child() method to maintain leaves cache consistency - Modify constructor to initialize cache with root node as initial leaf - Skip serialization of leaves_cache using serde(skip) attribute - Return cached leaves when available, otherwise rebuild on demand in leaves() method
- Add `structure` field to TreeNode to store hierarchical path (e.g., "1", "1.1", "1.2.3") - This provides human-readable paths for LLM navigation and cross-referencing - Initialize structure field with empty string in Default implementation - Update test cases to include the new structure field
- Add find_nodes_by_page_range to retrieve nodes overlapping with a page range - Add get_pages_for_node to get all page numbers covered by a node - Add find_leaves_by_page_range to get only leaf nodes within a page range - Add total_pages method to get document's total page count - Add convenience methods to DocumentTree: find_by_structure, find_by_page, and find_nodes_by_page_range
…ark files Remove criterion benchmark infrastructure that was not implemented, including all placeholder benchmark files for index, retrieval, and pilot modules since they contained only placeholder implementations and were not providing actual performance measurements.
BREAKING CHANGE: The roadmap.md file has been completely removed as it contained outdated information about the project's future direction and current status that is no longer relevant. feat(pilot): integrate semantic navigation guidance into retrieval pipeline The LLM-based Pilot module is now integrated into the retrieval pipeline to provide semantic navigation guidance during search operations. This enables the system to make intelligent decisions about which document paths to explore based on semantic understanding rather than purely algorithmic scoring. The Pilot provides guidance at key decision points including: - Start: Initial branch selection for root level navigation - Fork: Decision making when multiple candidate paths exist - Backtrack: Guidance when need more data or explicit backtracking - Evaluate: Node assessment and ranking Additional improvements include: - Query-specific scoring context for more accurate relevance matching - Weighted combination of algorithmic and LLM-based scoring - Budget control with token/call limiting - Comprehensive logging and debugging information refactor(search): update beam and greedy search algorithms with Pilot support Updated both beam search and greedy search implementations to support Pilot-guided navigation. The changes include query-specific scoring, weighted merging of algorithmic and Pilot scores, and proper handling of semantic guidance during search operations. The search algorithms now: - Create query-specific scorers for better relevance - Integrate Pilot decisions with algorithmic scoring - Maintain visited node tracking to avoid cycles - Provide fallback mechanisms when no results meet minimum score thresholds fix(builder): improve LLM client configuration fallback logic Enhanced the EngineBuilder to provide fallback API key configuration by checking the summary configuration when retrieval configuration is not available. This provides more flexible LLM client setup.
The core Pilot interface definition and decision types have been removed from the pilot.md design document as they are now implemented in code. fix(builder): make LLM API key required for retrieval functionality The LLM API key is now required for retrieval since Pilot needs it for semantic navigation. Updated the builder to enforce this requirement and added appropriate error handling. refactor(judge): enhance content aggregation with descendant leaf content Modified the judge stage to always include both node's own content and all descendant leaf content for complete context. Added new collect_leaf_content method to traverse and collect content from leaf descendants. docs(readme): update architecture diagram reference Renamed architecture-v2.svg to architecture.svg and updated the README to reference the new filename.
Only include original content in retrieval results, not summary (per design: retrieval should return original text, not summary) refactor(retrieval): remove debug logging and unused counter from judge stage Remove unnecessary eprintln! debug statements and visited_count variable from the judge stage to clean up code and reduce console output
Handle preamble content (content before first heading) and clear the buffer after storing as preamble to avoid duplication in subsequent processing.
- Add tracing-subscriber as dev dependency with env-filter feature - Initialize tracing formatter in markdownflow example - Add comment explaining how to enable debug output with RUST_LOG=debug
- Implement precision-focused content aggregation with token budget awareness - Add RelevanceScorer with keyword-based and BM25 scoring strategies - Create BudgetAllocator with greedy, proportional, and hierarchical allocation - Build StructureBuilder for markdown and structured output formats - Design configurable system supporting different scoring and allocation strategies - Add comprehensive documentation for content aggregation architecture - Implement fallback mechanisms when no content meets relevance threshold - Provide detailed performance characteristics and testing strategy
…ge stage - Add comprehensive content aggregation example demonstrating scoring, budget allocation, and structure building - Export CandidateNode for content aggregation module - Integrate ContentAggregator into JudgeStage with configurable precision-focused aggregation - Add with_content_aggregator and with_default_content_aggregator methods to JudgeStage - Implement relevance scoring, token budget allocation, and hierarchical content selection in judge stage - Update documentation to reflect new content aggregation capabilities
- Add ContentAggregatorConfig struct with fields for token budget, relevance scoring, output formats, and deduplication settings - Implement conversion from config to retrieval content aggregator config - Add content configuration option to PipelineRetriever with with_content_config method - Configure content aggregator in Judge stage when enabled - Update template.toml with comprehensive content aggregator settings - Add default values and helper methods for content configuration
Add detailed design document outlining the complete refactoring of the client module to achieve professional, product-level architecture with clear separation of concerns. The design addresses several key issues: - God object anti-pattern in engine.rs - Mixed abstraction levels - Lack of session management - Missing event system - Scattered state management The proposed architecture includes: - Context module for request-scoped configuration - Session management for multi-document operations - Dedicated clients for indexing, retrieval, and workspace operations - Event system for callbacks and progress reporting - Simplified main engine as orchestrator Also implement the Builder pattern enhancement with event emitter support and add the initial context module with ClientContext functionality for request-scoped configuration overrides.
…ssions - Implement complete batch_processing.rs example demonstrating concurrent document indexing with progress tracking and performance metrics - Add events.rs example showing event callback system for monitoring indexing and query operations - Create session.rs example illustrating multi-document operations with caching and cross-document queries - Make events module public to enable external access to event system - Include detailed usage instructions and performance statistics in all examples
…oader Add new ConfigDocs module to generate markdown reference and example TOML files from configuration types. Enhance ConfigLoader with environment variable overrides using double underscore separator syntax, layered configuration support, and improved documentation with examples. BREAKING CHANGE: Configuration loading now supports layered files and environment variable overrides through ConfigLoader API.
- Simplify import statement by using vectorless::Engine directly - Update return type from vectorless::domain::Result to vectorless::Result - Change EngineBuilder::new() to Engine::builder() for consistency - Add error handling with map_err for better error propagation - Add comprehensive examples table with descriptions - Update documentation to reflect API changes
- Fix grammatical error in Rust description by removing "core" - Add early development warning notice to inform users about potential breaking changes - Maintain existing content structure while improving clarity
- Update package version from 0.1.10 to 0.1.11 in Cargo.toml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.