Skip to main content

Show More Behavior - Architecture Documentation

Table of Contents​

  1. Overview
  2. System Architecture
  3. Data Flow
  4. State Management
  5. Normal Cases
  6. Edge Cases
  7. Context Preservation
  8. Performance & Optimization
  9. Testing Scenarios

Overview​

The "Show More" feature enables users to request additional products while maintaining search context. It functions as an intelligent pagination system that:

  • Preserves search parameters across requests
  • Excludes previously shown products
  • Maintains conversation context (budget, category, product type)
  • Handles edge cases gracefully (pool exhaustion, context switches)

Key Capabilities​

  • Multi-language support (Estonian & English)
  • Context preservation across turns
  • Smart exclude list management
  • Graceful degradation (fallback)
  • Pool exhaustion detection
  • Context switch detection

System Architecture​

High-Level Component Overview​

Component Responsibilities​


Data Flow​

Complete Request-Response Cycle​

Data Flow with Edge Cases​


State Management​

Frontend State Transitions​

Backend Context Preservation Flow​


Normal Cases​

Case 1: Simple Show More Chain​

Case 2: Show More with Budget Refinement​

Case 3: Timeline View of Product Chain​


Edge Cases​

Edge Case 1: Pool Exhaustion​

Pool Depletion Visualization​

Edge Case 2: Context Switch Detection​

Edge Case 3: Exclude List Pruning​

Pruning Impact Timeline​

Edge Case 4: Pure Show More vs False Positive​

Edge Case 5: Concurrent Requests​


Context Preservation​

Preservation Priority Hierarchy​

Field-Specific Preservation Rules​

Force Preservation Logic​


Performance & Optimization​

Exclude List Performance Analysis​

Request Timing Breakdown​

Performance Metrics​


Testing Scenarios​

Test Coverage Matrix​

Test Execution Flow​

Critical Test Scenarios​


Implementation Files Reference​

File Structure​


Monitoring & Observability​

Telemetry Dashboard Metrics​

Debug Logging Flow​


Future Enhancements​

Enhancement Roadmap​

Proposed Features​


Conclusion​

Feature Summary​

Quality Metrics​


Document Version: 1.0
Last Updated: 2025-11-16
Maintained By: Engineering Team
Related Docs: COMPREHENSIVE-FOLLOWUP-TEST-SCENARIOS.md, FALLBACK_ACKNOWLEDGMENT_FEATURE.md


Quick Reference​

Critical Code Snippets​

Detection:

function isShowMoreMessage(text: string): boolean {
return /(näita|rohkem|veel|more|show\s+me\s+more|next)/i.test(text);
}

Reset Logic:

if (currentIntent === 'show_more_products') return false;
if (previousProductType !== currentProductType && bothSpecific) return true;

Preservation:

const preservedCategoryHints = Array.isArray(request.lastSearchParams?.categoryHints)
? request.lastSearchParams.categoryHints // PRIORITY 1
: Array.isArray(storedContext?.giftContext?.categoryHints)
? storedContext.giftContext.categoryHints // Priority 2
: undefined;

Pruning:

if (finalExcludeIds.length > MAX_EXCLUDE_LIST_SIZE) {
finalExcludeIds = finalExcludeIds.slice(-MAX_EXCLUDE_LIST_SIZE); // Keep last 30
}