{% extends "base.html" %} {% block title %}Memory Overview{% endblock %} {% block content %} {% set lang = get_lang(request) %}
{{ t('memory.total_memories', lang) }}
{{ data.total_memories }}
{% if data.date_range.min %}
{{ t('memory.since', lang) }} {{ data.date_range.min }}
{% endif %}
{{ data.total_days }} {{ t('memory.days', lang) }}
{{ t('memory.date_range', lang) }}
{% if data.date_range.min %} {{ data.date_range.min }} — {{ data.date_range.max }} {% else %} {{ t('memory.no_data', lang) }} {% endif %}
{{ t('memory.avg_arousal', lang) }}
{{ data.avg_arousal }}
{{ t('memory.scale', lang) }}
{{ t('memory.categories', lang) }}
{{ data.category_counts | length }}
{% for cat, count in data.category_counts.items() %} {{ cat }} {{ count }} {% endfor %}

{{ t('memory.daily_accumulation', lang) }}

{{ t('memory.daily_desc', lang) }}

{{ t('memory.category_breakdown', lang) }}

{{ t('memory.category_desc', lang) }}

{{ t('memory.arousal_distribution', lang) }}

{{ t('memory.arousal_desc', lang) }}

{{ t('memory.crystallization', lang) }}

{{ t('memory.crystal_desc', lang) }}

{{ t('memory.pattern_entries', lang) }}: {{ signals.pattern_count }} / {{ signals.pattern_threshold }}
{{ t('memory.error_entries', lang) }}: {{ signals.error_count }} / {{ signals.error_threshold }}
{{ t('memory.log_days', lang) }}: {{ signals.log_days }} / {{ signals.log_days_threshold }}
{{ t('memory.days_since_cp', lang) }}: {{ signals.days_since_checkpoint }} / {{ signals.checkpoint_interval_days }}
{% if signals.should_crystallize %}
{{ t('memory.crystal_recommended', lang) }} — {{ signals.triggered_conditions | length }} {{ t('memory.conditions_met', lang) }}
{% endif %}
{% endblock %} {% block scripts %} {% endblock %}