Files
ALwrity/docs/STEP_2_BACKWARD_COMPATIBLE_FIX.md

2.4 KiB

Step 2 Backward Compatible Fix

Problem

After updating Step 2 and Step 6 for database migration, the "existing analysis cache" feature in Step 2 stopped working because we have two different session_id strategies:

  1. Legacy: SHA256 hash of Clerk user_id → session_id = 724716666
  2. New: OnboardingSession.id (auto-increment) → session_id = 1, 2, 3...

Non-Breaking Solution

Made the check-existing endpoint support BOTH approaches for backward compatibility.

Change Made

File: backend/api/component_logic.py (Line 660-696)

@router.get("/style-detection/check-existing/{website_url:path}")
async def check_existing_analysis(website_url, current_user):
    """Check if analysis exists (supports both session_id types)."""
    
    # Try Approach 1: SHA256 hash (legacy)
    user_id_int = clerk_user_id_to_int(user_id)
    existing_analysis = analysis_service.check_existing_analysis(user_id_int, website_url)
    
    # Try Approach 2: OnboardingSession.id (new) if not found
    if not existing_analysis or not existing_analysis.get('exists'):
        onboarding_service = OnboardingDatabaseService()
        session = onboarding_service.get_session_by_user(user_id, db_session)
        if session:
            existing_analysis = analysis_service.check_existing_analysis(session.id, website_url)
    
    return existing_analysis

Benefits

No breaking changes - Steps 1-5 continue working as before
Backward compatible - Finds analysis saved with either session_id type
Cache works - Existing analysis feature now works correctly
Step 6 works - Can retrieve data saved via OnboardingSession approach

Testing

  1. Restart backend to load the updated endpoint
  2. Go to Step 2 and enter a website URL you've analyzed before
  3. Verify you see the "Use existing analysis?" dialog
  4. Click "Use Existing" to load previous analysis
  5. Navigate to Step 6 to verify all data displays correctly

What This Fixes

  • Existing analysis cache now works
  • Step 6 can retrieve website analysis
  • No impact on Steps 1, 3, 4, 5
  • Backward compatible with old data

Status

Fixed: Backward-compatible endpoint update applied
Pending: Restart backend and test


Next Action: Restart backend server and test the existing analysis feature in Step 2.