{% set dot_class = 'active' if capture_status == 'active' else ('stale' if capture_status == 'stale' else ('offline' if capture_status == 'offline' else 'unknown')) %}
{{ capture_display_text }}
{% 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 }}
view details →
{% endif %} {% if pipeline_status %}
{{ pipeline_status.message }}
view details →
{% 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.gap_links or yesterday_processing.details %}
    {% for link in yesterday_processing.gap_links %}
  • {{ link.text }}
  • {% endfor %} {% 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, and routines. 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 %}
{% if briefing_lateness.late %} I usually finish your briefing by ~10 am. It's {{ briefing_lateness.late_hours }}h late. Check status {% else %} your morning briefing is being prepared... {% endif %}
{% 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 %}