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
}