{#if moods.length} {/if}
{#if showBoundaries} (showBoundaries = false)} /> {/if} {#if showHistory}

What you've seen

Everything you've seen here, including stories you swapped away — so a swap sticks and stays recoverable. Kept on this device only (no account, nothing sent). (Saved history & favorites come with sign-in, later.)

{#if history.length}
    {#each history as a (a.id)}
  • {a.title} {a.source}
  • {/each}
{:else}

Nothing yet — your seen stories will appear here.

{/if} {#if history.length || dismissed.size} {/if}
{/if} {#if notice}

{notice}

{/if} {#if loading}

Gathering the good news…

{:else if error}

{error}

{:else} {#key selected}

{viewLabel}

{#if viewSubtitle}

{viewSubtitle}

{/if}
{#if selected === 'today'} {#if brief?.items?.length}
{#if brief.items.length > 1}
{#each brief.items.slice(1) as a (a.id)} {/each}
{/if}

✦ that's the good news for today ✦

{:else}

No highlights yet today — try a calmer filter, or check back soon.

{/if} {:else if feed.length}
{#each feed as a (a.id)} {/each}
{:else}

Nothing in this mood right now — try another, or ease a boundary.

{/if} {/key} {/if}