{% set dot_class = 'active' if capture_status == 'active' else ('stale' if capture_status == 'stale' else ('offline' if capture_status == 'offline' else 'unknown')) %}
observer {{ 'no observers' if capture_status == 'no_observers' else capture_status }}
{% if segment_count > 0 %}
{{ segment_count }} segment{{ 's' if segment_count != 1 else '' }}{% if duration_minutes > 0 %} · {{ duration_minutes }}m{% endif %}
{% endif %} {% if last_observe_relative %}
Last observation {{ last_observe_relative }}
{% endif %} {% if attention %}
{{ attention.placeholder_text }}
{% endif %} {% if pipeline_status %}
{{ pipeline_status.message }}
{% endif %} health →
{% if yesterday_processing %}

{{ yesterday_processing.title }}

{{ yesterday_processing.summary_line }}
{% if yesterday_processing.first_week_framing %}

{{ yesterday_processing.first_week_framing }}

{% endif %} {% if yesterday_processing.mode == 'sparse' %} {% for line in yesterday_processing.sparse_lines %}

{{ line }}

{% endfor %} {% elif yesterday_processing.details %}
    {% for line in yesterday_processing.details %}
  • {{ line }}
  • {% endfor %}
{% endif %}
{% endif %} {% if show_welcome %}

welcome to your home page

this is where your day comes together — narrative summaries, calendar events, tasks, routines, and the people in your network. as observers experience your day along with you and sol curates, sections will appear here automatically.

check system health →
{% endif %} {% if briefing_exists or briefing_phase == 'pending' %}

morning briefing

{% if briefing_needs_badge %} {{ briefing_needs_badge }} {% endif %} {% if briefing_meta and briefing_meta.generated %} {{ briefing_meta.generated[11:16] if briefing_meta.generated is string else briefing_meta.generated.strftime('%H:%M') }} {% endif %}
{% if briefing_summary %}
{{ briefing_summary }}
{% endif %} {% if briefing_phase == 'pending' and not briefing_exists %}
your morning briefing is being prepared...
{% endif %} {% if briefing_exists %}
{% for section_key in ['your_day', 'yesterday', 'needs_attention', 'forward_look', 'reading'] %} {% set section_content = briefing_sections.get(section_key) %} {% if section_key == 'needs_attention' %} {% if briefing_needs_deduped or briefing_needs_badge %}
{% if briefing_needs_deduped %}
    {% for item in briefing_needs_deduped %}
  • {{ item }}
  • {% endfor %}
{% endif %}
{% endif %} {% elif section_content %} {% set section_labels = {'your_day': 'your day', 'yesterday': 'yesterday', 'forward_look': 'forward look', 'reading': 'reading'} %}
{% endif %} {% endfor %}
{% endif %}
{% endif %} {% if narrative_content is not none %}
tell me more → {% if narrative_updated_at %}
updated at {{ narrative_updated_at }}
{% endif %}
{% elif segment_count > 0 %}

{{ narrative_header or "today's flow" }}

analysis will be available after the next processing cycle.
{% endif %} {% if narrative_content is none and segment_count == 0 and not show_welcome %}

today's flow

no narrative yet — one will appear after solstone processes some audio. check observer status →
{% endif %} {% set unseen_routines = routines|selectattr('seen', 'equalto', false)|list %} {% if unseen_routines %}
{% for routine in unseen_routines %}
{{ routine.name }} {{ routine.run_time_display }} {% if routine.summary %} — {{ routine.summary }} {% endif %}
{% endfor %}
{% endif %} {% if not unseen_routines and routines and not show_welcome %}

your routines

all caught up — no new routine results since you last checked.
{% endif %} {% if skills %}
{% for skill in skills %}
{{ skill.name }}{{ ' (dormant)' if skill.status == 'dormant' else '' }} {{ skill.observations }} obs {{ skill.facets[0] if skill.facets else '' }} {% if skill.description %} — {{ skill.description }} {% endif %}
{% endfor %}
{% endif %} {% if latest_weekly_reflection %}

weekly reflection

week of {{ latest_weekly_reflection.label }} →
{% endif %} {% if anticipated_activities or activities %}
{% if anticipated_activities %}
{% for event in anticipated_activities %} {% set is_past = event.get('occurred', false) or (event.get('end', '') and event['end'] < now.strftime('%H:%M:%S')) %}
{{ event.get('start', '')[:5] }} {{ event.get('title', 'Untitled') }}
{% endfor %}
{% endif %} {% if activities %}
recent activity
{% for act in activities[:6] %}
{{ act.get('display_time', '') }} {{ act.get('description', act.get('activity', '')) }}
{% endfor %}
{% endif %} {% if facet_data %}
{% for fname, fdata in facet_data.items() %} {{ fname }} · {{ fdata.get('minutes', 0)|int }}m {% endfor %}
{% endif %}
{% endif %} {% if not anticipated_activities and not activities and not show_welcome %}

today

no anticipated activities or recent activity yet today.
{% endif %} {% if attention or pulse_needs or todos %}

needs you

{{ needs_summary }}
{% if attention %}
{{ attention.placeholder_text }}
{% endif %} {% for item in pulse_needs %}
{{ item }}
{% endfor %} {% for todo in todos[:7] %}
{{ todo.get('text', '') }}{% if todo.get('facet') %} ({{ todo['facet'] }}){% endif %}
{% endfor %}
{% if todos|length > 7 %} {% endif %}
{% endif %} {% if not attention and not pulse_needs and not todos and not show_welcome %}

needs you

nothing needs your attention right now.
{% endif %} {% if entities %}
{% for ent in entities %}
{{ ent.get('entity_type', '?')[:3] }} {{ ent.get('name', '') }}
{% endfor %}
{% endif %} {% if not entities and not show_welcome %}

network pulse

no one has appeared in today's journal yet.
{% endif %}