|
| 1 | +# GitHub Issues Plan for NLWeb June 2025 Updates |
| 2 | + |
| 3 | +This document outlines the specific GitHub issues and labels that should be created based on the [NLWeb June 2025 Analysis](nlweb-june-2025-analysis.md). |
| 4 | + |
| 5 | +## Required Labels |
| 6 | + |
| 7 | +### 1. `Required Update` Label |
| 8 | +- **Color**: `#d73a49` (red) |
| 9 | +- **Description**: Critical updates needed for NLWeb protocol compatibility |
| 10 | + |
| 11 | +### 2. `Update Opportunity` Label |
| 12 | +- **Color**: `#0366d6` (blue) |
| 13 | +- **Description**: Enhancement opportunities from NLWeb June 2025 release |
| 14 | + |
| 15 | +## Required Update Issues |
| 16 | + |
| 17 | +### Issue 1: Implement Multi-Backend Retrieval Architecture |
| 18 | +**Labels**: `Required Update`, `enhancement`, `architecture` |
| 19 | +**Priority**: Critical |
| 20 | +**Effort**: Large |
| 21 | + |
| 22 | +**Description:** |
| 23 | +The NLWeb June 2025 release requires support for multiple simultaneous backends. This is a breaking architectural change that needs immediate attention. |
| 24 | + |
| 25 | +**Current State:** NLWebNet supports only single backend via `IDataBackend` interface. |
| 26 | + |
| 27 | +**Requirements:** |
| 28 | +- [ ] Update configuration system to support multiple simultaneous backends |
| 29 | +- [ ] Implement concurrent querying across multiple backends with automatic deduplication |
| 30 | +- [ ] Add concept of primary "write endpoint" while reading from multiple sources |
| 31 | +- [ ] Create configuration migration utilities |
| 32 | + |
| 33 | +**Code Areas Affected:** |
| 34 | +- `Services/IDataBackend.cs` - Interface needs extension or replacement |
| 35 | +- `Services/NLWebService.cs` - Core service logic needs multi-backend support |
| 36 | +- Configuration system - New YAML-style configuration support |
| 37 | +- Demo application - Update for multi-backend scenarios |
| 38 | + |
| 39 | +**Acceptance Criteria:** |
| 40 | +- [ ] Multiple backends can be configured simultaneously |
| 41 | +- [ ] Queries execute in parallel across all enabled backends |
| 42 | +- [ ] Results are deduplicated automatically |
| 43 | +- [ ] One backend can be designated as "write endpoint" |
| 44 | +- [ ] Existing single-backend configurations still work |
| 45 | + |
| 46 | +--- |
| 47 | + |
| 48 | +### Issue 2: Implement Tool Selection Framework |
| 49 | +**Labels**: `Required Update`, `enhancement`, `protocol` |
| 50 | +**Priority**: High |
| 51 | +**Effort**: Medium |
| 52 | + |
| 53 | +**Description:** |
| 54 | +The NLWeb June 2025 release introduces a tool selection framework that routes queries to appropriate tools based on intent. |
| 55 | + |
| 56 | +**Current State:** No tool selection system exists. |
| 57 | + |
| 58 | +**Requirements:** |
| 59 | +- [ ] Implement query routing to appropriate tools based on intent |
| 60 | +- [ ] Add `tool_selection_enabled` configuration option |
| 61 | +- [ ] Ensure existing queries work when tool selection is disabled |
| 62 | +- [ ] Maintain existing behavior for `generate_mode` queries |
| 63 | + |
| 64 | +**Code Areas Affected:** |
| 65 | +- New `Services/IToolSelector.cs` interface |
| 66 | +- `Services/QueryProcessor.cs` - Add tool selection logic |
| 67 | +- `Models/NLWebRequest.cs` - May need additional parameters |
| 68 | +- Configuration system - Add tool selection settings |
| 69 | + |
| 70 | +**Acceptance Criteria:** |
| 71 | +- [ ] Tool selection engine routes queries to appropriate handlers |
| 72 | +- [ ] Backward compatibility maintained when tool selection is disabled |
| 73 | +- [ ] Configuration option controls tool selection behavior |
| 74 | +- [ ] Query processing performance impact < 20% |
| 75 | + |
| 76 | +--- |
| 77 | + |
| 78 | +### Issue 3: Update Configuration Format Support |
| 79 | +**Labels**: `Required Update`, `configuration`, `breaking-change` |
| 80 | +**Priority**: Medium |
| 81 | +**Effort**: Small |
| 82 | + |
| 83 | +**Description:** |
| 84 | +The NLWeb June 2025 release introduces new configuration formats including YAML-style multi-backend configuration and XML-based tool definitions. |
| 85 | + |
| 86 | +**Current State:** Basic configuration through `NLWebOptions`. |
| 87 | + |
| 88 | +**Requirements:** |
| 89 | +- [ ] Support new YAML-style configuration with `enabled` flags |
| 90 | +- [ ] Support XML-based tool definitions |
| 91 | +- [ ] Provide seamless upgrade from current configuration |
| 92 | +- [ ] Maintain backward compatibility |
| 93 | + |
| 94 | +**Code Areas Affected:** |
| 95 | +- Configuration system |
| 96 | +- `Models/NLWebOptions.cs` |
| 97 | +- Demo application configuration |
| 98 | +- Documentation |
| 99 | + |
| 100 | +**Acceptance Criteria:** |
| 101 | +- [ ] YAML configuration format supported |
| 102 | +- [ ] XML tool definitions can be loaded |
| 103 | +- [ ] Existing JSON configuration still works |
| 104 | +- [ ] Migration path documented |
| 105 | + |
| 106 | +## Update Opportunity Issues |
| 107 | + |
| 108 | +### Issue 4: Implement Advanced Tool System |
| 109 | +**Labels**: `Update Opportunity`, `enhancement`, `feature` |
| 110 | +**Priority**: High |
| 111 | +**Effort**: Large |
| 112 | + |
| 113 | +**Description:** |
| 114 | +Implement comprehensive tool system including Search, Details, Compare, Ensemble, and Recipe tools for enhanced query capabilities. |
| 115 | + |
| 116 | +**New Capabilities:** |
| 117 | +- [ ] **Search Tool**: Enhanced keyword and semantic search |
| 118 | +- [ ] **Details Tool**: Retrieve specific information about named items |
| 119 | +- [ ] **Compare Tool**: Side-by-side comparison of two items |
| 120 | +- [ ] **Ensemble Tool**: Create cohesive sets of related items |
| 121 | +- [ ] **Recipe Tools**: Ingredient substitutions and accompaniment suggestions |
| 122 | + |
| 123 | +**Implementation Strategy:** |
| 124 | +- [ ] Create base `IToolHandler` interface |
| 125 | +- [ ] Implement handlers for each tool type |
| 126 | +- [ ] Add XML tool definition support |
| 127 | +- [ ] Create tool selection algorithm based on query analysis |
| 128 | + |
| 129 | +**Sample Queries to Support:** |
| 130 | +- "Give me an appetizer, main and dessert for an Italian dinner" |
| 131 | +- "I'm visiting Seattle for a day - suggest museums and nearby restaurants" |
| 132 | +- "Plan a romantic date night with dinner and entertainment" |
| 133 | + |
| 134 | +--- |
| 135 | + |
| 136 | +### Issue 5: Enhanced Debug and Development Experience |
| 137 | +**Labels**: `Update Opportunity`, `developer-experience`, `debugging` |
| 138 | +**Priority**: Medium |
| 139 | +**Effort**: Medium |
| 140 | + |
| 141 | +**Description:** |
| 142 | +Enhance the debugging and development experience with real-time visualization and comprehensive metrics. |
| 143 | + |
| 144 | +**New Features:** |
| 145 | +- [ ] **Real-time Tool Selection Visualization**: Show how queries are routed to tools |
| 146 | +- [ ] **Multi-Backend Query Visualization**: Display parallel backend queries and results |
| 147 | +- [ ] **Performance Metrics Dashboard**: Show query performance across backends |
| 148 | +- [ ] **Request/Response Debugging**: Enhanced debugging panel in demo application |
| 149 | + |
| 150 | +**Implementation Areas:** |
| 151 | +- [ ] Extend existing Blazor demo with advanced debugging components |
| 152 | +- [ ] Add SignalR for real-time updates |
| 153 | +- [ ] Implement metrics collection and display |
| 154 | +- [ ] Create developer-friendly debugging APIs |
| 155 | + |
| 156 | +--- |
| 157 | + |
| 158 | +### Issue 6: Implement Configurable Response Headers |
| 159 | +**Labels**: `Update Opportunity`, `configuration`, `compliance` |
| 160 | +**Priority**: Medium |
| 161 | +**Effort**: Small |
| 162 | + |
| 163 | +**Description:** |
| 164 | +Add support for configurable response headers including license specifications, data retention policies, and custom metadata. |
| 165 | + |
| 166 | +**New Capabilities:** |
| 167 | +- [ ] **License Specification**: MIT License headers with terms links |
| 168 | +- [ ] **Data Retention Policies**: Configurable retention policy headers |
| 169 | +- [ ] **UI Component Specifications**: Custom rendering hints for client applications |
| 170 | +- [ ] **Custom Metadata**: Deployment-specific headers |
| 171 | + |
| 172 | +**Implementation:** |
| 173 | +- [ ] Add `ResponseHeadersOptions` configuration |
| 174 | +- [ ] Implement middleware for automatic header injection |
| 175 | +- [ ] Update demo to showcase header customization |
| 176 | +- [ ] Document header configuration patterns |
| 177 | + |
| 178 | +--- |
| 179 | + |
| 180 | +### Issue 7: Advanced Backend Support |
| 181 | +**Labels**: `Update Opportunity`, `backend`, `integration` |
| 182 | +**Priority**: High |
| 183 | +**Effort**: Large |
| 184 | + |
| 185 | +**Description:** |
| 186 | +Implement support for additional backend types including vector databases and enterprise search solutions. |
| 187 | + |
| 188 | +**New Backend Types:** |
| 189 | +- [ ] **Azure AI Search**: Enhanced implementation (current basic support) |
| 190 | +- [ ] **Qdrant**: Vector database integration |
| 191 | +- [ ] **Milvus**: Vector similarity search |
| 192 | +- [ ] **OpenSearch**: Elasticsearch-compatible search |
| 193 | +- [ ] **Snowflake**: Data warehouse integration |
| 194 | + |
| 195 | +**Implementation Strategy:** |
| 196 | +- [ ] Create backend-specific NuGet packages |
| 197 | +- [ ] Implement each backend as separate `IDataBackend` implementations |
| 198 | +- [ ] Add configuration templates for each backend type |
| 199 | +- [ ] Create demo scenarios for multi-backend deployments |
| 200 | + |
| 201 | +--- |
| 202 | + |
| 203 | +### Issue 8: Comprehensive Testing Framework |
| 204 | +**Labels**: `Update Opportunity`, `testing`, `quality` |
| 205 | +**Priority**: High |
| 206 | +**Effort**: Medium |
| 207 | + |
| 208 | +**Description:** |
| 209 | +Implement comprehensive testing framework for end-to-end validation and performance benchmarking. |
| 210 | + |
| 211 | +**New Testing Capabilities:** |
| 212 | +- [ ] **End-to-End Query Testing**: Configurable test suites for different scenarios |
| 213 | +- [ ] **Multi-Backend Verification**: Test query consistency across backends |
| 214 | +- [ ] **Tool Selection Accuracy Tests**: Validate query routing decisions |
| 215 | +- [ ] **Performance Benchmarking**: Automated performance regression testing |
| 216 | +- [ ] **Database Operation Testing**: Backend-specific integration tests |
| 217 | + |
| 218 | +**Implementation Areas:** |
| 219 | +- [ ] Extend existing MSTest framework |
| 220 | +- [ ] Add integration testing projects |
| 221 | +- [ ] Create test data management system |
| 222 | +- [ ] Implement automated benchmarking |
| 223 | + |
| 224 | +--- |
| 225 | + |
| 226 | +### Issue 9: Streaming and Performance Enhancements |
| 227 | +**Labels**: `Update Opportunity`, `performance`, `streaming` |
| 228 | +**Priority**: Medium |
| 229 | +**Effort**: Medium |
| 230 | + |
| 231 | +**Description:** |
| 232 | +Enhance streaming capabilities and performance with multi-stage streaming and advanced optimizations. |
| 233 | + |
| 234 | +**Current Streaming:** Basic Server-Sent Events support exists. |
| 235 | + |
| 236 | +**Enhancement Opportunities:** |
| 237 | +- [ ] **Multi-Stage Streaming**: Stream tool selection process and backend queries |
| 238 | +- [ ] **Parallel Backend Results**: Stream results as they arrive from different backends |
| 239 | +- [ ] **Optimized Deduplication**: Advanced deduplication algorithms for large result sets |
| 240 | +- [ ] **Perceived Performance**: Better progress indicators and streaming UX |
| 241 | + |
| 242 | +## Implementation Timeline |
| 243 | + |
| 244 | +### Phase 1: Critical Updates (Months 1-2) |
| 245 | +- Issues #1, #2, #3 (Required Updates) |
| 246 | + |
| 247 | +### Phase 2: Core Enhancements (Months 2-4) |
| 248 | +- Issues #4, #8 (Advanced Tool System, Testing Framework) |
| 249 | + |
| 250 | +### Phase 3: Advanced Features (Months 4-6) |
| 251 | +- Issues #5, #6, #7, #9 (Debug Experience, Headers, Backends, Streaming) |
| 252 | + |
| 253 | +## Notes for Issue Creation |
| 254 | + |
| 255 | +1. **Reference the Analysis**: Each issue should reference the [NLWeb June 2025 Analysis](nlweb-june-2025-analysis.md) document |
| 256 | +2. **Link Related Issues**: Cross-reference related issues (e.g., tool selection framework depends on multi-backend architecture) |
| 257 | +3. **Acceptance Criteria**: Include specific, measurable acceptance criteria |
| 258 | +4. **Technical Specifications**: Reference specific code areas and interfaces that need changes |
| 259 | +5. **Backward Compatibility**: Ensure all breaking changes are clearly documented and have migration paths |
0 commit comments