{# Cache-bust on every digest run so frontend asset updates land immediately — browsers were serving stale app.js / style.css after rebuilds, which was hiding headline desks (old JS treated them as empty because it only counted .item, not .headline). #} {# ────── header ────── #} {# ────── nav strip ────── #}
{# ────── WORLD HEADLINES ────── #} {% if world_headlines %}
01

World

top of last {{ generated_at.hour < 14 and "8" or "8" }} hours · headlines {{ world_total }} items
    {% for h in world_headlines %}
  1. {{ h.title }}

    {{ h.source }} {{ h.posted_at|humanago }} {% if h.tldr %}

    {{ h.tldr }}

    {% endif %}
  2. {% endfor %}
{% endif %} {# ────── LOCAL HEADLINES ────── #} {% if local_headlines %}
02

Local

orange county · greater LA · last 8 hours {{ local_total }} items
    {% for h in local_headlines %}
  1. {{ h.title }}

    {{ h.source }} {{ h.posted_at|humanago }} {% if h.tldr %}

    {{ h.tldr }}

    {% endif %}
  2. {% endfor %}
{% endif %} {# ────── REDDIT SECTION ────── #} {% if reddit_sources %}
03

Reddit

top of last {{ generated_at.hour < 14 and "12" or "12" }} hours · score-filtered {{ reddit_total }} items
{% for src in reddit_sources %}
{{ src.name }} {{ src.items|length }}
    {% for it in src.items %}
  1. {{ it.title }}

    {% if it.tldr %}

    {{ it.tldr }}

    {% endif %}
  2. {% endfor %}
{% endfor %}
{% endif %} {# ────── TECH FEEDS SECTION ────── #} {% if tech_sources %}
04

Tech Feeds

non-reddit · last {{ generated_at.hour < 14 and "12" or "12" }} hours {{ tech_total }} items
{% for src in tech_sources %}
{{ src.name }} {{ src.items|length }}
    {% for it in src.items %}
  1. {{ it.title }}

    {% if it.tldr %}

    {{ it.tldr }}

    {% endif %}
  2. {% endfor %}
{% endfor %}
{% endif %} {% if not reddit_sources and not tech_sources and not world_headlines and not local_headlines %}

No items cleared the filters in the last window.
Lower DIGEST_MIN_SCORE or widen DIGEST_REDDIT_HOURS if this looks wrong.

{% endif %} {# ────── HIDDEN TRAY ────── Hidden by default. app.js unhides it once it has anything to show (i.e. at least one .item on this page is in the user's hidden set). Click the header to expand/collapse; click a row's restore button to bring the item back into the desk it came from. #}