Skip to content

Commit fe57f4b

Browse files
authored
Merge pull request #32 from jongalloway/copilot/fix-31
[WIP] 🔃 Review NLWeb June 2025 update for impact and new scenarios
2 parents 45db6c0 + d33df8c commit fe57f4b

File tree

3 files changed

+564
-0
lines changed

3 files changed

+564
-0
lines changed

doc/github-issues-plan.md

Lines changed: 259 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
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

Comments
 (0)