<turbo-stream action="append" target="changelog-entries"><template>
    <article class="bg-white rounded-lg border border-gray-200 overflow-hidden">
  <div class="bg-gray-50 px-6 py-4 border-b border-gray-200">
    <div class="flex items-center justify-between">
      <h2 class="text-lg font-semibold text-gray-900 font-mono">
        2026-08-21
      </h2>
    </div>
  </div>

  <div class="px-6 py-4 text-gray-700 leading-relaxed space-y-4">

        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">Long items are split into sections, with a table of contents</h2>
        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">What&#39;s New</h2>
        <ul class="list-disc list-inside space-y-1 ml-4">
            <li><strong>Sections</strong>: long items are now divided into titled sections, and each one gets its own heading as you read along. Where the source already declares structure the real titles are used (YouTube chapters, an article&#39;s headings, a book&#39;s chapter list); everything else is divided up for you.</li>
            <li><strong>Contents</strong>: a Contents button floats in the top right of any long item. It opens a list of the sections and jumps straight to the one you pick, in both the full reader and the condensed version. Single-section items do not show the control, since it would add nothing.</li>
            <li><strong>Insights grouped by section</strong>: an item&#39;s insights are now listed under the section each one came from, instead of one undifferentiated list. Insights that draw on the whole item sit together under &quot;Cross-chapter&quot;.</li>
        </ul>
  </div>
</article>

    <article class="bg-white rounded-lg border border-gray-200 overflow-hidden">
  <div class="bg-gray-50 px-6 py-4 border-b border-gray-200">
    <div class="flex items-center justify-between">
      <h2 class="text-lg font-semibold text-gray-900 font-mono">
        2026-08-15
      </h2>
    </div>
  </div>

  <div class="px-6 py-4 text-gray-700 leading-relaxed space-y-4">

        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">EPUB text encoding fixes</h2>
        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">Fixes</h2>
        <ul class="list-disc list-inside space-y-1 ml-4">
            <li>Insight markers on the player seekbar are now positioned correctly for long text items (EPUB/PDF/articles); previously all markers collapsed toward the wrong spots on multi-chunk items</li>
            <li>EPUB transcripts no longer show garbled characters (em dashes, curly quotes, non-breaking spaces) when a book&#39;s XHTML omits an explicit HTML charset declaration</li>
        </ul>
  </div>
</article>

    <article class="bg-white rounded-lg border border-gray-200 overflow-hidden">
  <div class="bg-gray-50 px-6 py-4 border-b border-gray-200">
    <div class="flex items-center justify-between">
      <h2 class="text-lg font-semibold text-gray-900 font-mono">
        2026-07-25
      </h2>
    </div>
  </div>

  <div class="px-6 py-4 text-gray-700 leading-relaxed space-y-4">

        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">Condensed versions, API access, and streak recovery</h2>
        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">What&#39;s New</h2>
        <ul class="list-disc list-inside space-y-1 ml-4">
            <li>Condensed versions: AI-generated summaries of items with their own audio player and timestamped transcript on a dedicated page</li>
            <li>API access: transcripts and full insights are now exposed through the API</li>
            <li>API keys: the token now persists on the key management page with a copy-to-clipboard button</li>
        </ul>
        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">Fixes</h2>
        <ul class="list-disc list-inside space-y-1 ml-4">
            <li>Streak history correctly classifies days within the 7-day recovery window as recoverable missed</li>
            <li>URL validation rejects invalid URLs during item creation instead of failing downstream</li>
        </ul>
  </div>
</article>

    <article class="bg-white rounded-lg border border-gray-200 overflow-hidden">
  <div class="bg-gray-50 px-6 py-4 border-b border-gray-200">
    <div class="flex items-center justify-between">
      <h2 class="text-lg font-semibold text-gray-900 font-mono">
        2026-05-24
      </h2>
    </div>
  </div>

  <div class="px-6 py-4 text-gray-700 leading-relaxed space-y-4">

        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">Richer insights, live tab counts, and a cleaner item detail page</h2>
        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">What&#39;s New</h2>
        <ul class="list-disc list-inside space-y-1 ml-4">
            <li>Item detail page now shows status and controls in a compact inline bar instead of a sparse grid</li>
            <li>Insights are richer, merging related evidence from across the content instead of repeating single-source points</li>
            <li>Workflow tab counts stay up to date without needing to refresh the page</li>
        </ul>
        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">Fixes</h2>
        <ul class="list-disc list-inside space-y-1 ml-4">
            <li>Empty tabs now show a helpful message instead of a blank page</li>
            <li>YouTube videos no longer get stuck in processing</li>
            <li>Timeline highlights now appear on articles with generated audio</li>
        </ul>
  </div>
</article>

    <article class="bg-white rounded-lg border border-gray-200 overflow-hidden">
  <div class="bg-gray-50 px-6 py-4 border-b border-gray-200">
    <div class="flex items-center justify-between">
      <h2 class="text-lg font-semibold text-gray-900 font-mono">
        2026-05-04
      </h2>
    </div>
  </div>

  <div class="px-6 py-4 text-gray-700 leading-relaxed space-y-4">

        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">Transcript Highlighting and Audio Duration</h2>
        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">What&#39;s New</h2>
        <ul class="list-disc list-inside space-y-1 ml-4">
            <li>Add transcript highlighting and unified insight tooltips</li>
        </ul>
        <h2 class="text-xl font-semibold text-gray-900 mt-6 mb-3">Fixes</h2>
        <ul class="list-disc list-inside space-y-1 ml-4">
            <li>Show total audio duration before playback starts</li>
        </ul>
  </div>
</article>

</template></turbo-stream>
<turbo-stream action="replace" target="changelog-pagination"><template>
  <div id="changelog-pagination" class="mt-8 text-center">
      <a class="inline-flex items-center gap-1.5 text-sm font-medium text-gray-600 hover:text-gray-900 transition-colors" data-turbo-stream="true" href="/changelog.turbo_stream?page=4">
        <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
          <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />
        </svg>
        Load more
</a>  </div>
</template></turbo-stream>