Skip to content

Critical: Screenshot persistence and action-to-screenshot synchronization issues for localization testing #11

@ebowwa

Description

@ebowwa

Summary

The current implementation has critical gaps that prevent reliable capture-document-replay workflows for localization testing. Screenshots are not automatically persisted, there's no linkage between recordings and screenshots, and the system cannot guarantee reproducible documentation across different locales.

Current State Analysis

📸 Screenshot System Issues

  • CRITICAL: Screenshots are NOT automatically persisted - only kept in memory
  • Data Loss Risk: All screenshots are lost when app closes unless manually exported
  • No Auto-Save: Must remember to export before closing app every time
  • Locale Tracking: Uses LocaleInfo.current but only captures system locale at time of screenshot

🎬 Action Recording Limitations

  • Good: Recordings auto-save to ~/Documents/recordings.json
  • Missing: No locale information stored with recordings
  • Missing: No way to link recordings to specific screenshots
  • Missing: Cannot trigger screenshots during replay automatically

🔗 Integration Gaps

  • No Synchronization: Screenshots and recordings are completely separate systems
  • No Correlation: Both have timestamps but no automatic matching mechanism
  • Manual Process: Must manually coordinate taking screenshots at same points during replay
  • No Validation: Can't verify you captured screenshots at same flow points across locales

💾 Data Persistence Problems

Component Auto-Save Risk Level
Screenshots ❌ NO HIGH - Data loss on app close
Recordings ✅ YES LOW
Scenarios ✅ YES LOW
Locales ✅ YES LOW

⚠️ Critical Workflow Blockers

  1. Screenshot Loss: Forgetting to export = losing all work
  2. No Recording Context: Recordings don't know their original locale
  3. Manual Synchronization: No way to ensure screenshots taken at same points
  4. No Replay Triggers: Can't automatically capture screenshots during replay
  5. Missing Validation: No way to verify complete coverage across locales

Required Improvements for Reliable Localization Testing

Priority 1: Data Persistence

  • Auto-save screenshots to disk immediately after capture
  • Create timestamped session folders for organization
  • Add recovery mechanism for unsaved screenshots

Priority 2: Recording-Screenshot Integration

  • Add screenshot triggers to recordings (mark points where screenshots were taken)
  • Store locale information with each recording
  • Create recording-screenshot manifest linking them together
  • Add "screenshot here" markers during recording

Priority 3: Automated Replay Workflow

  • Auto-capture screenshots at marked points during replay
  • Validate all screenshot points were captured
  • Generate comparison reports between locales
  • Flag missing screenshots in workflow

Priority 4: Localization Workflow

  • Create "localization session" concept grouping recordings + screenshots
  • Add locale switching automation
  • Build side-by-side comparison views
  • Export locale-specific documentation automatically

Immediate Workaround Instructions

Until these issues are fixed, follow this EXACT workflow to avoid data loss:

Recording Phase (Base Locale)

  1. Start recording actions
  2. At each important screen, pause and note the timestamp
  3. Stop recording (auto-saves)
  4. Immediately take screenshots at noted points
  5. CRITICAL: Export screenshots NOW before doing anything else
  6. Document which screenshots correspond to which points in the flow

Replay Phase (Other Locales)

  1. Change iPhone to target locale
  2. Load saved recording
  3. Start replay
  4. Manually pause at each documented point
  5. Take screenshot
  6. CRITICAL: Export after each session
  7. Repeat for each locale

Documentation Phase

  1. Create folder structure: ProjectName/Locale/Screenshots/
  2. Match screenshots by timestamp/filename
  3. Build comparison matrix manually
  4. Note any missing screenshots

Code References

  • Screenshot persistence: ScreenshotManager.swift:276-350 (export functions exist but not auto-called)
  • Recording save: ActionRecorder.swift:891-902 (works correctly)
  • Missing integration: No code exists linking the two systems
  • Locale storage: Screenshot.swift:373 (captures locale) but Recording.swift:72 (missing locale)

Impact

Without these fixes:

  • High risk of losing hours of screenshot work
  • Cannot guarantee complete documentation across locales
  • Manual process is error-prone and time-consuming
  • No validation that all screens were captured in all locales

Recommendation

Implement Priority 1 (auto-save) immediately to prevent data loss. Then build proper integration between recording and screenshot systems to enable reliable, reproducible localization testing workflows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions